Compare commits

..

886 Commits
stow ... master

Author SHA1 Message Date
96969ca538 fix ga script 2026-04-18 12:03:48 +03:00
fea17f0609 volume bindings 2026-04-15 22:48:28 +03:00
98522f5056 refactor lock-telegram.sh script 2026-04-15 13:46:07 +03:00
e3a9e470f5 lock tg on locking sway 2026-04-15 13:38:14 +03:00
45d25d6ac0 remove funding 2026-04-14 16:23:12 +03:00
e120928f50 completions chore 2026-04-06 13:28:07 +03:00
24ab294f11 refactor(aliases) 2026-03-31 19:40:34 +03:00
6c049fdcfc feat(gcim): add completions 2026-03-31 14:31:25 +03:00
35231d8749 sway bar disable mouse wheel 2026-03-30 18:55:29 +03:00
def552033b add git aliases 2026-03-29 12:10:09 +03:00
df7f625b4c fix tmux service 2026-03-24 19:59:16 +03:00
1e8f2e0e57 add alias 2026-03-24 00:10:18 +03:00
ebdab1ae44 add thousand separator to zsh calc 2026-03-20 19:37:48 +03:00
50f0b33af3 add html tab size 2026-03-19 17:03:31 +03:00
160c06c661 tmux mappings 2026-03-15 15:47:44 +03:00
f42be40ce5 add git switch aliases 2026-03-14 12:09:59 +03:00
797fdb5b41 fix nvim clear search mapping 2026-03-13 19:03:10 +03:00
96b8add23e add cargo bin to path 2026-03-13 18:05:11 +03:00
91adc03b90 fix zsh history 2026-03-12 18:48:19 +03:00
61e71e1771 fix zsh history 2026-03-12 17:51:17 +03:00
97ea54f2b2 fzfhistory 2026-03-12 16:57:02 +03:00
342c6d186e nvim mappings 2026-03-11 19:05:57 +03:00
5cd27fe13c fix landiong 2026-03-11 15:20:00 +03:00
4e6a0697a5 post-install hook for sway: init firefox profile 2026-03-11 13:43:05 +03:00
46ef972920 landing sesison 2026-03-11 11:23:32 +03:00
f53dab6909 add another firefox session for media 2026-03-10 18:44:02 +03:00
9589501580 clear search nvim 2026-03-10 14:53:56 +03:00
8fbc4c98a9 fix tmux 2026-03-09 14:04:08 +03:00
4107446a1c fix tmux kill 2026-03-06 16:41:03 +03:00
2e9c444e09 fix tmux copy mapping 2026-03-06 15:40:56 +03:00
f64164b6ff pavucontrol mapping 2026-03-06 15:01:21 +03:00
7519995398 fix(tmux): refactor 2026-03-06 13:28:30 +03:00
06e80254bd add func cargo-init 2026-03-01 17:49:35 +03:00
845f83c3e0 fix headphones charge in i3blocks 2026-02-24 19:31:59 +03:00
640fc6d089 add alias 2026-02-23 02:52:25 +03:00
9a36640df8 add alias 2026-02-23 02:34:27 +03:00
0790b3d363 add func ci to create cargo project 2026-02-21 14:00:48 +03:00
0f131880b1 add aliases 2026-02-21 10:55:38 +03:00
0df870b2a0 add cargo aliases 2026-02-20 08:36:43 +03:00
1db339be4a add alias 2026-02-20 01:50:19 +03:00
30fa651030 fix logs 2026-02-20 01:40:47 +03:00
41be339450 make mpv service 2026-02-20 01:36:46 +03:00
2b9b903803 rename 2026-02-20 00:54:10 +03:00
90c81c3043 fix music 2026-02-19 23:22:43 +03:00
7d4085784a fix music 2026-02-19 23:18:20 +03:00
8d9ba24d6c music 2026-02-19 23:08:44 +03:00
5414d49b01 refactor 2026-02-19 22:10:42 +03:00
d511b9dedc fix 2026-02-19 20:24:59 +03:00
f63ba69d99 refactor 2026-02-19 20:23:22 +03:00
cfb136da9c add auto restart alacritty 2026-02-19 19:51:42 +03:00
ae3b33e945 add langing sessoin 2026-02-19 19:43:06 +03:00
b68cc25014 fix 2026-02-18 11:11:27 +03:00
b01110dc91 add trace color to hl logs script 2026-02-17 16:13:30 +03:00
9bc9cce6f6 fix highlight-logs script 2026-02-17 16:11:00 +03:00
e67593582e add script hl logs 2026-02-17 16:01:51 +03:00
2cd1a21cdb fix zsh autocomplete dupl bug 2026-02-16 01:56:34 +03:00
6ed951778b add user@host to i3blocks 2026-02-08 15:39:48 +03:00
c5cd1726dd fix non-ascii in json func 2026-02-04 11:19:41 +03:00
02d234be3f remove binding for terminal, because using only 1 terminal with tmux multiplexer 2026-01-24 17:36:34 +03:00
e30fd5d1d2 add script serveit 2026-01-24 14:40:48 +03:00
7374d444fe add apco code helper scripts 2026-01-21 19:58:37 +03:00
24f71239e2 sway: change focus on activation behavior 2026-01-15 00:40:57 +03:00
38451f5dee fix sway binding 2026-01-12 16:51:36 +03:00
32381a1c40 fix nvim telescope 2026-01-12 12:15:26 +03:00
26ec6aff99 fix tmux/dotfiles 2026-01-12 08:28:44 +03:00
6c5fbd775c touchpad accelaration 2026-01-10 15:24:30 +03:00
9bf180fdda reduce alacritty opacity 2025-12-24 01:23:21 +03:00
00550ea45d add easyeffects 2025-12-19 22:54:52 +03:00
ee6e683a4f fix pasta in tmux 2025-12-09 23:30:45 +03:00
aa14d4125c zsh completions 2025-12-07 23:18:28 +03:00
13f1c4c395 fix wifi in status 2025-11-29 10:53:25 +03:00
e7091b0efc cursor hiding 2025-11-29 10:48:32 +03:00
18da9279de revert bar to show 2025-11-28 23:07:37 +03:00
a2e5f996d9 gesture 2025-11-28 22:57:31 +03:00
48719600b2 refactor 2025-11-28 12:49:06 +03:00
7a8b0951d1 fix gestures 2025-11-28 12:05:04 +03:00
a73a6e6ede gesture 2025-11-28 11:46:21 +03:00
4d063a44f4 gesture 2025-11-28 10:18:08 +03:00
d8b349f0d8 gesture 2025-11-27 21:48:35 +03:00
4037dfa979 remove x11 2025-11-26 23:44:48 +03:00
6db9f3b125 fix screenshot 2025-11-26 21:53:01 +03:00
d13361cf22 fix targets 2025-11-26 21:28:23 +03:00
90bbeceb2d add gesture 2025-11-26 21:11:13 +03:00
29f9bc507e touchpad 2025-11-26 21:03:48 +03:00
84d40da737 fix gestures 2025-11-26 20:34:07 +03:00
004ef252b0 add gesture 2025-11-26 20:33:05 +03:00
e238460c7b fix brightnessctl 2025-11-26 19:43:37 +03:00
faf91675e1 fix i3blocks wifi 2025-11-26 19:37:42 +03:00
5eac373c2a fix fonts 2025-11-26 19:30:05 +03:00
27170d452c Merge remote-tracking branch 'origin/master' 2025-11-26 18:11:36 +03:00
86c638d665 add battery status 2025-11-26 18:11:18 +03:00
0dfd08e3f5 gitignore 2025-11-25 14:45:59 +03:00
f6742657cc fix tabs 2025-11-20 14:49:33 +03:00
4b9d783284 alias 2025-11-19 23:38:14 +03:00
e4a7358443 add script wake 2025-11-19 22:51:30 +03:00
84fb307256 fix sway 2025-11-19 22:47:22 +03:00
87fd7fd7f7 docs 2025-11-19 16:25:23 +03:00
036943bb93 refactor 2025-11-19 16:12:59 +03:00
e32cadf434 fix bar 2025-11-19 15:18:47 +03:00
fc168c197f sway hide bar 2025-11-19 14:55:56 +03:00
4f868d83c9 sway rename 2025-11-19 13:23:49 +03:00
f2dc60ba4d ref 2025-11-19 12:41:33 +03:00
81e5d94af7 style 2025-11-19 11:01:19 +03:00
13bae9730c ref 2025-11-19 10:54:08 +03:00
7e3bc88fc4 fix wayvnc 2025-11-18 15:35:52 +03:00
e6d96c38ea remove picom 2025-11-17 13:42:20 +03:00
c279742cc2 sway binding toggle bar 2025-11-17 10:50:10 +03:00
8d289006a8 pastas 2025-11-17 00:38:25 +03:00
c19b0ce18a fix copypasta 2025-11-16 21:56:53 +03:00
2eb84883cd fix zcalc_histfile 2025-11-16 18:30:03 +03:00
6a06ef5399 fix copypasta 2025-11-16 18:01:35 +03:00
250174e5ff refactor sway 2025-11-16 02:14:18 +03:00
e7e09b47df tmux + alacritty opacity 2025-11-14 15:52:04 +03:00
51f5010dc9 fix sway 2025-11-14 15:47:00 +03:00
d063d2b447 sway mappings 2025-11-14 11:12:54 +03:00
1b55d67110 rm skip-username 2025-11-14 09:44:11 +03:00
9addfbd04e fix black background 2025-11-14 01:46:37 +03:00
cd92b78f23 fix wl-copy 2025-11-14 00:37:22 +03:00
fc26afb9a6 fix vnc 2025-11-14 00:32:26 +03:00
1db4989005 autologin 2025-11-13 19:43:39 +03:00
5c96138aca sway add include 2025-11-13 16:41:38 +03:00
1bc39c91c0 sway fix display layout 2025-11-13 16:32:08 +03:00
0220be6920 fix slm sway 2025-11-13 16:10:54 +03:00
512034a05a add autostart apps 2025-11-13 13:33:01 +03:00
b50a1bcae2 fix cleanup-directory function 2025-11-13 13:10:30 +03:00
ee2ad8f08b wl-paste fix 2025-11-13 12:48:56 +03:00
0909b3afb7 sway refactor 2025-11-13 12:25:29 +03:00
a585f989f5 remove i3 + fix sway mappings 2025-11-13 01:39:22 +03:00
6206502fd2 fix i3block volume 2025-11-12 16:03:47 +03:00
e388290c67 fix clipboard 2025-11-12 15:09:03 +03:00
f0f2105b38 swaylock 2025-11-12 00:23:15 +03:00
b6c2953992 switch to sway 2025-11-11 23:58:58 +03:00
9ae72acb0e sway refactor 2025-11-11 23:33:21 +03:00
d439428671 sway change layout handler 2025-11-11 22:57:06 +03:00
3574ec7f6e sway notifications + refactor 2025-11-11 22:04:32 +03:00
72ccbc8110 sway refactor 2025-11-11 20:10:55 +03:00
260ebc30eb add sway lock 2025-11-11 19:23:09 +03:00
55ed73161a sway add cursor hiding 2025-11-11 18:51:26 +03:00
b2d291bb0a sway configs 2025-11-10 23:49:37 +03:00
6c019632ba add sway 2025-11-10 22:33:05 +03:00
4048e16bbe refactor 2025-11-10 00:28:45 +03:00
e5f3079c82 revert kb layout switching 2025-11-10 00:11:35 +03:00
17164de6ad add script to switch kb layouts 2025-11-09 21:08:08 +03:00
c5618397dd i3blocks change language signal 2025-11-09 20:46:31 +03:00
64531b2113 add description to httpstatus script 2025-11-09 18:49:31 +03:00
73f1bda2bf fix timer 2025-11-09 18:05:17 +03:00
41627767b9 fix tiner script 2025-11-08 21:59:20 +03:00
1471013bd7 add layout display to i3blocks 2025-11-08 18:39:01 +03:00
89b210f663 fix open script 2025-11-07 13:27:49 +03:00
91e122af50 add scipts, fix mcd 2025-11-05 22:54:10 +03:00
f8f7831415 move function to scripts 2025-11-05 22:17:50 +03:00
58e3a093f9 fix executable bit 2025-11-05 11:19:00 +03:00
f93b556789 scripts 2025-11-04 17:45:42 +03:00
d547a8f1e0 add scripts 2025-11-04 14:30:14 +03:00
99601082ce envs 2025-10-31 00:05:04 +03:00
7b7b4094af add psw 2025-10-30 22:45:50 +03:00
4a88eb960d add top-commands func 2025-10-29 02:13:10 +03:00
361d9ce065 add notes aliases 2025-10-29 01:14:53 +03:00
a534f5bdd1 Merge remote-tracking branch 'refs/remotes/origin/master' 2025-10-24 15:00:07 +03:00
99c6c50f42 emoji to i3blocks 2025-10-24 14:59:24 +03:00
cf783051ad emoji to i3blocks 2025-10-24 14:58:06 +03:00
5a45b10698 change intervals i3blocks 2025-10-24 01:11:47 +03:00
8e184d2098 fix i3blocks bluetooth 2025-10-23 23:44:03 +03:00
fdb8fab853 fix i3blocks and pomodoro 2025-10-23 23:33:06 +03:00
bdbf3f9359 fix refresh i3block command 2025-10-23 21:31:49 +03:00
a55ffaa138 add pomodoro mapping 2025-10-23 21:12:23 +03:00
7c763d62e3 Merge branch 'i3blocks' 2025-10-23 20:00:23 +03:00
3b7f374057 i3blocks 2025-10-23 19:55:40 +03:00
3165c8d469 fix 2025-10-23 18:05:30 +03:00
964f4f5480 fix 2025-10-17 00:30:27 +03:00
947151dd4c add aliases 2025-10-17 00:19:10 +03:00
ead6118efb add git alias 2025-10-14 11:56:45 +03:00
669ff43ec0 fix note install-hook 2025-10-12 02:10:06 +03:00
c165357066 add tmux session 2025-10-10 18:08:42 +03:00
ccc217d191 add alias ex 2025-10-08 15:35:17 +03:00
90c5d38c12 feat(nvim): add scrollbar plugin 2025-10-08 13:18:28 +03:00
adea5a27bb fix cleanup-directory function 2025-10-06 15:00:57 +03:00
49bf6b287d i3wm black 2025-09-23 11:22:24 +03:00
c7a894e5f0 add termux shortcut 2025-09-16 10:12:33 +03:00
354c1c2a6b rm unused git hooks 2025-09-10 16:00:22 +03:00
d859a28f9b fix tmux lingering 2025-09-10 13:09:59 +03:00
28dc71a192 fix tmux service 2025-09-10 12:26:19 +03:00
3fa73ef3b6 add termux shortcut 2025-09-04 01:00:26 +03:00
462c79c9c6 add russian mappings for tmux 2025-09-01 14:05:53 +03:00
147422ab17 git alias tags 2025-08-29 12:49:52 +03:00
ad390d00b6 upd(genpass) 2025-08-21 22:51:57 +03:00
91b7fc71a7 fix(ssh-proxy-service): add everlasting restarting on failure 2025-08-21 21:55:11 +03:00
4b7abd9515 fix i3status 2025-08-11 15:06:33 +03:00
c02fb05f22 fix myip 2025-08-10 20:40:27 +03:00
c85397220a i3wm disable auto_back_and_forth 2025-07-23 13:40:39 +03:00
10b4373bf0 i3wm map switch to last ws 2025-07-19 14:26:58 +03:00
d6b8d7e0ae git alias ga 2025-07-18 20:11:35 +03:00
f7b7a2a518 fix git encoding 2025-07-18 19:43:48 +03:00
b07cf3869e tmux mappings 2025-07-16 00:01:40 +03:00
2312e66f1f add notifications on alias WAKE 2025-07-05 19:36:23 +03:00
0d6810f374 less charset for russian support 2025-07-02 11:10:11 +03:00
f54bff0fda nvim add plugin for opening files in format file:line:column 2025-07-01 11:01:56 +03:00
86cfba7187 fix nvim cursor place saving 2025-07-01 10:40:22 +03:00
0b99b04495 tmux add mapping for search all files paths in buffer 2025-06-30 12:50:15 +03:00
2c16752260 i3wm disable mouse warping 2025-06-09 21:54:20 +03:00
92792a09af fix git alias a 2025-06-09 10:53:51 +03:00
045cf9ca1b aliases 2025-06-04 11:20:06 +03:00
fa7221ecae add locate settings 2025-06-02 14:35:17 +03:00
334085ab32 mason compability 2025-05-28 11:27:21 +03:00
c8c0a2159e i3wm disable scroll workspaces 2025-05-26 12:13:31 +03:00
537e66cf20 fix tmux bug with related session names 2025-05-23 18:03:10 +03:00
c3a1612b0f i3 bind swap workspaces 2025-05-23 11:04:29 +03:00
ff3d5064b8 refactor screenshot, feat: option to disable notifications 2025-05-21 18:58:56 +03:00
9081fef1ff refactor 2025-05-20 17:44:13 +03:00
20055deed0 screenshot notify style 2025-05-20 12:37:23 +03:00
ec98e1b6b5 refactor screenshot script 2025-05-20 12:20:26 +03:00
c655e40f6d migrate to i3blocks 2025-05-19 18:57:08 +03:00
84350f5842 i3 screenshots script add quality and noopengl optional param 2025-05-19 16:53:24 +03:00
03848abdb3 i3 screenshots script refactor 2025-05-19 16:28:35 +03:00
a10f949729 i3 screenshots add script and notifications on screenshots 2025-05-19 16:21:09 +03:00
247fc36d98 mimetypes 2025-05-15 22:12:36 +03:00
922c614fd0 tmux environment 2025-05-15 21:05:08 +03:00
a237eab58f refactor slm default 2025-05-15 16:22:09 +03:00
e09b56351d add default xdg apps 2025-05-15 16:17:30 +03:00
729f11cbd3 renamed slm 2025-05-15 16:03:54 +03:00
58c3b7db28 tmux commentary 2025-05-15 15:37:37 +03:00
1d2563a49e add russian aliases 2025-05-15 12:50:10 +03:00
34f194a91f change screenshots mappings and xdg dirs 2025-05-14 13:10:23 +03:00
c5ed921348 change default browser 2025-05-14 09:50:47 +03:00
90f902b715 add alias git 2025-05-07 02:03:18 +03:00
b6c0bed615 git default branch now is main 2025-05-07 01:57:13 +03:00
c463244cc0 x11conc 2025-05-06 20:20:18 +03:00
0d4cad56bb x11conf 2025-05-06 20:06:32 +03:00
9679e2079b git aliase 2025-05-06 15:00:23 +03:00
2fdda3a2e3 zshenv.d 2025-05-06 14:35:01 +03:00
1855ecc35d x11vnc 2025-05-05 23:27:15 +03:00
3cd78ae74c aliases 2025-05-04 00:42:56 +03:00
3576cb2f20 aliases 2025-05-01 03:11:52 +03:00
370ec5fcd9 django-create-project 2025-05-01 00:42:41 +03:00
b6f366f7d2 git config filter lfs 2025-04-30 22:25:20 +03:00
5774abe938 genpass 2025-04-28 21:50:44 +03:00
866f46967c git aliases 2025-04-27 20:55:49 +03:00
3368a564b0 function djang-create-project 2025-04-11 16:23:25 +03:00
1b6e26c902 migrate from firefox to chromium 2025-04-11 13:08:33 +03:00
e658228d3c remove hooksPath 2025-04-11 11:46:45 +03:00
fa7aa567a6 fix nvim mappings 2025-04-10 10:11:55 +03:00
a63f591c59 global gitignore 2025-04-07 15:35:20 +03:00
d1b587536e fix nvim 2025-04-07 14:40:09 +03:00
832502b1d5 ref gobuild zsh function 2025-04-07 13:44:34 +03:00
df8722644b git alias a 2025-04-03 15:23:37 +03:00
0171dd5120 gitignore 2025-04-03 11:01:31 +03:00
da43e8cc09 tmux session 2025-04-01 15:45:46 +03:00
b9f5afa0b6 proxy aliases + add chromium 2025-04-01 13:41:59 +03:00
a4ed26fdb3 go pprof env 2025-04-01 12:29:30 +03:00
a00079c820 zsh history ctrl+r 2025-04-01 11:32:38 +03:00
e26e9f16d5 change mappings 2025-03-31 16:05:06 +03:00
f216ea9e5e refactor 2025-03-25 11:25:05 +03:00
c2d4b02cb6 zsh refactor function cleanup-directory 2025-03-25 11:17:07 +03:00
4213b395ea shellcheck disable 2025-03-25 10:45:56 +03:00
9c6b4b0ebf function open 2025-03-24 10:49:06 +03:00
1b62c2a66f aliases 2025-03-22 23:43:11 +03:00
35477abe48 fix extracto mappings 2025-03-22 10:29:45 +03:00
9fbf50a1b6 aliases 2025-03-22 10:00:50 +03:00
d296aadcb5 aliases 2025-03-20 21:32:32 +03:00
9584cd0b4c i3 dpms 2025-03-18 14:02:39 +03:00
9bcdb62015 renumber window 2025-03-17 18:17:56 +03:00
749205acc0 gobuild function 2025-03-11 16:26:19 +03:00
59465469fa zsh visual copy to system clipboard 2025-03-07 15:33:53 +03:00
018874f060 editorconfig 2025-03-07 09:55:43 +03:00
b41fe49004 tsx nvim config 2025-03-05 23:45:43 +03:00
bf01e401d2 node modules global gitignore 2025-03-05 23:35:00 +03:00
0f3b2024df rofi add mappings 2025-02-08 16:06:58 +03:00
46108c2f8d fix 2025-02-07 14:33:57 +03:00
2761b19f1a zsh completions 2025-02-07 10:33:08 +03:00
1d30104340 zsh completions 2025-02-07 10:22:09 +03:00
c67ea463e9 rofi mappings 2025-02-05 14:10:34 +03:00
a89bbc813c fix xresources 2025-02-05 11:46:47 +03:00
fd867c892b git ignore 2025-02-05 11:32:16 +03:00
8bf01c0e95 Merge remote-tracking branch 'origin/master' 2025-02-04 09:37:31 +03:00
570db7724c Merge remote-tracking branch 'origin/master' 2025-02-01 14:58:47 +03:00
6e9f690a9c fix font size 2025-02-01 14:58:20 +03:00
5e7f15df2b fzf mappings 2025-01-31 15:19:18 +03:00
1c8c0795a4 Merge remote-tracking branch 'origin/master' 2025-01-31 14:07:29 +03:00
4b6cbc0f8d git alias 2025-01-31 14:06:38 +03:00
69b930d7f4 dpi 2025-01-30 21:47:21 +03:00
0d4515d8c3 i3: hide cursor after idle 2025-01-29 11:30:31 +03:00
9367aa7990 fix 2025-01-27 14:48:30 +03:00
a701cf558b rm GOPROXY=off 2025-01-27 13:57:11 +03:00
5b08516319 nvim: remove plugin leap 2025-01-27 12:02:18 +03:00
18b705b718 style 2025-01-27 11:48:39 +03:00
edcb67e9ee add alias 2025-01-26 21:58:10 +03:00
9440caf156 zsh ctrl+r mapping 2025-01-26 19:13:32 +03:00
6fcf277359 fix 2025-01-25 15:17:10 +03:00
9d2915895b tmux start session from dir 2025-01-25 01:50:37 +03:00
667badeb9c mcd refactor 2025-01-23 21:26:00 +03:00
43973a1d68 add note to target 2025-01-23 00:29:59 +03:00
4b353e47be fix mcd 2025-01-22 22:34:09 +03:00
583b9ff6f7 xdg downloads dir 2025-01-22 14:46:00 +03:00
b62bdee1ed fix tmux mappings 2025-01-22 11:09:37 +03:00
9465568b5f gitignore 2025-01-21 14:10:35 +03:00
66b7dce3c2 zsh alias ? 2025-01-17 15:03:39 +03:00
c1078672bf GOCACHE variable 2025-01-16 01:12:12 +03:00
81bcd8dc3d fix git config 2025-01-15 18:57:52 +03:00
0a66d62165 ref 2025-01-13 23:17:25 +03:00
7beb5bc38b tmux plugin extrakto mappings 2025-01-13 23:06:19 +03:00
a749f19422 zsh mappings 2025-01-13 14:25:56 +03:00
00baf0f20e myip command 2025-01-10 22:53:30 +03:00
160cecbbef codestyle 2025-01-10 15:44:49 +03:00
26e6bd40bb myip command 2025-01-09 00:24:09 +03:00
e7bfa7fdf6 add git alias 2025-01-07 22:38:58 +03:00
ebb19ef63b zsh: fix completions 2025-01-07 15:45:31 +03:00
3c27faae0e zsh: remove autocomplete plugin 2025-01-07 14:25:59 +03:00
3d82b815b2 move alias gobuild to function 2025-01-06 23:47:43 +03:00
3c1b815582 chore(zsh-aliases): add global alias 2024-12-25 00:34:03 +03:00
c45a39a419 gbuild func 2024-12-23 13:38:47 +03:00
429a4cb2fe refactor 2024-12-22 23:45:57 +03:00
74c0fdebb3 editor config 2024-12-20 11:04:24 +03:00
259593ba4f editorconfig for go files 2024-12-20 09:53:59 +03:00
1c36a4e5f7 zsh aliases 2024-12-19 13:53:43 +03:00
cfd6ddee0d rewrite zsh plugin as single widget 2024-12-19 13:33:55 +03:00
91bafdb221 zsh mappings 2024-12-19 12:54:55 +03:00
dfa0832f8a refactor beep music scripts 2024-12-19 12:48:33 +03:00
3aa127e7e6 chore: move rarely used zsh functions to files 2024-12-19 12:15:28 +03:00
dd7123f98a zsh aliases 2024-12-19 11:32:36 +03:00
4235971fb7 chore 2024-12-18 23:59:33 +03:00
b807be1587 autoenv refactor 2024-12-18 16:15:25 +03:00
4ea4da352f autoenv refactor 2024-12-18 15:07:56 +03:00
a4d8e204f6 editorconfig 2024-12-17 16:38:28 +03:00
6bdfc3d812 rename home dirs 2024-12-17 14:04:16 +03:00
f410467a9a zsh autoenv refactor 2024-12-17 13:03:34 +03:00
3755822796 zsh autoenv refactor 2024-12-17 12:46:32 +03:00
1d136f1f64 zsh autoenv refactor 2024-12-17 12:06:46 +03:00
695522d088 autoenv refactor 2024-12-17 09:49:51 +03:00
c4a7194249 Merge branch 'master' into zshautoenv 2024-12-17 09:21:38 +03:00
649ca37de8 beep music 2024-12-16 23:40:03 +03:00
a93541b520 home tree permissions file 2024-12-16 23:15:00 +03:00
a1f0d960e2 upd: vim telescope ignore list 2024-12-16 14:13:12 +03:00
76568fa286 zsh autoenv refactor 2024-12-16 12:56:14 +03:00
46faf1536b zsh autoenv authorized dirs 2024-12-16 12:18:48 +03:00
c217b57e69 zsh autoenv 2024-12-16 11:58:52 +03:00
2bdf365300 upd: vim telescope ignore list 2024-12-16 10:19:14 +03:00
251e88a000 zsh alias to function 2024-12-13 20:05:54 +03:00
89daf17b92 tmux time mappings 2024-12-13 15:11:44 +03:00
0734de3f67 tmux weather mapping 2024-12-13 14:54:19 +03:00
c25c6bf266 zsh completions 2024-12-13 11:12:14 +03:00
a81b4ce279 zsh autocomplete 2024-12-12 20:51:44 +03:00
a1e01875de zsh completion plugin 2024-12-12 20:44:48 +03:00
7ad907b609 zsh remove plugin autocomplete 2024-12-12 18:23:17 +03:00
a66621f0a4 zsh completions 2024-12-12 16:58:33 +03:00
3b538ccaf4 zsh mappings 2024-12-12 16:58:05 +03:00
09e1fe8b0a nvim completion 2024-12-12 15:37:27 +03:00
b3d83a2d78 zsh refactor 2024-12-12 15:29:10 +03:00
3775a9b8ec zsh autocompletions plugin 2024-12-12 15:27:34 +03:00
37e9ac2814 zsh completions 2024-12-12 14:44:49 +03:00
b20f8aab0a tmux session ssh 2024-12-11 22:15:29 +03:00
a5768d66d8 termux shortcuts 2024-12-11 01:23:03 +03:00
22b0280702 gitignore 2024-12-10 16:39:38 +03:00
66681dd143 t script 2024-12-10 14:07:31 +03:00
7cc90747ca zshenv 2024-12-10 14:01:51 +03:00
b159e60370 i3config 2024-12-06 13:10:27 +03:00
7761decfb2 zsh aliases 2024-12-06 11:07:01 +03:00
da9273d38e zsh add alias 2024-12-06 09:57:54 +03:00
dca27bca1f zsh completions 2024-12-06 09:49:01 +03:00
bd473085a7 zsh 2024-12-05 23:38:09 +03:00
9cf28b8da9 tmux disable detach-on-destroy on remote host 2024-12-05 22:55:13 +03:00
d744b66166 git add hint 2024-12-05 22:27:58 +03:00
3a39401021 zsh complete mappings 2024-12-05 22:16:19 +03:00
e5fd71dcf0 zsh feat 2024-12-05 22:03:16 +03:00
4382797c25 zsh complete system 2024-12-05 21:53:50 +03:00
44839849b6 zsh and nvim completions 2024-12-05 21:36:25 +03:00
cf09544569 nvim remove unused keymaps 2024-12-04 14:16:22 +03:00
67417b09ef tmux fix mouse copying 2024-12-03 16:23:02 +03:00
468b9b698f nvim disable autocomplete 2024-12-03 15:04:30 +03:00
5c6f5fba0a nvim: change autocomplete mappings 2024-12-02 14:07:34 +03:00
ac6d7a07ea tmux copy to systemclipboard 2024-12-02 11:30:34 +03:00
5ce1ca4a42 git aliases 2024-12-02 11:00:10 +03:00
c180a23930 add git alias 2024-12-01 22:05:21 +03:00
ae5ff167ee ref(zsh): rename calculator to accept_line 2024-12-01 21:13:32 +03:00
9b303d5385 i3status style 2024-11-29 15:39:11 +03:00
3f0fdef139 fix zsh inline calculator 2024-11-29 15:25:21 +03:00
baa87509da t: feat: create notes with path separators 2024-11-29 09:20:47 +03:00
554c117812 feat 2024-11-28 16:57:16 +03:00
e26483c0b5 style 2024-11-28 16:43:20 +03:00
639c7a456d zsh refactor 2024-11-28 14:16:10 +03:00
3a4ff6b5b9 zsh feature, if command line empty, on enter show current dir content 2024-11-28 13:58:47 +03:00
fc232c4f80 feat: zsh: add mappings for fast git status and list directory 2024-11-28 13:38:08 +03:00
c84367bf8c nvim: fix autocomplete mappings 2024-11-28 10:00:26 +03:00
229fb1c863 t script feature get note content 2024-11-27 16:28:32 +03:00
0cecbd4e43 t script style 2024-11-27 15:58:29 +03:00
9e81d06b2e i3 config 2024-11-27 13:38:51 +03:00
bae26dbc66 addd zsh alias 2024-11-27 11:52:28 +03:00
9ec746a0e1 go 2024-11-26 15:14:10 +03:00
ff5433e202 go envs 2024-11-26 14:36:28 +03:00
5819358ea7 go envs 2024-11-26 12:58:34 +03:00
f64c9db247 go envs 2024-11-26 12:25:04 +03:00
8ffa514d22 nvim mappings run go file 2024-11-25 11:44:21 +03:00
df9852994c fix(nvim:telescope): ignore patterns 2024-11-25 09:19:09 +03:00
2d6735f3ec git config 2024-11-24 22:34:57 +03:00
1766802248 add gopath to path 2024-11-24 22:04:50 +03:00
0e698d4f3b ref git config 2024-11-24 22:04:40 +03:00
a1343f2db6 zsh remove source missing file 2024-11-23 18:54:58 +03:00
967143bf5a t script style 2024-11-22 14:04:40 +03:00
e364188ba9 zsh func 2024-11-22 00:10:19 +03:00
08b8449fe5 zsh aliases 2024-11-21 23:57:07 +03:00
a79dd142d8 zsh migrate from exa to eza 2024-11-21 23:50:08 +03:00
77067e8ff1 fix ssh alias 2024-11-21 14:47:33 +03:00
7f217ecbd7 nvim fix go indention 2024-11-21 13:33:55 +03:00
9d43f6262d ssh config 2024-11-20 21:20:35 +03:00
10c7e768a5 feature t script 2024-11-20 20:49:05 +03:00
e98e06cc87 zsh envs 2024-11-19 13:55:19 +03:00
11d26ecad1 add envs for go 2024-11-19 13:42:50 +03:00
7fee966adf zsh alias tree for exa 2024-11-19 11:27:53 +03:00
c4f2513cf5 zsh aliases 2024-11-19 11:21:37 +03:00
25ed18fda1 zsh pushd 2024-11-19 10:30:24 +03:00
bd53de094a git configs 2024-11-19 10:22:14 +03:00
cca2037d2c git alias 2024-11-19 09:26:40 +03:00
94ef205cf7 fix tmux ssh session 2024-11-18 22:59:54 +03:00
3e4e42e509 fix fzf opts 2024-11-18 22:48:58 +03:00
c541529016 fix zsh showtips 2024-11-18 22:33:36 +03:00
7c52569f97 fix zsh fzf 2024-11-18 22:30:16 +03:00
e4aa9aee25 chore 2024-11-18 22:13:19 +03:00
cab6652a51 zsh refactoring 2024-11-18 22:11:38 +03:00
c06d9b4a38 fix tmux ssh session 2024-11-18 21:59:54 +03:00
31c636c147 sandbox 2024-11-18 21:22:39 +03:00
855009b507 docker image sandbox 2024-11-18 16:47:52 +03:00
4461341ccf zsh refactor 2024-11-18 14:34:44 +03:00
f9dbce3b07 zsh global alias less 2024-11-18 12:18:39 +03:00
65ae6b15ad fix ssh 2024-11-18 12:07:58 +03:00
8c346b1729 git aliases 2024-11-15 14:06:29 +03:00
a6b93d3a2f t script style 2024-11-15 10:15:05 +03:00
38ab46fa2a t-script style 2024-11-15 09:48:47 +03:00
5522704219 t script prettify 2024-11-14 21:35:06 +03:00
ba1dddb5aa fix dbus failed error 2024-11-14 20:58:44 +03:00
40c6cbce70 chore 2024-11-14 15:44:41 +03:00
cb67414281 remove key script 2024-11-13 19:33:36 +03:00
1ab3bfe01d rename script k to key 2024-11-13 19:32:55 +03:00
09dbd61d1b add script k for store secrets 2024-11-13 17:19:01 +03:00
318436053a chore 2024-11-13 12:28:51 +03:00
0ae714129f zsh aliases 2024-11-13 09:41:48 +03:00
c1ea72f4e6 typo(nvim): remove blankline 2024-11-12 16:37:49 +03:00
9db677d2b5 nvim remove unused keymaps 2024-11-12 15:33:53 +03:00
19a1762d9b infokey 2024-11-12 13:58:48 +03:00
c0d34945eb nvim python specific config 2024-11-12 13:04:59 +03:00
91d8bd8de2 remove ssh alias 2024-11-12 11:06:11 +03:00
b938586945 add infokey 2024-11-12 10:03:10 +03:00
816235e298 ref zshrc 2024-11-11 19:40:11 +03:00
9cd5e17a5d zshrc tmux 2024-11-10 20:06:32 +03:00
d561b07417 cleanup ssh-config 2024-11-08 14:10:13 +03:00
3f7edf97ec ref 2024-11-08 13:27:12 +03:00
9ab8a59193 nvim fix plugin 2024-11-08 12:50:38 +03:00
fe80a79846 ref script t 2024-11-08 11:48:31 +03:00
e3ef76a626 tmux attach session preview with syntax highlighting 2024-11-08 11:36:47 +03:00
61407b51f5 tmux session 2024-11-08 11:26:22 +03:00
5c6ac9cbcd ref script t 2024-11-08 09:49:14 +03:00
45a0e43cc1 fix ssh tmux sessoin 2024-11-06 23:10:48 +03:00
af97f24988 ref 2024-11-06 16:25:04 +03:00
58fe1ab39d ref 2024-11-06 15:44:06 +03:00
4beb245aa4 change script t 2024-11-06 00:49:43 +03:00
79ccb183ef fix install script 2024-11-05 20:07:33 +03:00
7a86d25fb4 t script change workspace variable 2024-11-05 17:39:03 +03:00
f657e8be74 t script feature sort by access time 2024-11-05 17:03:24 +03:00
bf79895ea8 t script safety 2024-11-05 15:52:32 +03:00
59f8ab46ea t script style 2024-11-05 15:44:05 +03:00
ccca6a92f9 zsh mappings 2024-11-05 14:13:37 +03:00
6f13de7d44 nvim remove jf escape 2024-11-05 13:50:45 +03:00
82d9a032ab nvim mappings 2024-11-05 13:36:55 +03:00
88e48662a3 script t some refs 2024-11-05 12:27:31 +03:00
2a250daa34 t script feature remove multiple notes 2024-11-05 12:23:56 +03:00
fbc3db337e zsh global alias for scrit t 2024-11-05 12:15:25 +03:00
1499c8ff5f t script feats 2024-11-05 12:10:35 +03:00
882e774bf7 t script ref 2024-11-05 11:27:04 +03:00
ad0b47e6e0 script t features 2024-11-05 11:16:55 +03:00
84f508d216 script t: docs 2024-11-05 11:12:32 +03:00
11ca0b250f fix script t 2024-11-05 11:00:38 +03:00
569d457db6 add script t for fast notes 2024-11-05 10:44:21 +03:00
bd1c90c4a3 zsh post hook 2024-11-04 20:13:23 +03:00
2dd8b6d5a7 sh compatible 2024-11-04 04:14:21 +03:00
1706e7bda9 rewrite install script to posix sh compatible 2024-11-03 23:21:52 +03:00
0fc4f945bc some feats 2024-11-02 18:20:55 +03:00
1c508c6f39 refactor zsh hook 2024-11-02 15:58:32 +03:00
2fe15385e9 some ref 2024-11-02 14:51:43 +03:00
f8298cfc30 ssh alias 2024-11-02 14:23:00 +03:00
e978486393 remove bash 2024-11-02 13:52:41 +03:00
7f66492f2a remove bash 2024-11-02 13:00:52 +03:00
d1c1287399 alacritty decreate history buffer size 2024-11-02 12:23:40 +03:00
5c82197471 make scripts posix sh 2024-11-02 11:14:41 +03:00
6f0c0047d0 fzf style 2024-11-02 10:53:27 +03:00
0d41b5b5cb fzf style 2024-11-01 22:57:55 +03:00
c7f4925084 fzf style 2024-11-01 22:48:47 +03:00
d3731cb198 tmux scripts style 2024-11-01 22:35:32 +03:00
ed8739aa70 tmux scripts colors 2024-11-01 21:51:51 +03:00
737027bf54 ref tmux scripts 2024-11-01 21:28:14 +03:00
1947b3410b tmux fzf feature to kill sessions 2024-11-01 16:40:38 +03:00
f96b5fe783 rename tmux session file 2024-11-01 11:42:04 +03:00
6ba34f7c69 tmux add example session file 2024-10-31 23:36:46 +03:00
ee275b24b6 -m fzf mappings 2024-10-31 20:27:44 +03:00
4e7ed7fa86 zsh mappings 2024-10-31 10:48:29 +03:00
a6b8205df1 tmux change mappings for kill sessions 2024-10-31 10:29:11 +03:00
7a76792eac fix 2024-10-28 11:22:08 +03:00
88de2e74ff ref bash functions 2024-10-28 11:10:45 +03:00
321544578e less 2024-10-28 09:32:17 +03:00
6b5241fb09 ssh alias 2024-10-28 09:23:52 +03:00
d365bdc6ff vim inputrc 2024-10-28 09:21:19 +03:00
dc0ab73547 gitconfig 2024-10-27 23:09:02 +03:00
17d463e424 gitconfig 2024-10-27 23:03:47 +03:00
cb15d6404f tmux mapping paste bracketed 2024-10-27 22:53:28 +03:00
3b6334581a tmux change mappings 2024-10-25 13:20:39 +03:00
caf52539d1 tmux change mappings 2024-10-25 11:34:04 +03:00
575ff93131 tmux clock mode 2024-10-25 11:31:33 +03:00
cb079679a8 alacritty migrate 2024-10-25 10:56:22 +03:00
d82b59a56d tmux kill session mapping 2024-10-25 09:42:08 +03:00
ba786afab4 tmux start session refactor 2024-10-22 22:35:31 +03:00
4b71ffe3b9 zsh completions 2024-10-21 21:21:37 +03:00
3d6a08c9b5 zsh global aliases 2024-10-21 20:46:00 +03:00
d6db0e4b48 tmux session fzf 2024-10-21 19:07:18 +03:00
3255b770d5 tmux change tmux mappings 2024-10-21 14:22:09 +03:00
8cd848933f refactor 2024-10-21 14:12:48 +03:00
425d2c8789 tmux mapping choose session feat show last attached session 2024-10-21 12:52:06 +03:00
033425f869 tmux mapping choose session fix 2024-10-21 12:40:22 +03:00
0f001c52d5 tmux mapping choose session 2024-10-21 12:18:51 +03:00
9d0568160d git aliases 2024-10-18 16:51:20 +03:00
7621d1da3b change tmux mapping 2024-10-18 16:49:04 +03:00
f69e8dc834 add motd files 2024-10-18 10:37:55 +03:00
a85249e473 tmux session ssh add hosts from history 2024-10-17 15:27:30 +03:00
2a4f583d33 tmux fix mapping calendar 2024-10-17 10:21:14 +03:00
436a86a1a4 zsh mappings 2024-10-17 10:14:25 +03:00
cd8da20d95 ref tmux session 2024-10-17 09:23:50 +03:00
3bc1802657 tmux session ssh 2024-10-17 09:17:12 +03:00
5c6a78ae72 tmux session ssh with fzf 2024-10-16 21:36:37 +03:00
907f390899 refactoring tmux sessions 2024-10-16 15:38:19 +03:00
8a718dfb3c code style 2024-10-16 14:14:32 +03:00
3c0db2ae64 fix bash variables 2024-10-16 13:42:55 +03:00
fe2490fc56 fix tmux session sandbox 2024-10-15 16:35:10 +03:00
8d9614c918 tmux sessions 2024-10-14 16:08:16 +03:00
c12dd2d0fa tmux sessions 2024-10-14 00:14:17 +03:00
5423cd1bd1 tmux session managment fix 2024-10-13 23:51:10 +03:00
76a911ffc9 rename tmux start session script 2024-10-13 23:35:09 +03:00
ba8dece09a tmux session managment script 2024-10-13 23:22:48 +03:00
a41a064b4b change mapping for tmux session menu 2024-10-13 23:09:49 +03:00
6fd2f58f6c tmux session managment 2024-10-13 18:08:54 +03:00
20e0ec5f7a zsh fix zle 2024-10-10 09:31:28 +03:00
9ab0d024a6 zsh fix bug 2024-10-09 22:29:19 +03:00
0c3baa45d4 bash functions refactor 2024-10-09 11:41:17 +03:00
43b0246b04 add tmux mappings 2024-10-08 21:02:19 +03:00
c1ffdb9b27 ref 2024-10-08 13:14:54 +03:00
3cefe591af add function bak 2024-10-08 12:41:25 +03:00
e5827e1789 Merge branch 'master' of github.com:TheK4n/dotfiles 2024-10-07 09:47:32 +03:00
1f23150937 python aliases 2024-10-07 09:47:27 +03:00
4ebb0f6e4e migrate from deprecated convert to magick (imagemagick) 2024-10-05 20:40:17 +03:00
3b52e572d4 ref docker cli plugins 2024-10-05 14:50:04 +03:00
1e7023cda2 zsh global aliases 2024-09-27 13:25:22 +03:00
7a49556d15 fix 2024-09-27 13:09:40 +03:00
d4d6e77ce3 ref 2024-09-27 10:50:54 +03:00
6ded275dd3 feat bash functions ve,va 2024-09-27 10:05:38 +03:00
2404c83783 fix tmux session 10 2024-09-27 09:30:24 +03:00
a1be3129ad add bash func to start django project 2024-09-27 09:29:50 +03:00
82de8a8cd1 fix mouse in tmux 2024-09-26 20:56:38 +03:00
62dd4101e4 tmux sesions 2024-09-26 15:38:16 +03:00
a7cbd1112e fix 2024-09-12 20:32:18 +03:00
26729882cb fix 2024-09-12 20:31:06 +03:00
dbe321a9fc git df preview size 2024-09-11 16:21:18 +03:00
6933160f7d refactor bash functions 2024-09-06 14:55:01 +03:00
dc9260af5a fix ssh-proxy service 2024-09-04 21:50:32 +03:00
2c66dbab44 refactor install script 2024-09-02 16:25:04 +03:00
31cf397c4e add systemd per-user service for ssh proxy 2024-08-29 21:29:04 +03:00
a3404c3d78 nvim mappings 2024-08-29 14:34:58 +03:00
56a260ec28 nvim migrate to telescope 2024-08-02 15:02:24 +03:00
70d39c43c5 fix(nvim): rename object behave 2024-07-30 09:54:46 +03:00
a44f38820e fix termux 2024-07-23 00:17:41 +03:00
7673e7f0ca termux shortcuts 2024-07-22 23:38:25 +03:00
4d1586d26b nvim mapping for toggle character case 2024-07-22 19:22:32 +03:00
602b409eff tmux mappings 2024-07-21 18:03:57 +03:00
322572c304 fix 2024-07-14 01:10:22 +03:00
835efc372c feat(nvim): add mappings for assembler 2024-07-12 18:16:03 +03:00
4115e0cebb git signs plugin 2024-07-12 16:50:58 +03:00
f9987d191b nvim add mappings 2024-07-10 15:36:31 +03:00
4d956342e7 nvim(fix): escape mappings 2024-07-10 11:31:21 +03:00
17aff0aca3 nvim(fix): fix russian escape mapping 2024-07-08 16:28:15 +03:00
cac169f083 rm(tmux): remove mapping for ssh session 2024-07-05 14:01:26 +03:00
e83913a7e3 nvim(plugin): rewrite better-escape 2024-07-05 13:52:20 +03:00
ce249bebd9 doc(nvim): add mappings description 2024-07-05 09:36:17 +03:00
d4ca67eba0 ref tmux session 2024-07-04 15:30:18 +03:00
e3c7f6fb21 feat(nvim): hack to disable search_count messages 2024-07-04 11:20:04 +03:00
96b9363b73 feat(nvim): add plugin for code actions 2024-07-03 14:53:45 +03:00
2eac5c6075 rm(nvim): remove broken plugin peek.nvim 2024-07-02 15:47:34 +03:00
2c2721f4b0 refactor nvim plugins 2024-07-02 13:59:12 +03:00
e3293211e5 feat(nvim): add plugin for complete from tmux panes 2024-07-02 13:42:42 +03:00
33101ebb85 style(nvim): lualine 2024-07-02 11:18:45 +03:00
c7deca5a68 ref(nvim): plugins 2024-07-02 10:33:19 +03:00
c5676ebb4e ref 2024-07-02 09:10:05 +03:00
087f204a75 fix(nvim): mappings 2024-07-01 15:42:27 +03:00
1b29f09a62 fix(nvim): remove unused plugin 2024-07-01 10:09:55 +03:00
0821891006 fix(nvim): completions 2024-07-01 09:50:00 +03:00
793afcdf33 add git aliases 2024-06-27 08:41:31 +03:00
212b85f45c nvim lsp 2024-06-26 14:26:33 +03:00
94fc73426c rename git alias cm to cim 2024-06-25 13:59:01 +03:00
c52099f8c2 add git alias amenda 2024-06-25 09:31:09 +03:00
9c9c717ee2 add git alias amend 2024-06-24 15:23:03 +03:00
5037b05b8d refactor git alias cm 2024-06-24 13:54:22 +03:00
a288b493fe git aliases 2024-06-24 11:27:17 +03:00
6dd077e455 edit gitignore 2024-06-18 16:37:30 +03:00
f5a32c3670 tmux mappings 2024-06-17 08:48:03 +03:00
5a241e3bfa ref extract function 2024-06-13 11:17:38 +03:00
591745a472 decrease tmux history-limit options, cos its starts to lag 2024-06-13 10:34:10 +03:00
9db5874ec9 git ref 2024-06-10 16:58:58 +03:00
9764834e79 aliases 2024-06-10 15:46:54 +03:00
9d94bfa4f9 tmux aliases 2024-06-05 14:06:20 +03:00
b34161c811 fix tmux session 10 2024-06-04 09:04:40 +03:00
461f6c023d ref(tmux): aliases 2024-06-04 08:34:19 +03:00
ac072c30de feat(tmux): select-layout mappings 2024-06-03 08:44:15 +03:00
c158c3f613 ref(tmux): remove commentaries from tmux config 2024-06-03 08:16:08 +03:00
2663e165bc tmux mappings 2024-06-02 23:40:27 +03:00
8da56e84a5 feat(tmux): edit swap panes mappings 2024-06-02 22:51:58 +03:00
6ec8aabc58 fix nvim viewoptions 2024-06-01 22:40:43 +03:00
ef5fe02675 refactor zsh mappings 2024-05-31 21:48:03 +03:00
0b29b5ad36 change zsh mapping for insert sudo 2024-05-31 21:35:08 +03:00
09bf90070a edit(tmux): change mapping for tmux plugin 2024-05-31 14:44:56 +03:00
643794521d style(tmux): change main pane size 2024-05-31 14:11:50 +03:00
8cb58dcd39 feat(tmux): mappings 2024-05-31 10:07:48 +03:00
2c3e82d3ed ref(zsh): cli calculator 2024-05-28 16:15:04 +03:00
634f0dee30 ref(tmux) 2024-05-27 13:29:06 +03:00
a74eda0825 ref(tmux) 2024-05-27 13:19:20 +03:00
678fb43670 feat(tmux): focus-events enable 2024-05-27 11:46:07 +03:00
e5e898c44f edit(i3): disable auto fullscreen for terminal 2024-05-27 10:58:36 +03:00
4d73cecaf1 tmux: remote config 2024-05-24 21:45:45 +03:00
5832c0d707 tmux mappings 2024-05-24 16:50:26 +03:00
05e37ca221 refs 2024-05-23 23:56:11 +03:00
3955ec6e58 change mod 2024-05-23 23:29:10 +03:00
652cd816a0 add hourly beep 2024-05-23 22:16:23 +03:00
6e23fbd190 add bigben beeper 2024-05-23 21:18:02 +03:00
2ca6f5fc83 fix 2024-05-23 20:29:58 +03:00
325c2a9f25 some ref 2024-05-23 19:39:21 +03:00
a69fd53fc3 feat(zsh): inline calculator 2024-05-23 16:34:44 +03:00
048eb314e6 fix install-hooks for tmux and zsh 2024-05-23 16:07:13 +03:00
ed9c18f116 feat(zsh): add calculator 2024-05-23 16:03:27 +03:00
906a276b5d feat(tmux): mappings 2024-05-23 10:49:52 +03:00
19a468e9d9 fix(tmux): mappings 2024-05-23 09:14:03 +03:00
6940a95f32 fix colors 2024-05-22 14:19:21 +03:00
6e543d48dd fix(tmux): mappings 2024-05-22 13:41:55 +03:00
cd88354c40 ref 2024-05-22 13:35:53 +03:00
f0945e885e fix typo 2024-05-22 13:30:57 +03:00
399ebd4347 fix(tmux+zsh): open remote tmux 2024-05-22 13:11:30 +03:00
709c5b331b feat(git): diff aliases 2024-05-22 11:36:24 +03:00
bbfb01c66a style(nvim) 2024-05-22 11:15:35 +03:00
e16cd3874b style(nvim): cmdline in center 2024-05-22 11:05:33 +03:00
9b0769b2f3 ref(git): aliases a and s for stage and unstage files 2024-05-22 09:35:55 +03:00
8064f04385 feat(git): alias s for unstage files 2024-05-22 09:16:14 +03:00
ee2b3481cf systemd vnc unit 2024-05-21 23:59:24 +03:00
93249c69ee feat(tmux): run scripts mappings 2024-05-21 22:54:54 +03:00
d91fd1f033 ref(gitconfig) 2024-05-21 16:53:47 +03:00
fc146d28f0 style(fzf): pointer 2024-05-21 16:25:33 +03:00
71c6c3e733 feat(nvim): Telescope ignore files 2024-05-21 15:55:31 +03:00
ac58cb8e33 feat(nvim): prevent dot command to change cursor position 2024-05-21 15:15:17 +03:00
c7c9ccf5a8 ref(tmux) 2024-05-21 13:55:46 +03:00
6999fe2faa fix typo 2024-05-21 13:35:17 +03:00
1f059c6dc7 style+ref(tmux): options 2024-05-21 13:33:52 +03:00
0073a497af ref(tmux): mappings 2024-05-21 08:19:30 +03:00
969bce02d9 feat(tmux): mappings 2024-05-19 16:10:34 +03:00
2378ecee87 fix(tmux): fix swap pane mappings 2024-05-19 14:54:31 +03:00
ad425f8229 ref(tmux) 2024-05-17 13:40:49 +03:00
b6d0f27455 ref(tmux): centralize main pane 2024-05-17 13:21:50 +03:00
3641c722a2 feat(bash): add alias fastping 2024-05-17 13:05:05 +03:00
b9057172df feat(bash): add alias m 2024-05-17 11:31:43 +03:00
8b1c892172 add aliases 2024-05-16 14:22:23 +03:00
3eb7922926 ref(tmux): mappings 2024-05-16 13:36:25 +03:00
986303d858 ref(tmux): mappings 2024-05-16 13:13:16 +03:00
a8f8e8bad1 feat(tmux): mappings for rename windows and sessions 2024-05-16 11:27:15 +03:00
cc64d8a279 feat(tmux): i3wm like movings panes 2024-05-16 10:28:57 +03:00
5e8a282a01 feat(tmux): mappings 2024-05-16 08:56:05 +03:00
8b74abf6b8 fix(tmux): mappings 2024-05-16 08:49:04 +03:00
cffaeaec6c feat(tmux): mappings swap-pane 2024-05-15 16:59:32 +03:00
0a12479916 style(tmux): windows line 2024-05-15 16:40:39 +03:00
99cdd2219f feat(tmux): detach-on-destroy 2024-05-15 16:31:45 +03:00
9cabce08ad feat(tmux): mappings 2024-05-15 10:15:43 +03:00
b98b9ad2c1 feat(tmux): mappings 2024-05-15 10:02:11 +03:00
f49e733035 style(tmux) 2024-05-15 09:30:29 +03:00
abe09fec67 add(firefox): config 2024-05-15 08:53:32 +03:00
d2a3d91ba5 fix(tmux): mappings 2024-05-15 08:11:36 +03:00
00faaa9d54 style(tmux) 2024-05-14 16:18:07 +03:00
75a9a1002e feat(tmux): hook to rename window 2024-05-14 16:02:45 +03:00
233aac4ed9 fix(tmux): mappings to select windows 2024-05-14 16:00:42 +03:00
8a76c14441 fix(tmux) 2024-05-14 14:22:28 +03:00
a230843188 feat(tmux): repeat time 2024-05-14 14:12:33 +03:00
00f77b361b fix(tmux): fix swapping mappings 2024-05-14 11:52:56 +03:00
daf376980e style(zsh): selection color 2024-05-14 10:54:00 +03:00
93c171b765 feat(nvim): plugins 2024-05-14 10:32:36 +03:00
0926c60ee2 mappings(tmux): make tmux more i3wm like 2024-05-14 10:00:10 +03:00
69ed1d93d0 style(tmux) 2024-05-13 16:57:04 +03:00
fe7dac8e87 remove qiwi from funding 2024-05-13 16:36:50 +03:00
61d5871d04 feat(tmux): mappings 2024-05-13 15:26:58 +03:00
a9977e5b9e fix(tmux) 2024-05-13 15:21:10 +03:00
1c0dfeb470 feat(tmux): mappings 2024-05-13 11:37:51 +03:00
4cdccc56c5 fix(tmux) 2024-05-13 11:06:25 +03:00
59adddd4a6 fix(tmux) 2024-05-13 10:33:08 +03:00
6cef4e1023 style(tmux): colors 2024-05-13 09:38:18 +03:00
661df0ed20 feat(tmux): mappings 2024-05-12 20:08:25 +03:00
a6731998b1 feat(tmux): options 2024-05-11 23:02:41 +03:00
746bf59952 feat(tmux): mappings 2024-05-01 23:31:30 +03:00
861e9051ac feat(nvim): mappings to change colorschemes 2024-04-27 12:52:30 +03:00
0306fce08e ref(tmux-systemd-service) 2024-04-27 08:14:39 +03:00
e075ad79c7 style(tmux) 2024-04-26 09:06:16 +03:00
68ecd37fac edit(exports) 2024-04-26 08:22:50 +03:00
62d9cc825c feat(tmux): mappings 2024-04-25 11:46:14 +03:00
910fde9b06 feat(tmux): mappings 2024-04-25 10:28:46 +03:00
153499b787 fix(nvim) 2024-04-25 10:05:22 +03:00
5337863ed8 style(nvim): transparency 2024-04-25 09:39:54 +03:00
7dec95ba32 style(nvim): colorscheme 2024-04-25 09:29:18 +03:00
f9aeabd084 feat(nvim): plugins for todos 2024-04-25 09:12:14 +03:00
ddf28ab99e style(nvim) 2024-04-25 09:04:09 +03:00
898b5fea00 edit(tmux): start tmux in new session only if server running 2024-04-23 16:27:31 +03:00
3f9bae550d fix(colors): revert colors 2024-04-22 16:55:18 +03:00
348e8b0b9a fix(nvim): virtcolumn 2024-04-22 14:49:56 +03:00
86ad684503 ref(nvim) 2024-04-19 16:13:49 +03:00
2cf073c5c8 ref(nvim) 2024-04-19 15:48:24 +03:00
4fd17ccf0c refactor(nvim-plugins) 2024-04-19 15:13:24 +03:00
a3f20d2b04 ref(nvim) 2024-04-18 11:30:20 +03:00
970690d0f2 feat(nvim): add plugin refactoring 2024-04-18 10:27:11 +03:00
e0281b7ac0 nvim(lazy): improving performance 2024-04-18 09:54:41 +03:00
ac7a0df836 ref(nvim): move plugins 2024-04-18 09:22:18 +03:00
fa21763215 ref 2024-04-18 09:14:09 +03:00
d8fef7e944 fix(mdimage-plugin): change target dir 2024-04-17 14:19:21 +03:00
87904359ea fix(tmux): inherit env variables from client 2024-04-16 14:27:02 +03:00
83d1ec948a fix(tmux): check is server running before connecting 2024-04-16 13:31:32 +03:00
5d58745a09 feat(tmux): if ssh create new tmux session 2024-04-16 13:22:13 +03:00
035a006a72 docs 2024-04-16 09:32:42 +03:00
658ce5e5be feat(i3wm): mapping for sticky window 2024-04-15 13:34:02 +03:00
4db685b51f feat(tmux-mappings) 2024-04-15 12:55:02 +03:00
b7eee97b30 ref(zsh) 2024-04-15 12:49:37 +03:00
31a0733a06 feat(zsh-aliases) 2024-04-15 12:39:30 +03:00
59328fc061 feat(bash):aliases 2024-04-15 11:21:56 +03:00
1fe2f17c09 style(tmux) 2024-04-12 21:06:21 +03:00
72e0916480 feat(bash): add variable LESSOPEN 2024-04-12 19:31:03 +03:00
22d83b59cc feat(tmux-mappings) 2024-04-12 18:15:07 +03:00
0a047c707c fix(nvim-plugins) 2024-04-12 14:37:36 +03:00
588e3a5012 feat(nvim): add my plugins 2024-04-12 14:22:58 +03:00
931f3358b0 ref(nvim):mapping 2024-04-12 09:05:34 +03:00
74270c1516 feat(nvim+tmux): fetch and reload config 2024-04-12 08:50:16 +03:00
622e6b478e style(tmux) 2024-04-11 21:55:28 +03:00
16d5621a19 feat(tmux): mappings 2024-04-11 11:48:35 +03:00
d5ed2de48a style(tmux): borders 2024-04-11 11:23:58 +03:00
062a2f7935 style(tmux): disable transparent on inactive pane 2024-04-11 10:33:22 +03:00
f1251f6398 feat(aliases): add alias caps for toggle capslock 2024-04-11 08:29:57 +03:00
94413fc7ed feat(fzf): mappings 2024-04-10 19:24:58 +03:00
9e6630e4af edit(tmux): attach to sessions on start terminal 2024-04-10 19:00:33 +03:00
334641d263 ref(nvim) 2024-04-10 14:51:25 +03:00
1d390b22ae fix(zsh):O selection colors 2024-04-10 13:26:08 +03:00
3d42d8e975 style(alacritty) 2024-04-10 13:09:32 +03:00
58a794b26c style(nvim) 2024-04-10 11:25:55 +03:00
eb0650ad1a ref(gdbinit) 2024-04-10 11:16:47 +03:00
0a8cae743e feat(nvim): transparent theme 2024-04-10 10:29:36 +03:00
9d2cce2688 edit(ssh-config) 2024-04-09 15:33:54 +03:00
f06daf3bf9 feat(tmux): mappings 2024-04-09 09:49:13 +03:00
997e3b6177 feat(tmux): mappings 2024-04-08 15:44:55 +03:00
1c867c89b7 feat(tmux): decrease plugin popup size 2024-04-08 15:37:09 +03:00
758cbfb7a3 tmux aliases 2024-04-08 15:18:31 +03:00
76246af5d7 feat(git-aliases) 2024-04-08 13:51:17 +03:00
5649047f85 feat(tmux): mappings 2024-04-08 13:36:21 +03:00
fe959e5aa9 feat(fzf-mappings) 2024-04-08 12:11:30 +03:00
b9585c92d1 tmux 2024-04-08 09:21:23 +03:00
3e8302a38e feat(tmux):mappings 2024-04-08 08:46:11 +03:00
1fbc34084d style(tmux): centre statusline 2024-04-05 16:58:21 +03:00
5d337d97e4 feat(tmux): map v to toggle selection in copy mode 2024-04-05 11:34:59 +03:00
89978d3476 feat(tmux): add local specific config sourcing 2024-04-05 10:56:52 +03:00
21a3015948 ref(tmux-systemd-service) 2024-04-05 10:40:30 +03:00
7747600976 ref(tmux) 2024-04-05 09:38:53 +03:00
ec5b3a0e29 feat(tmux): mappings 2024-04-05 09:20:31 +03:00
c96fdfba56 ref(nvim-lualine) 2024-04-05 08:50:06 +03:00
9c5fc4147d style(tmux): statusline 2024-04-04 15:57:20 +03:00
1670acf5cc ref(tmux) 2024-04-04 15:26:58 +03:00
3b0dcbf597 style(tmux): statusline 2024-04-04 14:53:04 +03:00
004b85ef03 feat(tmux): temp session 2024-04-04 14:38:42 +03:00
7d8e1c3e22 style(nvim-lualine) 2024-04-04 13:03:45 +03:00
2ddc7c2f51 style(tmux); ref(bashfuncs) 2024-04-04 11:07:38 +03:00
57887a7c83 git aliases 2024-04-04 09:35:43 +03:00
b2e6b78f6e tmux mappings 2024-04-03 16:14:44 +03:00
54b7196f01 config file vim filetype hint 2024-04-03 15:48:30 +03:00
8920594210 nvim remove plugin 2024-04-03 15:40:01 +03:00
70e50a7a50 add tmux aliases 2024-04-03 14:59:12 +03:00
a3f7d765e9 ref(install-script): separate targets from main script 2024-04-03 14:50:55 +03:00
26b3f8f025 pacman.conf 2024-04-03 14:31:10 +03:00
e8082af9bd fix tmux default aliases 2024-04-03 14:27:16 +03:00
d09449411b add tmux systemd service 2024-04-03 14:20:21 +03:00
2b1aa6a84b add tmux systemd service 2024-04-03 14:07:25 +03:00
ff8840e687 add tmux systemd service 2024-04-03 14:02:16 +03:00
120f7fe29e add tmux systemd service 2024-04-03 13:59:43 +03:00
3e1ad38e3e add tmux systemd service 2024-04-03 13:35:57 +03:00
f4c88dc5e5 add tmux systemd service 2024-04-03 13:32:57 +03:00
8d0ffce762 ref tmux configs 2024-04-03 13:32:39 +03:00
7bb9a3ca97 tmux session 2024-04-03 11:35:59 +03:00
adb2c7713e vim plugin buffer_manager mappings 2024-04-03 11:10:43 +03:00
666a2109d1 vim plugin buffer_manager 2024-04-03 10:59:07 +03:00
8e1079a713 vim plugins 2024-04-03 10:38:12 +03:00
6b28c377c7 tmux statusline style 2024-04-03 10:07:10 +03:00
c170508a26 tmux add mapping 2024-04-03 10:05:34 +03:00
8e3d11b2c8 nvim lualine path style 2024-04-03 08:44:12 +03:00
27c6af704a nvim lualine style 2024-04-02 16:07:58 +03:00
1f521d0d64 tmux mappings 2024-04-02 15:41:55 +03:00
9ebad0abf1 tmux mappings, nvim mappings 2024-04-02 15:23:51 +03:00
ff697b350b tmux mappings 2024-04-02 14:13:35 +03:00
fb8fe48182 nvim lualine 2024-04-02 14:04:32 +03:00
ff3ff9548b tmux mappings 2024-04-02 13:16:44 +03:00
165bd86025 nvim add encodings 2024-04-01 11:21:09 +03:00
0898ac7a64 remove tmux mapping for ssh session 2024-03-31 02:25:16 +03:00
faba5b3530 tmux mappings ref 2024-03-31 02:00:59 +03:00
7c10f7b7f1 termux edit extra keys 2024-03-31 01:58:49 +03:00
0c19a113a4 termux add extra keys 2024-03-31 01:35:25 +03:00
05d9ab4025 install add recursive hooks executions 2024-03-31 00:40:48 +03:00
2609ff519e install tmux dependency for bash 2024-03-31 00:18:43 +03:00
793a649485 return autostart tmux session 2024-03-30 21:54:52 +03:00
cb5db2d90b tmux mappings toggling 2024-03-30 21:46:16 +03:00
faf7b8b68b tmux plugins 2024-03-30 21:04:05 +03:00
2a4b7b17d2 nvim russian mappings 2024-03-29 23:38:21 +03:00
dfb5b0ce28 tmux mappings 2024-03-29 21:00:44 +03:00
bc16de86b2 tmux add mapping 2024-03-29 20:49:49 +03:00
7942b79a61 bashrc exec tmux 2024-03-29 14:05:07 +03:00
5464256578 nvim change Ctrl+a to Space a to select all 2024-03-28 15:54:54 +03:00
b358f7e5bb remote tmux features 2024-03-28 15:24:26 +03:00
e83c2398ef i3 make alacritty always fullscreen 2024-03-28 14:56:22 +03:00
46c7edd703 tmux unbind some default mappings 2024-03-28 10:24:15 +03:00
d85fd48c1c tmux mappings 2024-03-28 10:20:50 +03:00
4212284e94 remove tmux from autostart by ssh and tty2. (Its always now) 2024-03-27 22:36:05 +03:00
4c4622a764 tmux activity detector in statusline 2024-03-27 21:56:59 +03:00
2da50c955b Merge branch 'master' of github.com:TheK4n/dotfiles 2024-03-27 21:54:31 +03:00
5f7473dd65 tmux fix session manager 2024-03-27 21:54:25 +03:00
0016fb1af2 tmux style ref 2024-03-27 15:28:56 +03:00
1d4cc70783 tmux resize mappings 2024-03-27 02:44:44 +03:00
b72c9b2792 tmux config path 2024-03-27 02:12:10 +03:00
fbe838a2a9 tmux config 2024-03-27 02:01:00 +03:00
790e2a871a tmux refactor 2024-03-27 00:54:29 +03:00
70c7563638 tmux fix escape delay 2024-03-27 00:10:47 +03:00
1f3cdc9ff3 tmux mappings 2024-03-25 16:26:35 +03:00
c096e3d181 fix LD_LIBRARY_PATH var 2024-03-25 14:22:14 +03:00
3680649874 fix(install-script): fix tmux path config 2024-03-25 10:54:23 +03:00
01f1db65df fix(nvim): harpoon mappings 2024-03-23 15:56:29 +03:00
58c489c3e9 tmux comfy mappings 2024-03-23 01:22:29 +03:00
be4bbf5123 tmux more comfy binds 2024-03-22 23:44:33 +03:00
e3494dcc74 zprofile checks 2024-03-22 23:26:35 +03:00
6787c56f33 sh history 2024-03-22 23:22:47 +03:00
5d8c1f4432 tmux: change configfile path 2024-03-21 21:43:17 +03:00
2905817df9 tmux session template changed 2024-03-21 21:28:37 +03:00
4fc2971dde upd(nvim.harpoon): add description to mappings 2024-03-21 21:10:41 +03:00
60e4c63d78 tmux sessions manager 2024-03-21 21:03:04 +03:00
4a9f0c303d nvim: harpoon, tmux: session manager 2024-03-21 19:57:17 +03:00
f7f7f2bda5 upd(bash.showtips): show tips excluding trailing newline 2024-03-21 15:52:45 +03:00
d537ddb6b3 fix ssht and sshx functions 2024-03-21 14:57:38 +03:00
c8c32651e9 i3 mouse warping 2024-03-21 10:19:26 +03:00
50c1648df5 LESS options 2024-03-20 16:39:21 +03:00
fcc979574c vim mappings run scripts 2024-03-20 15:15:45 +03:00
072766cee8 bash alias 2024-03-19 14:41:11 +03:00
de00dd3107 ssh aliases 2024-03-15 16:51:51 +03:00
7cf25738cc nvim telescope mappings 2024-03-15 16:10:05 +03:00
181303570e nvim alias 2024-03-14 16:31:33 +03:00
d37073a391 fzf mappings 2024-03-13 11:45:33 +03:00
e28af63738 git aliases 2024-03-13 11:23:22 +03:00
e39d46ecfa nvim fix completion order 2024-03-13 10:27:45 +03:00
f18321abe6 bash: prompt always in bottom 2024-03-13 10:11:41 +03:00
d2a57b6f56 zsh: prompt in bottom 2024-03-13 10:08:12 +03:00
e98eb3afcb git diff 2024-03-12 16:33:25 +03:00
f1b9d3c56d tmux alias 2024-03-10 23:17:54 +03:00
c55b7f8745 ref skel 2024-03-07 11:22:31 +03:00
f414ec7d83 tmux status 2024-03-06 16:52:45 +03:00
949598cdf2 tmux status line 2024-03-06 16:49:45 +03:00
2bd34be8e2 return q alias behavior 2024-03-06 15:23:30 +03:00
ae27d0511b zsh fix viins mode 2024-03-06 15:18:38 +03:00
37eb4339fe alias q to detach tmux 2024-03-06 15:13:47 +03:00
37c0ef2741 tmux add alias to detach 2024-03-06 15:09:58 +03:00
75d64b1e33 man width 2024-03-06 09:48:20 +03:00
c58b581e31 some 2024-03-06 09:13:03 +03:00
154d778f7c feat(zsh): if tmux session ask to exit 2024-03-05 23:24:42 +03:00
933b1fc1d8 populate root gitignore list 2024-03-04 13:05:31 +03:00
052a265534 remove npm-global path 2024-03-01 15:41:53 +03:00
713b701101 add terminal-colors 2024-02-28 15:42:14 +03:00
cc809c67ab fix nvim run script by filetype for manpage 2024-02-28 09:09:06 +03:00
3161685f19 nvim fix mkview 2024-02-28 08:50:58 +03:00
4712edd3bd nvim(plug): add plugin 2024-02-25 17:24:43 +03:00
cfe87ecfae typo(nvim): map run script 2024-02-20 10:53:39 +03:00
0813bf2db6 upd(nvim): add plugin rainbow brackets 2024-02-20 09:46:18 +03:00
7f36c026c0 git alias 2024-02-19 15:21:25 +03:00
1fedc91252 fix zshenv 2024-02-19 08:50:54 +03:00
90c92cd10a less params 2024-02-19 08:39:40 +03:00
76dbdcfbcf upd(nvim): add alias for cpp 2024-02-17 15:01:31 +03:00
273ef5e4ad alias vi=nvim 2024-02-17 13:14:18 +03:00
14c5f4d6c7 fix(nvim p mapping) 2024-02-16 16:25:54 +03:00
4d434ccc80 upd mcd alias 2024-02-16 14:55:44 +03:00
433ae456ae upd zprofile for tmux 2024-02-16 14:16:02 +03:00
d8e6a6ac08 fix ssh tmux 2024-02-16 13:52:52 +03:00
0a8ac21fac upd: gitignore 2024-02-16 08:39:37 +03:00
8f786b2a1a add LD_LIBRARY_PATH VAR 2024-02-16 08:19:35 +03:00
b2c7d15af0 pum pum pum pum 2024-02-14 14:12:28 +03:00
e084fe1f77 zsh alias 2024-02-14 09:49:06 +03:00
cd1cebc84d nvim refactor keymap by filetype logic 2024-02-14 09:23:28 +03:00
236 changed files with 7588 additions and 2947 deletions

