228 Commits
Author SHA1 Message Date
GeorgeSG 2c124d2bee Use code for git editor 2026-07-08 16:14:59 +03:00
GeorgeSG 26262f2111 Add herdr 2026-07-08 16:14:33 +03:00
Georgi Gardev 38206e6f48 Add thefuck 2026-06-24 22:00:03 +03:00
Georgi Gardev d80d9d5462 Update dotfiles 2026-06-24 21:57:36 +03:00
Georgi GardevandClaude Opus 4.8 ab3f98f506 Use HTTPS instead of SSH for public submodules
zsh-git-prompt, calc.plugin.zsh, and zsh-vim-mode are public repos, so
fetch them over HTTPS to avoid requiring SSH keys on fresh clones.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 21:47:15 +03:00
Georgi Gardev aac8d2a035 Disable some apps in personal 2026-01-30 00:23:20 +02:00
Georgi Gardev 71be3eb48b Add swift-shift 2026-01-30 00:23:05 +02:00
Georgi Gardev 5f65e96f8e Add screensaver alias 2025-11-03 23:35:40 +02:00
Georgi Gardev b1fcfbb6d4 Update macos setup 2025-10-31 20:59:03 +02:00
Georgi Gardev 171bc921a7 Update colors 2025-03-06 11:45:06 +02:00
GeorgeSG ffb94b7a62 Update alacritty theme 2025-02-15 11:39:01 +02:00
Georgi Gardev df3bdd3207 Update install script 2025-02-15 11:36:39 +02:00
GeorgeSG a01ad11ace Don't sudo chsh 2025-02-15 11:21:37 +02:00
GeorgeSG 72e2db0780 Add per-os install scripts 2025-02-15 11:19:21 +02:00
GeorgeSG 5b0f04c2b6 Rename dotbot files 2025-02-15 11:18:58 +02:00
GeorgeSG 894f00cc5e update fn 2025-02-10 18:16:59 +02:00
GeorgeSG e26ea8a377 Rename fn 2025-02-10 17:49:34 +02:00
GeorgeSG 966b04322e update comment 2025-02-10 16:30:49 +02:00
GeorgeSG d822494616 Improve aliases 2025-02-10 16:29:34 +02:00
Georgi Gardev 98d91f20c8 Add kondo 2025-02-04 13:21:26 +02:00
GeorgeSG 5f8c77cdc8 add fd 2025-02-02 18:31:53 +02:00
GeorgeSG b60c5602ca add aliases 2025-02-02 18:27:32 +02:00
GeorgeSG e192ef81f4 Remove deprecated Makefile 2025-02-02 09:49:34 +02:00
GeorgeSG 8ab8cc5533 Update brewfile 2025-02-02 09:49:12 +02:00
GeorgeSG 2f8e433848 add flushdns alias for mac 2025-02-02 09:49:01 +02:00
GeorgeSG ad28dee306 do xcode-install for macos 2025-01-23 17:58:42 +02:00
GeorgeSG b7d6c1f529 rename dotbot files 2025-01-23 17:57:53 +02:00
GeorgeSG 13befac5e6 remove useful stuff from global gitignore 2025-01-23 17:43:09 +02:00
GeorgeSG 034ba4bc36 update btop 2025-01-23 16:17:32 +02:00
GeorgeSG 6d0daf7535 link tmux plugins 2025-01-23 16:05:12 +02:00
Georgi Gardev f9367d6fe6 add gh cli aliases 2025-01-23 15:47:31 +02:00
Georgi Gardev 7f7c5b3786 alacritty url handling 2025-01-23 15:47:26 +02:00
Georgi Gardev 910b4d3846 Update alacritty styles 2025-01-23 13:03:29 +02:00
Georgi Gardev 3b1193b66b Update zshrc 2025-01-23 12:02:12 +02:00
Georgi Gardev 418e882aa7 Update alacritty theme 2025-01-23 12:02:05 +02:00
Georgi Gardev 1bfc8feeff Update install 2025-01-23 11:24:29 +02:00
Georgi Gardev cb2930a6e3 Add global gitignore 2025-01-23 11:24:21 +02:00
GeorgeSG 0e5cd1e276 Update dotfiles 2025-01-23 09:41:25 +02:00
GeorgeSG 097ee2c214 update caskfile 2025-01-23 09:26:13 +02:00
GeorgeSG 9262b92c3a Update alacritty conf 2025-01-23 09:26:07 +02:00
GeorgeSG ab7a3c7dc7 update mac install 2025-01-22 19:38:53 +02:00
GeorgeSG 484665b291 Switch to dotbot 2025-01-22 19:33:28 +02:00
Georgi Gardev 9a9edb57ff Update gitmodule 2025-01-22 18:24:48 +02:00
Georgi Gardev 091218ca64 Add dotbot install files 2025-01-22 18:24:48 +02:00
Georgi Gardev ffd0b82e21 Add dotbot 2025-01-22 18:24:48 +02:00
Georgi Gardev b1024a5363 dust 2024-07-11 16:13:45 +03:00
Georgi Gardev eee5631613 add fastfetch 2024-07-11 16:12:24 +03:00
Georgi Gardev 58da740702 git-delta 2024-07-11 16:10:06 +03:00
Georgi Gardev ea1af03c9b update brewfile 2024-07-11 15:50:20 +03:00
Georgi Gardev adb5c180c4 update caskfile 2024-07-11 12:42:58 +03:00
Georgi Gardev 7f76c54c73 update iterm profile 2024-07-11 12:41:40 +03:00
Georgi Gardev 36daa66605 make tmux transparent 2024-07-11 12:40:42 +03:00
Georgi Gardev c190054553 update iterm2 2024-07-11 12:40:13 +03:00
Georgi Gardev 42f87f7acd add iterm2 profile 2024-07-11 12:37:43 +03:00
Georgi Gardev ac77163995 remove alacritty from general linking 2024-07-11 12:34:59 +03:00
Georgi Gardev ca0a011536 add alacritty and btop to brewfile 2024-07-11 12:26:59 +03:00
Georgi Gardev 0389f91188 Move alacritty & btop to global linking 2024-07-11 12:26:42 +03:00
Georgi Gardev 1ed9a09f1b gitignore all local files 2024-07-11 12:11:21 +03:00
Georgi Gardev afc4f70fa7 gitignore local file 2024-07-11 12:11:06 +03:00
Georgi Gardev a2d1b6d12a remove .local file 2024-07-11 12:09:22 +03:00
GeorgeSG 5d6445d575 update eww on monitor update 2024-07-08 22:41:07 +03:00
GeorgeSG 16d887ec8d Update eww & hypr 2024-07-07 16:41:42 +03:00
GeorgeSG f2963d17b7 Update eww & hypr 2024-07-07 15:46:10 +03:00
GeorgeSG e5ed811055 Screenshot support 2024-07-07 14:16:38 +03:00
GeorgeSG 58f0b6cb9a Update eww and hyprland 2024-07-07 13:41:37 +03:00
GeorgeSG 74bacf3304 Update eww and hypr 2024-07-06 23:19:28 +03:00
GeorgeSG 34c51ecc9b update hypr 2024-07-06 22:43:47 +03:00
GeorgeSG 73bf405e02 fix typo 2024-07-06 22:33:27 +03:00
GeorgeSG 63060c52f4 Update eww 2024-07-06 22:33:16 +03:00
GeorgeSG af1dd2c0fc Add hyprlock 2024-07-06 15:44:05 +03:00
GeorgeSG a1f4d4cb9c Update rofi style 2024-07-06 13:40:32 +03:00
GeorgeSG 74a55a2dba move gitconfig local 2024-07-06 13:09:39 +03:00
GeorgeSG 36bcdccc21 gitignore and pull alacritty themes 2024-07-06 13:07:44 +03:00
GeorgeSG 7c84d0c507 Remove pyc file 2024-07-06 13:07:18 +03:00
GeorgeSG b820d657ee Add hyprstack config 2024-07-06 12:59:14 +03:00
GeorgeSG ead8c1df03 Update aliases 2024-07-06 12:53:59 +03:00
GeorgeSG 9c7184fb66 set tmux plugins path 2024-07-05 12:38:48 +03:00
GeorgeSG 8e8f35f5e8 move .gitconfig back home 2024-07-05 12:36:27 +03:00
GeorgeSG 278ca68338 Remove debug message 2024-07-05 12:28:49 +03:00
GeorgeSG 0cc989bbb7 ignore bash git prompt 2024-07-05 12:28:20 +03:00
GeorgeSG 47a432293e Rearrange files in .config folder, update makefile 2024-07-05 12:26:30 +03:00
Georgi Gardev 75d563e018 mac os disable press and hold 2024-03-17 13:59:26 +02:00
Georgi Gardev 376f6578cb Correct grammer 2024-03-10 23:42:47 +02:00
Georgi Gardev 706f3846ee Update clone.sh 2024-03-09 15:45:53 +02:00
Georgi Gardev 6d248c04c8 make xcode select install optional 2024-03-09 14:52:12 +02:00
Georgi Gardev 577a07285b Add apps to install 2024-03-07 17:18:41 +02:00
Georgi Gardev 22c8a7159b Add clone file 2024-03-07 16:01:26 +02:00
Georgi Gardev d41f162b61 Add clone file for often-used repos 2024-03-07 16:01:16 +02:00
Georgi Gardev 567523d4d4 Misc tweaks 2024-03-07 15:07:41 +02:00
Georgi Gardev bd5fc63166 fzf fixes 2024-03-07 12:50:49 +02:00
Georgi Gardev 5899f68be2 Update brew 2024-03-07 12:38:55 +02:00
Georgi Gardev 08bdb7655b Add comment 2024-03-07 11:58:08 +02:00
Georgi Gardev e43d18baf7 Remove unused icons 2024-03-07 11:57:29 +02:00
Georgi Gardev 503f514783 Update settings 2024-03-07 11:51:12 +02:00
Georgi Gardev 27517b46f5 Update mac setup script 2024-03-07 11:38:34 +02:00
Georgi Gardev fd94ad783b Remove unused files 2024-03-07 11:17:14 +02:00
Georgi Gardev f8adb2fdf0 remove cask step 2024-03-07 11:16:21 +02:00
Georgi Gardev a1a8f36931 minor fixes 2024-03-07 11:15:38 +02:00
Georgi Gardev d5694f106e update ssh generation script 2024-03-07 11:13:58 +02:00
Georgi Gardev 096ffe0f7d fix space 2024-03-07 10:50:16 +02:00
Georgi Gardev 3e062ad036 Update & fix prompt issues 2024-03-07 10:48:02 +02:00
Georgi Gardev 0d0804a420 add zshenv 2024-03-06 15:15:05 +02:00
Georgi Gardev 47af8efcfa Setup shell before brew 2024-03-06 12:49:35 +02:00
Georgi Gardev 04625d844e fix indent 2024-03-06 11:57:44 +02:00
Georgi Gardev a76f5f0563 fix errors 2024-03-06 11:57:20 +02:00
Georgi Gardev 5abece9316 fix errors 2024-03-06 11:56:26 +02:00
Georgi Gardev ade30406d3 fix clone 2024-03-06 11:55:15 +02:00
Georgi Gardev 91ee9a3087 Tweaks 2024-03-05 22:30:48 +02:00
Georgi Gardev d720aa58c6 lint 2024-03-05 19:25:26 +02:00
Georgi Gardev a1c1e65960 add zoxide 2024-03-05 19:25:10 +02:00
Georgi Gardev 7161134798 add zoxide 2024-03-05 19:25:04 +02:00
Georgi Gardev d2f1022b42 Add more eza aliases 2024-03-05 19:12:05 +02:00
Georgi Gardev 68d9562369 Add zsh plugins and aliases 2024-03-05 19:04:38 +02:00
Georgi Gardev 56584b3abe Add zsh plugins 2024-03-05 15:57:58 +02:00
Georgi Gardev ade4e7d527 ignore common commands in history 2024-03-05 15:49:43 +02:00
Georgi Gardev 75eec352cb Update zshrc 2024-03-05 15:48:35 +02:00
Georgi Gardev a120b8747a Add comment 2024-03-05 15:38:27 +02:00
Georgi Gardev 0763dcb89c Update prompt 2024-03-05 15:35:01 +02:00
Georgi Gardev be0c0a8302 Add gitconfig to README 2024-03-05 15:28:15 +02:00
Georgi Gardev 41043f38bc Fix readme 2024-03-05 15:27:54 +02:00
Georgi Gardev 4d7d433253 Remove unused var 2024-03-05 15:26:52 +02:00
Georgi Gardev 259e90d98d Add stashed color in zsh prompt 2024-03-05 15:18:18 +02:00
Georgi Gardev c38a23a408 Move zsh config in the repo 2024-03-05 15:13:01 +02:00
Georgi Gardev 8701166c31 Rework bash files 2024-03-05 14:57:06 +02:00
Georgi Gardev fe9397b8e9 nits 2024-03-05 12:25:13 +02:00
Georgi Gardev 91bb9c57a6 cleanup tmux themes 2024-03-05 01:27:29 +02:00
Georgi Gardev a98422f735 Autohide dock 2024-03-05 01:25:51 +02:00
Georgi Gardev 494cad38eb Update macos setup 2024-03-05 01:24:20 +02:00
Georgi Gardev d9a0518046 Add script to generate ssh key 2024-03-05 01:23:06 +02:00
Georgi Gardev 7f75d9ff8f use /usr/bin/env 2024-03-05 01:22:58 +02:00
Georgi Gardev 99f55332f8 update tmux.conf 2024-03-05 01:11:40 +02:00
Georgi Gardev 1afcfcc7f2 Update makefile 2024-03-05 01:03:35 +02:00
Georgi Gardev 5d2960ba25 Update makefile 2024-03-05 01:01:14 +02:00
Georgi Gardev 231fcb3d6e Additional macos setup 2024-03-05 00:51:26 +02:00
Georgi Gardev 23f1285b80 add macos setup 2024-03-05 00:17:53 +02:00
Georgi Gardev e9f42c013b Add rar 2024-03-04 23:59:53 +02:00
Georgi Gardev 6ee241f17e fix tmux comment 2024-03-04 23:57:29 +02:00
Georgi Gardev 57d074b3a2 Split in folders 2024-03-04 23:56:20 +02:00
Georgi Gardev 8d30d8f42c Move stuff to archive 2024-03-04 23:51:20 +02:00
Georgi Gardev 7a355e626d add install_brew.sh 2024-03-04 23:50:08 +02:00
Georgi Gardev d0d8162af6 ignore Brewfile lcok 2024-03-04 23:49:58 +02:00
Georgi Gardev b72530e8f5 Move and update aliases 2024-03-04 23:40:50 +02:00
Georgi Gardev fe81ac69a7 bring bashrc back 2024-03-04 23:29:45 +02:00
Georgi Gardev d91faeb4b4 Move to bash_profile 2024-03-04 23:28:53 +02:00
Georgi Gardev bfc3ad92ef Switch to Brewfile 2024-03-04 23:08:29 +02:00
Georgi Gardev 74abf09eaa add extract fn 2024-03-04 22:54:49 +02:00
Georgi Gardev 78c15fbd28 switch to .local for consistency 2024-03-04 22:54:39 +02:00
Georgi Gardev 25639710e8 Update makefile 2024-03-04 22:46:24 +02:00
Georgi Gardev c30aaee31c remove gpg sign disabled 2024-03-04 22:37:20 +02:00
Georgi Gardev a92433ea8e Add yda alias 2024-03-04 22:30:19 +02:00
Georgi Gardev 6948d245e8 Update brewfile 2024-03-04 22:29:30 +02:00
Georgi Gardev 1fd685683b Update bash aliases 2024-03-04 22:27:48 +02:00
Georgi Gardev f29af7c047 Update mac os brew setup 2024-03-04 22:25:26 +02:00
Georgi Gardev 9d7d4f0b29 Add new git aliases 2024-03-04 21:43:07 +02:00
GeorgeSG d4a2c81fe0 add unstage alias 2023-11-14 09:26:10 +02:00
Georgi Gardev 6274ebc261 change file mode 2023-11-14 09:24:05 +02:00
Georgi Gardev 5436636128 add git conitnue aliases 2023-11-14 09:24:03 +02:00
GeorgeSG fa0a818f4a Switch from docker-compose to docker compose 2023-11-14 09:20:03 +02:00
Georgi Gardev 62d75fe13d Update Makefile 2023-03-02 17:50:22 +02:00
Georgi Gardev 2e25bbc165 Remove default pull rebase 2023-03-02 12:19:15 +02:00
Georgi Gardev 5f32f16103 Use source instead of . 2023-03-02 12:18:59 +02:00
Georgi Gardev 2aae05ba23 Update serve command 2022-12-06 13:52:41 +02:00
Georgi Gardev 4b0468dfa0 Silence mac deprecation warning for bash 2022-12-01 16:04:27 +02:00
Georgi c00e9da16d Update bttpreset 2022-12-01 15:56:24 +02:00
GeorgeSG df082c2644 Add workflows 2022-06-15 23:00:51 +03:00
GeorgeSG 440b679fbc File utils 2021-06-07 22:52:52 +03:00
GeorgeSG e22f60a262 Update bttpreset 2021-06-07 18:31:56 +03:00
GeorgeSG 6f38970446 Add bttpreset 2021-06-07 18:30:50 +03:00
GeorgeSG d118fd7f96 Specify git pull with rebase 2021-05-26 14:29:15 +03:00
GeorgeSG 0ad2db0b12 Update project manager 2021-05-26 14:21:57 +03:00
GeorgeSG 274bd20ec9 Add authy workflow 2021-05-26 13:55:19 +03:00
GeorgeSG 82b42198ac Add alfred theme 2021-05-26 13:51:20 +03:00
GeorgeSG 077616dd24 Add dc alias 2021-05-25 13:25:27 +03:00
GeorgeSG 73fc82ed3c Update vimrc 2021-05-25 13:21:26 +03:00
GeorgeSG 2d560eaa18 Update tmux status-right 2021-05-22 14:32:54 +03:00
GeorgeSG 21bd58a24d Change tmux aliases 2021-05-21 10:23:57 +03:00
GeorgeSG 2ad62f154e Add Cascadia font 2021-05-21 10:23:57 +03:00
GeorgeSG 8a8f2b4064 Update co master alias 2021-05-04 16:26:31 +03:00
GeorgeSG 67645789d6 Update makefile 2021-05-04 16:25:13 +03:00
GeorgeSG e375e5197e Don't use bash git prompt from brew 2021-05-04 16:12:44 +03:00
GeorgeSG 95785f830a Update bashrc 2021-05-04 16:05:29 +03:00
GeorgeSG 3a22236d21 Update bashrc 2021-05-04 16:04:28 +03:00
GeorgeSG e78bba211f Update bashrc 2021-05-04 16:02:11 +03:00
GeorgeSG 716b715386 Update prompot hostname 2021-05-04 15:51:39 +03:00
GeorgeSG c09ac49ae6 Add big sur icons 2021-05-04 15:51:17 +03:00
GeorgeSG 94e7d6ce27 Attempt to show hostname in prompt 2021-05-02 15:48:32 +03:00
GeorgeSG 1cab46c1d0 Remove unused aliases 2021-05-01 14:08:53 +03:00
GeorgeSG a29c560bd9 no more memes :) 2021-05-01 14:07:37 +03:00
GeorgeSG bd26d27e63 Add docker aliases 2021-05-01 14:07:02 +03:00
GeorgeSG bce7bf0e9e Add tmux aliases 2021-03-24 15:56:54 +02:00
GeorgeSG 6ed5cf2d3f Add alfred workflows 2021-03-19 13:55:19 +02:00
GeorgeSG a6440ea9a1 Add iterm colors 2021-03-18 15:45:55 +02:00
GeorgeSG 8c720beba3 Fix makefile 2020-05-05 18:41:08 +03:00
Georgi Gardev 67d0315ce0 Add tomorow-night tmux theme 2020-05-05 18:40:30 +03:00
GeorgeSG b6d2b759b3 Add tmux plugins 2020-05-05 17:17:24 +03:00
GeorgeSG 506b9a5cd0 More colors 2020-05-05 15:37:58 +03:00
GeorgeSG eeb6938b3b Update theme 2020-05-05 15:37:07 +03:00
GeorgeSG 8a8172a441 Add Makefile 2020-05-05 15:01:12 +03:00
GeorgeSG b3522c7af3 Update bash-git-prompt 2020-05-05 14:53:25 +03:00
GeorgeSG 810e35bc74 Fix color 2020-05-05 13:55:48 +03:00
GeorgeSG e106aa71bf Install bash-git-prompt with brew 2020-05-05 13:54:21 +03:00
GeorgeSG a73acbaa1c update mac files 2020-05-05 13:36:05 +03:00
GeorgeSG 3f392d4a75 Organize macos files 2020-05-05 13:08:26 +03:00
GeorgeSG 28e991f7b1 Delete more obsolete stuff 2020-05-05 13:07:47 +03:00
GeorgeSG 284aa8ba39 Remove obsolete configs 2020-05-05 13:07:10 +03:00
GeorgeSG a5d09808fd Refactor tmux theme 2020-05-05 12:54:40 +03:00
GeorgeSG b989128158 Remove reattach-to-user-namespace 2020-05-05 12:40:50 +03:00
GeorgeSG a9a8e34552 Change props for tmux v2.9 2020-05-05 12:40:13 +03:00
GeorgeSG a56e1a985c Add new git lgg alias 2020-05-05 12:36:02 +03:00
GeorgeSG 2dbff7b131 Add new aliases 2020-05-05 12:35:19 +03:00
GeorgeSG 8a2ab993d3 Add tmv alias for tmux within vscode 2019-03-02 15:23:37 +02:00
Georgi Gardev add6e5ef0a update difftool settings 2018-08-29 15:30:19 -04:00
GeorgeSG 73cf235413 Add ForkLift shortcut 2018-06-17 22:32:12 +03:00
Georgi Gardev 24f6fea89c Commit tmux theme 2017-11-30 12:54:49 +02:00
Georgi Gardev 26c3a5421b Add LFS and mac-specific configs to gitconfig 2017-11-30 12:54:32 +02:00
GeorgeSG 7f14e3ec5a Fix theme color 2017-11-29 21:42:55 +02:00
GeorgeSG 2a67a0ff18 Apple logo as prompt 2017-11-29 21:42:33 +02:00
Georgi Gardev 17a46268c5 Change find_all_under to ctrl+shift+a 2016-12-19 01:44:09 +02:00
Georgi Gardev 38f9aac533 improve git squash aliases 2016-12-07 16:05:11 +02:00
Georgi Gardev 0ad029d09d Update bash-git-prompt theme 2016-12-07 16:04:07 +02:00
Georgi Gardev 5f2b655b0a Update sublime keymap for OSX 2016-12-07 16:03:49 +02:00
Georgi Gardev 2efb3f2b42 use reattach-to-user-namespace when starting bash in tmux 2016-12-07 16:02:36 +02:00
Georgi Gardev a3fdefa1ad More minor tweaks 2016-10-18 19:57:17 +03:00
Georgi Gardev 27d1ebd29e Prompt tweaks 2016-10-18 16:22:26 +03:00
Georgi Gardev 0f2a4ef21a Enable vi mode in bash 2016-10-18 16:20:19 +03:00
Georgi Gardev 2f622e5c37 Migrating to Bash 2016-10-18 16:08:55 +03:00
Georgi Gardev 4d8c9050ad Update sublime folder 2016-09-05 21:19:13 +03:00
Georgi Gardev 90da387cab Add bash_aliases for mac 2016-09-05 21:15:42 +03:00
213 changed files with 8588 additions and 1935 deletions
-70
View File
@@ -1,70 +0,0 @@
##### Platform independent #####
# Git Aliases
alias g="git"
alias much="git"
alias such="git"
alias very="git"
alias so="git"
alias ga="git add"
alias gr="git rm"
alias gc="git commit"
alias gs="git status -s"
alias gss="git status"
alias gd="git diff"
alias gds="git diff --staged"
alias gco="git checkout"
alias gcm="git checkout master"
alias gpom="git pull origin master"
alias gbd="git branch -D"
alias gm="git mergetool"
alias tm="tmux -2 attach-session -t "default" || tmux -2 new-session -s \"default\""
# Editing files
alias aliases="vim ~/.bash_aliases"
alias vimrc="vim ~/.vimrc"
# CD-ing to some commonly used folders
alias og="cd ~/Git"
alias sass_watch="sass --watch ./:./"
alias s="sublime"
alias grep="grep --color=auto"
alias c="clear"
alias be="bundle exec"
alias share="python -m SimpleHTTPServer"
##### Mac OS Specific #####
alias showfiles="defaults write com.apple.finder AppleShowAllFiles YES; killall Finder /System/Library/CoreServices/Finder.app"
alias hidefiles="defaults write com.apple.finder AppleShowAllFiles NO; killall Finder /System/Library/CoreServices/Finder.app"
alias cask="brew cask"
##### Ubuntu/Linux Specific #####
# Easier APT
alias install="sudo apt-get install"
alias purge="sudo apt-get purge"
alias search="sudo apt-cache search"
alias remove="sudo apt-get remove"
alias autoremove="sudo apt-get autoremove"
# Secondary Monitor
alias monitor_enable="xrandr --output CRT1 --auto --right-of LVDS"
alias monitor_disable="xrandr --output CRT1 --off"
# PC Info
alias mountinfo="mount | column -t"
alias meminfo="free -mlt"
alias driveinfo="df -h"
# Launchers
alias lstart="sudo /opt/lampp/lampp start"
alias lstop="sudo /opt/lampp/lampp stop"
alias pgstart="sudo service postgresql start"
alias pgstop="sudo service postgresql stop"
if [ -f ~/.bash_local_aliases ]; then
. ~/.bash_local_aliases
fi
-12
View File
@@ -1,12 +0,0 @@
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
# if [[ "$TERM" != "screen-256color" ]]
# then
# tmux -2 attach-session -t "default" || tmux -2 new-session -s "default"
# exit
# fi
alias tm="tmux -2 attach-session -t "default" || tmux -2 new-session -s \"default\""
-209
View File
@@ -1,209 +0,0 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
shopt -s autocd
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
# Reset
Color_Off="\[\033[0m\]" # Text Reset
# Regular Colors
Black="\[\033[0;30m\]" # Black
Red="\[\033[0;31m\]" # Red
Green="\[\033[0;32m\]" # Green
Yellow="\[\033[0;33m\]" # Yellow
Blue="\[\033[0;34m\]" # Blue
Purple="\[\033[0;35m\]" # Purple
Cyan="\[\033[0;36m\]" # Cyan
White="\[\033[0;37m\]" # White
# Bold
BBlack="\[\033[1;30m\]" # Black
BRed="\[\033[1;31m\]" # Red
BGreen="\[\033[1;32m\]" # Green
BYellow="\[\033[1;33m\]" # Yellow
BBlue="\[\033[1;34m\]" # Blue
BPurple="\[\033[1;35m\]" # Purple
BCyan="\[\033[1;36m\]" # Cyan
BWhite="\[\033[1;37m\]" # White
# Underline
UBlack="\[\033[4;30m\]" # Black
URed="\[\033[4;31m\]" # Red
UGreen="\[\033[4;32m\]" # Green
UYellow="\[\033[4;33m\]" # Yellow
UBlue="\[\033[4;34m\]" # Blue
UPurple="\[\033[4;35m\]" # Purple
UCyan="\[\033[4;36m\]" # Cyan
UWhite="\[\033[4;37m\]" # White
# Background
On_Black="\[\033[40m\]" # Black
On_Red="\[\033[41m\]" # Red
On_Green="\[\033[42m\]" # Green
On_Yellow="\[\033[43m\]" # Yellow
On_Blue="\[\033[44m\]" # Blue
On_Purple="\[\033[45m\]" # Purple
On_Cyan="\[\033[46m\]" # Cyan
On_White="\[\033[47m\]" # White
# High Intensty
IBlack="\[\033[0;90m\]" # Black
IRed="\[\033[0;91m\]" # Red
IGreen="\[\033[0;92m\]" # Green
IYellow="\[\033[0;93m\]" # Yellow
IBlue="\[\033[0;94m\]" # Blue
IPurple="\[\033[0;95m\]" # Purple
ICyan="\[\033[0;96m\]" # Cyan
IWhite="\[\033[0;97m\]" # White
# Bold High Intensty
BIBlack="\[\033[1;90m\]" # Black
BIRed="\[\033[1;91m\]" # Red
BIGreen="\[\033[1;92m\]" # Green
BIYellow="\[\033[1;93m\]" # Yellow
BIBlue="\[\033[1;94m\]" # Blue
BIPurple="\[\033[1;95m\]" # Purple
BICyan="\[\033[1;96m\]" # Cyan
BIWhite="\[\033[1;97m\]" # White
# High Intensty backgrounds
On_IBlack="\[\033[0;100m\]" # Black
On_IRed="\[\033[0;101m\]" # Red
On_IGreen="\[\033[0;102m\]" # Green
On_IYellow="\[\033[0;103m\]" # Yellow
On_IBlue="\[\033[0;104m\]" # Blue
On_IPurple="\[\033[10;95m\]" # Purple
On_ICyan="\[\033[0;106m\]" # Cyan
On_IWhite="\[\033[0;107m\]" # White
# Various variables you might want for your PS1 prompt instead
Time12h="\A"
Time12a="\@"
PathShort="\w"
PathFull="\W"
NewLine="\n"
Jobs="\j"
if [ "$color_prompt" = yes ]; then
PS1='$(git branch &>/dev/null;\
if [ $? -eq 0 ]; then \
echo "$(echo `git status` | grep "nothing to commit" > /dev/null 2>&1; \
if [ "$?" -eq "0" ]; then \
# @4 - Clean repository - nothing to commit
echo "'$BGreen$PathShort$BCyan'"$(__git_ps1 " (%s)"); \
else \
# @5 - Changes to working tree
echo "'$BGreen$PathShort$IRed'"$(__git_ps1 " (%s)"); \
fi)'$BWhite':'$Color_Off' "; \
else \
# @2 - Prompt when not in GIT repo
echo "'$BGreen$PathShort$BWhite':'$Color_Off' "; \
fi)'
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
if [ -f ~/.bash_local_aliases ]; then
. ~/.bash_local_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
-43
View File
@@ -1,43 +0,0 @@
[color]
diff = auto
status = auto
branch = auto
interactive = auto
ui = auto
[alias]
# Shorten some often used commands
b = branch
c = commit
co = checkout
com = checkout master
ss = status
s = status -s
ds = diff --staged
amend = commit --amend -c HEAD
oops = reset --soft HEAD~1
kris = pull --rebase
ignore = !git update-index --assume-unchanged
unignore = !git update-index --no-assume-unchanged
ignored = !git ls-files -v | grep "^[[:lower:]]"
undo = reset --soft HEAD^
squash = rebase -i
# various pretty loggers from various places
l = log --pretty=oneline --abbrev-commit
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
lc = log ORIG_HEAD.. --stat --no-merges
# from http://blog.kfish.org/2010/04/git-lola.html
lol = log --graph --decorate --pretty=oneline --abbrev-commit
lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
ll = log --graph --date=short
[push]
default = simple
[filter "media"]
clean = git media clean %f
smudge = git media smudge %f
required = true
# local user config, usernames, etc
[include]
path=~/.gitconfig-local
+13 -2
View File
@@ -1,3 +1,14 @@
.DS_Store
.vim/bundle
.vim/undodir
home/.vim/bundle
home/.vim/undodir
home/.config/bash/bash-git-prompt
Brewfile.lock.json
Caskfile.lock.json
home/.config/alacritty/themes
__pycache__
*.pyc
*.local
*.log
+28
View File
@@ -0,0 +1,28 @@
[submodule "dotbot"]
path = dotbot
url = https://github.com/anishathalye/dotbot
ignore = dirty
[submodule "home/config/tmux/plugins/tpm"]
path = home/config/tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm
[submodule "home/config/bash/bash-git-prompt"]
path = home/config/bash/bash-git-prompt
url = https://github.com/magicmonty/bash-git-prompt.git
[submodule "home/config/zsh/plugins/zsh-git-prompt"]
path = home/config/zsh/plugins/zsh-git-prompt
url = https://github.com/zsh-git-prompt/zsh-git-prompt.git
[submodule "home/config/zsh/plugins/calc.plugin.zsh"]
path = home/config/zsh/plugins/calc.plugin.zsh
url = https://github.com/arzzen/calc.plugin.zsh.git
[submodule "home/config/zsh/plugins/zsh-vim-mode"]
path = home/config/zsh/plugins/zsh-vim-mode
url = https://github.com/softmoth/zsh-vim-mode.git
[submodule "home/config/zsh/plugins/zsh-better-npm-completion"]
path = home/config/zsh/plugins/zsh-better-npm-completion
url = https://github.com/lukechilds/zsh-better-npm-completion.git
[submodule "home/config/zsh/plugins/zsh-ssh"]
path = home/config/zsh/plugins/zsh-ssh
url = https://github.com/sunlei/zsh-ssh
[submodule "home/vim/bundle/Vundle.vim"]
path = home/vim/bundle/Vundle.vim
url = https://github.com/VundleVim/Vundle.vim.git
-110
View File
@@ -1,110 +0,0 @@
# ------------------
# General Settings
# ------------------
# Set Custom Prefix
set -g prefix C-a
unbind C-b
# Start in Zsh
set -g default-command '/bin/zsh --login'
set -g default-shell /bin/zsh
# Disable delay
set -sg escape-time 1
# Change the index of first window or pane to 1
set -g base-index 1
setw -g pane-base-index 1
# set -g status-utf8 on
# setw -g utf8 on
# -------------------
# Visual Settings
# -------------------
set -g default-terminal "screen-256color"
# Theme
set -g status-bg black
set -g status-fg white
set -g status-left-length 30
set -g status-right-length 60
#
# Colors
set -g status-fg white
set -g status-bg colour234
set -g pane-border-fg colour245
set -g pane-active-border-fg colour25
set -g message-fg white
set -g message-bg colour25
set -g message-attr bold
# Status bar
# set-option -g status-position bottom
set -g status-left '#[fg=colour25,bg=white,bold] #S #[fg=colour252,bg=colour238,bold]#[fg=colour245,bg=colour238,bold] #(whoami) #[fg=colour238,bg=colour234,bold]'
set -g status-right '#[fg=colour238,bg=colour234,bold]#[fg=colour245,bg=colour238,bold] #H #[fg=colour252,bg=colour238,bold]#[fg=colour25,bg=white,bold] #(date +%H:%M) '
set -g window-status-format "#[fg=white,bg=colour234] #I #W "
set -g window-status-current-format "#[fg=white,bg=colour25,noreverse,bold] #I #W "
# --------------------
# Custom keybindings
# --------------------
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
setw -g mode-keys vi
bind C-a send-prefix
# Unbind unused defaults
unbind %
unbind [
unbind p
unbind Up
unbind Down
unbind Left
unbind Right
unbind M-Up
unbind M-Down
unbind M-Left
unbind M-Right
unbind C-Up
unbind C-Down
unbind C-Left
unbind C-Right
# Source this file
bind r source-file ~/.tmux.conf \; display "Config file reloaded!"
# Splits
bind v split-window -h
bind s split-window -v
# Move between panes
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Move between windows
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
# Resize panes
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# Copy & Paste
bind Escape copy-mode
bind p paste-buffer
bind -t vi-copy 'v' begin-selection
bind C-c run-shell "bash -c 'tmux show-buffer | reattach-to-user-namespace pbcopy'" \; display 'Copied to clipboard'
-46
View File
@@ -1,46 +0,0 @@
# Mappings for keys for MX Revoluton
# b:1 - left mouse button
# b:2 - left and right mouse button together
# b:3 - right mouse button
# b:4 - mouse wheel up
# b:5 - mouse wheel down
# b:6 - mouse wheel left
# b:7 - mouse wheel right
# b:8 - back button
# b:9 - forward button
# b:10 - -none-
# b:11 - -none-
# b:12 - -none-
# b:13 - media wheel up
# b:14 - -none-
# b:15 - media wheel down
# b:16 - -none-
# b:17 - media wheel press
# forward
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next"
m:0x0 + b:8
# back
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous"
m:0x0 + b:9
# volume up
"amixer -D pulse sset Master 5%+"
m:0x0 + b:13
# volume down
"amixer -D pulse sset Master 5%-"
m:0x0 + b:15
# mute
"amixer -D pulse set Master 1+ toggle"
m:0x0 + b:17
# mouse wheel left middle click
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause"
b:6
# mouse wheel right middle click
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop"
b:7
-74
View File
@@ -1,74 +0,0 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from __future__ import print_function
# change those symbols to whatever you prefer
symbols = {'ahead of': '', 'behind': '', 'prehash':':'}
from subprocess import Popen, PIPE
import sys
gitsym = Popen(['git', 'symbolic-ref', 'HEAD'], stdout=PIPE, stderr=PIPE)
branch, error = gitsym.communicate()
error_string = error.decode('utf-8')
if 'fatal: Not a git repository' in error_string:
sys.exit(0)
branch = branch.strip()[11:]
res, err = Popen(['git','diff','--name-status'], stdout=PIPE, stderr=PIPE).communicate()
err_string = err.decode('utf-8')
if 'fatal' in err_string:
sys.exit(0)
changed_files = [namestat[0] for namestat in res.splitlines()]
staged_files = [namestat[0] for namestat in Popen(['git','diff', '--staged','--name-status'], stdout=PIPE).communicate()[0].splitlines()]
nb_changed = len(changed_files) - changed_files.count('U')
nb_U = staged_files.count('U')
nb_staged = len(staged_files) - nb_U
staged = str(nb_staged)
conflicts = str(nb_U)
changed = str(nb_changed)
nb_untracked = len(Popen(['git','ls-files','--others','--exclude-standard'],stdout=PIPE).communicate()[0].splitlines())
untracked = str(nb_untracked)
if not nb_changed and not nb_staged and not nb_U and not nb_untracked:
clean = '1'
else:
clean = '0'
remote = ''
if not branch: # not on any branch
branch = symbols['prehash']+ Popen(['git','rev-parse','--short','HEAD'], stdout=PIPE).communicate()[0][:-1]
else:
remote_name = Popen(['git','config','branch.%s.remote' % branch], stdout=PIPE).communicate()[0].strip()
if remote_name:
merge_name = Popen(['git','config','branch.%s.merge' % branch], stdout=PIPE).communicate()[0].strip()
if remote_name == '.': # local
remote_ref = merge_name
else:
remote_ref = 'refs/remotes/%s/%s' % (remote_name, merge_name[11:])
revgit = Popen(['git', 'rev-list', '--left-right', '%s...HEAD' % remote_ref],stdout=PIPE, stderr=PIPE)
revlist = revgit.communicate()[0]
if revgit.poll(): # fallback to local
revlist = Popen(['git', 'rev-list', '--left-right', '%s...HEAD' % merge_name],stdout=PIPE, stderr=PIPE).communicate()[0]
behead = revlist.splitlines()
ahead = len([x for x in behead if x[0]=='>'])
behind = len(behead) - ahead
if behind:
remote += '%s%s' % (symbols['behind'], behind)
if ahead:
remote += '%s%s' % (symbols['ahead of'], ahead)
out = '\n'.join([
str(branch),
remote,
staged,
conflicts,
changed,
untracked,
clean])
print(out)
-94
View File
@@ -1,94 +0,0 @@
# To install source this file from your .zshrc file
# Change this to reflect your installation directory
export __GIT_PROMPT_DIR=~/.zsh/git-prompt
# Initialize colors.
autoload -U colors
colors
# Allow for functions in the prompt.
setopt PROMPT_SUBST
autoload -U add-zsh-hook
add-zsh-hook chpwd chpwd_update_git_vars
add-zsh-hook preexec preexec_update_git_vars
add-zsh-hook precmd precmd_update_git_vars
## Function definitions
function preexec_update_git_vars() {
case "$2" in
git*|hub*|gh*|stg*)
__EXECUTED_GIT_COMMAND=1
;;
esac
}
function precmd_update_git_vars() {
if [ -n "$__EXECUTED_GIT_COMMAND" ] || [ -n "$ZSH_THEME_GIT_PROMPT_NOCACHE" ]; then
update_current_git_vars
unset __EXECUTED_GIT_COMMAND
fi
}
function chpwd_update_git_vars() {
update_current_git_vars
}
function update_current_git_vars() {
unset __CURRENT_GIT_STATUS
local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py"
_GIT_STATUS=`python ${gitstatus}`
__CURRENT_GIT_STATUS=("${(@f)_GIT_STATUS}")
GIT_BRANCH=$__CURRENT_GIT_STATUS[1]
GIT_REMOTE=$__CURRENT_GIT_STATUS[2]
GIT_STAGED=$__CURRENT_GIT_STATUS[3]
GIT_CONFLICTS=$__CURRENT_GIT_STATUS[4]
GIT_CHANGED=$__CURRENT_GIT_STATUS[5]
GIT_UNTRACKED=$__CURRENT_GIT_STATUS[6]
GIT_CLEAN=$__CURRENT_GIT_STATUS[7]
}
git_super_status() {
precmd_update_git_vars
if [ -n "$__CURRENT_GIT_STATUS" ]; then
STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}"
if [ -n "$GIT_REMOTE" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_REMOTE$GIT_REMOTE%{${reset_color}%}"
fi
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_SEPARATOR"
if [ "$GIT_STAGED" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED$GIT_STAGED%{${reset_color}%}"
fi
if [ "$GIT_CONFLICTS" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CONFLICTS$GIT_CONFLICTS%{${reset_color}%}"
fi
if [ "$GIT_CHANGED" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}"
fi
if [ "$GIT_UNTRACKED" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED%{${reset_color}%}"
fi
if [ "$GIT_CLEAN" -eq "1" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
fi
STATUS="$STATUS%{${reset_color}%}$ZSH_THEME_GIT_PROMPT_SUFFIX"
echo "$STATUS"
fi
}
# Default values for the appearance of the prompt. Configure at will.
ZSH_THEME_GIT_PROMPT_PREFIX="("
ZSH_THEME_GIT_PROMPT_SUFFIX=")"
ZSH_THEME_GIT_PROMPT_SEPARATOR="|"
ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}"
ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}●"
ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}✖"
ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}✚"
ZSH_THEME_GIT_PROMPT_REMOTE=""
ZSH_THEME_GIT_PROMPT_UNTRACKED="…"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✔"
-83
View File
@@ -1,83 +0,0 @@
# Include my bash aliases
source ~/.bash_aliases
source ~/.zsh/git-prompt/zshrc.sh
bindkey -v
bindkey '^r' history-incremental-search-backward
bindkey '^R' history-incremental-pattern-search-backward
#
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ls='ls -G'
alias ll='ls -alFG'
alias la='ls -AG'
alias l='ls -CFG'
autoload -U compinit promptinit
autoload -U colors && colors
compinit
promptinit
setopt AUTO_CD
setopt AUTO_PUSHD
setopt PUSHD_IGNORE_DUPS
setopt PROMPT_SUBST
# Allow [ or ] whereever you want
unsetopt nomatch
DIRSTACKSIZE=15
# Enable colors in prompt
autoload -U colors && colors
# Git Prompt colors
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg_bold[cyan]%}("
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg_bold[cyan]%})"
ZSH_THEME_GIT_PROMPT_SEPARATOR="%{$fg_bold[cyan]%}|"
ZSH_THEME_GIT_PROMPT_BRANCH=""
ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●"
ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg_bold[red]%}✖"
ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg_bold[red]%}✚"
ZSH_THEME_GIT_PROMPT_REMOTE=""
ZSH_THEME_GIT_PROMPT_UNTRACKED="…"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[cyan]%}✔"
PROMPT='%B%F{green}%~%b%F{white}$(git_super_status)%{$fg_bold[white]%}: '
RPROMPT='${${KEYMAP/vicmd/$VIM_PROMPT}/(main|viins)/} $EPS1'
export KEYTIMEOUT=1
# Arrow-driven completion
zstyle ':completion:*' menu select
# Complete Aliases
setopt completealiases
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM
+70
View File
@@ -0,0 +1,70 @@
# Dotfiles
Personal dotfiles for macOS and Linux, managed with [dotbot](https://github.com/anishathalye/dotbot).
## Structure
```
dotfiles/
├── home/ # Config files symlinked into $HOME
│ ├── config/ # ~/.config/* (alacritty, tmux, zsh, bash, etc.)
│ ├── claude/ # Claude Code config
│ ├── bashrc
│ ├── gitconfig
│ ├── tmux.conf
│ ├── vim/
│ ├── vimrc
│ └── zshenv
├── macos/ # macOS-specific: Brewfile, Caskfiles, iTerm2 config
├── shell/ # Shell scripts (setup, platform installers, clone, ssh)
├── functions/ # Utility scripts
├── fonts/ # Fonts
├── dotbot/ # Dotbot submodule
├── dotbot.default.yaml # Main dotbot config (always applied)
├── dotbot.personal.yaml # Personal brew casks
├── dotbot.setup-once.yaml # One-time setup (macOS defaults, repo clones)
└── install # Main install script
```
## Installation
```sh
# Default setup (symlinks + shell plugins)
./install
# First-time macOS setup (run once: Xcode tools, macOS defaults, clone repos)
./install setup-once
# Personal apps (brew cask installs from Caskfile.personal)
./install personal
```
## How It Works
- `./install` runs dotbot with `dotbot.default.yaml` plus any additional configs passed as arguments
- Dotbot creates symlinks from `home/` into `$HOME`, creates directories, and runs shell commands. Folders in `home/config` are symlinked to `~/.config/<folder>`
- Platform detection: macOS runs `shell/install_apps_macos.sh`, Linux runs `shell/install_apps_linux.sh`
- Submodules: dotbot, tpm, Vundle.vim, and several zsh/bash plugins — run `git submodule update --init --recursive` if anything is missing
## Important: `.local` files
Files matching `*.local` (e.g. `.zshrc.local`, `.gitconfig.local`, `.bash_profile.local`) are **machine-specific overrides** that exist only on the local machine. They are gitignored and not part of this repo. Do not modify, reference, or suggest changes to `.local` files.
## Adding Config for a New Tool
1. Put the config file under `home/config/<tool>/` or directly in `home/`
2. Add a `link:` entry in `dotbot.default.yaml` pointing from the repo path to the target path in `$HOME`
3. If it needs a directory created first, add it under `create:` in the same file
4. Run `./install` to apply
## Key Configs
| File | Linked to |
|------|-----------|
| `home/zshenv` | `~/.zshenv` |
| `home/gitconfig` | `~/.gitconfig` |
| `home/config/alacritty/` | `~/.config/alacritty/` |
| `home/config/tmux/` | `~/.config/tmux/` |
| `home/config/vim/` | `~/.vim/` |
| `home/config/zsh/` | `~/.config/zsh/` |
| `home/config/bash/` | `~/.config/bash/` |
+1
View File
@@ -0,0 +1 @@
@AGENTS.md
+26 -1
View File
@@ -1,4 +1,29 @@
dotfiles
========
Some of my dotfiles
Personal dotfiles for macOS and Linux, managed with [dotbot](https://github.com/anishathalye/dotbot).
## Install
```sh
git clone --recursive git@github.com:GeorgeSG/dotfiles.git ~/Git/dotfiles
cd ~/Git/dotfiles
./install
```
### macOS - first time setup
```sh
# Installs Xcode tools, sets macOS defaults, clones personal repos
./install setup-once
# Installs personal apps (Bitwarden, Discord, Spotify, etc.)
./install personal
```
### Linux
```sh
# Default install handles everything - installs apt packages, sets zsh as default shell
./install
```
-6
View File
@@ -1,6 +0,0 @@
#!/usr/bin/python
import sys
import os
os.system('meld "%s" "%s"' % (sys.argv[2], sys.argv[5]))
Submodule
+1
Submodule dotbot added at 9cd5d073f2
+57
View File
@@ -0,0 +1,57 @@
- defaults:
link:
relink: true
- clean: ['~']
- create:
- ~/.config
- ~/.config/bash
- ~/.config/herdr
- ~/.config/tmux
- ~/.claude
- link:
# git
~/.gitconfig: home/gitconfig
~/.config/.gitignore_global: home/config/gitignore_global
# bash
~/.bashrc: home/bashrc
~/.config/bash/.bash_profile: home/config/bash/bash_profile
~/.git-completion.bash: home/config/bash/git-completion.bash
~/.git-prompt-colors.sh: home/config/bash/git-prompt-colors.sh
# apps
~/.config/alacritty: home/config/alacritty
~/.config/btop: home/config/btop
~/.config/herdr/config.toml: home/config/herdr/config.toml
# tmux
~/.tmux.conf: home/tmux.conf
~/.config/tmux/plugins: home/config/tmux/plugins
~/.config/tmux/themes: home/config/tmux/themes
~/.config/.aliases: home/config/aliases
# vim
~/.vim : home/vim
~/.vimrc: home/vimrc
# zsh
~/.zshenv: home/zshenv
~/.config/zsh: home/config/zsh
# claude code
~/.claude/skills: home/claude/skills
# mac os
~/.hushlogin:
if: '[ `uname` = Darwin ]'
path: macos/hushlogin
- shell:
- command: ./shell/setup.sh
stdin: true
stdout: true
stderr: true
+10
View File
@@ -0,0 +1,10 @@
## TODO:
## cask_personal using some variable?
- shell:
- stdin: true
stdout: true
command: >
if [ "$(uname)" = "Darwin" ]; then
brew bundle --file ./macos/Caskfile.personal
fi
+15
View File
@@ -0,0 +1,15 @@
- shell:
-
stdin: true
stdout: true
description: Setting Mac OS defaults
command: >
if [ "$(uname)" = "Darwin" ]; then
xcode-select -p &>/dev/null || xcode-select --install
./shell/macos_setup.sh
fi
-
command: ./shell/clone.sh
description: Cloning Git repos
stdout: true
quiet: false
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
#
# Usage: extract <file>
# Description: extracts archived files / mounts disk images
# Note: .dmg/hdiutil is macOS-specific.
#
# credit: http://nparikh.org/notes/zshrc.txt
extract () {
if [ -f $1 ]; then
case $1 in
*.tar.bz2) tar -jxvf $1 ;;
*.tar.gz) tar -zxvf $1 ;;
*.bz2) bunzip2 $1 ;;
*.dmg) hdiutil mount $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar -xvf $1 ;;
*.tbz2) tar -jxvf $1 ;;
*.tgz) tar -zxvf $1 ;;
*.zip) unzip $1 ;;
*.ZIP) unzip $1 ;;
*.pax) cat $1 | pax -r ;;
*.pax.Z) uncompress $1 --stdout | pax -r ;;
*.rar) unrar x $1 ;;
*.Z) uncompress $1 ;;
*) echo "'$1' cannot be extracted/mounted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
+50
View File
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# set_alias_with_backup - A Bash function to alias a command while preserving the original.
#
# Usage:
# set_alias_with_backup <alias_name> <new_command>
#
# Parameters:
# alias_name: The alias name to override (e.g., "cat").
# new_command: The command to alias to (e.g., "bat").
#
# Behavior:
# - Checks if the new command exists.
# - If it exists and the backup alias (alias_name with an underscore appended) isn't set,
# it creates a backup alias pointing to the original command.
# - Sets the alias (alias_name) to use the new command.
#
# Example:
# To alias "bat" as "cat" and preserve the original "cat" as "cat_", run:
# set_alias_with_backup cat bat
set_alias_with_backup() {
local alias_name="$1"
local new_cmd="$2"
# Allow for extra parameters to be passed to the new command.
shift 2
local extra_params="$*"
# Check that both arguments are provided.
if [ -z "$alias_name" ] || [ -z "$new_cmd" ]; then
echo "Usage: set_alias_with_backup <alias_name> <new_command> [extra_params]"
return 1
fi
# Check that the new command exists.
if type "$new_cmd" >/dev/null 2>&1; then
# Define a backup alias by appending an underscore
# (e.g., "cat_" for "cat")
local backup_alias="${alias_name}_"
# If the backup alias isn't already set, create it pointing
# to the original command.
if ! type "$backup_alias" >/dev/null 2>&1; then
alias "$backup_alias"="$(which "$alias_name")"
fi
# Create the alias: e.g., alias "cat" to "bat" and pass any extra params.
alias "$alias_name"="$new_cmd $extra_params"
fi
}
+3
View File
@@ -0,0 +1,3 @@
[ -n "$PS1" ] && source ~/.config/bash/.bash_profile;
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
+27
View File
@@ -0,0 +1,27 @@
[general]
import = [
"~/.config/alacritty/tomorrow-night-gardev.toml"
]
[window]
padding = { x = 16, y = 8 }
dynamic_title = true
option_as_alt = "OnlyLeft"
[scrolling]
history = 10000
multiplier = 3
[font]
normal = { family = "CaskaydiaCove Nerd Font Mono", style = "Regular" }
size = 14
offset = { y = 1 }
[cursor]
style = { shape = "Beam", blinking = "Always" }
[[hints.enabled]]
regex = "https?://[^\\s]+"
hyperlinks = true
command = { program = "open" }
mouse = { enabled = true }
@@ -0,0 +1,34 @@
# Colors (Tomorrow Night)
[colors]
draw_bold_text_with_bright_colors = true
# Default colors
[colors.primary]
background = '#27292b'
foreground = '#d0d2d0'
[colors.cursor]
text = '#27292b'
cursor = '#d0d2d0'
# Normal colors
[colors.normal]
black = '#777777'
red = '#ca807b'
green = '#c2c683'
yellow = '#edd090'
blue = '#98b0c7'
magenta = '#bba7c4'
cyan = '#a3c7c3'
white = '#fefefe'
# Bright colors
[colors.bright]
black = '#999999'
red = '#ca807b'
green = '#c2c683'
yellow = '#edd090'
blue = '#98b0c7'
magenta = '#bba7c4'
cyan = '#a3c7c3'
white = '#fefefe'
+32
View File
@@ -0,0 +1,32 @@
# Colors (Tomorrow Night)
# Default colors
[colors.primary]
background = '#1d1f21'
foreground = '#c5c8c6'
[colors.cursor]
text = '#1d1f21'
cursor = '#ffffff'
# Normal colors
[colors.normal]
black = '#1d1f21'
red = '#cc6666'
green = '#b5bd68'
yellow = '#e6c547'
blue = '#81a2be'
magenta = '#b294bb'
cyan = '#70c0ba'
white = '#373b41'
# Bright colors
[colors.bright]
black = '#666666'
red = '#ff3334'
green = '#9ec400'
yellow = '#f0c674'
blue = '#81a2be'
magenta = '#b77ee0'
cyan = '#54ced6'
white = '#282a2e'
+142
View File
@@ -0,0 +1,142 @@
##### Platform independent #####
# Files
alias ...="cd ../../"
alias ....="cd ../../../"
alias ll='ls -alhFG'
alias la='ls -AG'
alias l='ls -CFG'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
# CD-ing to some commonly used folders
alias og="cd ~/Git"
alias dotfiles="cd ~/Git/dotfiles"
# Editing files
alias raliases="source ~/.config/.aliases && source ~/.config/.aliases.local"
alias aliases="code ~/.config/.aliases"
alias laliases="code ~/.config/.aliases.local"
alias zshrc="code $ZDOTDIR/.zshrc"
alias lzshrc="code $ZDOTDIR/.zshrc.local"
alias vimrc="vim ~/.vimrc"
# NPM
alias npr="npm run"
# IP addresses & networking
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en0"
# Misc
alias c="clear"
alias be="bundle exec"
alias serve="python -m http.server 9000"
alias yda="youtube-dl -x --audio-format mp3"
# tmux
if type tmux >/dev/null 2>&1; then
alias tm="tmux -2 attach-session -t "default" || tmux -2 new-session -s \"default\""
alias tmv="tmux -2 attach-session -t "vscode" || tmux -2 new-session -s \"vscode\""
alias tmks="tmux kill-session -t"
alias tmas="tmux attach-session -t"
alias tmls="tmux list-sessions"
fi
# Docker
if type docker >/dev/null 2>&1; then
alias dc="docker compose"
alias de="docker exec"
alias dr="docker run"
alias db="docker build"
alias ds="docker stop"
alias drm="docker rm"
alias drmi="docker rmi"
alias dps="docker ps"
alias dl="docker logs"
fi
# Git Aliases
if type git >/dev/null 2>&1; then
alias g="git"
alias ga="git add"
alias gr="git rm"
alias gc="git commit"
alias gs="git status -s"
alias gss="git status"
alias gd="git diff"
alias gds="git diff --staged"
alias gco="git checkout"
alias gcom="git checkout master"
alias gpom="git pull origin master"
alias gbd="git branch -D"
alias gm="git mergetool"
alias gmc="git merge --continue"
alias grc="git rebase --continue"
alias gsf="git sf"
alias gaf="git af"
alias gmf="git mf"
fi
# Github CLI Aliases
if type gh >/dev/null 2>&1; then
alias gp="gh pr"
alias gps="gh pr status"
# my prs
alias prso="gh pr list --author @me --state open"
function prsob() {
gh pr list --author $1 --state open
}
function prscb() {
gh pr list --author $1 --state closed
}
fi
if type systemctl >/dev/null 2>&1; then
alias ssc="sudo systemctl"
alias sc="systemctl"
alias scs="systemctl status"
alias scst="systemctl start"
fi
# eza aliases, if available
if type eza >/dev/null 2>&1; then
eza_params=(
'--git' '--icons' '--group' '--group-directories-first'
'--time-style=relative'
)
alias ls='eza $eza_params -1'
alias l='eza --git-ignore $eza_params'
alias ll='eza --all --header --long $eza_params'
alias llm='eza --all --header --long --sort=modified $eza_params'
alias la='eza -lbhHigUmuSa'
alias lx='eza -lbhHigUmuSa@'
alias lt='eza --tree $eza_params'
alias tree='eza --tree $eza_params'
alias lA='ll --sort=acc'
alias lC='ll --sort=cr'
alias lM='ll --sort=mod'
alias lS='ll --sort=size'
alias lX='ll --sort=ext'
fi
set_alias_with_backup cat bat
set_alias_with_backup dig doggo
set_alias_with_backup df duf
set_alias_with_backup ping gping
set_alias_with_backup du dust --no-percent-bars
##### Mac OS Specific #####
if [ "$(uname)" = "Darwin" ]; then
alias fl="open -a ForkLift"
alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder"
alias copyssh="pbcopy < $HOME/.ssh/id_ed25519.pub"
alias scr="open -b com.apple.ScreenSaver.Engine"
fi
+1
View File
@@ -0,0 +1 @@
.bash_profile.local
+96
View File
@@ -0,0 +1,96 @@
# Set prompt
IFS='.' read -ra split_hostname <<<$(hostname | tr '[:upper:]' '[:lower:]')
HOSTNAME=${split_hostname[0]}
PS1='\[\e[1;4;36m\]$HOSTNAME\[\e[1;0m\] \[\e[1;32m\]\w\[\e[m\]\[\e[1;0m\] \[\e[0m\] \[\e[1;0m\]'
export TERM=xterm-256color
shopt -s cdspell
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# Enable some Bash 4 features when possible:
# * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux`
# * Recursive globbing, e.g. `echo **/*.txt`
for option in autocd globstar; do
shopt -s "$option" 2> /dev/null;
done;
# Disable Caret-C output
stty -ctlecho
set -o vi
bind -m vi-insert "\C-l":clear-screen
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon
######################
# History Management #
######################
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=5000
HISTFILESIZE=2000
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
######################
# Aliases #
######################
# enable color support of ls
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
fi
# Editor
export EDITOR='code -w'
# bash-git-prompt
GIT_PROMPT_ONLY_IN_REPO=1
GIT_PROMPT_START="\[\e[1;4;36m\]$HOSTNAME\[\e[1;0m\] \[\e[1;32m\]\w\[\e[m\]"
GIT_PROMPT_END="\[\e[1;m\]  \[\e[1;m\]"
# Disable deprecation warning on mac
export BASH_SILENCE_DEPRECATION_WARNING=1
######################
# Sources & exports #
######################
if [ -f ~/.config/.aliases ]; then
source ~/.config/.aliases
fi
if [ -f ~/.config/.aliases.local ]; then
. ~/.config/.aliases.local
fi
if [ -f ~/.config/bash/.bash_profile.local ]; then
source ~/.config/bash/.bash_profile.local
fi
# bash-git prompt
if [ -f ~/.config/bash/bash-git-prompt/gitprompt.sh ]; then
source ~/.config/bash/bash-git-prompt/gitprompt.sh
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
source /etc/bash_completion
fi
# Git completion
if [ -f ~/.config/bash/git-completion.bash ]; then
source ~/.config/bash/git-completion.bash
fi
File diff suppressed because it is too large Load Diff
+24
View File
@@ -0,0 +1,24 @@
override_git_prompt_colors() {
GIT_PROMPT_THEME_NAME="Georgi"
GIT_PROMPT_PREFIX="${BoldCyan}("
GIT_PROMPT_SUFFIX="${BoldCyan})"
GIT_PROMPT_BRANCH="${BoldCyan}"
GIT_PROMPT_SEPARATOR="${BoldCyan}|"
GIT_PROMPT_CHANGED="${BoldRed}+"
GIT_PROMPT_UNTRACKED="${BoldRed}"
GIT_PROMPT_STAGED="${BoldGreen}"
GIT_PROMPT_STASHED="${BoldCyan}"
GIT_PROMPT_CONFLICTS="${BoldRed}"
GIT_PROMPT_CLEAN="${BoldCyan}"
GIT_PROMPT_SYMBOLS_AHEAD="${BoldYellow}"
GIT_PROMPT_SYMBOLS_BEHIND="${BoldMagenta}"
GIT_PROMPT_SYMBOLS_PREHASH="${BoldRed}:"
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING=" "
GIT_PROMPT_REMOTE=""
}
reload_git_prompt_colors "Georgi"
+218
View File
@@ -0,0 +1,218 @@
#? Config file for btop v. 1.4.0
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "/usr/share/btop/themes/matcha-dark-sea.theme"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = False
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = False
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = False
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = True
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = False
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "Auto"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "Auto"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = False
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = False
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = False
#* If mem box should be split to also show disks info.
show_disks = True
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
#* Starts with the Network Interface specified here.
net_iface = ""
#* Show battery stats in top right if battery is present.
show_battery = False
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = False
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"
+8
View File
@@ -0,0 +1,8 @@
(deflisten window :initial "..." "./lib/get-active-window.sh")
(defwidget active-window []
(box
:halign "center"
(label :class "bar-group" :text "${window?: 'none'}")
)
)
+51
View File
@@ -0,0 +1,51 @@
; (include "./bar/brightness.yuck")
(include "./bar/active-window.yuck")
(include "./bar/clock.yuck")
(include "./bar/kbd-layout.yuck")
(include "./bar/media.yuck")
(include "./bar/power.yuck")
(include "./bar/updates.yuck")
(include "./bar/weather.yuck")
(include "./bar/workspaces.yuck")
(defwidget bar-tray []
(box :class "bar-group"
:orientation "h"
:halign "end"
:space-evenly false
(systray :hexpand true :class "systray" :icon-size 18 :spacing 4)
(kbd-layout-tray-item)
(media-tray-item)
; (brightness)
(weather-tray-item)
(clock-tray-item)
(power-tray-item)
)
)
(defwidget bar [monitor-workspaces]
(box :class "bar" :orientation "h"
(workspaces :monitor-workspaces monitor-workspaces)
(active-window)
(box :orientation "h" :halign "end" :space-evenly false :spacing 8
(pacman-updates-widget)
(bar-tray)
)
)
)
(defwindow bar [monitor monitor-workspaces]
:monitor monitor
:geometry (geometry :x "0%"
:y "4px"
:width "99.7%"
:height "32px"
:anchor "top center"
)
:exclusive true
:windowtype "dock"
:wm-ignore false
:focusable false
(bar :monitor-workspaces monitor-workspaces)
)
+9
View File
@@ -0,0 +1,9 @@
; this is taking up too much CPU time
(defpoll brightness-1 :interval "2s" "ddcutil -d 1 getvcp 10 | awk '{ split($9, a, \",\"); print a[1]}'")
(defwidget brightness []
(eventbox :onscroll "./lib/change-brightness.sh {} ${brightness-1 + 0}"
(label :text "󰃞 ${substring(brightness-1, 0, 2)}")
)
)
+30
View File
@@ -0,0 +1,30 @@
(defpoll date-time :interval "5s" "./lib/date-time.sh")
(defwidget date []
(box :class "date"
"${date-time.date}"
)
)
(defwidget day []
(box :class "day"
"${date-time.day}"
)
)
(defwidget time []
(box :class "time"
"${date-time.time}"
)
)
(defwidget clock-tray-item []
(box :class "clock-tray-item"
:orientation "h"
:space-evenly false
:valign "center"
(date)
(day)
(time)
)
)
+17
View File
@@ -0,0 +1,17 @@
(deflisten keyboard-layout :initial "en" "./lib/get-kb-layout.sh")
(defwidget kbd-layout-tray-item []
(box
:orientation "h"
:space-evenly false
:halign "center"
:class "interactive kbd-layout-tray-item"
(eventbox :cursor "pointer" :class "interactive"
(button
:class "kbd-layout"
:onclick "hyprctl switchxkblayout usb-hid-keyboard next"
keyboard-layout
)
)
)
)
+99
View File
@@ -0,0 +1,99 @@
(defpoll mediastatus :interval "1s" "./lib/media-status.sh")
(defpoll audio-sinks :interval "1s" "pactl -f json list sinks")
(defpoll audio-info :initial "{}" :interval "1s" "pactl -f json info")
(defpoll volume-level :interval "1s" "./lib/get-volume-level.sh")
(defwidget media-tray-item []
(box :orientation "h" :space-evenly false :halign "end" :class "media-tray-item"
(eventbox
:cursor "pointer"
:class "interactive"
:onscroll "./lib/change-volume.sh {}"
:onclick "eww open --toggle media-menu"
:onmiddleclick "playerctl play-pause"
(box :class "volume-tray-icon"
(label :class "volume-icon" :text {volume-level > 66 ? "" : volume-level > 0 ? "" : ""})
(label :text "${volume-level}%")
))
)
)
(defwidget audio-source-selector []
(box :orientation "v" :valign "start" :class "audio-source-selector"
(box :class "title"
(label :halign "start" :text "output source")
)
(for sink in audio-sinks
(eventbox :cursor "pointer"
(button
:halign "start"
:class "audio-source interactive ${sink.name == audio-info.default_sink_name ? "active" : ""}"
:onclick "pactl set-default-sink ${sink.index}"
"󰓃 ${sink.description}"
)
)
)
)
)
(defwidget media-player []
(box :orientation "v" :space-evenly false :class "media-player" :valign "top"
(label :class "title" :text "${mediastatus.artist} - ${mediastatus.title}" :show-truncated false)
(label :class "album" :text "${mediastatus.album}" :show-truncated false)
(box :class "media-cover" :style "background: url('${mediastatus.artUrl}'); background-size: cover;" :height 300)
(box :class "media-controls" :spacing 12 :space-evenly false :halign "center"
(eventbox :cursor "pointer"
(button :class "media-button" :class "media-button shuffle ${mediastatus.shuffle == "On" ? "active" : ""}" :onclick "playerctl shuffle toggle" "")
)
(eventbox :cursor "pointer"
(button :class "media-button" :onclick "playerctl previous" "")
)
(eventbox :cursor "pointer"
(button
:class "media-button ${mediastatus.status == "Playing" ? "pause" : "play"}"
:onclick "./lib/media-play-pause.sh"
"${mediastatus.status == "Playing" ? "" : ""}"
)
)
(eventbox :cursor "pointer"
(button :class "media-button" :onclick "playerctl next" "")
)
(eventbox :cursor "pointer"
(button
:class "media-button loop ${mediastatus.loop != "None" ? "active" : ""}"
:onclick "playerctl loop ${mediastatus.loop == "Playlist" ? "track" : mediastatus.loop == "Track" ? "none" : "playlist"}"
"${mediastatus.loop == "Track" ? "󰑘" : "󰑖"}"
)
)
)
)
)
(defwindow media-menu
:monitor 0
:namespace "media-menu"
:stacking "overlay"
:geometry (geometry :x "8px" :y "8px" :width "400px" :anchor "top right")
:wm-ignore false
:focusable false
(box :class "eww-overlay media-menu" :orientation "v" :space-evenly false
(media-player)
(audio-source-selector)
(eventbox :cursor "pointer"
(button :class "interactive btn" :halign "start" :onclick "eww open --toggle media-menu & pavucontrol &" "󰴸 Open PulseAudio control")
)
; TODO: For some reason audio-info is null if I don't invoke it outside the for. Investigate.x
(label :class "hidden" :text "Default: ${audio-info.default_sink_name}")
)
)
+31
View File
@@ -0,0 +1,31 @@
(defwidget power-tray-item []
(eventbox :cursor "pointer"
(button :class "power-button-tray-item interactive" :onclick "eww open --toggle power-menu" "󰐥")
)
)
(defwindow power-menu
:namespace "power-menu"
:monitor 0
:stacking "overlay"
:geometry (geometry :x "50%"
:y "50%"
:width "30%"
:height "200px"
:anchor "center"
)
(box :class "power-menu" :orientation "h"
(eventbox :cursor "pointer"
(button :class "power-menu-item first" :onclick "eww open --toggle power-menu & ./lib/lock.sh" "")
)
(eventbox :cursor "pointer"
(button :class "power-menu-item" :onclick "eww open --toggle power-menu & ./lib/logout.sh" "󰈆")
)
(eventbox :cursor "pointer"
(button :class "power-menu-item" :onclick "eww open --toggle power-menu & ./lib/reboot.sh" "")
)
(eventbox :cursor "pointer"
(button :class "power-menu-item" :onclick "eww open --toggle power-menu & ./lib/shutdown.sh" "")
)
)
)
+35
View File
@@ -0,0 +1,35 @@
(defpoll pacman-updates :initial 0 :interval "60s" "checkupdates | wc -l")
(defpoll pacman-updates-full :interval "60s" "checkupdates")
(defwidget pacman-updates-widget []
(box :class "pacman-update-widget"
(eventbox
:class "pacman-update-widget-inner ${pacman-updates > 0 ? 'has-updates' : ''}"
:cursor "pointer"
:onclick "${pacman-updates > 0 ? 'alacritty -e sudo pacman -Syu &' : ''}"
:onmiddleclick "eww open --toggle updates-menu"
(label :class "update-text" :text " ${pacman-updates}")
)
)
)
(defwindow updates-menu
:namespace "updates-menu"
:monitor 0
:stacking "overlay"
:geometry (geometry :x "50%"
:y "40%"
:width "400px"
:height "200px"
:anchor "center"
)
(box :class "updates-menu" :orientation "v" :space-evenly true
(label :class "pacman-updates-menu-title" :text "Pacman Updates:  ${pacman-updates}")
(label :text "${pacman-updates-full}")
(eventbox :cursor "pointer" :class "interactive"
(button :class "btn" :onclick "alacritty -e sudo pacman -Syu &" "Update")
)
)
)
+14
View File
@@ -0,0 +1,14 @@
(deflisten weather :initial "{'temp': 'n/a', 'desc': 'n/a'}" "./lib/weather.py")
(defwidget weather-tray-item []
(box :class "weather-tray-item"
:orientation "h"
:space-evenly false
(eventbox :cursor "pointer" :class "interactive weather" :onclick "xdg-open https://www.sinoptik.bg/sofia-bulgaria-100727011"
(box :space-evenly false
(label :class "weather-temp" :text "${weather.icon} ${weather.temp}")
(label :class "weather-desc" :text "${weather.desc}")
)
)
)
)
+15
View File
@@ -0,0 +1,15 @@
(deflisten active-workspace :initial "." "./lib/get-active-workspace.sh")
(defwidget workspaces [?monitor-workspaces]
(box :class "workspaces"
:orientation "h"
:space-evenly true
:halign "start"
:spacing 8
(for workspace in monitor-workspaces
(eventbox :cursor "pointer"
(button :class "interactive workspace ${active-workspace == workspace ? "active" : ""}" :onclick "hyprctl dispatch workspace ${workspace}" "${workspace}")
)
)
)
)
+98
View File
@@ -0,0 +1,98 @@
$font: "SF Pro Light";
$bg: rgba(0, 0, 0, 0.5);
$fg: #dedede;
$menu-border: rgba(255, 255, 255, 0.1);
$bar-gap: 8px;
* {
all: unset;
font-family: $font;
}
@import "./styles/media-menu.scss";
@import "./styles/power-menu.scss";
@import "./styles/updates-menu.scss";
@import "./styles/tray.scss";
.systray menu {
font-family: $font;
border-radius: 10px;
background-color: rgba(30, 30, 30);
color: $fg;
padding: 5px 0px;
> menuitem {
padding: 5px 10px;
&:disabled label {
color: gray;
}
&:hover {
background-color: #0e4679;
}
}
separator {
background-color: rgb(60, 60, 60);
padding-top: 1px;
&:last-child {
padding: unset;
}
}
}
.eww-overlay {
background-color: $bg;
border: 3px solid $menu-border;
border-radius: 8px;
padding: 16px 48px;
}
.bar-group {
background-color: $bg;
border-radius: 8px;
padding: 0 calc($bar-gap * 1.5);
color: $fg;
> :not(:first-child) {
margin-left: $bar-gap;
}
}
.interactive {
border-radius: 4px;
transition: background-color 0.4s ease;
&.active {
background-color: $fg;
color: $bg;
font-weight: bold;
}
&:not(.active):hover {
background-color: rgba(255, 255, 255, 0.2);
}
}
.btn {
border-radius: 4px;
padding: 10px 15px 10px 10px;
}
.hidden {
opacity: 0;
}
.workspace {
padding: 0 8px;
&.active {
background-color: $fg;
color: $bg;
font-weight: bold;
}
}
+26
View File
@@ -0,0 +1,26 @@
(include "./bar/bar.yuck")
; a hacky solution for moving the windows on my second monitor a bit up so I can see them :D
(defwindow monitor-bump [monitor]
:monitor monitor
:geometry (geometry :x "0" :y "0" :width "100%" :height "120" :anchor "bottom center")
:exclusive true
:windowtype "dock"
:wm-ignore true
:focusable false
(box " ")
)
; (defvar r_bar_systray false)
; (defwidget w_bar_tray[] (revealer
; :reveal r_bar_systray
; :transition "slideleft"
; (eventbox :class "tray" :spacing 20 :space-evenly false
; (box :class "widget" :spacing 0 :space-evenly false
; (systray :icon-size 18)
; )
; )
; )
; )
+1
View File
@@ -0,0 +1 @@
secrets.py
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env sh
direction=$1
current=$2
if [[ $direction == "down" ]]; then
target=$(($current+1))
if [[ $target == 11 ]]; then
exit 0
fi
hyprctl dispatch workspace $target
elif [[ $direction == "up" ]]; then
target=$(($current-1))
hyprctl dispatch workspace $target
else
target=$1
hyprctl dispatch workspace $target
fi
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env sh
case $1 in
up)
ddcutil -d 1 setvcp 10 $(($2 + 10))
;;
down)
ddcutil -d 1 setvcp 10 $(($2 - 10))
;;
esac
+9
View File
@@ -0,0 +1,9 @@
#!/usr/bin/env sh
if [[ $1 == "up" ]]; then
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
elif [[ $1 == "down" ]]; then
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
else
wpctl set-volume @DEFAULT_AUDIO_SINK@ $1
fi
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env sh
day=$(date "+%a")
date=$(date "+%-d")
time=$(date "+%H:%M")
JSON_STRING=$(jq -n \
--arg day "$day" \
--arg date "$date" \
--arg time "$time" \
'{day: $day, date: $date, time: $time}')
echo $JSON_STRING
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
hyprctl activewindow -j | jq --raw-output .title
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 awk -F '>>|,' '/^activewindow>>/{print $3}'
+6
View File
@@ -0,0 +1,6 @@
##!/usr/bin/env sh
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
+17
View File
@@ -0,0 +1,17 @@
##!/usr/bin/env sh
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
if [[ $line == "activelayout>>"* ]]; then
split=(${line//>>/ })
lang=(${split[1]//,/ })
language=${lang[1]}
lang_code=${language:0:2}
lang_code_lower=$(echo $lang_code | tr '[:upper:]' '[:lower:]')
if [[ $lang_code_lower == "bu" ]]; then
lang_code_lower="bg"
fi
echo $lang_code_lower
fi
done
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
volume=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)
#todo fix 100% case
volume_value=$(echo $volume | cut -d':' -f2)
if [ $volume_value == "0.00" ]; then
echo "0"
exit 0
fi
if [[ $volume_value =~ ^" 1" ]]; then
# starts with a space - trim
trimmed=$( echo $volume_value | cut -c1- )
echo "${trimmed//.}"
exit 0
fi
volume_percent=$(echo $volume_value | cut -d'.' -f2)
echo $volume_percent
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
hyprlock
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
loginctl kill-user $USER
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env sh
if [[ $(playerctl status) == "Playing" ]]; then
playerctl pause
else
playerctl play
fi
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env sh
status=$(playerctl status 2>/dev/null)
artist=$(playerctl metadata -f "{{artist}}" 2>/dev/null)
title=$(playerctl metadata -f "{{title}}" 2>/dev/null)
album=$(playerctl metadata -f "{{album}}" 2>/dev/null)
artUrl=$(playerctl metadata -f "{{mpris:artUrl}}" 2>/dev/null)
length=$(playerctl metadata -f "{{duration(mpris:length)}}" 2>/dev/null)
shuffle=$(playerctl shuffle 2>/dev/null)
loop=$(playerctl loop 2>/dev/null)
JSON_STRING=$(jq -n \
--arg status "$status" \
--arg artist "$artist" \
--arg title "$title" \
--arg album "$album" \
--arg artUrl "$artUrl" \
--arg length "$length" \
--arg shuffle "$shuffle" \
--arg loop "$loop" \
'{status: $status, artist: $artist, title: $title, album: $album, artUrl: $artUrl, length: $length, shuffle: $shuffle, loop: $loop}')
echo $JSON_STRING
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env python
from hyprsocket import run_on_line
def get_kb_layout(line):
print(line)
run_on_line(get_kb_layout)
@@ -0,0 +1,24 @@
import socket
import os, os.path
def get_socket_path():
XDG_RUNTIME_DIR = os.getenv("XDG_RUNTIME_DIR")
HYPRLAND_INSTANCE_SIGNATURE = os.getenv("HYPRLAND_INSTANCE_SIGNATURE")
socket_path = os.path.join(
XDG_RUNTIME_DIR, "hypr", HYPRLAND_INSTANCE_SIGNATURE, ".socket2.sock"
)
return socket_path
def run_on_line(method):
server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
server.connect(get_socket_path())
while True:
data_chunk = server.recv(4096)
if data_chunk:
line = data_chunk.decode("utf-8")
method(line)
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
systemctl reboot
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
shutdown now
+62
View File
@@ -0,0 +1,62 @@
#!/usr/bin/env python
import requests, json, sys, time
from secrets import WEATHER_API_TOKEN, WEATHER_CITY
UNITS = "metric"
LANG = "en"
def get_icon(code):
icons = {
"01d": "",
"01n": "",
"02d": "",
"02n": "",
"03d": "󰖐",
"03n": "󰖐",
"04d": "",
"04n": "",
"09d": "",
"09n": "",
"10d": "",
"10n": "",
"11d": "",
"11n": "",
"13d": "󰖘",
"13n": "󰖘",
"50d": "",
"50n": "",
}
try:
return icons[code]
except KeyError:
return None
def main():
response = requests.get(
f"https://api.openweathermap.org/data/2.5/weather?q={WEATHER_CITY}&appid={WEATHER_API_TOKEN}&lang={LANG}&units={UNITS}"
).json()
data = {
"icon": get_icon(response["weather"][0]["icon"]),
"temp": str(round(response["main"]["temp"])) + "°",
"desc": response["weather"][0]["description"].capitalize(),
}
return data
if __name__ == "__main__":
try:
while True:
try:
sys.stdout.write(json.dumps(main()) + "\n")
sys.stdout.flush()
time.sleep(1800)
except requests.exceptions.ConnectionError:
print("Connection error! Retrying...")
time.sleep(2)
except KeyboardInterrupt:
exit(0)
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/env sh
## NOTE: This file is unused currently
NUMBER_OF_WORKSPACES=6
window_class() {
echo `hyprctl activewindow -j | jq --raw-output .class`
}
window_title() {
echo `hyprctl activewindow -j | jq --raw-output .title`
}
workspaces (){
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
seq 1 $NUMBER_OF_WORKSPACES | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
}
if [[ $1 == 'workspaces' ]]; then
echo "{ \"workspaces\": $(workspaces), \"active\": 1, \"active_empty\": true }"
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
active=$(eww get workspaces | jq .active)
if [[ ${line:0:9} == 'workspace' ]]; then
active=${line:11:2}
fi
active_empty='true'
let "i = $active - 1"
if [[ $(workspaces | jq --raw-output .[$i].windows) -gt 0 ]]; then active_empty='false'; fi
eww update workspaces="{
\"workspaces\": $(workspaces),
\"active\": $active,
\"active_empty\": $active_empty
}"
eww update dock_reveal="$active_empty"
done
fi
if [[ $1 == 'window' ]]; then
window_class
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
window_class
done
fi
+78
View File
@@ -0,0 +1,78 @@
.media-menu {
.audio-source-selector {
margin-top: 16px;
margin-bottom: 8px;
.title {
border-bottom: 1px solid $fg;
padding: 10px;
margin-bottom: 8px;
}
.audio-source {
padding-left: 10px;
padding-right: 15px;
}
}
.media-player {
.title {
font-weight: bold;
font-size: 15px;
}
.album {
font-size: 13px;
color: #aaa;
}
.media-cover {
margin-top: 12px;
border-radius: 16px;
border: 2px solid $menu-border;
}
.media-controls {
margin-top: 16px;
}
.media-button {
padding: 8px 13px;
border-radius: 100%;
border: 2px solid $menu-border;
transition: all 0.4s ease;
&.shuffle {
padding-left: 10px;
padding-right: 16px;
&.active {
background-color: $fg;
color: $bg;
}
}
&.loop {
padding-left: 12px;
padding-right: 14px;
&.active {
background-color: $fg;
color: $bg;
}
}
&.pause {
background-color: $fg;
color: $bg;
}
&:hover {
background-color: $fg;
border-color: $fg;
color: $bg;
}
}
}
}
+28
View File
@@ -0,0 +1,28 @@
.power-menu {
background-color: $bg;
border: 3px solid $menu-border;
border-radius: 32px;
.power-menu-item {
font-size: 44px;
background-color: $bg;
border-radius: 20px;
border: 1px solid $menu-border;
margin: 16px 0;
margin-right: 16px;
padding-right: 4px; /* this makes sure icons from nerd font are centered */
transition:
background-color 0.4s ease,
color 0.4s ease;
color: $fg;
&:hover {
background-color: $fg;
color: $bg;
}
&.first {
margin-left: 16px;
}
}
}
+88
View File
@@ -0,0 +1,88 @@
$tray-item-interactive-margin: 6px 0;
.pacman-update-widget {
margin: $tray-item-interactive-margin;
.pacman-update-widget-inner {
border-radius: 4px;
&.has-updates {
background-color: rgb(228, 137, 137);
color: #fff;
font-weight: bold;
transition: background-color 0.4s ease;
&:hover {
background-color: rgb(187, 100, 100);
}
.update-text {
padding: 0 8px;
}
}
}
}
.kbd-layout-tray-item {
margin: $tray-item-interactive-margin;
.kbd-layout {
padding: 0 8px;
border-radius: 4px;
}
}
.media-tray-item {
margin: $tray-item-interactive-margin;
.volume-tray-icon {
padding-right: 6px;
.volume-icon {
padding-right: 6px;
}
}
}
.clock-tray-item {
margin-right: 8px;
.date {
border: 1px solid rgba(255, 255, 255, 0.3);
border-top: 4px solid rgba(255, 255, 255, 0.6);
padding: 0 8px;
border-radius: 4px;
margin: 8px 0;
font-size: 12px;
}
.day {
margin-left: 6px;
}
.time {
margin-left: 4px;
}
}
.weather-tray-item {
margin: $tray-item-interactive-margin;
.weather-temp {
padding-left: 8px;
}
.weather-desc {
padding-left: 4px;
padding-right: 8px;
}
}
.power-button-tray-item {
margin: $tray-item-interactive-margin;
padding-right: 8px;
padding-left: 8px;
margin-left: 4px;
font-size: 18px;
}
+6
View File
@@ -0,0 +1,6 @@
.updates-menu {
background-color: $bg;
border: 3px solid $menu-border;
border-radius: 32px;
padding: 16px 32px;
}
+33
View File
@@ -0,0 +1,33 @@
# Compiled source #
###################
*.class
*.dll
*.exe
*.o
*.so
*.pyc
# Editing tools and IDEs #
##########################
.sw[a-p]
[._]*.sw[a-p]
*~
~*
\#*\#
\.#*
.ipynb_checkpoints/
# Logs and databases #
######################
*.log
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
+136
View File
@@ -0,0 +1,136 @@
# herdr configuration
# Place this file at ~/.config/herdr/config.toml
# Apply changes with: herdr server reload-config
# Show first-run notification setup on startup.
# Missing also shows onboarding; set false after you've chosen.
onboarding = false
[theme]
# Built-in themes: catppuccin, terminal, tokyo-night, dracula, nord,
# gruvbox, one-dark, solarized, kanagawa, rose-pine,
# vesper
name = "one-dark"
# Follow host terminal light/dark appearance and switch Herdr UI themes.
# Existing manual behavior is unchanged unless this is true.
# auto_switch = false
# dark_name = "catppuccin"
# light_name = "catppuccin-latte"
# Override individual color tokens on top of the base theme.
# Accepts: hex (#rrggbb), named colors, rgb(r,g,b), or panel_bg = "reset"
# [theme.custom]
# panel_bg = "reset"
# accent = "#f5c2e7"
# red = "#ff6188"
# green = "#a6e3a1"
[terminal]
# Executable used for new interactive panes.
# Empty means $SHELL, then /bin/sh.
default_shell = "/bin/zsh"
[update]
# Update channel used by background version checks and `herdr update`.
# Use "stable" for normal releases or "preview" for opt-in preview builds.
channel = "stable"
[keys]
prefix = "ctrl+a"
# Prefix-mode actions
help = "prefix+?"
settings = "prefix+shift+s" # default prefix+s is used for split_horizontal below
# detach = "prefix+q"
# reload_config = "prefix+shift+r"
# open_notification_target = "prefix+o"
# workspace_picker = "prefix+w"
# goto = "prefix+g"
# new_workspace = "prefix+shift+n"
# new_worktree = "prefix+shift+g"
# open_worktree = "" # optional, unset by default
# remove_worktree = "" # optional, unset by default; opens confirmation
# rename_workspace = "prefix+shift+w"
# close_workspace = "prefix+shift+d"
previous_workspace = "prefix+ctrl+k"
next_workspace = "prefix+ctrl+j"
# previous_agent = "" # optional, unset by default
# next_agent = "" # optional, unset by default
# focus_agent = "" # optional indexed binding, e.g. "prefix+alt+1..9"
# remote_image_paste = "ctrl+v" # only active in herdr --remote; empty disables raw-key image paste
new_tab = "prefix+c"
rename_tab = ["prefix+comma", "prefix+shift+t"]
previous_tab = ["prefix+p", "prefix+ctrl+h"]
next_tab = ["prefix+n", "prefix+ctrl+l"]
switch_tab = "prefix+1..9"
switch_workspace = "prefix+alt+1..9"
close_tab = "prefix+shift+x"
rename_pane = ["prefix+shift+p", "prefix+<"] # prefix+shift+comma
# edit_scrollback = "prefix+e"
focus_pane_left = "prefix+h"
focus_pane_down = "prefix+j"
focus_pane_up = "prefix+k"
focus_pane_right = "prefix+l"
# cycle_pane_next = "prefix+tab"
# cycle_pane_previous = "prefix+shift+tab"
# last_pane = "" # optional, unset by default; bind e.g. "prefix+tab" for global back-and-forth
split_vertical = ["prefix+v", "prefix+|"]
split_horizontal = ["prefix+s", "prefix+minus"]
# close_pane = "prefix+x"
# zoom = "prefix+z" # legacy alias: fullscreen
resize_mode = "prefix+r"
toggle_sidebar = "prefix+b"
copy_mode = ["prefix+[", "prefix+esc"]
# [worktrees]
# directory = "~/.herdr/worktrees"
[ui]
# Ask for a tab name before creating a new tab.
prompt_new_tab_name = true
# Draw borders around split panes.
pane_borders = true
# Keep split panes visually separated instead of sharing divider borders.
pane_gaps = true
# Show detected/reported agent labels in split pane borders when no manual pane name is set.
show_agent_labels_on_pane_borders = true
# Agent panel ordering: "spaces" (grouped by space) or "priority" (attention queue).
# "workspaces" is accepted as an alias for "spaces".
agent_panel_sort = "spaces"
# Accent color for highlights, borders, and navigation UI.
# Accepts: hex (#89b4fa), named colors (cyan, blue, magenta), or rgb(r,g,b)
accent = "cyan"
[ui.toast]
delivery = "herdr"
[ui.toast.herdr]
position = "bottom-right"
[ui.toast.clipboard]
enabled = true
position = "bottom-center"
[experimental]
# Save recent pane screen history across full server restarts.
pane_history = false
[advanced]
scrollback_limit_bytes = 33554432 # 32 MiB ~ 50k lines (tmux history-limit)
## Differences to tmux
# - prefix+n changed meaning: in tmux it was swap-pane -U; in herdr it's next tab. Pane swapping is prefix+shift+h/j/k/l - which was pane resize in your tmux. Resizing is now a mode: prefix+r.
# - No equivalents: window reordering (</>), paste buffers (b/p/P), vi mode-keys, base-index, escape-time, focus-events, aggressive-resize. Config reload is herdr server reload-config instead of prefix+r. The status-bar cpu/mem/clock plugins are replaced by herdr's sidebar; tmux-fzf's pickers map to prefix+w (workspace picker) and prefix+g (goto).
+13
View File
@@ -0,0 +1,13 @@
#################
### AUTOSTART ###
#################
exec-once = eww d
exec-once = ~/.config/hypr/scripts/run-eww.sh
exec-once = swww-daemon --format xrgb &
exec-once = swaync &
exec-once = hypridle &
exec-once = blueman-applet & blueman-tray & nm-applet &
+129
View File
@@ -0,0 +1,129 @@
####################
### KEYBINDINGSS ###
####################
$mainMod = SUPER
$terminal = alacritty
$fileManager = nautilus
$menu = rofi -show combi -combi-modes "window,run,ssh" -modes combi
$emojiMenu = rofi -modi emoji -show emoji
bind = $mainMod, R, exec, ~/.config/hypr/scripts/run-eww.sh
bind = $mainMod, E, exec, $fileManager # E - file manager
bind = $mainMod, F, fullscreen # F - fullscreen
bind = $mainMod, D, togglesplit, # D - toggle split
bind = $mainMod, M, exit # M - exit
bind = $mainMod, Q, killactive # Q - kill active window
bind = alt, Q, killactive # alt + Q - kill active window
bind = $mainMod, S, swapactiveworkspaces, 0 1 # S - swap monitor workspaces
bind = $mainMod, T, exec, $terminal # T - terminal
bind = $mainMod, V, togglefloating # V - toggle floatin
bind = $mainMod shift, L, exec, hyprlock # super + {shift + L - lock screen
bind = $mainMod, F1, exec, ~/.config/hypr/scripts/game-mode.sh # F1 - game mode
bind = $mainMod, F2, exec, eww open --toggle monitor-bump # F2 - monitor bump
# rudimentary Alt+Tab and Alt+Shift+Tab
bind = alt, tab, cyclenext
bind = alt shift, tab, cyclenext, prev
# rcmd emulation
$rcmd = SUPER ALT
bind = $rcmd, f, focuswindow, firefox
bind = $rcmd, c, focuswindow, class:Code
bind = $rcmd, a, focuswindow, class:Alacritty
bind = $rcmd, t, focuswindow, telegram
bind = $rcmd, d, focuswindow, class:Todoist
bind = alt, space, exec, $menu # alt+space - rofi a la spotlight
bind = alt super shift, e, exec, $emojiMenu # alt+super+shift+e - emoji menu
bind = $mainMod, code:49, focuscurrentorlast
bind = ctrl shift super, N, exec, swaync-client --toggle-panel # N - toggle swaync panel
# eww
bind = ctrl shift super, Q, exec, eww open --toggle power-menu
bind = ctrl shift super, M, exec, eww open --toggle media-menu
bind = ctrl shift super, R, exec, ~/.config/hypr/scripts/run-apps.sh
bind = ctrl shift super, W, exec, ~/Scripts/wallpaper # change wallpapers
# screenshots
# TODO: consider switching away to different shortcuts
bind = alt shift, 3, exec, ~/.config/hypr/scripts/screenshots/capture-screen.sh
bind = ctrl alt shift, 3, exec, ~/.config/hypr/scripts/screenshots/copy-screen.sh
bind = alt shift, 4, exec, ~/.config/hypr/scripts/screenshots/capture-area.sh
bind = ctrl alt shift, 4, exec, ~/.config/hypr/scripts/screenshots/copy-area.sh
### Window Management
# Move focus with mainMod + hjkl
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# move to prev / next monitor
bind = ctrl alt super, left, movewindow, mon:+1
bind = ctrl alt super, right, movewindow, mon:-1
# resize with ctrl super shift hjkl
bind = $mainMod ctrl shift, L, resizeactive, 30 0
bind = $mainMod ctrl shift, H, resizeactive, -30 0
bind = $mainMod ctrl shift, K, resizeactive, 0 30
bind = $mainMod ctrl shift, J, resizeactive, 0 -30
# move with ctrl super hjkl
bind = ctrl super, H, movewindow, l
bind = ctrl super, L, movewindow, r
bind = ctrl super, K, movewindow, u
bind = ctrl super, J, movewindow, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# TODO: disabled due to incompatibility with screenshots
# Move active window to a workspace with ctrl + shift + alt + [0-9]
# bind = ctrl shift alt, 1, movetoworkspace, 1
# bind = ctrl shift alt, 2, movetoworkspace, 2
# bind = ctrl shift alt, 3, movetoworkspace, 3
# bind = ctrl shift alt, 4, movetoworkspace, 4
# bind = ctrl shift alt, 5, movetoworkspace, 5
# bind = ctrl shift alt, 6, movetoworkspace, 6
# bind = ctrl shift alt, 7, movetoworkspace, 7
# bind = ctrl shift alt, 8, movetoworkspace, 8
# bind = ctrl shift alt, 9, movetoworkspace, 9
# bind = ctrl shift alt, 0, movetoworkspace, 10
# go to next/prev workspace with ctrl alt hj
bind = ctrl alt, H, workspace, -1
bind = ctrl alt, L, workspace, +1
# move to next/prev workspace with ctrl alt shift hj
bind = ctrl alt shift, H, movetoworkspace, -1
bind = ctrl alt shift, L, movetoworkspace, +1
# Example special workspace (scratchpad)
# bind = $mainMod, S, togglespecialworkspace, magic
# bind = $mainMod shift, S, movetoworkspace, special:magic
### Mouse
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
+26
View File
@@ -0,0 +1,26 @@
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = GBM_BACKEND,nvidia-drm
env = GDK_BACKEND,wayland,x11
env = GDK_SCALE, 1
env = LIBVA_DRIVER_NAME,nvidia
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt5ct
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
exec = gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark'
exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' # for GTK4 apps
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
+16
View File
@@ -0,0 +1,16 @@
# See: https://github.com/jacobrreed/dotfiles/blob/master/.config/hypr/hypridle.conf
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
unlock_cmd = notify-send "unlock!" # same as above, but unlock
# ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
# ignore_systemd_inhibit = false # whether to ignore systemd-inhibit --what=idle inhibitors
}
listener {
timeout = 300 # 5 min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}

Some files were not shown because too many files have changed in this diff Show More