2
.github/FUNDING.yml vendored
View File

@ -1,2 +0,0 @@
custom: ['https://qiwi.com/n/THREA793', 'https://www.blockchain.com/btc/address/bc1qgh2fyzqgyxgpstsmqwxyev2luzx7hwc4ezq03u', 'https://www.blockchain.com/eth/address/0x01931cf08BbbA74629c232DbEDB390798cDD121f']

30
.gitignore vendored
View File

@ -3,11 +3,15 @@ home/user/.config/zsh/plugins/*
home/user/.config/nvim/plugin
home/user/.config/nvim/spell
home/user/.config/bash/bashrc.d/*
!home/user/.config/bash/bashrc.d/.gitkeep
home/user/.config/zsh/zshrc.d/*
!home/user/.config/zsh/zshrc.d/.gitkeep
!home/user/.config/zsh/zshrc.d/00_zhashd.sh
home/user/.zshenv.d/*
!home/user/.zshenv.d/.gitkeep
home/user/.config/zsh/.zcalc_history
.zcompdump
*.zwc
home/user/.ssh/*
@ -23,3 +27,23 @@ lazy-lock.json
home/user/.config/ranger/plugins
home/user/.termux/shell
home/user/.config/tmux/plugins
home/user/.config/tmux/local.conf
home/user/.tmux/*
!home/user/.tmux/dotfiles
!home/user/.tmux/sandbox
!home/user/.tmux/ssh
!home/user/.tmux/example-background-job
!home/user/.tmux/system-update
!home/user/.tmux/music
!home/user/.tmux/landing
home/user/.config/git/local
home/user/.config/sway/config.d/*
!home/user/.config/sway/config.d/.gitkeep
home/user/.config/sway/variables.d/*
!home/user/.config/sway/variables.d/.gitkeep

View File

@ -20,14 +20,13 @@
## Project description
Config files for:
* bash
* zsh
* alacritty
* tmux
* ssh
* git
* ranger
* i3
* sway
* vim
* nvim
@ -37,20 +36,33 @@ Config files for:
<img src=".assets/prompt.png" alt="Prompt">
</p>
You can add your files to the `~/.config/bash/bashrc.d` directory for bash or `~/.config/zsh/zshrc.d` directory for zsh so that they automatically run in ascending order when you open a terminal.\
You can add your files to the `~/.config/zsh/zshrc.d` directory for zsh so
that they automatically run in ascending order when you open a terminal.\
Example:\
`~/.config/bash/bashrc.d/01_hello.sh`
```bash
`~/.config/zsh/zshrc.d/01_hello.sh`
```sh
echo "Hello $USER!"
```
<a id="chapter-1"></a>
## Installation
```bash
```sh
git clone https://github.com/TheK4n/dotfiles
cd dotfiles
stow -R --target ~/.config home/user/.config
./install zsh nvim ...
```
## Installation script
Per-user dotfiles "package" manager
### Features
1. Installing files from dotfiles/home/user to $HOME
2. Uninstalling installed files
3. Check installation integrity
4. Transaction based installation
5. Does not overwrite your configs
<h1 align="center"><a href="#top"></a></h1>

30
TARGETS.sh Normal file
View File

@ -0,0 +1,30 @@
readonly TARGETS="\
colors:.config/terminal-colors.d
less:.lesskey .infokey
tmux:.config/tmux .tmux .config/systemd/user/tmux.service %copypasta
t:
note:
psw:
zsh:.config/zsh .zshenv .zshenv.d .inputrc %copypasta %colors
alacritty:.config/alacritty
nvim:.config/nvim .editorconfig .editrc .local/bin/vim_askpass_helper
ssh:
git:.config/git .local/bin/ga
ranger:.config/ranger
gpg:
sway:.config/sway .config/i3blocks .config/mako .config/mimeapps.list .config/rofi .local/bin/screenshot .config/swaylock .Xresources .local/bin/slm .local/bin/slm_rofi .local/bin/firefox_media %copypasta %pomodoro
pomodoro:
bat:.config/bat
font:
termux:.termux
arch:
psql:.psqlrc
docker:.docker/cli-plugins
ipython:.ipython/profile_default/ipython_config.py
gdb:.config/gdb
sandbox:
chromium:.local/bin/pchromium .local/share/applications/pchromium.desktop
scripts:.local/bin/httpstatus .local/bin/apco .local/bin/bb .local/bin/emoji .local/bin/mksh .local/bin/nato .local/bin/pastas .local/bin/timer .local/bin/tryna .local/bin/trynafail .local/bin/bak .local/bin/cleanup-directory .local/bin/cleanup-directory-log .local/bin/cleanup-downloads .local/bin/gobuild .local/bin/json .local/bin/open .local/bin/py .local/bin/sha .local/bin/showtips .local/bin/weather .local/bin/radio .local/bin/rmt .local/bin/scratch .local/bin/wake .local/bin/myip .local/bin/genpass .local/bin/gensalt .local/bin/django-create-project .local/bin/mirror-site .local/bin/split-file .local/bin/extract .local/bin/destroy .local/bin/serveit .local/bin/highlight-logs %copypasta
music:.local/bin/mpv-service.sh .config/systemd/user/mpv.service .local/bin/player
copypasta:.local/bin/copy .local/bin/pasta
all:%less %t %note %tmux %zsh %nvim %git"

View File

@ -1,6 +0,0 @@
Section "Device"
Identifier "Default nvidia Device"
Driver "nvidia"
Option "ForceFullCompositionPipeline" "true"
EndSection

3
etc/cron.hourly/99beep Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
beep -f 4000 -l 150 -D 150 -n -f 4000 -l 150

View File

@ -1,5 +0,0 @@
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc

View File

@ -1,82 +0,0 @@
if [ -x "$(which 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 ls='ls --color=auto'
fi
alias l.='ls -AF --ignore="*"'
alias ll='ls -lhF'
alias la='ls -AF'
alias lt='du -sh * | sort -h'
alias rm='rm -ir'
alias mkdir='mkdir -pv'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../..'
alias .3='cd ../../..'
alias path='echo -e ${PATH//:/\\n}'
# shorts
alias c='clear'
alias q='exit'
alias h='history | less'
alias j='jobs -l'
alias hg='history|grep'
# utils
alias sha='shasum -a 256'
alias getpass="openssl rand -base64 12"
alias diff='colordiff'
alias mount='mount | column -t'
alias upgrade_all='sudo apt update && sudo apt upgrade'
alias tar-it='tar -czf "../${PWD##*/}.tar.gz" .'
# time
alias now='date +"%T"'
alias nowdate='date +"%d-%m-%Y"'
# vim
alias vi=vim
alias svi="sudo -E vim"
alias vis='vim "+set si"'
alias edit=vim
# net
alias ports='netstat -tulanp'
alias wget='wget -c'
alias ping='ping -c 5'
alias myip='curl ipinfo.io/ip'
# starts web server
alias www='python3 -m http.server 8000'
# hard
alias reboot='sudo /sbin/reboot'
alias poweroff='sudo /sbin/poweroff'
alias halt='sudo /sbin/halt'
alias shutdown='sudo /sbin/shutdown'
alias meminfo='free -mlth'
alias psmem='ps auxf | sort -nr -k 4 | less -R'
alias wake="echo $'\a'" # command; wake &
alias music='mplayer -shuffle ~/Music/*'
# initializes first ./*/*/activate
alias ve='python3 -m virtualenv venv && . venv/bin/activate'
alias vd='deactivate'
PS1="\n┌──(\u@\H)-[\w]\n└─\$ "

View File

@ -1,55 +0,0 @@
set number "номер строки
set ruler
set laststatus=2
set encoding=utf-8 "Ставит кодировку UTF-8
set nocompatible "Отключает обратную совместимость с Vi
syntax on "Включает подсветку синтаксиса
set expandtab
set smarttab
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set smartindent
set nowrap
set noerrorbells
set novisualbell
set showcmd
set showtabline=2
set ignorecase
set smartcase
set hlsearch
set incsearch
set mousehide
set mouse=a
set colorcolumn=120
set scrolloff=7
set virtualedit=onemore " allow for cursor beyond last character
" f4 toggle hlsearch
nnoremap <F4> :set invhlsearch<CR>
" navigation on russian
nmap о j
nmap л k
nmap р h
nmap д l
nmap ш i
nmap ф a
nmap в d
set ffs=unix,dos,mac
set encoding=utf8
" tabs
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
nnoremap <C-h> :tabprevious<CR>
nnoremap <C-l> :tabnext<CR>

View File

@ -1,2 +0,0 @@
chmod 751 /home/user
chmod 1777 /home/user/Public

View File

View File

@ -0,0 +1,3 @@
chmod 751 "${HOME}"
mkdir "${HOME}/public"
chmod 1777 "${HOME}/public"

View File

@ -0,0 +1,4 @@
[Service]
Type=simple
ExecStart=
ExecStart=-/sbin/agetty --noreset --noclear --autologin thek4n - ${TERM}

View File

@ -1,3 +0,0 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- %%USER%%' --noclear --skip-login - $TERM

View File

@ -1 +0,0 @@
../getty@tty1.service.d/skip-username.conf

View File

@ -0,0 +1,3 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- %%USER%%' --noclear --skip-login - $TERM

4
etc/update-motd.d/10-figlet Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
echo
figlet -ct -f banner "welcome mr.kan"
echo

View File

@ -0,0 +1,10 @@
#!/bin/sh
echo "wg0 status: $(systemctl is-active wg-quick@wg0.service)"
if ! systemctl is-active wg-quick@wg0.service 1>/dev/null; then
#shellcheck disable=SC2016
echo 'Executing this command may fix wireguard: "sudo apt update && sudo apt install linux-headers-$(uname -r) && sudo reboot"'
fi
echo

View File

@ -1,7 +0,0 @@
#!/usr/bin/env bash
# .bashrc by TheK4n
# https://github.com/TheK4n/dotfiles
if [ -f "$HOME/.config/bash/sourcer" ]; then
source $HOME/.config/bash/sourcer
fi

View File

@ -1,4 +1,3 @@
live_config_reload = true
[env]
TERM = "xterm-256color"
@ -15,17 +14,25 @@ action = "SpawnNewInstance"
key = "Return"
mods = "Control|Shift"
[[keyboard.bindings]]
action = "None"
key = "Space"
mods = "Control|Shift"
[mouse]
hide_when_typing = true
[scrolling]
history = 100000
history = 3000
multiplier = 3
[window]
dynamic_title = true
opacity = 0.83
opacity = 0.92
[window.dimensions]
columns = 150
lines = 42
[general]
live_config_reload = true

View File

@ -1,119 +0,0 @@
_d() { true ; }
_f() { true ; }
# colors
if [ -x "$(command -v dircolors)" ]; then
export LS_OPTIONS="--color=auto"
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias grep='grep $LS_OPTIONS'
alias fgrep='fgrep $LS_OPTIONS'
alias ls='ls -v $LS_OPTIONS'
fi
alias l.='ls -AFv --ignore="*"'
alias ll='ls -lhFv'
alias la='ls -AFv'
alias lla='ls -lhFAv'
alias ll.='ls -lhFAv --ignore="*"'
alias lsl='_d() { ls -lhFA --color=always "${1:-.}" | $PAGER ; }; _d'
alias _='sudo'
alias root='sudo -i TMOUT=450'
alias rm='rm -Ivr --one-file-system'
alias mkdir='mkdir -pv'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .3='cd ../../..'
alias cl='_d() { cd "${1:-$HOME}" && ls; }; _d'
alias wp='cd $WORKING_PROJECT'
alias path='echo -e ${PATH//:/\\n}'
# shorts
alias c='clear'
alias q='exit 0'
alias h='history 0'
alias j='jobs -l'
# utils
alias sha='(shasum -a 256 | head -c 64)'
alias genpass="openssl rand -base64 12"
alias gensalt="dd if=/dev/urandom count=16 2>/dev/null | sha256sum | head -c 64"
alias diff='colordiff'
alias tar-it='tar -czf "../${PWD##*/}.tar.gz" .'
# time
alias now='date +"%T"'
alias nowdate='date +"%d-%m-%Y"'
alias cal='cal -m'
# vim
alias svi="sudo -E nvim"
# net
alias ports='ss -tlnp'
alias wget='wget -c'
alias myip='curl ipinfo.io/ip'
alias sprunge='curl -F "sprunge=<-" http://sprunge.us 2>/dev/null' # CLI pastebin
alias weather='(curl -4 wttr.in/$(cat) 2>/dev/null | head -n -1) <<<'
# starts web server
alias www='python3 -m http.server 8080'
# hardware
alias reboot='sudo /sbin/reboot'
alias poweroff='sudo /sbin/poweroff'
alias suspend='sudo systemctl suspend'
alias halt='sudo /sbin/halt'
alias shutdown='sudo /sbin/shutdown now'
alias meminfo='free -mlth'
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
alias wake='((speaker-test -t sine -f 400 &>/dev/null)& local pid=$! ;sleep 0.2s; kill -9 $pid) &>/dev/null'
elif [[ "$OSTYPE" == "linux-android"* ]]; then
alias wake='termux-notification --sound --vibrate 500,1000,200'
fi
# python
alias pipir='python3 -m pip install -r requirements.txt'
alias pipar='python3 -m pip freeze > requirements.txt'
alias vd='deactivate'
# git
alias watch-diff='watch --color "git diff --color=always"'
# docker
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'
alias drmc='docker container prune'
alias drmi='docker image prune'
# clipboard
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
if [[ -n "$DISPLAY" ]]; then
alias copy='xclip -selection clipboard -i'
alias paste='xclip -selection clipboard -o'
else
alias copy='read -rd "EOF" TTYCLIPBOARD'
alias paste='echo "$TTYCLIPBOARD"'
fi
elif [[ "$OSTYPE" == "linux-android"* ]]; then
alias copy='termux-clipboard-set'
alias paste='termux-clipboard-get'
elif [[ "$OSTYPE" == "darwin" ]]; then
alias copy='pbcopy'
alias paste='pbpaste'
fi
alias black='convert canvas:none PNG:- | feh -YF -'

View File

@ -1,12 +0,0 @@
_workon() {
local cur prev envs
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
envs=$(ls /opt/pythonenv/)
COMPREPLY=( $(compgen -W "${envs}" -- ${cur}) )
}
complete -F _workon workon

View File

@ -1,35 +0,0 @@
umask 022
export EDITOR="nvim"
export VISUAL="nvim"
export PAGER="less"
export LESS="-nCMiSR -# 1 -+X -+F"
export CDPATH=:~:~/code
export HISTSIZE=10000
export HISTFILESIZE=10000
export HISTCONTROL=ignoreboth:erasedups
export HISTTIMEFORMAT="%F %T "
export HISTIGNORE="&:l[lsa\.]:[bf]g:exit:q:clear:c:history:h"
export BROWSERCLI=w3m
test -z "$BROWSER" && export BROWSER=firefox
if [ -d "$HOME/.local/bin" ] ; then
export PATH="$HOME/.local/bin:$PATH"
fi
if [ -d "$HOME/.npm-global/bin" ] ; then
export PATH="$HOME/.npm-global/bin:$PATH"
fi
for TMPDIR in "$TMPDIR" "$TMP" /tmp /var/tmp
do
test -d "$TMPDIR" && break
done
export TMPDIR

View File

@ -1,224 +0,0 @@
_sod() {
if [ -d "$1" ] && [ -n "$(ls "$1")" ]; then
for FILENAME in $(ls "$1" | sort -n)
do
source "$1/$FILENAME"
done
fi
}
lt() {
du -h "${1:-.}" 2>/dev/null | sort -h | tac
}
destroy() {
test -n "$1" || return 1
test -e "$1" || return 1
echo -n "Sure want to destroy file '$1' with size $(du -hs "$1" | awk '{printf $1}') [y/N] "
read -r response
[[ $response == [yY] ]] && shred -zun 25 "$1"
}
workon() {
source /opt/pythonenv/"${1:-$(basename $PWD)}"/bin/activate
}
py() {
if [[ -z "$@" && -x "$(command -v ipython 2>/dev/null)" ]]; then
ipython -i -c "q = exit"
else
python3 $@
fi
}
ve() {
python3 -m virtualenv "${1:-venv}" && . "${1:-venv}/bin/activate"
}
va() {
local activate_venv
if [ -f "./venv/bin/activate" ]; then
source "./venv/bin/activate"
return 0
fi
activate_venv="$(find -P . -maxdepth 3 -type f -wholename '*/bin/activate' | sort | head -n 1)"
if [ -n "$activate_venv" ]; then
source "$activate_venv"
return 0
else
echo "va: error: virtual environment not found, use python3 -m virtualenv venv" >&2
return 1
fi
}
extract() {
if [ -z "$1" ]; then # if string non-zero
# display usage if no parameters given
echo "extract: error: usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
return 2
fi
if ! [ -f "$1" ]; then # if file not exist
echo "extract: error: '$1' file does not exist" >&2
return 1
fi
local NAME
NAME=${1%%.*} # removes extension from filename
if [ -e "$NAME" ]; then
echo "extract: error: '$NAME' exists" >&2
return 1
fi
mkdir "$NAME" && cd "$NAME" || return 1
case $1 in
*.tar.bz2) tar xjf ../"$1" ;;
*.tar.gz) tar xzf ../"$1" ;;
*.tar.xz) tar xJf ../"$1" ;;
*.lzma) unlzma ../"$1" ;;
*.bz2) bunzip2 ../"$1" ;;
*.rar) unrar x -ad ../"$1" ;;
*.gz) gunzip ../"$1" ;;
*.tar) tar xf ../"$1" ;;
*.tbz2) tar xjf ../"$1" ;;
*.tgz) tar xzf ../"$1" ;;
*.zip) unzip ../"$1" ;;
*.Z) uncompress ../"$1" ;;
*.7z) 7z x ../"$1" ;;
*.xz) unxz ../"$1" ;;
*.exe) cabextract ../"$1" ;;
*) echo "extract: error: '$1' - unknown archive method" >&2 ;;
esac
cd ..
}
mcd() {
if [ -z "$1" ]; then
cd "$(mktemp -d)"
else
mkdir -p "$1" && cd "$1"
fi
}
# toggle wireguard vpn with interface /etc/wireguard/wg0.conf
# to allow sudo user toggle vpn without password:
## sudo groupadd wireguard
## sudo usermod -aG wireguard $USER
vpn() {
local STATUS SERVICE CONFIG CONFIGFILE
CONFIG="${1:-wg0}"
CONFIGFILE="/etc/wireguard/$CONFIG.conf"
test -e "$CONFIGFILE" || (echo "Config '$CONFIGFILE' not exists" >&2; return 1) && (
SERVICE="wg-quick@$CONFIG.service"
systemctl --quiet is-active "$SERVICE" && \
(sudo systemctl stop "$SERVICE" && echo DOWN) || \
(sudo systemctl start "$SERVICE" && ip -br a | grep "$CONFIG" | awk '{print $1":\t"$3}')
)
}
toggle-ssh-proxy() {
SSH_PROXY_CONTROL_FILE="$XDG_RUNTIME_DIR/ssh_$1_proxy.control"
if [ -z "$1" ]; then
echo "Proxy ssh server hostname not specified" 1>&2
return 1
fi
if [ -e "$SSH_PROXY_CONTROL_FILE" ]; then
unset {http,https,ftp,rsync,no}_proxy
ssh -S "$SSH_PROXY_CONTROL_FILE" -O exit "$1"
unset SSH_PROXY_PID
echo "Disabled"
else
ssh -nCTN -S "$SSH_PROXY_CONTROL_FILE" -D 1080 "$1"
export {http,https,ftp,rsync}_proxy="socks5://127.0.0.1:1080" && \
export no_proxy="localhost,127.0.0.1/8,localaddress,.localdomain.com,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12"
echo "Enabled"
fi
}
open() {
test -e $1 || return 1
nohup xdg-open $1 1>/dev/null 2>&1 &
}
split-file() {
test -e "$1" || return 1
local _size="${2:-1G}"
if [ -d "$1" ]; then
(mkdir "$1.tar.gz.splitted" && cd "$1.tar.gz.splitted" && tar -cz "../$1" | split -d -b "$_size")
else
(mkdir "$1.splitted" && cd "$1.splitted" && split -d -b "$_size" "../$1")
fi
}
json() {
if [ -t 0 ]; then # argument
python -m json.tool <<< "$*"
else # pipe
python -m json.tool
fi
}
_get_full_file_extension() {
local filename
filename=$(basename "$1")
if [ "${filename:0:1}" = "." ]; then
filename="${filename:1}"
fi
echo ${filename#*.}
}
rmt() {
local TRASH
TRASH=~/.trash
local filename
for filename in $*
do
local filename_out_path="${TRASH}$(realpath "$filename")"
mkdir -p "$(dirname "$filename_out_path")"
mv "$filename" "${filename_out_path}_$(date +%s)"
done
}
showtips() {
TIPS_DIR="$HOME/.tips"
if [ ! -d "$TIPS_DIR" ]; then
mkdir "$TIPS_DIR" 2>/dev/null
git init "$TIPS_DIR"
fi
cat "$TIPS_DIR"/* 2>/dev/null
return 0
}
most-often-commands() {
history 0 | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn
}
# calculator
= () {
echo "$*" | bc -l
}
# Disable tmux on remote machine
ssht() {
ssh -t "$1" 'TMUX=NO $SHELL -l'
}

View File

@ -1,94 +0,0 @@
parse_git_branch() {
if ! [ -x "$(command -v git)" ]; then
return
fi
local branch status
# current branch
branch="$(git branch --show-current 2> /dev/null)"
# current status
# M = modified
# A = added
# D = deleted
# R = renamed
# C = copied
# U = updated but unmerged
status="$(git status -s 2>/dev/null | cut -c 1 | sort -u | tr -d " \n?")"
if [ -n "$status" ]; then
status="-[$status]"
fi
if [[ -n "$branch" ]]; then
echo "($branch)$status"
fi
}
virtualenv_info() {
# Get Virtual Env
if [[ -n "$VIRTUAL_ENV" ]]; then
# Strip out the path and just leave the env name
echo "($(basename "$VIRTUAL_ENV"))"
fi
}
rightprompt()
{
if [[ $1 -ne 0 ]]; then
printf "%*s" $COLUMNS "$1 "
fi
}
export PROMPT_COMMAND=__prompt_command
__prompt_command() {
local EXIT=${PIPESTATUS[-1]}
close_color='\[\e[m\]'
red_color='\[\033[1;31m\]'
prompt_color='\[\033[;32m\]'
info_color='\[\033[1;34m\]'
prompt_symbol='@'
end_symbol='$'
if [ "$EUID" -eq 0 ]; then # Change prompt colors and symbols for root user
prompt_color='\[\033[;94m\]'
info_color='\[\033[1;31m\]'
end_symbol='#'
fi
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
prompt_symbol='📡'
fi
export VIRTUAL_ENV_DISABLE_PROMPT=1
local VENV_ BRANCH_ TERMINAL_NAME
VENV_="\$(virtualenv_info)"
BRANCH_="\$(parse_git_branch)"
TERMINAL_NAME=${0%%/*}
TERMINAL_NAME="\[\e]2;${TERMINAL_NAME^^}\a\]"
if [ "$EXIT" != 0 ]; then
PS1="$TERMINAL_NAME\n$prompt_color┌─${VENV_}─($close_color$info_color\u$prompt_symbol\H$close_color$prompt_color)-[$close_color\w$prompt_color]$close_color $red_color${BRANCH_}$close_color\n\[$(tput sc; rightprompt $EXIT; tput rc)\]$prompt_color└─$close_color$info_color$end_symbol$close_color "
else
PS1="$TERMINAL_NAME\n$prompt_color┌─${VENV_}─($close_color$info_color\u$prompt_symbol\H$close_color$prompt_color)-[$close_color\w$prompt_color]$close_color $red_color${BRANCH_}$close_color\n$prompt_color└─$close_color$info_color$end_symbol$close_color "
fi
PS2="> "
}

View File

@ -1,12 +0,0 @@
## Misc
shopt -s histappend ## Appends hist on exit
shopt -s cmdhist ## Save multi-line hist as one line
shopt -s checkwinsize ## Update col/lines after commands
### Completion
shopt -s cdspell ## Fixes minor spelling errors in cd paths
shopt -s no_empty_cmd_completion ## Stops empty line tab comp
shopt -s dirspell 2>/dev/null ## Tab comp can fix dir name typos
bind '"\e."':yank-last-arg

View File

@ -1,19 +0,0 @@
_so() {
[ -r "$1" ] && [ -f "$1" ] && source "$1"
}
if [[ $0 == *bash ]]; then
_so "$HOME/.config/bash/export"
_so "$HOME/.config/bash/shopt"
fi
if [[ $- == *i* ]]; then
_so "$HOME/.config/bash/prompt"
_so "$HOME/.config/bash/aliases"
_so "$HOME/.config/bash/functions"
_so "$HOME/.config/bash/completion"
_so "$HOME/.config/bash/hosts/$HOSTNAME"
fi
_sod "$HOME/.config/bash/bashrc.d"

View File

@ -196,10 +196,10 @@ define flags
# ZF (zero) flag
if (($eflags >> 6) & 1)
printf "Z "
set $_zf_flag = 1
set $_zf_flag = 1
else
printf "z "
set $_zf_flag = 0
set $_zf_flag = 0
end
if (($eflags >> 4) & 1)
printf "A "
@ -209,18 +209,18 @@ define flags
# PF (parity) flag
if (($eflags >> 2) & 1)
printf "P "
set $_pf_flag = 1
set $_pf_flag = 1
else
printf "p "
set $_pf_flag = 0
set $_pf_flag = 0
end
# CF (carry) flag
if ($eflags & 1)
printf "C "
set $_cf_flag = 1
set $_cf_flag = 1
else
printf "c "
set $_cf_flag = 0
set $_cf_flag = 0
end
printf "\n"
end
@ -419,11 +419,11 @@ define reg
echo \033[0m
end
# call smallregisters
smallregisters
smallregisters
# display conditional jump routine
if ($64BITS == 1)
printf "\t\t\t\t"
end
if ($64BITS == 1)
printf "\t\t\t\t"
end
dumpjump
printf "\n"
end
@ -434,53 +434,53 @@ end
define smallregisters
if ($64BITS == 1)
#64bits stuff
# from rax
set $eax = $rax & 0xffffffff
set $ax = $rax & 0xffff
set $al = $ax & 0xff
set $ah = $ax >> 8
# from rbx
set $bx = $rbx & 0xffff
set $bl = $bx & 0xff
set $bh = $bx >> 8
# from rcx
set $ecx = $rcx & 0xffffffff
set $cx = $rcx & 0xffff
set $cl = $cx & 0xff
set $ch = $cx >> 8
# from rdx
set $edx = $rdx & 0xffffffff
set $dx = $rdx & 0xffff
set $dl = $dx & 0xff
set $dh = $dx >> 8
# from rsi
set $esi = $rsi & 0xffffffff
set $si = $rsi & 0xffff
# from rdi
set $edi = $rdi & 0xffffffff
set $di = $rdi & 0xffff
# from rax
set $eax = $rax & 0xffffffff
set $ax = $rax & 0xffff
set $al = $ax & 0xff
set $ah = $ax >> 8
# from rbx
set $bx = $rbx & 0xffff
set $bl = $bx & 0xff
set $bh = $bx >> 8
# from rcx
set $ecx = $rcx & 0xffffffff
set $cx = $rcx & 0xffff
set $cl = $cx & 0xff
set $ch = $cx >> 8
# from rdx
set $edx = $rdx & 0xffffffff
set $dx = $rdx & 0xffff
set $dl = $dx & 0xff
set $dh = $dx >> 8
# from rsi
set $esi = $rsi & 0xffffffff
set $si = $rsi & 0xffff
# from rdi
set $edi = $rdi & 0xffffffff
set $di = $rdi & 0xffff
#32 bits stuff
else
# from eax
set $ax = $eax & 0xffff
set $al = $ax & 0xff
set $ah = $ax >> 8
# from ebx
set $bx = $ebx & 0xffff
set $bl = $bx & 0xff
set $bh = $bx >> 8
# from ecx
set $cx = $ecx & 0xffff
set $cl = $cx & 0xff
set $ch = $cx >> 8
# from edx
set $dx = $edx & 0xffff
set $dl = $dx & 0xff
set $dh = $dx >> 8
# from esi
set $si = $esi & 0xffff
# from edi
set $di = $edi & 0xffff
# from eax
set $ax = $eax & 0xffff
set $al = $ax & 0xff
set $ah = $ax >> 8
# from ebx
set $bx = $ebx & 0xffff
set $bl = $bx & 0xff
set $bh = $bx >> 8
# from ecx
set $cx = $ecx & 0xffff
set $cl = $cx & 0xff
set $ch = $cx >> 8
# from edx
set $dx = $edx & 0xffff
set $dl = $dx & 0xff
set $dh = $dx >> 8
# from esi
set $si = $esi & 0xffff
# from edi
set $di = $edi & 0xffff
end
end
@ -674,15 +674,15 @@ define ddump
else
printf "[0x%04X:0x%08X]", $ds, $data_addr
end
echo \033[34m
printf "------------------------"
echo \033[34m
printf "------------------------"
printf "-------------------------------"
if ($64BITS == 1)
printf "-------------------------------------"
end
end
echo \033[1;34m
printf "[data]\n"
echo \033[1;34m
printf "[data]\n"
echo \033[0m
set $_count = 0
while ($_count < $arg0)
@ -717,36 +717,35 @@ end
define datawin
if ($64BITS == 1)
if ((($rsi >> 0x18) == 0x40) || (($rsi >> 0x18) == 0x08) || (($rsi >> 0x18) == 0xBF))
set $data_addr = $rsi
else
if ((($rdi >> 0x18) == 0x40) || (($rdi >> 0x18) == 0x08) || (($rdi >> 0x18) == 0xBF))
set $data_addr = $rdi
if ($64BITS == 1)
if ((($rsi >> 0x18) == 0x40) || (($rsi >> 0x18) == 0x08) || (($rsi >> 0x18) == 0xBF))
set $data_addr = $rsi
else
if ((($rax >> 0x18) == 0x40) || (($rax >> 0x18) == 0x08) || (($rax >> 0x18) == 0xBF))
set $data_addr = $rax
if ((($rdi >> 0x18) == 0x40) || (($rdi >> 0x18) == 0x08) || (($rdi >> 0x18) == 0xBF))
set $data_addr = $rdi
else
set $data_addr = $rsp
if ((($rax >> 0x18) == 0x40) || (($rax >> 0x18) == 0x08) || (($rax >> 0x18) == 0xBF))
set $data_addr = $rax
else
set $data_addr = $rsp
end
end
end
else
if ((($esi >> 0x18) == 0x40) || (($esi >> 0x18) == 0x08) || (($esi >> 0x18) == 0xBF))
set $data_addr = $esi
else
if ((($edi >> 0x18) == 0x40) || (($edi >> 0x18) == 0x08) || (($edi >> 0x18) == 0xBF))
set $data_addr = $edi
else
if ((($eax >> 0x18) == 0x40) || (($eax >> 0x18) == 0x08) || (($eax >> 0x18) == 0xBF))
set $data_addr = $eax
else
set $data_addr = $esp
end
end
end
end
else
if ((($esi >> 0x18) == 0x40) || (($esi >> 0x18) == 0x08) || (($esi >> 0x18) == 0xBF))
set $data_addr = $esi
else
if ((($edi >> 0x18) == 0x40) || (($edi >> 0x18) == 0x08) || (($edi >> 0x18) == 0xBF))
set $data_addr = $edi
else
if ((($eax >> 0x18) == 0x40) || (($eax >> 0x18) == 0x08) || (($eax >> 0x18) == 0xBF))
set $data_addr = $eax
else
set $data_addr = $esp
end
end
end
end
ddump $CONTEXTSIZE_DATA
end
document datawin

View File

@ -0,0 +1,63 @@
# vim: ft=gitconfig
[alias]
a = "!ga"
u = "!git diff --name-only --cached | fzf -1 -0 -m --bind load:last --preview 'git diff --staged --color=always {1}' | xargs -r git restore --staged"
msg = log -1 --pretty=%B
d = diff
di = diff
ds = diff --staged
dno = diff --name-only
dw = diff --word-diff=color
dws = diff --word-diff=color --staged
sw = switch
swl = switch -
swb = switch -c
swc = switch -c
co = checkout
col = checkout @{-1}
cob = checkout -b
ci = commit
cia = commit --all
amend = commit --amend --no-edit
amenda = commit --all --amend --no-edit
fuck = commit --amend
uncommit = reset --soft HEAD~1
untrack = rm --cache --
cim = "!_m() { git commit -m \"$*\"; }; _m"
cima = "!_m() { git commit -am \"$*\"; }; _m"
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)"
pst = "!git push origin --tags"
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)"
pr = "pull --rebase"
s = status
st = status
br = branch
bm = branch --merged
bn = branch --no-merged
hist = log --pretty=format:'%Cgreen%h %Creset%cd %Cblue[%cn](%G?) %Creset%s%C(yellow)%d%C(reset)' --graph --date=relative --decorate --color=always
history = hist --all
hs = hist -n 10
hsa = hist -n 10 --all
last = log -1 HEAD
lastd = diff HEAD^ HEAD
today = hist --since=midnight
df = "!_m() { git log --pretty=format:'%h %cd [%cn] %s%d' --date=relative | fzf --bind \"enter:execute(git diff --color=always $@ {1}^ {1} | ${PAGER})\" --preview-window=65% --preview=\"git diff --color=always $@ {1}^ {1}\"; }; _m"
type = cat-file -t
dump = cat-file -p
unstage = "reset HEAD --"
count = "rev-list --count --all"
tags = "for-each-ref --sort=-creatordate --format '%(refname:strip=2)' refs/tags"
initci = "commit --allow-empty -m 'Initial commit'"
# edit conflicted file on merge
edit-unmerged = "!$EDITOR $(git ls-files --unmerged | cut -f2 | sort -u)"
# add conflicted file on merge
add-unmerged = "!git add $(git ls-files --unmerged | cut -f2 | sort -u)"
remove-remote-tag = "!f() { git tag -d $1 && git push origin :refs/tags/$1 }; f"
aliases = "!git config -l | grep '^alias\\.' | cut -d. -f2-"
# git clone git://localhost/
serve = daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/

View File

@ -2,23 +2,24 @@
excludesfile = ~/.config/git/ignore
editor = "$EDITOR"
pager = "$PAGER -+C -F"
fileMode = false
hooksPath = ~/.config/git/hooks
fileMode = true
whitespace = fix,trailing-space,cr-at-eol
autocrlf = input
quotepath = false
[i18n]
commitEncoding = utf-8
logOutputEncoding = utf-8
logOutputEncoding = utf-8
[init]
defaultBranch = master
defaultBranch = main
[push]
default = current
[pull]
rebase = false
ff = only
[color]
status = auto
@ -37,65 +38,25 @@
[apply]
whitespace = fix
[rerere]
enabled = true
[diff]
mnemonicPrefix = true
suppressBlankEmpty = true
rename = copy
submodule = short
algorithm = histogram
colormoved = default
colormovedws = allow-indentation-change
[alias]
a = "!git ls-files --exclude-standard -m --others -t | fzf -m --bind ctrl-a:toggle-all | cut -d' ' -f2 | xargs git add"
d = diff
di = diff
ds = diff --staged
dno = diff --name-only
co = checkout
ci = commit
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)"
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)"
st = status
br = branch
bm = branch --merged
bn = branch --no-merged
hist = log --pretty=format:\"%Cgreen%h %Creset%cd %Cblue[%cn](%G?) %Creset%s%C(yellow)%d%C(reset)\" --graph --date=relative --decorate --color=always
history = hist --all
hs = hist -n 10
hsa = hist -n 10 --all
last = log -1 HEAD
today = hist --since=midnight
df = "!git log --pretty=format:\"%h %cd [%cn] %s%d\" --date=relative | fzf +m | awk '{print $1}' | xargs -I {} git diff {}^ {}"
type = cat-file -t
dump = cat-file -p
unstage = "reset HEAD --"
[include]
path = ~/.config/git/url-aliases
path = ~/.config/git/aliases
path = ~/.config/git/local
# edit conflicted file on merge
edit-unmerged = "!$EDITOR $(git ls-files --unmerged | cut -f2 | sort -u)"
# add conflicted file on merge
add-unmerged = "!git add $(git ls-files --unmerged | cut -f2 | sort -u)"
remove-remote-tag = "!f() { git tag -d $1 && git push origin :refs/tags/$1 }; f"
[github]
user = "thek4n"
email = "thek4n@yandex.ru"
[user]
name = "thek4n"
email = "thek4n@yandex.ru"
signingkey = "thek4n"
[url "https://github.com/"]
insteadOf = "gh:"
[url "git@github.com:"]
pushInsteadOf = "https://github.com/"
pushInsteadOf = "http://github.com/"
pushInsteadOf = "gh:"
[url "https://gist.github.com/"]
insteadOf = "gist:"
[url "git@gist.github.com:"]
pushInsteadOf = "https://gist.github.com/"
pushInsteadOf = "http://gist.github.com/"
pushInsteadOf = "gist:"
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true

View File

@ -1,12 +0,0 @@
#!/bin/sh
set -e
if command -v makepkg >/dev/null && [ -e PKGBUILD ]; then
if [ -e VERSION ]; then
sed -i "s/pkgver=.\+/pkgver=$(cat VERSION)/" PKGBUILD
git add PKGBUILD
fi
makepkg --printsrcinfo > .SRCINFO
git add .SRCINFO
exit
fi

View File

@ -12,8 +12,10 @@ venv
__pycache__/
*.py[cod]
*$py.class
*.spec
.env
*.env
*.log
*.bak
*~
@ -22,5 +24,33 @@ __pycache__/
*.db
db.sqlite3
nohup.out
# cmake
cmake_install.cmake
CMakeCache.txt
CMakeFiles
# build files
*.a
*.so
*.o
a.out
*.exe
*.ipk
build/
dist/
node_modules/
.tns
.autoenv.zsh
.autoenv_leave.zsh
*.tar
*.gz
*.zip
.redo/

View File

@ -0,0 +1,13 @@
# vim: ft=gitconfig
[github]
user = "thek4n"
email = "thek4n@yandex.ru"
[user]
name = "thek4n"
email = "thek4n@yandex.ru"
signingkey = "thek4n"
[url "git@github.com:TheK4n/notes"]
insteadOf = "git@github.com:TheK4n/notes"

View File

@ -0,0 +1,41 @@
# vim: ft=gitconfig
# alias gh:=https://github.com/
[url "https://github.com/"]
insteadOf = "gh:"
# alias gist:=https://gist.github.com/
[url "https://gist.github.com/"]
insteadOf = "gist:"
# alias gl:=https://gitlab.com/
[url "https://gitlab.com/"]
insteadOf = "gl:"
# alias bb:=https://bitbucket.org/
[url "https://bitbucket.org/"]
insteadOf = "bb:"
[url "git@github.com:"]
pushInsteadOf = "https://github.com/"
pushInsteadOf = "http://github.com/"
pushInsteadOf = "git@github.com:"
pushInsteadOf = "gh:"
[url "git@gist.github.com:"]
pushInsteadOf = "https://gist.github.com/"
pushInsteadOf = "http://gist.github.com/"
pushInsteadOf = "gist:"
[url "git@gitlab.com:"]
pushInsteadOf = "https://gitlab.com/"
pushInsteadOf = "http://gitlab.com/"
pushInsteadOf = "git@gitlab.com:"
pushInsteadOf = "gl:"
; [url "https://github.com/"]
; insteadOf = "git@github.com:"
[url "https://gitlab.com/"]
insteadOf = "git@gitlab.com:"

View File

@ -1,236 +0,0 @@
# screen layout
exec --no-startup-id ~/.screenlayout/default.sh
for_window [tiling] border pixel 3
smart_borders on
set $mod Mod4
# screensaver
set $i3lock_cmd "i3lock -enf -c 1e1e1e"
exec --no-startup-id xset +dpms dpms 600 0 0
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -enf -c 1e1e1e
exec_always --no-startup-id xset r rate 250 100
exec_always --no-startup-id setxkbmap -model pc105 -layout us,ru -option grp:win_space_toggle -option ctrl:nocaps
# wallpapers
exec --no-startup-id nitrogen --restore; sleep 1; picom -b --config ~/.config/picom/picom.conf
exec --no-startup-id hsetroot
exec --no-startup-id feh --randomize --no-fehbg --bg-scale $HOME/.wallpaper/*
set $font_size 11
font xft:FiraCode $font_size
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioPause exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
bindsym XF86MonBrightnessUp exec xbacklight -inc 20
bindsym XF86MonBrightnessDown exec xbacklight -dec 20
bindsym $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk
bindsym --release $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute
bindsym $mod+Shift+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
bindsym XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk
bindsym --release XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute
bindsym XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk, x1carb11
bindsym --release XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute, x1carb11
bindsym $mod+XF86AudioMicMute exec --no-startup-id pactl list short sources | awk '/input.*RUNNING/ {system("pactl set-source-mute " $1 " toggle")}' ## Find and mute mics
bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: '
bindsym $mod+g exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Goto: '
focus_follows_mouse no
mouse_warping none
# start a terminal
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+Shift+q kill
bindsym $mod+d exec --no-startup-id rofi -show drun -m -1
bindsym $mod+i exec --no-startup-id i3_switch_workspace.sh
bindsym $mod+o exec --no-startup-id slm_rofi.sh
bindsym $mod+p exec --no-startup-id power_rofi.sh
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
bindsym $mod+Ctrl+Shift+l move workspace to output right
bindsym $mod+Ctrl+Shift+h move workspace to output left
bindsym $mod+Ctrl+Shift+k move workspace to output up
bindsym $mod+Ctrl+Shift+j move workspace to output down
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (tabbed, toggle split)
bindsym $mod+t layout tabbed
bindsym $mod+v layout toggle split
bindsym $mod+a focus parent
# toggle tiling / floating
bindsym $mod+Shift+slash floating toggle
# change focus between tiling / floating windows
bindsym $mod+slash focus mode_toggle
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1 Browser"
set $ws2 "2  Code"
set $ws3 "3  Code"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8💬Social"
set $ws9 "9🎵Music"
set $ws10 "10🍿Media"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
bindsym $mod+u workspace prev
bindsym $mod+Shift+u workspace next
# resize window (you can also use the mouse for that)
bindsym $mod+r mode "resize"
mode "resize" {
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
bindsym $mod+r mode "default"
bindsym p mode "resize_precise"
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "resize_precise" {
bindsym h resize shrink width 1 px or 1 ppt
bindsym j resize grow height 1 px or 1 ppt
bindsym k resize shrink height 1 px or 1 ppt
bindsym l resize grow width 1 px or 1 ppt
bindsym $mod+r mode "default"
bindsym p mode "resize"
bindsym Return mode "default"
bindsym Escape mode "default"
}
set $exitmode "Power: [e]xit, [r]eboot, [s]hutdown, s[u]spend, [l]ock, [b]lack"
mode $exitmode {
bindsym e exit
bindsym r exec reboot
bindsym s exec shutdown -h now
bindsym u exec systemctl suspend; mode "default"
bindsym l exec $i3lock_cmd; mode "default"
bindsym b exec convert canvas:none PNG:- | feh -YF -; mode "default"
bindsym Escape mode "default"
bindsym Return mode "default"
}
bindsym $mod+x mode $exitmode
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
bar {
output primary
output nonprimary
tray_output primary
status_command exec ~/.local/bin/i3status_wrapper
}
# Screenshots
bindsym Print exec --no-startup-id maim "$HOME/Pictures/Screenshots/$(date +'%d-%m-%Y-%T').png"
bindsym $mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) "$HOME/Pictures/Screenshots/$(date +'%d-%m-%Y-%T').png"
bindsym Shift+Print exec --no-startup-id maim --select "$HOME/Pictures/Screenshots/$(date +'%d-%m-%Y-%T').png"
## Clipboard Screenshots
bindsym Ctrl+Print exec --no-startup-id maim | xclip -selection clipboard -t image/png
bindsym Ctrl+$mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
bindsym Ctrl+Shift+Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png
# default workspaces for monitors in setup
workspace $ws1 output primary
workspace $ws2 output primary
workspace $ws3 output primary
workspace $ws9 output nonprimary
workspace $ws10 output nonprimary
workspace hide1 output primary
workspace hide2 output nonprimary
bindsym $mod+q exec --no-startup-id i3-msg workspace hide1; workspace hide2
no_focus [title="^Peek preview$"]

View File

@ -0,0 +1,64 @@
separator_block_width=15
markup=pango
color=#FFFFFF
interval=5
[wireless]
command=~/.config/i3blocks/scripts/builder.sh wireless
interval=10
[ethernet]
command=~/.config/i3blocks/scripts/builder.sh ethernet
interval=10
[diskroot]
command=~/.config/i3blocks/scripts/builder.sh disk_root
interval=30
[diskhome]
command=~/.config/i3blocks/scripts/builder.sh disk_home
interval=30
[memory]
command=~/.config/i3blocks/scripts/builder.sh memory
interval=5
[cpu_usage]
command=~/.config/i3blocks/scripts/builder.sh cpu_usage
interval=5
[cpu_temp]
command=~/.config/i3blocks/scripts/builder.sh cpu_temp
interval=5
[bluetooth]
command=~/.config/i3blocks/scripts/builder.sh bluetooth_battery
interval=5
[battery]
command=~/.config/i3blocks/scripts/builder.sh battery
interval=30
[volume]
command=~/.config/i3blocks/scripts/builder.sh volume
interval=1
signal=1
[pomodoro]
command=~/.config/i3blocks/scripts/builder.sh pomodoro
interval=1
signal=2
[language]
command=~/.config/i3blocks/scripts/builder.sh language
signal=1
[userhost]
command=~/.config/i3blocks/scripts/builder.sh userhost
signal=1
[time]
command=~/.config/i3blocks/scripts/builder.sh time
interval=30

View File

@ -0,0 +1,125 @@
#!/bin/sh
set -ue
readonly EXIT_SUCCESS=0
readonly EXIT_FAILURE=1
cmd_wireless() {
wifiname="$(LANG=C nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2)"
wifi_ip=$(ip -o -4 addr show | grep wlp | awk '{print $4}' | cut -d/ -f1 | head -1)
if [ -z "${wifiname}" ] || [ -z "${wifi_ip}" ]; then
return 0
fi
printf ' %s %s\n' "${wifiname}" "${wifi_ip}"
}
cmd_battery() {
charging_status="$(cat /sys/class/power_supply/BAT0/status)"
percent="$(cat /sys/class/power_supply/BAT0/capacity)"
if [ "${percent}" -lt 35 ]; then
emoji_status="🪫"
else
emoji_status="🔋"
fi
if [ "${charging_status}" = "Charging" ]; then
emoji_status="🔌"
fi
printf "%s %s%%\n" "${emoji_status}" "${percent}"
}
cmd_disk_root() {
df -h / | awk '/\// {print "/ "$3"/"$2}'
}
cmd_disk_home() {
res="$(df -h /home)"
if [ "$(echo "${res}" | awk '/\// {print $6}')" = "/" ]; then
return 1
fi
df -h /home | awk '/\// {print " "$3"/"$2}'
}
cmd_memory() {
free -h | awk '/^Mem/ {print "🎟 "$3"/"$2}' | sed 's/i//g'
}
cmd_cpu_usage() {
top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print " "100 - $1"%"}'
}
cmd_cpu_temp() {
temp_mC="$(cat /sys/class/thermal/thermal_zone0/temp)"
temp_C="$((temp_mC / 1000))"
if [ "${temp_C}" -gt 80 ]; then
printf '<span foreground="red"> %s°C</span>\n' "${temp_C}"
else
printf ' %s°C\n' "${temp_C}"
fi
}
cmd_time() {
LC_ALL=C date '+ %d.%m.%y %a  %H:%M'
}
cmd_volume() {
value="$(pactl --format=json get-sink-volume @DEFAULT_SINK@ | jq --raw-output '.volume."front-left".value_percent')"
printf ' %s\n' "${value}"
}
cmd_pomodoro() {
pomodoro get
}
cmd_bluetooth_battery() {
device="$(upower -e | grep headset | head -1)"
upower -i "${device}" | grep percentage | awk '{ print "🎧🔋"$2"" }'
}
cmd_language() {
layout="$(swaymsg -t get_inputs | jq -r '.[] | select(.type == "keyboard") | .xkb_active_layout_name' | head -1)"
case "${layout}" in
"English (US)")
printf '🇬🇧 En\n'
;;
Russian)
printf '🇷🇺 Ru\n'
;;
*)
printf '🌐 %s\n' "${layout}"
;;
esac
}
cmd_userhost() {
printf "%s@%s\n" "${USER}" "${HOST:-${HOSTNAME:-}}"
}
case "${1}" in
wireless) shift; cmd_wireless "$@" ;;
ethernet) shift; cmd_ethernet "$@" ;;
battery) shift; cmd_battery "$@" ;;
disk_root) shift; cmd_disk_root "$@" ;;
disk_home) shift; cmd_disk_home "$@" ;;
memory) shift; cmd_memory "$@" ;;
cpu_usage) shift; cmd_cpu_usage "$@" ;;
cpu_temp) shift; cmd_cpu_temp "$@" ;;
time) shift; cmd_time "$@" ;;
volume) shift; cmd_volume "$@" ;;
pomodoro) shift; cmd_pomodoro "$@" ;;
bluetooth_battery) shift; cmd_bluetooth_battery "$@" ;;
language) shift; cmd_language "$@" ;;
userhost) shift; cmd_userhost "$@" ;;
*) exit "${EXIT_FAILURE}" ;;
esac
exit "${EXIT_SUCCESS}"

View File

@ -0,0 +1,8 @@
#!/bin/sh
swaymsg -m -t SUBSCRIBE "['input']" | \
jq --unbuffered -r '.change' | while read -r line; do
if echo "${line}" | grep -q "xkb_layout"; then
pkill -RTMIN+1 i3blocks
fi
done

View File

@ -1,81 +0,0 @@
general {
colors = true
interval = 5
output_format = i3bar
}
order += "wireless _first_"
order += "ethernet _first_"
order += "disk /"
order += "disk /home"
order += "memory"
order += "cpu_usage"
order += "cpu_temperature 0"
order += "tztime holder__headphones"
order += "battery all"
order += "volume master"
order += "tztime local"
wireless _first_ {
format_up = " (%quality at %essid %frequency) %ip"
format_down = " down"
}
ethernet _first_ {
format_up = " %ip"
format_down = " down"
}
battery all {
format = "%status %percentage"
last_full_capacity = false
format_down = ""
status_chr = "⚡"
status_bat = "🔋"
status_unk = "?"
status_full = ""
path = "/sys/class/power_supply/BAT%d/uevent"
low_threshold = 15
}
disk "/" {
format = "/ %used/%total"
}
disk "/home" {
format = " %used/%total"
}
memory {
format = " %used/%total"
threshold_degraded = "1G"
threshold_critical = "200M"
format_degraded = "MEMORY < %available"
}
cpu_usage {
format = " %usage"
}
cpu_temperature 0 {
format = " %degrees°"
max_threshold = "80"
format_above_threshold = " %degrees"
}
tztime local {
format = " %d.%m.%y %a  %H:%M"
}
volume master {
format = " %volume"
format_muted = ": muted %volume"
device = "default"
mixer = "Master"
mixer_idx = 0
}
tztime holder__headphones {
format = "holder__headphones"
}

View File

@ -0,0 +1 @@
output=DP-1

View File

@ -0,0 +1,11 @@
[Default Applications]
application/pdf=firefox.desktop;
text/html=firefox.desktop
x-scheme-handler/about=firefox.desktop
x-scheme-handler/http=firefox.desktop
x-scheme-handler/https=firefox.desktop
x-scheme-handler/about=firefox.desktop
x-scheme-handler/unknown=firefox.desktop
x-scheme-handler/tonsite=org.telegram.desktop.desktop
x-scheme-handler/tg=org.telegram.desktop.desktop
x-scheme-handler/postman=Postman.desktop

View File

@ -0,0 +1,5 @@
local opt = vim.opt_local
opt.expandtab = false
opt.tabstop = 4
opt.shiftwidth = 4

View File

@ -0,0 +1,7 @@
vim.g.python_indent = {
open_paren = 'shiftwidth()',
nested_paren = 'shiftwidth()',
continue = 'shiftwidth()',
closed_paren_align_last_line = false,
searchpair_timeout = 150,
}

View File

@ -1 +1 @@
require("base")
require("core")

View File

@ -1,36 +0,0 @@
local function install_lazy_if_not_installed(lazypath)
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git", "clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
end
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
install_lazy_if_not_installed(lazypath)
vim.opt.rtp:prepend(lazypath)
local plugins = {}
local modules = vim.split(vim.fn.glob(vim.fn.stdpath("config") .. '/lua/*/plugins/*lua'), '\n')
for i, module_path in pairs(modules) do
splitted_path = vim.split(module_path, '/')
module_name = splitted_path[#splitted_path]:gsub(".lua", "")
table.insert(plugins, require('base.plugins.' .. module_name))
end
require("lazy").setup(
plugins,
{
lockfile = vim.fn.stdpath "data" .. "/lazy-lock.json"
}
)

View File

@ -1,2 +0,0 @@
require("base.mappings.mappings")
require("base.mappings.run-scripts")

View File

@ -1,141 +0,0 @@
local map = vim.keymap.set
vim.g.mapleader = ','
local function create_function_tabdo(command)
return function()
local curr_tab = vim.fn.tabpagenr()
vim.cmd.tabdo(command)
vim.cmd.tabn(curr_tab)
end
end
map('n', '<Leader>hc', create_function_tabdo('set cursorline!'),
{desc = "Toggle line highlighting"})
map('n', '<Leader>h/',
function() vim.opt.hlsearch = not vim.opt.hlsearch["_value"] end,
{desc = "Toggle search highlighting"})
-- enable search highlight in search mode
map('n', '/', ':set hlsearch<CR>/')
-- copy selection to search line
map('v', '<C-f>', '"fy:set hlsearch<CR>/\\V<C-r>f\\C<CR>')
-- copy word under cursor to search line
map('n', '<C-f>', ':set hlsearch<CR>/\\V<C-r><C-w>\\C<CR>')
map('n', '<Leader>hl', create_function_tabdo('lua toggle_number_style()'),
{desc = "Toggle line number style"})
map('i', 'jf', '<ESC>`^')
map('i', 'оа', '<ESC>`^')
map('n', '<Enter>', 'o<ESC>')
map('n', '<Space>', 'O<ESC>')
-- x to blackhole
map({'n', 'v'}, 'x', '"_x')
map('n', '<bs>', '"_X')
-- Put without overwrite yanked text
map('x', 'p', 'P')
-- Increment/decrement
map('n', '+', '<C-a>')
map('n', '-', '<C-x>')
-- map \ to prev finding
map({"n", "v"}, [[\]], ',')
-- Select all
map('n', '<C-a>', 'mvggVG')
map('v', '<C-a>', '<Esc>`v:delmarks v<CR>', {silent = true})
-- Scroll tabs
map("n", '<C-l>', vim.cmd.tabnext)
map("n", '<C-h>', vim.cmd.tabprev)
-- Open file under cursor in new tab
map("n", 'gf', '<C-w>gf')
map("n", '<Leader>qq', '<cmd>bd!<CR>',
{desc = "Kill current buffer"})
map("n", '<Leader>qa', '<cmd>qa!<CR>',
{desc = "Exit without saving"})
map("n", '<Leader>he', '<cmd>set list!<CR>',
{desc = "Show hidden symbols"})
vim.opt.listchars=[[tab:→\ ,eol:↵,trail:·,extends:↷,precedes:↶]]
-- Expand %% to dirname of current file in command line
map("c", '%%', [[getcmdtype() == ':' ? expand('%:h').'/' : '%%']], {expr = true})
-- Save from root
vim.api.nvim_create_user_command('W', [[execute 'silent! write !SUDO_ASKPASS=vim_askpass_helper sudo -A tee % >/dev/null' <bar> edit!]], {})
vim.cmd([[autocmd FileChangedRO * set readonly!]])
-- Toggle line number style
function toggle_number_style()
local opt = vim.opt
local number = opt.number["_value"]
local relativenumber = opt.relativenumber["_value"]
if (not number) and (not relativenumber) then
opt.number = true
opt.relativenumber = false
elseif (number) and (not relativenumber) then
opt.number = false
opt.relativenumber = true
elseif (not number) and (relativenumber) then
opt.number = true
opt.relativenumber = true
elseif (number) and (relativenumber) then
opt.number = false
opt.relativenumber = false
end
end
local function set_trouble_keymap(key, cmd)
map("n", string.format("<space>x%s", key), string.format("<cmd>TroubleToggle %s<CR>", cmd))
end
set_trouble_keymap("x", "")
set_trouble_keymap("w", "workspace_diagnostics") -- lsp diagnostic of workspace
set_trouble_keymap("d", "document_diagnostics") -- diagnostic of current file
local function set_gitsigns_keymap(key, cmd)
map("n", string.format("<space>g%s", key), string.format("<cmd>Gitsigns %s<CR>", cmd))
end
set_gitsigns_keymap('p', 'preview_hunk') -- show diff
set_gitsigns_keymap('b', 'blame_line') -- show author, hash, date and message of current line commit
set_gitsigns_keymap('n', 'next_hunk') -- go to next unstaged changes
set_gitsigns_keymap('N', 'prev_hunk') -- go to prev unstaged changes
set_gitsigns_keymap('r', 'reset_hunk') -- reset hunk under cursor
set_gitsigns_keymap('h', 'toggle_linehl') -- line highlighting
map("n", "<Leader>pl", "<cmd>Lazy<CR>",
{desc = "Package manager"})
map("n", "<Leader>pm", "<cmd>Mason<CR>",
{desc = "LSP Manager"})

View File

@ -1,86 +0,0 @@
local function autocmd(func)
local create_autocmd = vim.api.nvim_create_autocmd
create_autocmd("BufEnter",
{ pattern = '*', callback = func}
)
end
local function set_keymap_base(key, cmd)
local map = vim.keymap.set
local opts = { noremap = true, silent = true }
local keymap_keys = string.format([[<Leader>r%s]], key)
map("n", keymap_keys, cmd, opts)
end
local function set_keymap_format_file(cmd)
local cmd_string = string.format([[:!%s %% <CR>]], cmd)
set_keymap_base("f", cmd_string)
end
local function set_keymap_run_script_base(key, cmd)
local run_script_string = [[:tabnew %% <CR> :terminal %s %% <CR> :set nocursorline number norelativenumber <CR> G <CR>]]
local cmd_string = string.format(run_script_string, cmd)
set_keymap_base(key, cmd_string)
end
local function set_keymap_run_script(cmd)
set_keymap_run_script_base("r", cmd)
end
local function set_keymap_test_file_base(key, cmd)
local run_script_string = [[:tabnew %% <CR> :terminal %s %% <CR> :set nocursorline number norelativenumber <CR> G <CR>]]
local cmd_string = string.format(run_script_string, cmd)
set_keymap_base(key, cmd_string)
end
local function set_keymap_test_file(cmd)
set_keymap_test_file_base("t", cmd)
end
local function set_keymap_run_script_by_shebang()
set_keymap_run_script_base("s", [[$(head -1 % | cut -c 3-) %]])
end
local function create_function_autocmd_by_filetype(set_keymap_func, ft, cmd)
return function()
if vim.bo.filetype == ft then
set_keymap_func(cmd)
end
end
end
local function create_function_autocmd_by_filename(set_keymap_func, fn, cmd)
return function()
if vim.fn.expand('%:t') == fn then
set_keymap_func(cmd)
end
end
end
local function autocmd_run_script_by_filetype(ft, cmd)
autocmd(create_function_autocmd_by_filetype(set_keymap_run_script, ft, cmd))
end
local function autocmd_format_file_by_filetype(ft, cmd)
autocmd(create_function_autocmd_by_filetype(set_keymap_format_file, ft, cmd))
end
local function autocmd_run_tests_by_filetype(ft, cmd)
autocmd(create_function_autocmd_by_filetype(set_keymap_test_file, ft, cmd))
end
autocmd_run_script_by_filetype('python', 'python3')
autocmd_run_script_by_filetype('go', 'go run')
autocmd_run_script_by_filetype('rust', 'cargo run')
autocmd_run_tests_by_filetype('python', 'pytest')
autocmd(create_function_autocmd_by_filename(set_keymap_run_script, 'manpage', 'man -P cat -l'))
autocmd_format_file_by_filetype('rust', 'cargo fmt -p')
autocmd_format_file_by_filetype('go', 'go fmt')
autocmd(set_keymap_run_script_by_shebang)

View File

@ -1,35 +0,0 @@
return {
'Pocco81/auto-save.nvim',
config = function()
require("auto-save").setup({
enabled = true, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
execution_message = {
message = function() -- message to print on save
return ""
end,
dim = 0.18, -- dim the color of `message`
cleaning_interval = 1250, -- (milliseconds) automatically clean MsgArea after displaying `message`. See :h MsgArea
},
trigger_events = {"InsertLeave", "TextChanged"}, -- vim events that trigger auto-save. See :h events
condition = function(buf)
local fn = vim.fn
local utils = require("auto-save.utils.data")
if
fn.getbufvar(buf, "&modifiable") == 1 and
utils.not_in(fn.getbufvar(buf, "&filetype"), {}) then
return true -- met condition(s), can save
end
return false -- can't save
end,
write_all_buffers = false, -- write all buffers when the current one meets `condition`
debounce_delay = 135, -- saves the file at most every `debounce_delay` milliseconds
callbacks = { -- functions to be executed at different intervals
enabling = nil, -- ran when enabling auto-save
disabling = nil, -- ran when disabling auto-save
before_asserting_save = nil, -- ran before checking `condition`
before_saving = nil, -- ran before doing the actual save
after_saving = nil -- ran after doing the actual save
}
})
end
}

View File

@ -1,10 +0,0 @@
return {
"max397574/better-escape.nvim",
config = function()
require("better_escape").setup({
mapping = {'jf', 'оа'},
timeout = vim.o.timeoutlen,
keys = '<ESC>`^'
})
end,
}

View File

@ -1,14 +0,0 @@
return {
{
'EdenEast/nightfox.nvim',
config = function()
local colorscheme = require("nightfox")
colorscheme.compile()
colorscheme.setup()
vim.cmd.colorscheme("nightfox")
end
},
{
'ellisonleao/gruvbox.nvim'
},
}

View File

@ -1,12 +0,0 @@
return {
"ellisonleao/dotenv.nvim",
config = function()
require('dotenv').setup({
enable_on_load = true, -- will load your .env file upon loading a buffer
})
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "*", callback = require('dotenv').autocmd
})
end
}

View File

@ -1,16 +0,0 @@
return {
'lewis6991/gitsigns.nvim',
enabled = vim.fn.executable "git" == 1,
config = function()
require("gitsigns").setup({
signs = {
add = { text = "+" },
change = { text = "|" },
delete = { text = "-" },
topdelete = { text = "^" },
changedelete = { text = "~" },
untracked = { text = "0" },
}
})
end
}

View File

@ -1,9 +0,0 @@
return {
"lukas-reineke/indent-blankline.nvim",
config = function()
require("ibl").setup({
scope = { enabled = false },
})
end,
main = "ibl"
}

View File

@ -1,9 +0,0 @@
return {
'ggandor/leap.nvim',
config = function()
require('leap').opts.safe_labels = {}
local set = vim.keymap.set
set({'n', 'v'}, 'J', '<Plug>(leap-forward-to)')
set({'n', 'v'}, 'K', '<Plug>(leap-backward-to)')
end,
}

View File

@ -1,15 +0,0 @@
return {
"mfussenegger/nvim-lint",
config = function()
local lint = require("lint")
lint.linters_by_ft = {
python = {"flake8"},
sh = {"shellcheck"},
}
vim.api.nvim_create_autocmd({"TextChanged", "BufEnter"}, {
callback = function()
lint.try_lint()
end,
})
end
}

View File

@ -1,40 +0,0 @@
function get_formatted_cwd()
return vim.fn.getcwd():gsub(os.getenv("HOME"), "~")
end
local function get_virtual_env()
return vim.fs.basename(os.getenv("VIRTUAL_ENV"))
end
function get_formatted_virtual_env()
if vim.bo.filetype == 'python' then
return "<" .. get_virtual_env() .. ">"
end
return ""
end
function detect_indent_type()
if vim.bo.expandtab then
return vim.bo.shiftwidth .. " spaces"
else
return vim.bo.shiftwidth / vim.bo.tabstop .. " tabs (" .. vim.bo.tabstop .. ")"
end
end
return {
'nvim-lualine/lualine.nvim',
config = function()
require("lualine").setup({
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {'get_formatted_cwd()'},
lualine_x = {'get_formatted_virtual_env()', 'detect_indent_type()', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'},
},
})
end,
dependencies = { 'kyazdani42/nvim-web-devicons' }
}

View File

@ -1,6 +0,0 @@
return {
'chentoast/marks.nvim',
config = function()
require("marks").setup()
end
}

View File

@ -1,56 +0,0 @@
local on_attach = function(client, bufnr)
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
-- Enable completion triggered by <c-x><c-o>
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings.
local opts = { noremap=true, silent=true }
-- See `:help vim.lsp.*` for documentation on any of the below functions
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
buf_set_keymap('n', '<space>k', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
buf_set_keymap('n', '<space>K', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
buf_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
buf_set_keymap('n', '<space>p', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
buf_set_keymap('n', '<space>n', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
buf_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', opts)
end
return {
{
'williamboman/mason.nvim',
dependencies = {
'neovim/nvim-lspconfig',
"williamboman/mason-lspconfig.nvim",
},
config = function()
require("mason").setup()
local mason_lspconfig = require("mason-lspconfig")
mason_lspconfig.setup()
mason_lspconfig.setup_handlers({
function (server_name)
require("lspconfig")[server_name].setup({
on_attach = on_attach,
flags = {
debounce_text_changes = 150,
}
})
end
})
end,
},
}

View File

@ -1,65 +0,0 @@
return {
'tpope/vim-repeat',
'google/vim-searchindex',
'rbgrouleff/bclose.vim',
'chaoren/vim-wordmotion',
'preservim/vim-pencil',
{
'windwp/nvim-autopairs',
desc = "Auto pair brackets and tags",
event = "InsertEnter",
opts = {
disable_in_macro = true,
}
},
{
"kylechui/nvim-surround",
version = "*",
event = "VeryLazy",
config = function()
require("nvim-surround").setup()
end
},
{
'windwp/nvim-ts-autotag',
config = function()
require("nvim-ts-autotag").setup()
end
},
{
'numToStr/Comment.nvim',
config = function()
require("Comment").setup()
end
},
{
'norcalli/nvim-colorizer.lua',
config = function()
require('colorizer').setup()
end
},
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = {"python", "lua", "vim", "html", "rust", "markdown"},
auto_install = true,
highlight = {
enable = true,
}
})
end
},
{
'nvim-treesitter/nvim-treesitter-textobjects',
dependencies = { 'nvim-treesitter/nvim-treesitter' },
},
{
'folke/trouble.nvim',
dependencies = { 'kyazdani42/nvim-web-devicons' },
config = function()
require("trouble").setup()
end
},
}

View File

@ -1,19 +0,0 @@
return {
'folke/neodev.nvim',
ft = {'lua'},
dependencies = {
'neovim/nvim-lspconfig'
},
config = function()
require('neodev').setup()
require('lspconfig').lua_ls.setup({
settings = {
Lua = {
completion = {
callSnippet = "Replace"
}
}
}
})
end
}

View File

@ -1,10 +0,0 @@
return {
'karb94/neoscroll.nvim',
config = function()
require('neoscroll').setup({
mappings = {'<C-u>', '<C-d>', '<C-b>',
'<C-y>', '<C-e>', 'zt', 'zz', 'zb'},
respect_scrolloff = false,
})
end
}

View File

@ -1,116 +0,0 @@
local border_opts = {
border = "single",
winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None",
}
local function has_words_before()
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local function setup_cmp()
local cmp = require("cmp")
cmp.setup({
completion = {
autocomplete = {'TextChanged'}
},
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
end,
},
mapping = {
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
},
},
window = {
completion = cmp.config.window.bordered(border_opts),
documentation = cmp.config.window.bordered(border_opts),
},
sorting = {
comparators = {
cmp.config.compare.offset,
cmp.config.compare.exact,
cmp.config.compare.score,
require "cmp-under-comparator".under,
cmp.config.compare.kind,
cmp.config.compare.sort_text,
cmp.config.compare.length,
cmp.config.compare.order,
},
},
sources = cmp.config.sources({
{ name = 'nvim_lsp', priority = 1250 },
{ name = 'luasnip', priority = 1000 },
{ name = 'buffer', priority = 750 },
{ name = "dotenv", priority = 500 },
{ name = 'path', priority = 250 },
}),
})
end
return {
{
'L3MON4D3/LuaSnip',
build = "make install_jsregexp",
dependencies = {
'hrsh7th/nvim-cmp',
'honza/vim-snippets',
},
config = function()
local ls = require("luasnip")
vim.g.snips_author = 'thek4n'
vim.g.snips_email = 'thek4n@yandex.com'
vim.g.snips_github = 'https://github.com/thek4n'
local function jump(val)
return function()
ls.jump(val)
end
end
local map = vim.keymap.set
map({'i', 's'}, '<C-n>', jump(1))
map({'i', 's'}, '<C-p>', jump(-1))
local luasnip_loaders = require("luasnip.loaders.from_snipmate")
luasnip_loaders.lazy_load()
end
},
{
'hrsh7th/nvim-cmp',
dependencies = {
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
'saadparwaiz1/cmp_luasnip',
'hrsh7th/cmp-nvim-lsp',
'lukas-reineke/cmp-under-comparator',
'SergioRibera/cmp-dotenv'
},
config = setup_cmp,
},
{
'neovim/nvim-lspconfig',
},
}

View File

@ -1,48 +0,0 @@
return {
'toppair/peek.nvim',
event = { "VeryLazy" },
enabled = vim.fn.executable("deno") == 1,
ft = {'markdown'},
build = 'deno task --quiet build:fast',
config = function()
local peek = require('peek')
peek.setup({
auto_load = true,
close_on_bdelete = true,
syntax = true,
theme = 'dark',
update_on_change = true,
app = 'webview',
filetype = {'markdown'},
throttle_at = 200000,
throttle_time = 'auto',
})
if vim.fn.executable("i3-msg") then
vim.api.nvim_create_user_command('PeekOpen', function()
if not peek.is_open() and vim.bo[vim.api.nvim_get_current_buf()].filetype == 'markdown' then
vim.fn.system('i3-msg split horizontal')
peek.open()
end
end, {})
vim.api.nvim_create_user_command('PeekClose', function()
if peek.is_open() then
peek.close()
vim.fn.system('i3-msg move left')
end
end, {})
else
vim.api.nvim_create_user_command("PeekOpen", require("peek").open, {})
vim.api.nvim_create_user_command("PeekClose", require("peek").close, {})
end
vim.api.nvim_create_autocmd("FileType", {
pattern = 'markdown', callback = function()
vim.keymap.set("n", "<Leader>rr", "<cmd>PeekOpen<CR>")
end
}
)
end,
}

View File

@ -1,85 +0,0 @@
return {
'nvim-telescope/telescope.nvim',
enabled = vim.fn.executable "fzf" == 1,
dependencies = {
'nvim-lua/plenary.nvim',
{
'nvim-telescope/telescope-fzf-native.nvim',
enabled = vim.fn.executable "make" == 1,
build = "make"
}
},
keys = {
{ '<Leader>ff', '<cmd>Telescope find_files<CR>' },
{ '<Leader>fg', '<cmd>Telescope live_grep<CR>' },
{ '<Leader>fc', '<cmd>Telescope git_commits<CR>' },
{ '<Leader>fd', '<cmd>Telescope diagnostics<CR>' },
},
config = function()
local telescope = require("telescope")
telescope.load_extension("fzf")
telescope.setup({
pickers = {
find_files = {
hidden = true,
},
},
defaults = {
selection_caret = "",
path_display = { "truncate" },
file_ignore_patterns = {
".git/",
"target/",
"docs/",
"vendor/*",
"%.lock",
"pycache/*",
"%.sqlite3",
"%.ipynb",
"node_modules/*",
"%.svg",
"%.otf",
"%.ttf",
"%.webp",
".dart_tool/",
".github/",
".gradle/",
".idea/",
".settings/",
".vscode/",
"pycache/",
"build/",
"env/",
"gradle/",
"node_modules/",
"%.pdb",
"%.dll",
"%.class",
"%.exe",
"%.cache",
"%.ico",
"%.pdf",
"%.dylib",
"%.jar",
"%.docx",
"%.met",
"smalljre_*/*",
".vale/",
"%.burp",
"%.mp4",
"%.mkv",
"%.rar",
"%.zip",
"%.7z",
"%.tar",
"%.bz2",
"%.epub",
"%.flac",
"%.tar.gz",
},
}
})
end
}

View File

@ -1,41 +0,0 @@
local function set_term_keymap(key, cmd)
local opts = { noremap = true, silent = true }
local key_string = string.format([[<Leader>%s]], key)
local cmd_string = string.format([[<cmd>%s<CR>]], cmd)
vim.api.nvim_set_keymap('t', key_string, cmd_string, opts)
end
local function set_term_keymaps()
set_term_keymap('t', 'ToggleTerm')
set_term_keymap('qa', 'qa!')
set_term_keymap('qq', 'bd!')
end
return {
"akinsho/toggleterm.nvim",
config = function()
vim.api.nvim_create_autocmd('TermEnter', {
pattern = 'term://*toggleterm#*',
callback = set_term_keymaps
})
local terminal_default = require('toggleterm.terminal').Terminal:new({
direction = 'horizontal',
})
function _TERMINAL_TOGGLE()
terminal_default:toggle()
end
require("toggleterm").setup({
direction = "horizontal",
shell = vim.o.shell,
hide_numbers = true,
})
end,
keys = {
{"<Leader>t", "<cmd>lua _TERMINAL_TOGGLE()<CR>"},
}
}

View File

@ -1,6 +0,0 @@
return {
'folke/which-key.nvim',
config = function()
require("which-key").setup()
end
}

View File

@ -1,8 +1,9 @@
for _, source in ipairs {
"base.options",
"base.mappings",
"base.lazy",
} do
for _, source in ipairs({
"core.options",
"core.mappings",
"core.lazy",
})
do
local status_ok, fault = pcall(require, source)
if not status_ok then
vim.api.nvim_err_writeln("Failed to load " .. source .. "\n\n" .. fault)

View File

@ -0,0 +1,31 @@
local function install_lazy_if_not_installed(lazypath)
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git", "clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
end
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
install_lazy_if_not_installed(lazypath)
vim.opt.rtp:prepend(lazypath)
require("lazy").setup(
"plugins",
{
change_detection = { enabled = false },
lockfile = vim.fn.stdpath("data") .. "/lazy-lock.json",
ui = { border = "rounded" },
performance = {
cache = {
enabled = true,
}
}
}
)

View File

@ -0,0 +1,2 @@
require("core.mappings.mappings")
require("core.mappings.run-scripts")

View File

@ -0,0 +1,190 @@
local map = vim.keymap.set
vim.g.mapleader = ','
-- Sections
map('n', '<Leader>h', '', {desc = "UI"})
map('n', '<Leader>c', '', {desc = "Colorschemes"})
map('n', '<Leader>f', '', {desc = "Telescope"})
map('n', '<Leader>p', '', {desc = "Config manage"})
map('n', '<Leader>q', '', {desc = "Exits"})
map('n', '<Leader>r', '', {desc = "Run file"})
local function create_function_tabdo(command)
return function()
local curr_tab = vim.fn.tabpagenr()
vim.cmd.tabdo(command)
vim.cmd.tabn(curr_tab)
end
end
map('n', '<Leader>hc', create_function_tabdo('set cursorline!'),
{desc = "Toggle line highlighting"})
map('n', '<Leader>cs',
function() vim.fn.setreg('/', '\\%x') end,
{desc = "Clear search"})
map('n', '<Leader>h/', function() vim.o.hlsearch = not vim.o.hlsearch end, {desc = "Clear search"})
-- enable search highlight in search mode
map('n', '/', ':set hlsearch<CR>/', {silent = true})
-- copy selection to search line
map('v', '<C-f>', '"fy:set hlsearch<CR>/\\V<C-r>f\\C<CR>')
-- copy word under cursor to search line
map('n', '<C-f>', ':set hlsearch<CR>/\\V<C-r><C-w>\\C<CR>')
map('n', '<Leader>hl', create_function_tabdo('lua toggle_number_style()'),
{desc = "Toggle line number style"})
map('n', '~', 'vg~', {desc = "Toggle character case"})
map('n', 'Ё', 'vg~', {desc = "Toggle character case"})
map('v', 'Ё', '~', {desc = "Toggle character case"})
map('n',
'.',
function()
local current_position = vim.api.nvim_win_get_cursor(0)
vim.cmd('norm! .')
vim.api.nvim_win_set_cursor(0, current_position)
end,
{remap = false, silent = true}
)
map('n', 'q:', ':')
map('n', 'Ж', ':')
map('n', '<Enter>', 'o<ESC>')
-- x to blackhole
map({'n', 'v'}, 'x', '"_x')
-- Put without overwrite yanked text
map('v', 'p', 'P')
-- map \ to prev finding
map({"n", "v"}, [[\]], ',')
-- Select all
map('n', '<C-a>', 'mvggVG')
map('v', '<C-a>', '<Esc>`v:delmarks v<CR>', {silent = true})
map("n", '<Leader>qq', '<cmd>bd!<CR>',
{desc = "Kill current buffer"})
map("n", '<Leader>qa', '<cmd>qa!<CR>',
{desc = "Exit without saving"})
map("n", '<Leader>he', '<cmd>set list!<CR>',
{desc = "Show hidden symbols"})
vim.opt.listchars=[[tab:→\ ,eol:↵,trail:·,extends:↷,precedes:↶]]
map("n", "<Leader>pl", "<cmd>Lazy<CR>",
{desc = "Package manager"})
map("n", "<Leader>pm", "<cmd>Mason<CR>",
{desc = "LSP Manager"})
-- Tab to go prev buffer
map("n", "<TAB>", ":b#<CR>", {silent = true})
-- Expand %% to dirname of current file in command line
map("c", '%%', [[getcmdtype() == ':' ? expand('%:h').'/' : '%%']], {expr = true})
-- Save from root
vim.api.nvim_create_user_command('W', [[execute 'silent! write !SUDO_ASKPASS=vim_askpass_helper sudo -A tee % >/dev/null' <bar> edit!]], {})
vim.api.nvim_create_user_command('X', [[execute 'silent! write !SUDO_ASKPASS=vim_askpass_helper sudo -A tee % >/dev/null' <bar> edit! | q]], {})
vim.cmd([[autocmd FileChangedRO * set readonly!]])
-- Toggle line number style
function toggle_number_style()
local opt = vim.opt
local number = opt.number["_value"]
local relativenumber = opt.relativenumber["_value"]
if (not number) and (not relativenumber) then
opt.number = true
opt.relativenumber = false
elseif (number) and (not relativenumber) then
opt.number = false
opt.relativenumber = true
elseif (not number) and (relativenumber) then
opt.number = true
opt.relativenumber = true
elseif (number) and (relativenumber) then
opt.number = false
opt.relativenumber = false
end
end
local function reload_config()
vim.cmd.source(vim.env.MYVIMRC)
vim.notify('Config reloaded...', vim.log.levels.INFO)
end
local function fetch_config()
vim.fn.system('git -C ~/dotfiles pull')
end
local function update_plugins()
vim.cmd("Lazy sync")
end
local function fetch_and_reload_config_and_update_plugins()
fetch_config()
reload_config()
update_plugins()
end
map("n", "<Leader>pr", reload_config,
{desc = "Reload config"})
map("n", "<Leader>pR", fetch_and_reload_config_and_update_plugins,
{desc = "Fetch and reload config and update plugins"})
vim.cmd([[
menu Encoding.utf-8 :e ++enc=utf8<CR>
menu Encoding.windows-1251 :e ++enc=cp1251 ++ff=dos<CR>
menu Encoding.koi8-r :e ++enc=koi8-r ++ff=unix<CR>
menu Encoding.cp866 :e ++enc=cp866 ++ff=dos<CR>
menu Encoding.koi8-u :e ++enc=koi8-u ++ff=unix<CR>
map <F8> :emenu Encoding.
]])
vim.cmd([[
menu Indent.tabs :set noexpandtab tabstop=4 shiftwidth=4<CR>
menu Indent.spaces :set expandtab tabstop=4 shiftwidth=4<CR>
map <F7> :emenu Indent.
]])
map("n", "<Leader>cd", "<cmd>colorscheme default<CR>")
map("n", "<Leader>cn", "<cmd>colorscheme nightfox<CR>")
map("n", "<Leader>ct", "<cmd>colorscheme elflord<CR>",
{desc = "TTY colorscheme"}
)

View File

@ -0,0 +1,35 @@
local function map_filetype(filetype, key, cmd)
local function format_string()
local run_script_string = [[:terminal %s <CR> :set nocursorline number norelativenumber <CR> G]]
local cmd_string = string.format(run_script_string, cmd)
local opts = { noremap = true, silent = true }
vim.keymap.set('n', key, cmd_string, opts)
end
vim.api.nvim_create_autocmd("FileType",
{ pattern = filetype, callback = format_string}
)
end
map_filetype('*', '<Leader>rs', '$(head -1 % | cut -c 3-) %')
map_filetype('nroff', '<Leader>rr', 'man -P cat -l %')
map_filetype('markdown', '<Leader>rr', 'pandoc -t plain %')
map_filetype('python', '<Leader>rr', 'python3 %')
map_filetype('python', '<Leader>rt', 'pytest %')
map_filetype('go', '<Leader>rr', 'go run %')
map_filetype('rust', '<Leader>rr', 'cargo run')
map_filetype('c', '<Leader>rr', 'gcc -o "${TMPDIR}/a.out" % && "${TMPDIR}/a.out"')
map_filetype('cpp', '<Leader>rr', 'g++ -o "${TMPDIR}/a.out" % && "${TMPDIR}/a.out"')
map_filetype('asm', '<Leader>rr', 'as -o "${TMPDIR}/out.o" % && ld -o "${TMPDIR}/a.out" "${TMPDIR}/out.o" && "${TMPDIR}/a.out"')
map_filetype('make', '<Leader>rr', 'make -C "$(dirname "%")"')

View File

@ -12,12 +12,12 @@ opt.relativenumber = true
opt.clipboard:append { 'unnamed' }
opt.clipboard:append { 'unnamedplus' }
opt.shortmess:append{a = true, s = true, I = true, c = true, S = true} -- disable startup message
opt.shortmess:append{a = true, s = true, I = true, c = true, S = true}
opt.cmdheight = 1
opt.cmdheight = 0
vim.wo.signcolumn = "yes:1"
opt.shell = 'zsh'
opt.shell = vim.env.SHELL
opt.ttimeoutlen = 50
opt.timeoutlen = 500
@ -28,6 +28,7 @@ opt.compatible = false
opt.hidden = true
-- indent
opt.expandtab = true -- spaces instead of tab
opt.smarttab = true
opt.tabstop = 4 -- 1 tab appears number spaces
@ -35,7 +36,9 @@ opt.softtabstop = 4
opt.shiftwidth = vim.bo.tabstop -- insert tab or shift inserting .shiftwidth*.tabstop spaces or .shiftwidth/.tabstop tabs
opt.autoindent = true
opt.smartindent = true
opt.showtabline = 2
-- tabline
opt.showtabline = 0
opt.cursorline = true
opt.wrap = false
@ -54,10 +57,18 @@ opt.incsearch = true
opt.mousehide = true
opt.mouse = 'a'
opt.colorcolumn = '81'
opt.scrolloff = 999
COLUMN_NUMBER_BEFORE_INSERT=1
vim.api.nvim_create_autocmd("InsertEnter", {
callback = function()
_, COLUMN_NUMBER_BEFORE_INSERT = unpack(vim.api.nvim_win_get_cursor(0))
end,
})
-- disable paste comment on new line
vim.api.nvim_create_autocmd("BufEnter", {
pattern = {"*"},
@ -87,7 +98,7 @@ opt.directory = { prefix .. "/swap//" }
local function makeDirIfNoExists(path)
local path = path["_value"]
path = path["_value"]
if (vim.fn.isdirectory(path) == 0) then
vim.fn.mkdir(path, "p")
end
@ -133,17 +144,28 @@ vim.cmd.highlight({ "DiagnosticHint", "guifg=Grey" })
opt.langmap = 'ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz'
vim.o.viewdir = vim.fn.stdpath('cache')..'/view'
vim.fn.mkdir(vim.o.viewdir, 'p')
opt.viewoptions = "folds,cursor"
vim.api.nvim_create_autocmd("BufWinLeave", {
pattern = {"*.*"},
callback = function()
vim.cmd.mkview(1)
pattern = {"?*"},
callback = function(args)
local bufname = vim.api.nvim_buf_get_name(args.buf)
if not bufname:match("^term://") then
vim.cmd.mkview(1)
end
end
})
vim.api.nvim_create_autocmd("BufWinEnter", {
pattern = {"*.*"},
callback = function()
vim.cmd('silent! loadview 1')
pattern = {"?*"},
callback = function(args)
local bufname = vim.api.nvim_buf_get_name(args.buf)
if not bufname:match("^term://") then
vim.cmd([[silent! loadview 1]])
end
end,
})

View File

@ -0,0 +1,137 @@
local border_opts = {
border = "rounded",
winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None",
max_width = 50,
min_width = 50,
max_height = math.floor(vim.o.lines * 0.4),
min_height = 3,
}
local function has_words_before()
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local function setup_cmp()
local cmp = require("cmp")
cmp.setup({
preselect = cmp.PreselectMode.None,
completion = {
completeopt = 'menu,menuone,noinsert,noselect',
},
snippet = {
expand = function(args)
vim.snippet.expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
['<Tab>'] = cmp.mapping(
function(fallback)
if cmp.visible() then
cmp.confirm({
behavior = cmp.ConfirmBehavior.Select,
select = true,
})
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end,
{ "i", "s" }
),
['<C-k>'] = cmp.mapping.select_prev_item({ behaviour = cmp.SelectBehavior.Select }),
['<C-j>'] = cmp.mapping.select_next_item({ behaviour = cmp.SelectBehavior.Select }),
['<C-p>'] = cmp.mapping.scroll_docs(4),
['<C-n>'] = cmp.mapping.scroll_docs(-4),
['<C-e>'] = cmp.mapping.abort(),
}),
window = {
completion = cmp.config.window.bordered(border_opts),
documentation = cmp.config.window.bordered(border_opts),
},
sorting = {
priority_weight = 1.0,
comparators = {
cmp.config.compare.score,
cmp.config.compare.locality,
cmp.config.compare.recently_used,
cmp.config.compare.offset,
require("cmp-under-comparator").under,
cmp.config.compare.order,
},
},
sources = cmp.config.sources({
{ name = 'nvim_lsp', priority = 1500 },
{ name = 'luasnip', priority = 1250 },
{ name = 'buffer', priority = 1000 },
{ name = 'tmux', priority = 750 },
{ name = "dotenv", priority = 500 },
{ name = 'path', priority = 250 },
}),
})
end
return {
{
'L3MON4D3/LuaSnip',
event = "InsertEnter",
build = "make install_jsregexp",
dependencies = {
'hrsh7th/nvim-cmp',
'honza/vim-snippets',
},
config = function()
local ls = require("luasnip")
vim.g.snips_author = 'thek4n'
vim.g.snips_email = 'thek4n@yandex.com'
vim.g.snips_github = 'https://github.com/thek4n'
local function jump(val)
return function()
ls.jump(val)
end
end
local map = vim.keymap.set
map({'i', 's'}, '<C-n>', jump(1), {silent = true})
map({'i', 's'}, '<C-p>', jump(-1), {silent = true})
map({'i', 's'}, '<C-k>', ls.expand, {silent = true})
map({"i", "s"}, "<C-e>",
function()
if ls.choice_active() then
ls.change_choice(1)
end
end,
{silent = true}
)
local luasnip_loaders = require("luasnip.loaders.from_snipmate")
luasnip_loaders.lazy_load()
end
},
{
'hrsh7th/nvim-cmp',
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
'saadparwaiz1/cmp_luasnip',
'hrsh7th/cmp-nvim-lsp',
'lukas-reineke/cmp-under-comparator',
'SergioRibera/cmp-dotenv',
'andersevenrud/cmp-tmux',
},
config = setup_cmp,
},
{
'neovim/nvim-lspconfig',
event = "InsertEnter",
config = function()
vim.diagnostic.config({ virtual_text = true })
end,
},
}

View File

@ -0,0 +1,189 @@
return {
{
"ellisonleao/dotenv.nvim",
config = function()
require('dotenv').setup({
enable_on_load = true, -- will load your .env file upon loading a buffer
})
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "*", callback = require('dotenv').autocmd
})
end
},
{
"ThePrimeagen/refactoring.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
config = function()
require("telescope").load_extension("refactoring")
end,
keys = {
{ "<space>r", "", desc = "Refactoring", mode = {"n", "v"} },
{
"<space>rr",
":lua require('refactoring').select_refactor()<CR>",
desc = "Select refactoring",
mode = {"n", "x"},
},
-- Refactoring operations
{
"<space>re",
"<Esc><Cmd>lua require('refactoring').refactor('Extract Function')<CR>",
desc = "Extract Function",
mode = "x",
},
{
"<space>rf",
"<Esc><Cmd>lua require('refactoring').refactor('Extract Function To File')<CR>",
desc = "Extract Function To File",
mode = "x",
},
{
"<space>rv",
"<Esc><Cmd>lua require('refactoring').refactor('Extract Variable')<CR>",
desc = "Extract Variable",
mode = "x",
},
{
"<space>rI",
"<Esc><Cmd>lua require('refactoring').refactor('Inline Function')<CR>",
desc = "Inline Function",
mode = "n",
},
{
"<space>ri",
"<Esc><Cmd>lua require('refactoring').refactor('Inline Variable')<CR>",
desc = "Inline Variable",
mode = {"n", "x"},
},
-- Extract block
{
"<space>rb",
"<Cmd>lua require('refactoring').refactor('Extract Block')<CR>",
desc = "Extract Block",
mode = "n",
},
{
"<space>rbf",
"<Cmd>lua require('refactoring').refactor('Extract Block To File')<CR>",
desc = "Extract Block To File",
mode = "n",
},
-- Telescope
{
"<leader>fr",
"<Cmd>lua require('telescope').extensions.refactoring.refactors()<CR>",
desc = "Telescope refactorings",
mode = "n",
}
}
},
{
'folke/neodev.nvim',
ft = {'lua'},
dependencies = {
'neovim/nvim-lspconfig'
},
config = function()
require('neodev').setup()
end
},
{
'folke/trouble.nvim',
dependencies = { 'kyazdani42/nvim-web-devicons' },
config = function()
require("trouble").setup()
vim.keymap.set("n", "<space>x", "", {desc = "Diagnostics"})
local function set_trouble_keymap(key, cmd, opts)
vim.keymap.set(
"n",
string.format("<space>x%s", key),
string.format("<cmd>Trouble %s<CR>", cmd),
opts
)
end
set_trouble_keymap("x", "diagnostics toggle", {desc = "Workspace diagnostics window"})
set_trouble_keymap("X", "diagnostics toggle filter.buf=0", {desc = "Buffer diagnostics window"})
set_trouble_keymap("Q", "qflist toggle", {desc = "Qflist"})
set_trouble_keymap("l", "lsp toggle focus=false win.position=right", {desc = "Toggle LSP diagnostics"})
end
},
{
'lewis6991/gitsigns.nvim',
event = "BufReadPost",
enabled = vim.fn.executable "git" == 1,
config = function()
require("gitsigns").setup({
signs = {
add = { text = "+" },
change = { text = "|" },
delete = { text = "-" },
topdelete = { text = "^" },
changedelete = { text = "~" },
untracked = { text = "0" },
},
signs_staged = {
add = { text = '+' },
change = { text = '|' },
delete = { text = '-' },
topdelete = { text = "^" },
changedelete = { text = '~' },
untracked = { text = '0' },
},
signs_staged_enable = true,
})
vim.keymap.set("n", "<space>g", "", {desc = "Git actions"})
local function set_gitsigns_keymap(key, cmd, opts)
vim.keymap.set(
"n",
string.format("<space>g%s", key),
string.format("<cmd>Gitsigns %s<CR>", cmd),
opts
)
end
set_gitsigns_keymap('p', 'preview_hunk', {desc = "Preview hunk"})
set_gitsigns_keymap('b', 'blame_line', {desc = "Show line commit info"})
set_gitsigns_keymap('n', 'next_hunk', {desc = "Next changes"})
set_gitsigns_keymap('N', 'prev_hunk', {desc = "Previous changes"})
set_gitsigns_keymap('r', 'reset_hunk', {desc = "Reset changes"})
set_gitsigns_keymap('h', 'toggle_linehl', {desc = "Toggle changes highlight"})
end
},
{
"wsdjeg/vim-fetch",
},
{
"aznhe21/actions-preview.nvim",
dependencies = {
'nvim-telescope/telescope.nvim',
'MunifTanjim/nui.nvim'
},
config = function()
require("actions-preview").setup {
telescope = {
sorting_strategy = "ascending",
layout_strategy = "vertical",
layout_config = {
width = 0.8,
height = 0.9,
prompt_position = "top",
preview_cutoff = 20,
preview_height = function(_, _, max_lines)
return max_lines - 15
end,
},
},
}
vim.keymap.set("n", "<space>c", "", {desc = "Code action"})
vim.keymap.set("n", "<space>ca", require("actions-preview").code_actions, {desc = "Code action"})
end,
},
}

View File

@ -0,0 +1,80 @@
local lsp_have_feature = {
rename = function(client)
return client.supports_method "textDocument/rename"
end,
inlay_hint = function(client)
return client.supports_method "textDocument/inlayHint"
end,
}
local function get_lsp_client_names(have_feature)
local client_names = {}
local attached_clients = vim.lsp.get_clients { bufnr = 0 }
for _, client in ipairs(attached_clients) do
if have_feature(client) then
table.insert(client_names, client.name)
end
end
return client_names
end
local function lsp_buf_rename(client_name)
vim.lsp.buf.rename(nil, { name = client_name })
end
function LSP_BUF_RENAME_USE_ANY(fallback)
local client_names = get_lsp_client_names(lsp_have_feature.rename)
for _, client_name in ipairs(client_names) do
lsp_buf_rename(client_name)
return
end
if fallback then
fallback()
end
end
return {
{
'mason-org/mason.nvim',
dependencies = {
'neovim/nvim-lspconfig',
"mason-org/mason-lspconfig.nvim",
'nvim-telescope/telescope.nvim',
},
config = function()
-- Mappings.
local opts = { noremap=true, silent=true }
local function desc(description)
return vim.tbl_extend("keep", opts, {desc = description})
end
-- Sections
vim.api.nvim_set_keymap('n', '<space>w', '', {desc = "Workspace manage"})
-- See `:help vim.lsp.*` for documentation on any of the below functions
vim.api.nvim_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', desc("Go declaration"))
vim.api.nvim_set_keymap('n', 'gd', '<cmd>Telescope lsp_definitions<CR>', desc("Go definition"))
vim.api.nvim_set_keymap('n', 'gi', '<cmd>Telescope lsp_implementations<CR>', desc("Go implementation"))
vim.api.nvim_set_keymap('n', 'gr', '<cmd>Telescope lsp_references<CR>', desc("Go references"))
vim.api.nvim_set_keymap('n', 'gt', '<cmd>Telescope lsp_type_definitions<CR>', desc("Go type references"))
vim.api.nvim_set_keymap('n', '<space>k', '<cmd>lua vim.lsp.buf.hover()<CR>', desc("Show help"))
vim.api.nvim_set_keymap('n', '<space>K', '<cmd>lua vim.lsp.buf.signature_help()<CR>', desc("Show signature"))
vim.api.nvim_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', desc("Add workspace folder"))
vim.api.nvim_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', desc("Remove workspace folder"))
vim.api.nvim_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', desc("Show workspace folders"))
vim.api.nvim_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', desc("Show type"))
vim.api.nvim_set_keymap('n', '<space>rn', "<cmd>lua LSP_BUF_RENAME_USE_ANY()<CR>", desc("Rename object"))
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', desc("Show diagnostic"))
vim.api.nvim_set_keymap('n', '<space>p', '<cmd>lua vim.diagnostic.goto_prev()<CR>', desc("Previous problem"))
vim.api.nvim_set_keymap('n', '<space>n', '<cmd>lua vim.diagnostic.goto_next()<CR>', desc("Next problem"))
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
vim.api.nvim_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', desc("Format file"))
require("mason").setup()
require("mason-lspconfig").setup()
end,
},
}

View File

@ -0,0 +1,128 @@
return {
'tpope/vim-repeat',
'google/vim-searchindex',
'preservim/vim-pencil',
{
'windwp/nvim-autopairs',
desc = "Auto pair brackets and tags",
event = "InsertEnter",
opts = {
disable_in_macro = true,
}
},
{
"kylechui/nvim-surround",
event = "VeryLazy",
config = function()
require("nvim-surround").setup()
end
},
{
'windwp/nvim-ts-autotag',
config = function()
require("nvim-ts-autotag").setup()
end
},
{
'numToStr/Comment.nvim',
keys = { { "gc" }, { "gc", mode = "v" } },
config = function()
require("Comment").setup()
end
},
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
event = "BufReadPost",
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = {"python", "lua", "vim", "html", "rust", "markdown", "regex"},
auto_install = true,
highlight = {
enable = true,
}
})
end
},
{
"thek4n/mdimage.nvim",
config = function()
require("mdimage").setup({
target_path = "./.img",
})
end
},
{
"thek4n/postman.nvim",
keys = {"<leader>rl"},
cmd = {"PostmanExec"},
config = function()
vim.keymap.set("n", "<Leader>rl", '<cmd>PostmanExec<CR>')
end
},
{
'monaqa/dial.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
keys = {"+", "-"},
config = function()
local augend = require("dial.augend")
require("dial.config").augends:register_group{
default = {
augend.integer.alias.decimal_int,
augend.semver.alias.semver,
augend.constant.alias.bool
},
}
vim.keymap.set("n", "+", function()
require("dial.map").manipulate("increment", "normal")
end)
vim.keymap.set("n", "-", function()
require("dial.map").manipulate("decrement", "normal")
end)
end
},
{
'chentoast/marks.nvim',
config = function()
require("marks").setup()
end
},
{
'Pocco81/auto-save.nvim',
config = function()
require("auto-save").setup({
enabled = true, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
execution_message = {
message = function() -- message to print on save
return ""
end,
dim = 0.18, -- dim the color of `message`
cleaning_interval = 1250, -- (milliseconds) automatically clean MsgArea after displaying `message`. See :h MsgArea
},
trigger_events = {"InsertLeave", "TextChanged"}, -- vim events that trigger auto-save. See :h events
condition = function(buf)
local fn = vim.fn
local utils = require("auto-save.utils.data")
if
fn.getbufvar(buf, "&modifiable") == 1 and
utils.not_in(fn.getbufvar(buf, "&filetype"), {})
then
return true -- met condition(s), can save
end
return false -- can't save
end,
write_all_buffers = false, -- write all buffers when the current one meets `condition`
debounce_delay = 135, -- saves the file at most every `debounce_delay` milliseconds
callbacks = { -- functions to be executed at different intervals
enabling = nil, -- ran when enabling auto-save
disabling = nil, -- ran when disabling auto-save
before_asserting_save = nil, -- ran before checking `condition`
before_saving = nil, -- ran before doing the actual save
after_saving = nil -- ran after doing the actual save
}
})
end
},
}

View File

@ -0,0 +1,129 @@
return {
{
'nvim-telescope/telescope.nvim',
enabled = vim.fn.executable("fzf") == 1,
dependencies = {
{
'nvim-lua/plenary.nvim',
},
{
'nvim-telescope/telescope-fzf-native.nvim',
enabled = vim.fn.executable("make") == 1,
build = "make"
},
},
cmd = {
"Telescope"
},
previewers = {
buffer_previewer_maker = require('telescope.previewers').buffer_previewer_maker
},
keys = {
{ '<Leader>fb', '<cmd>Telescope buffers<CR>' },
{ '<Leader>ff', '<cmd>Telescope find_files<CR>' },
{ '<Leader>fg', '<cmd>Telescope live_grep<CR>' },
{ '<Leader>fc', '<cmd>Telescope git_commits<CR>' },
{ '<Leader>fd', '<cmd>Telescope diagnostics<CR>' },
{ '<Leader><Leader>', '<cmd>Telescope buffers<CR>' },
},
config = function()
local telescope = require("telescope")
local actions = require("telescope.actions")
telescope.load_extension("fzf")
telescope.setup({
pickers = {
find_files = {
hidden = true,
},
},
defaults = {
mappings = {
i = {
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
["<C-n>"] = actions.preview_scrolling_down,
["<C-p>"] = actions.preview_scrolling_up,
["<C-a>"] = actions.toggle_all,
["<C-o>"] = actions.toggle_selection,
},
n = {
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
["<C-n>"] = actions.preview_scrolling_down,
["<C-p>"] = actions.preview_scrolling_up,
["<C-a>"] = actions.toggle_all,
}
},
selection_caret = "",
path_display = { "truncate" },
file_ignore_patterns = {
"%.git/",
"%.svn/",
"%.o",
"%.a",
"%.so",
"a%.out",
"venv/",
"CMakeFiles/",
"cmake_install%.cmake",
"CMakeCache%.txt",
"target/",
"%.pytest_cache/",
"vendor/",
"%.lock",
"%.db",
"%.sqlite3",
"%.sqlite",
"%.ipynb",
"%.svg",
"%.burp",
"%.mp4",
"%.png",
"%.jpeg",
"%.jpg",
"%.gif",
"%.mkv",
"%.otf",
"%.ttf",
"%.webp",
"%.bin",
"%.dart_tool/",
"%.gradle/",
"%.idea/",
"%.settings/",
"%.vscode/",
"pycache/",
"build/",
"env/",
"gradle/",
"node_modules/",
"%.pdb",
"%.dll",
"%.class",
"%.exe",
"%.cache",
"%.ico",
"%.pdf",
"%.dylib",
"%.jar",
"%.docx",
"%.met",
"%.vale/",
"%.rar",
"%.zip",
"%.7z",
"%.tar",
"%.xz",
"%.gz",
"%.bz2",
"%.epub",
"%.flac",
"%.tar.gz",
},
}
})
end
}
}

View File

@ -6,5 +6,12 @@ return {
{
'sgur/vim-textobj-parameter',
dependencies = { 'kana/vim-textobj-user' }
}
},
{
'chaoren/vim-wordmotion',
},
{
'nvim-treesitter/nvim-treesitter-textobjects',
dependencies = { 'nvim-treesitter/nvim-treesitter' },
},
}

View File

@ -0,0 +1,209 @@
local function get_virtual_env()
return vim.fs.basename(os.getenv("VIRTUAL_ENV"))
end
function GET_FORMATTED_VIRTUAL_ENV()
if vim.bo.filetype == 'python' then
return "<" .. get_virtual_env() .. ">"
end
return ""
end
function DETECT_INDENT_TYPE()
if vim.bo.expandtab then
return vim.bo.shiftwidth .. " spaces"
else
return vim.bo.shiftwidth / vim.bo.tabstop .. " tabs (" .. vim.bo.tabstop .. ")"
end
end
local function is_absolute_path(path)
return string.sub(path, 1, 1) == '/' or string.sub(path, 1, 1) == '~'
end
return {
{
"folke/twilight.nvim",
cmd = "Twilight"
},
{
'HiPhish/rainbow-delimiters.nvim',
},
{
'nvim-lualine/lualine.nvim',
event = "VeryLazy",
config = function()
require("lualine").setup({
options = {
component_separators = { left = '', right = '' },
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {
{
'vim.fn.getcwd()',
fmt = function(str)
return str:gsub(os.getenv("HOME"), "~")
end,
color = { fg='white', gui='bold' },
padding = { left = 1, right = 0 }
},
{
'filename',
fmt = function(str)
local res = str
if is_absolute_path(res) then
res = " " .. res
else
res = "/" .. res
end
return res
end,
file_status = true,
path = 1,
padding = { left = 0, right = 1 }
},
},
lualine_x = {'GET_FORMATTED_VIRTUAL_ENV()', 'DETECT_INDENT_TYPE()', 'filetype'},
lualine_y = {'searchcount'},
lualine_z = {'location', 'selectioncount'},
},
})
end,
dependencies = { 'kyazdani42/nvim-web-devicons' },
},
{
'EdenEast/nightfox.nvim',
lazy = false,
priority = 1000,
build = function()
require("nightfox").compile()
end,
config = function()
require("nightfox").setup({
options = {
transparent = true,
styles = {
strings = "italic",
comments = "italic",
constants = "bold",
}
}
})
vim.cmd.colorscheme("nightfox")
end
},
{
'ellisonleao/gruvbox.nvim',
lazy = true,
},
{
"folke/tokyonight.nvim",
lazy = true,
},
{
'xiyaowong/transparent.nvim',
enabled = false,
lazy = true,
config = function()
require("transparent").setup({
exclude_groups = {'CursorLine'},
})
end
},
{
'lukas-reineke/virt-column.nvim',
lazy = false,
config = function()
require("virt-column").setup({
virtcolumn = '80'
})
end
},
{
'norcalli/nvim-colorizer.lua',
lazy = false,
config = function()
require('colorizer').setup()
end
},
{
"lukas-reineke/indent-blankline.nvim",
config = function()
require("ibl").setup({
scope = { enabled = false },
})
end,
main = "ibl"
},
{
'karb94/neoscroll.nvim',
config = function()
require('neoscroll').setup({
mappings = {'<C-u>', '<C-d>', '<C-b>',
'<C-y>', '<C-e>', 'zt', 'zz', 'zb'},
respect_scrolloff = true,
})
end
},
{
'folke/which-key.nvim',
config = function()
require("which-key").setup()
end
},
{
"folke/todo-comments.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
opts = {}
},
{
"folke/noice.nvim",
event = "VeryLazy",
dependencies = {
"MunifTanjim/nui.nvim",
},
config = function()
require("noice").setup({
presets = {
bottom_search = true,
},
cmdline = {
enabled = true,
view = "cmdline_popup",
},
health = {
checker = false,
},
routes = {
{ -- hack to disable search count
filter = {
event = "msg_show",
kind = "echo",
["not"] = { cmdline = true },
},
opts = { skip = true },
},
},
})
end
},
{
"https://github.com/liangxianzhe/floating-input.nvim.git",
config = function()
vim.ui.input = function(opts, on_confirm)
require("floating-input").input(opts, on_confirm, { border = 'single' })
end
end
},
{
"petertriho/nvim-scrollbar",
config = function()
require("scrollbar").setup()
end
},
}

View File

@ -1,434 +0,0 @@
#################################
# Shadows #
#################################
# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = true;
# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 7;
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75
# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -7;
# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -7;
# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0
# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
# shadow-color = "#000000"
# Specify a list of conditions of windows that should have no shadow.
#
# examples:
# shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"_GTK_FRAME_EXTENTS@:c"
];
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
# clip-shadow-above = []
# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
# shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false
#################################
# Fading #
#################################
# Fade windows in/out when opening/closing and when opacity changes,
# unless no-fading-openclose is used.
fading = false
# fading = true;
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.075;
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.075;
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10
# Specify a list of conditions of windows that should not be faded.
# fade-exclude = []
# Do not fade on window open/close.
# no-fading-openclose = false
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false
#################################
# Transparency / Opacity #
#################################
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
inactive-opacity = 1
# inactive-opacity = 0.95;
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 0.9;
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
# active-opacity = 1.0
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
inactive-dim = 0.15
# Specify a list of conditions of windows that should never be considered focused.
# focus-exclude = []
focus-exclude = [
"class_g = 'firefox'",
"class_g = 'webview'",
"class_g = 'Cairo-clock'",
"class_g = 'Conky'"
];
# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
# opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
#################################
# Corners #
#################################
# Sets the radius of rounded window corners. When > 0, the compositor will
# round the corners of windows. Does not interact well with
# `transparent-clipping`.
corner-radius = 3
# Exclude conditions for rounded corners.
rounded-corners-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'"
];
#################################
# Background-Blurring #
#################################
# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method =
# blur-size = 12
#
# blur-deviation = false
#
# blur-strength = 5
# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# The name of the switch may change without prior notifications.
#
# blur-background = false
# Blur background of windows when the window frame is not opaque.
# Implies:
# blur-background
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false
# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false
# Specify the blur convolution kernel, with the following format:
# example:
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
#
# blur-kern = ""
blur-kern = "3x3box";
# Exclude conditions for background blur.
# blur-background-exclude = []
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
#################################
# General Settings #
#################################
# Enable remote control via D-Bus. See the man page for more details.
# dbus = true
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
# backend = "glx"
backend = "xrender";
# Enable/disable VSync.
# vsync = false
vsync = true;
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false
# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;
# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
detect-rounded-corners = true;
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
#
# detect-client-opacity = false
detect-client-opacity = true;
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false
# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows.
#
# unredir-if-possible = false
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
detect-transient = true;
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
# group focused at the same time. This usually means windows from the same application
# will be considered focused or unfocused at the same time.
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
#
# detect-client-leader = false
# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1
# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
glx-no-stencil = true;
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes,
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false
# Disable the use of damage information.
# This cause the whole screen to be redrawn every time, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
use-damage = true;
# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false
# GLX backend: Use specified GLSL fragment shader for rendering window
# contents. Read the man page for a detailed explanation of the interface.
#
# window-shader-fg = "default"
# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
#
# window-shader-fg-rule = [
# "my_shader.frag:window_type != 'dock'"
# ]
# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false
# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false
# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0
# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false
# Specify a list of conditions of windows that should never have transparent
# clipping applied. Useful for screenshot tools, where you need to be able to
# see through transparent parts of the window.
#
# transparent-clipping-exclude = []
# Set the log level. Possible values are:
# "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "warn";
# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = "/path/to/your/log/file"
# Show all X errors (for debugging)
# show-all-xerrors = false
# Write process ID to a file.
# write-pid-path = "/path/to/your/log/file"
# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
# "tooltip", "notification", "combo", and "dnd".
#
# Following per window-type options are available: ::
#
# fade, shadow:::
# Controls window-type-specific shadow and fade settings.
#
# opacity:::
# Controls default opacity of the window type.
#
# focus:::
# Controls whether the window of this type is to be always considered focused.
# (By default, all window types except "normal" and "dialog" has this on.)
#
# full-shadow:::
# Controls whether shadow is drawn under the parts of the window that you
# normally won't be able to see. Useful when the window has parts of it
# transparent, and you want shadows in those areas.
#
# clip-shadow-above:::
# Controls whether shadows that would have been drawn above the window should
# be clipped. Useful for dock windows that should have no shadow painted on top.
#
# redir-ignore:::
# Controls whether this type of windows should cause screen to become
# redirected again after been unredirected. If you have unredir-if-possible
# set, and doesn't want certain window to cause unnecessary screen redirection,
# you can set this to `true`.
#
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
dock = { shadow = false; clip-shadow-above = true; }
dnd = { shadow = false; }
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }
};

View File

@ -2,5 +2,9 @@ configuration {
show-icons: true;
terminal: "alacritty";
font: "xft:FiraCode 12";
kb-accept-entry: "Ctrl+m,Return";
kb-row-up: "Ctrl+k";
kb-row-down: "Ctrl+j";
kb-remove-to-eol: "";
}
@theme "Arc-Dark"

View File

@ -0,0 +1,28 @@
# vim: ft=swayconfig
# Sway autostart
exec swayidle -w \
timeout 1800 'swaylock -f' \
timeout 1805 'swaymsg "output * power off"' \
resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -f'
# Screen layout
exec_always ~/.screenlayout/default
output * bg "$(find ~/.wallpaper -type f | shuf -n 1)" fill
# Notifications
#systemctl --user enable --now dbus.service
exec mako --anchor top-right --default-timeout 4000 --icons 1 --actions 1 --output $primary
exec_always wayvnc -o $primary -S "$(mktemp --dry-run --tmpdir="${XDG_RUNTIME_DIR}" wayvnc.XXXXXXXXXX)" 127.0.0.1 5900
exec_always wayvnc -o $secondary -S "$(mktemp --dry-run --tmpdir="${XDG_RUNTIME_DIR}" wayvnc.XXXXXXXXXX)" 127.0.0.1 5901
exec --no-startup-id easyeffects --gapplication-service
exec --no-startup-id pomodoro daemon
exec $browser
exec $terminal
exec Telegram
exec firefox_media

View File

@ -0,0 +1,19 @@
# vim: ft=swayconfig
# Sway bar
bar {
mode dock
position bottom
status_command i3blocks
wrap_scroll no
bindsym button4 nop
bindsym button5 nop
hidden_state hide
output *
tray_output $primary
strip_workspace_name no
strip_workspace_numbers no
modifier $mod
}
exec ~/.config/i3blocks/scripts/layout_change_handler.sh

View File

@ -0,0 +1,201 @@
# vim: ft=swayconfig
# Sway bindings
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% && pkill -RTMIN+1 i3blocks
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% && pkill -RTMIN+1 i3blocks
bindsym --locked XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && pkill -RTMIN+1 i3blocks
bindsym --locked XF86AudioPlay exec playerctl play-pause
bindsym --locked XF86AudioPause exec playerctl play-pause
bindsym --locked XF86AudioNext exec playerctl next
bindsym --locked XF86AudioPrev exec playerctl previous
bindsym --locked XF86Tools exec pavucontrol
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --to-code $mod+p exec pomodoro toggle && pkill -RTMIN+2 i3blocks
bindsym $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk
bindsym --release $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute
bindsym $mod+Shift+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk
bindsym --release XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute
bindsym XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk, x1carb11
bindsym --release XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute, x1carb11
bindsym $mod+XF86AudioMicMute exec --no-startup-id pactl list short sources | awk '/input.*RUNNING/ {system("pactl set-source-mute " $1 " toggle")}' ## Find and mute mics
bindsym --to-code $mod+s exec ~/.config/sway/scripts/swap-workspaces.sh
bindsym --to-code $mod+Shift+q kill
bindsym --to-code $mod+Shift+r reload
set $menu rofi -show drun -m -1
bindsym --to-code $mod+d exec $menu
bindsym $mod+o exec --no-startup-id slm_rofi
# Change focus
bindsym --to-code $mod+h focus left
bindsym --to-code $mod+j focus down
bindsym --to-code $mod+k focus up
bindsym --to-code $mod+l focus right
bindsym --to-code $mod+Left focus left
bindsym --to-code $mod+Down focus down
bindsym --to-code $mod+Up focus up
bindsym --to-code $mod+Right focus right
# Move focused window
bindsym --to-code $mod+Shift+h move left
bindsym --to-code $mod+Shift+j move down
bindsym --to-code $mod+Shift+k move up
bindsym --to-code $mod+Shift+l move right
bindsym --to-code $mod+Shift+Left move left
bindsym --to-code $mod+Shift+Down move down
bindsym --to-code $mod+Shift+Up move up
bindsym --to-code $mod+Shift+Right move right
bindsym --to-code $mod+Ctrl+Shift+l move workspace to output right
bindsym --to-code $mod+Ctrl+Shift+h move workspace to output left
bindsym --to-code $mod+Ctrl+Shift+k move workspace to output up
bindsym --to-code $mod+Ctrl+Shift+j move workspace to output down
bindsym --to-code $mod+f fullscreen toggle
bindsym --to-code $mod+t layout tabbed
bindsym --to-code $mod+v layout toggle split
bindsym --to-code $mod+a focus parent
bindsym --to-code $mod+Shift+slash floating toggle
bindsym --to-code $mod+Shift+comma sticky toggle
# Change focus between tiling / floating windows
bindsym --to-code $mod+slash focus mode_toggle
bindsym --to-code Print exec --no-startup-id screenshot select copy
bindsym --to-code $mod+Print exec --no-startup-id screenshot window copy
bindsym --to-code Ctrl+Print exec --no-startup-id screenshot entire copy
bindsym --to-code Shift+Print exec --no-startup-id screenshot select save
bindsym --to-code Shift+$mod+Print exec --no-startup-id screenshot window save
bindsym --to-code Shift+Ctrl+Print exec --no-startup-id screenshot entire save
bindsym --to-code $mod+q workspace hide1; workspace hide2
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
bindsym --to-code $mod+b bar mode toggle
set $exitmode "Power: [e]xit, [r]eboot, [s]hutdown, s[u]spend, [l]ock, [b]lack, [R]UEFI"
mode $exitmode {
bindsym --to-code e exit
bindsym --to-code r exec --no-startup-id reboot
bindsym --to-code s exec --no-startup-id shutdown -h now
bindsym --to-code u exec ~/.config/sway/scripts/lock-telegram.sh && systemctl suspend; mode "default"
bindsym --to-code l exec ~/.config/sway/scripts/lock-telegram.sh && swaylock -f; mode "default"
bindsym --to-code b exec magick canvas:none PNG:- | feh --class black -YFx -; mode "default"
bindsym --to-code Shift+r exec --no-startup-id systemctl reboot --firmware-setup
bindsym Escape mode "default"
bindsym Return mode "default"
}
bindsym --to-code $mod+x mode $exitmode
# switch to workspace
bindsym --to-code $mod+1 workspace number $ws1
bindsym --to-code $mod+2 workspace number $ws2
bindsym --to-code $mod+3 workspace number $ws3
bindsym --to-code $mod+4 workspace number $ws4
bindsym --to-code $mod+5 workspace number $ws5
bindsym --to-code $mod+6 workspace number $ws6
bindsym --to-code $mod+7 workspace number $ws7
bindsym --to-code $mod+8 workspace number $ws8
bindsym --to-code $mod+9 workspace number $ws9
bindsym --to-code $mod+0 workspace number $ws10
# move focused container to workspace
bindsym --to-code $mod+Shift+1 move container to workspace number $ws1
bindsym --to-code $mod+Shift+2 move container to workspace number $ws2
bindsym --to-code $mod+Shift+3 move container to workspace number $ws3
bindsym --to-code $mod+Shift+4 move container to workspace number $ws4
bindsym --to-code $mod+Shift+5 move container to workspace number $ws5
bindsym --to-code $mod+Shift+6 move container to workspace number $ws6
bindsym --to-code $mod+Shift+7 move container to workspace number $ws7
bindsym --to-code $mod+Shift+8 move container to workspace number $ws8
bindsym --to-code $mod+Shift+9 move container to workspace number $ws9
bindsym --to-code $mod+Shift+0 move container to workspace number $ws10
bindsym --to-code $mod+u workspace prev
bindsym --to-code $mod+Shift+u workspace next
# workspace_auto_back_and_forth no
bindsym --to-code $mod+Tab workspace back_and_forth
# resize window (you can also use the mouse for that)
set $resizemode "Resize: toggle [p]recize"
mode $resizemode {
bindsym --to-code h resize shrink width 10 px or 10 ppt
bindsym --to-code j resize grow height 10 px or 10 ppt
bindsym --to-code k resize shrink height 10 px or 10 ppt
bindsym --to-code l resize grow width 10 px or 10 ppt
bindsym --to-code $mod+r mode "default"
bindsym --to-code p mode $presizemode
bindsym --to-code Return mode "default"
bindsym --to-code Escape mode "default"
}
set $presizemode "Precise resize: toggle [p]resize"
mode $presizemode {
bindsym --to-code h resize shrink width 1 px or 1 ppt
bindsym --to-code j resize grow height 1 px or 1 ppt
bindsym --to-code k resize shrink height 1 px or 1 ppt
bindsym --to-code l resize grow width 1 px or 1 ppt
bindsym --to-code $mod+r mode "default"
bindsym --to-code p mode $resizemode
bindsym --to-code Return mode "default"
bindsym --to-code Escape mode "default"
}
bindsym --to-code $mod+r mode $resizemode
input type:keyboard {
xkb_layout us,ru
xkb_options grp:win_space_toggle,caps:ctrl_modifier
xkb_model "pc101"
repeat_delay 250
repeat_rate 100
}
input type:pointer {
natural_scroll disabled
}
input type:touchpad {
tap enabled
tap_button_map lrm
dwt enabled
scroll_method two_finger
natural_scroll enabled
drag enabled
drag_lock disabled
pointer_accel 0.4
}
bindgesture swipe:3:right workspace next
bindgesture swipe:3:left workspace prev
bindgesture swipe:3:up exec $menu
bindgesture swipe:3:down workspace hide1; workspace hide2

View File

@ -0,0 +1,34 @@
# Sway config sourcer
exec swaylock -f
set $mod Mod4
set $ws1 "1 Browser"
set $ws2 "2  Code"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8💬Social"
set $ws9 "9🎵Music"
set $ws10 "10🍿Media"
set $terminal ~/.config/sway/scripts/auto-alacritty.sh
set $browser firefox
# Example variables.d:
#set $primary DVI-I-1
#set $secondary VGA-1
#set $terminal alacritty
#set $browser firefox
include ~/.config/sway/variables.d/*.conf
include ~/.config/sway/other.conf
include ~/.config/sway/bindings.conf
include ~/.config/sway/bar.conf
include ~/.config/sway/autostart.conf
include /etc/sway/config.d/*.conf
include ~/.config/sway/config.d/*.conf

View File

View File

@ -0,0 +1,55 @@
# vim: ft=swayconfig
# Other sway config
# Hide cursor
seat seat0 hide_cursor when-typing enable
seat seat0 hide_cursor 5000
set $font_size 11
font xft:FiraCode $font_size
floating_modifier $mod
focus_follows_mouse no
mouse_warping none
popup_during_fullscreen smart
smart_borders on
focus_on_window_activation urgent
default_border pixel 1
default_floating_border normal
hide_edge_borders smart
for_window [tiling] border pixel 3
for_window [title="Picture-in-Picture"] sticky enable
for_window [title="Picture-in-Picture"] border pixel 0
for_window [app_id="firefox"] inhibit_idle fullscreen
for_window [app_id="pavucontrol"] {
floating enable
resize set width 60 ppt height 80 ppt
move position center
}
for_window [class="black"] fullscreen enable
no_focus [title="^Peek preview$"]
no_focus [class="black"]
assign [app_id="firefox_media"] workspace $ws10
assign [app_id="Alacritty"] workspace $ws2
assign [app_id="org.telegram.desktop"] workspace $ws8
assign [app_id="firefox"] workspace $ws1
workspace $ws1 output $primary
workspace $ws2 output $primary
workspace $ws3 output $primary
workspace $ws9 output $secondary
workspace $ws10 output $secondary
workspace hide1 output $primary
workspace hide2 output $secondary
exec_always test -f ~/.Xresources && xrdb -merge ~/.Xresources

View File

@ -0,0 +1,6 @@
#!/bin/sh
while true; do
alacritty
sleep 1
done

View File

@ -0,0 +1,25 @@
#!/bin/bash
TELEGRAM_WINDOW="$(
swaymsg -t get_tree | \
jq -r '.. | select(.app_id? == "org.telegram.desktop") | .id' | \
head -n 1
)"
readonly TELEGRAM_WINDOW
if [ -z "${TELEGRAM_WINDOW}" ]; then
echo "Error: Telegram not found"
exit 0
fi
swaymsg "[con_id=${TELEGRAM_WINDOW}] focus"
sleep 0.2
wtype -M ctrl l
swaymsg workspace back_and_forth
exit 0

View File

@ -0,0 +1,26 @@
#!/bin/bash
set -eu
current_monitor=$(swaymsg -r -t get_workspaces | jq '.[] | select(.focused).output' | tr -d '"')
other_monitor=$(swaymsg -r -t get_outputs | jq -r ".[] | select(.active and .name != \"${current_monitor}\").name" | head -n 1)
if [ -z "${other_monitor}" ]; then
echo "No other active monitor found."
exit 1
fi
current_workspace=$(swaymsg -r -t get_workspaces | jq '.[] | select(.focused).name' | tr -d '"')
other_workspace=$(swaymsg -r -t get_workspaces | jq -r ".[] | select(.visible and .output == \"${other_monitor}\").name" | head -n 1)
if [ -n "${other_workspace}" ]; then
# Swap workspaces
swaymsg "workspace ${other_workspace}; move workspace to output ${current_monitor}"
swaymsg "workspace ${current_workspace}; move workspace to output ${other_monitor}"
swaymsg "workspace ${other_workspace}"
else
# Just move current workspace if target is empty
swaymsg "move workspace to output ${other_monitor}"
fi

View File

@ -0,0 +1,3 @@
color=000000
ignore-empty-password
show-failed-attempts

View File

@ -0,0 +1,18 @@
[Unit]
Description=MPV Audio Player Service
Documentation=man:mpv(1)
After=sound.target graphical-session.target
Wants=sound.target
[Service]
Type=simple
ExecStart=%h/.local/bin/mpv-service.sh
Restart=on-failure
RestartSec=5
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=%t/bus
Environment=XDG_RUNTIME_DIR=%t
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=default.target

View File

@ -0,0 +1,17 @@
[Unit]
Description=SSH proxy
Requires=default.target
After=default.target
# ln -s % ~/.config/systemd/user
# systemctl --user enable --now ssh-proxy@server.vpn
[Service]
Type=simple
ExecStart=/usr/bin/ssh -o ControlMaster=no -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -vCTN -D 127.0.0.1:1080 %i
Restart=always
RestartSec=3
StartLimitInterval=0
StartLimitBurst=0
[Install]
WantedBy=default.target

View File

@ -0,0 +1,15 @@
[Unit]
Description=Tmux server
Requires=default.target
After=default.target
[Service]
Type=simple
ExecStart=/usr/bin/tmux -D -L %u
ExecStop=/usr/bin/tmux -L %u kill-server
ExecReload=/usr/bin/tmux -L %u source-file %h/.config/tmux/tmux.conf
Restart=on-failure
ExecStartPost=/usr/bin/tmux -L %u new-session -d -s landing 'sh -c "tmux rename-window -t 1 landing; tmux set-option remain-on-exit on; figlet -w 200 -c -f big Landing; trap : INT; while true; do sleep 3600; done"'
[Install]
WantedBy=default.target

View File

@ -3,10 +3,11 @@ Description=VNC Server for X11
Requires=default.target
After=default.target
# x11vnc -storepasswd ~/.vnc/passwd
[Service]
Type=simple
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/x11vnc -noxdamage -rfbauth %h/.vnc/passwd -display :0 -forever
ExecStart=/usr/bin/x11vnc -noxdamage -rfbauth %h/.vnc/passwd -display :0 -forever -reopen -shared
Restart=on-failure
[Install]

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