Compare commits

..

941 Commits

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
5050bee3c9 fix nvim colorscheme in tmux 2024-02-09 22:46:04 +03:00
Kan
9ed41847d5
upd(README.md): typo 2024-02-07 22:41:33 +03:00
5cc25ec27b add gdbinit 2024-02-06 15:32:27 +03:00
e0f5fc80d3 inputrc 2024-02-06 15:16:46 +03:00
0fbdae557d neovim better escape mappings 2024-02-06 15:03:14 +03:00
b902354702 zsh aliases 2024-02-06 13:48:46 +03:00
bcbdd2b475 gitignore bak files with postfix ~ 2024-02-06 13:37:29 +03:00
c90e809b44 nvim: test scrolloff 999 2024-02-05 16:47:40 +03:00
6d6bc6446c nvim netrw mappings 2024-02-05 11:09:02 +03:00
1a9ae43feb editorconfig json 2024-02-02 10:38:03 +03:00
53894176f0 ref install script 2024-02-01 16:21:47 +03:00
3495a3edc7 nvim fix formatoptions lua 2024-02-01 16:19:07 +03:00
7118cb6f95 nvim mappings 2024-02-01 14:09:00 +03:00
e3ad622572 nvim lua 2024-02-01 11:07:34 +03:00
90a1a11f08 nvim: mapping C-f for word 2024-01-31 16:13:29 +03:00
a578186c4f nvim C-f mapping 2024-01-31 15:59:45 +03:00
7a62a3686e nvim folding 2024-01-31 15:31:31 +03:00
6777c7a02d nvim: remove mapping : to paste selected 2024-01-31 14:04:00 +03:00
3f530e3803 nvim: rememberr foldings 2024-01-31 11:11:38 +03:00
0c216e7b50 i3: disable rofi to follow mouse 2024-01-31 10:55:24 +03:00
27d4f0a45a i3: disable rofi to follow mouse 2024-01-31 08:39:53 +03:00
49c3aad776 nvim cmp plugins 2024-01-30 15:03:05 +03:00
fa58f846dc nvim fix autocompletions 2024-01-30 14:49:16 +03:00
668d4f2b94 nvim mappings 2024-01-30 11:59:11 +03:00
5b4a3096b6 nvim add ts-textobjects plugin 2024-01-30 11:00:25 +03:00
73c474c69a nvim: replace vim-surround by nvim-surround plugin 2024-01-30 10:57:31 +03:00
08ac03445b i3 mouse warping disable 2024-01-25 16:03:58 +03:00
4695e435c1 function ssht to connect ssh without tmux 2024-01-24 14:33:25 +03:00
abc9276d8e i3 mapping to move workspace between displays 2024-01-24 13:44:29 +03:00
6126294686 replace vim_askpass_helper by python.tkinter realisation 2024-01-24 13:17:08 +03:00
cb31836972 git disable showSignature option 2024-01-24 10:45:49 +03:00
29cbfba4fb i3 mapping 2024-01-24 10:19:14 +03:00
4dde884f8c nvim plugin ref 2024-01-24 09:07:19 +03:00
146cb9745c nvim editorconfig 2024-01-23 19:21:59 +03:00
f46a0e5627 alias wp to cd to $WORKING_PROJECT 2024-01-23 10:19:26 +03:00
660c9b8c40 nvim textobjs 2024-01-22 19:30:30 +03:00
e848f250d4 nvim mapping 2024-01-22 16:26:28 +03:00
ab29adea47 zsh alias 2024-01-22 14:45:54 +03:00
7c1cd424c7 fix editorconfig indent 2024-01-22 11:37:24 +03:00
d832ce3369 fix git aliases diff, fix editorconfig with max line length 2024-01-22 09:43:32 +03:00
8f44f46bf5 nvim mapping 2024-01-22 09:22:24 +03:00
82df4cf011 add .editorconfig 2024-01-21 01:05:52 +03:00
8b9a376517 nvim fix neodev 2024-01-18 15:03:16 +03:00
38cfa308e2 nvim: remove plugins noice 2024-01-18 14:50:08 +03:00
639b835ddd nvim mapping C-a 2024-01-18 11:35:46 +03:00
d3883ca1ce fix nvim commandline 2024-01-18 11:30:08 +03:00
52f778ff4b nvim signcolumn 2024-01-17 14:43:20 +03:00
2195a8bd6f nvim indent fix 2024-01-16 19:17:32 +03:00
57537c8370 nvim indent 2024-01-16 16:59:48 +03:00
4d78079475 nvim signcolumn 2024-01-16 14:17:57 +03:00
fb98aeb74f nvim cmdheight 0 2024-01-16 14:14:09 +03:00
b83c39bb6c nvim some refs 2024-01-15 20:58:43 +03:00
b5b7ba0ebd nvim lualine 2024-01-15 20:49:29 +03:00
1e842617c9 zsh mapping like in bash 2024-01-15 19:14:46 +03:00
9abf6cceef git alias hsa 2024-01-15 15:10:53 +03:00
247 changed files with 8256 additions and 3084 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

@ -10,7 +10,7 @@
</p>
## Content
## Content
* [Project description](#chapter-0)
* [Installation](#chapter-1)
@ -20,14 +20,13 @@
## Project description
Config files for:
* bash
* zsh
* alacritty
* tmux
* ssh
* git
* ranger
* i3
* sway
* vim
* nvim
@ -37,17 +36,18 @@ 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
./install zsh nvim ...
@ -62,19 +62,7 @@ Per-user dotfiles "package" manager
2. Uninstalling installed files
3. Check installation integrity
4. Transaction based installation
5. Do not overwrite your configs
### Dependencies
* bash
* coreutils
* diffutils
* grep
### Optional dependencies
* git
* wget
* unzip
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,117 +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 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,219 +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
}

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

@ -0,0 +1,754 @@
# set to 1 to enable 64bits target by default (32bit is the default)
set $64BITS = 1
set confirm off
set verbose off
set prompt \033[31mgdb$ \033[0m
set output-radix 0x10
set input-radix 0x10
# These make gdb never pause in its output
set height 0
set width 0
# _____________breakpoint aliases_____________
define bpl
info breakpoints
end
document bpl
List all breakpoints.
end
define bp
if $argc != 1
help bp
else
break $arg0
end
end
document bp
Set breakpoint.
Usage: bp LOCATION
LOCATION may be a line number, function name, or "*" and an address.
To break on a symbol you must enclose symbol name inside "".
Example:
bp "[NSControl stringValue]"
Or else you can use directly the break command (break [NSControl stringValue])
end
define bpc
if $argc != 1
help bpc
else
clear $arg0
end
end
document bpc
Clear breakpoint.
Usage: bpc LOCATION
LOCATION may be a line number, function name, or "*" and an address.
end
define bpe
if $argc != 1
help bpe
else
enable $arg0
end
end
document bpe
Enable breakpoint with number NUM.
Usage: bpe NUM
end
define bpd
if $argc != 1
help bpd
else
disable $arg0
end
end
document bpd
Disable breakpoint with number NUM.
Usage: bpd NUM
end
define bpt
if $argc != 1
help bpt
else
tbreak $arg0
end
end
document bpt
Set a temporary breakpoint.
Will be deleted when hit!
Usage: bpt LOCATION
LOCATION may be a line number, function name, or "*" and an address.
end
define bpm
if $argc != 1
help bpm
else
awatch $arg0
end
end
document bpm
Set a read/write breakpoint on EXPRESSION, e.g. *address.
Usage: bpm EXPRESSION
end
define bhb
if $argc != 1
help bhb
else
hb $arg0
end
end
document bhb
Set hardware assisted breakpoint.
Usage: bhb LOCATION
LOCATION may be a line number, function name, or "*" and an address.
end
# ______________process information____________
define argv
show args
end
document argv
Print program arguments.
end
define stack
if $argc == 0
info stack
end
if $argc == 1
info stack $arg0
end
if $argc > 1
help stack
end
end
document stack
Print backtrace of the call stack, or innermost COUNT frames.
Usage: stack <COUNT>
end
define frame
info frame
info args
info locals
end
document frame
Print stack frame.
end
define flags
# OF (overflow) flag
if (($eflags >> 0xB) & 1)
printf "O "
set $_of_flag = 1
else
printf "o "
set $_of_flag = 0
end
if (($eflags >> 0xA) & 1)
printf "D "
else
printf "d "
end
if (($eflags >> 9) & 1)
printf "I "
else
printf "i "
end
if (($eflags >> 8) & 1)
printf "T "
else
printf "t "
end
# SF (sign) flag
if (($eflags >> 7) & 1)
printf "S "
set $_sf_flag = 1
else
printf "s "
set $_sf_flag = 0
end
# ZF (zero) flag
if (($eflags >> 6) & 1)
printf "Z "
set $_zf_flag = 1
else
printf "z "
set $_zf_flag = 0
end
if (($eflags >> 4) & 1)
printf "A "
else
printf "a "
end
# PF (parity) flag
if (($eflags >> 2) & 1)
printf "P "
set $_pf_flag = 1
else
printf "p "
set $_pf_flag = 0
end
# CF (carry) flag
if ($eflags & 1)
printf "C "
set $_cf_flag = 1
else
printf "c "
set $_cf_flag = 0
end
printf "\n"
end
document flags
Print flags register.
end
define eflags
printf " OF <%d> DF <%d> IF <%d> TF <%d>",\
(($eflags >> 0xB) & 1), (($eflags >> 0xA) & 1), \
(($eflags >> 9) & 1), (($eflags >> 8) & 1)
printf " SF <%d> ZF <%d> AF <%d> PF <%d> CF <%d>\n",\
(($eflags >> 7) & 1), (($eflags >> 6) & 1),\
(($eflags >> 4) & 1), (($eflags >> 2) & 1), ($eflags & 1)
printf " ID <%d> VIP <%d> VIF <%d> AC <%d>",\
(($eflags >> 0x15) & 1), (($eflags >> 0x14) & 1), \
(($eflags >> 0x13) & 1), (($eflags >> 0x12) & 1)
printf " VM <%d> RF <%d> NT <%d> IOPL <%d>\n",\
(($eflags >> 0x11) & 1), (($eflags >> 0x10) & 1),\
(($eflags >> 0xE) & 1), (($eflags >> 0xC) & 3)
end
document eflags
Print eflags register.
end
define reg
if ($64BITS == 1)
# 64bits stuff
printf " "
echo \033[32m
printf "RAX:"
echo \033[0m
printf " 0x%016lX ", $rax
echo \033[32m
printf "RBX:"
echo \033[0m
printf " 0x%016lX ", $rbx
echo \033[32m
printf "RCX:"
echo \033[0m
printf " 0x%016lX ", $rcx
echo \033[32m
printf "RDX:"
echo \033[0m
printf " 0x%016lX ", $rdx
echo \033[1m\033[4m\033[31m
flags
echo \033[0m
printf " "
echo \033[32m
printf "RSI:"
echo \033[0m
printf " 0x%016lX ", $rsi
echo \033[32m
printf "RDI:"
echo \033[0m
printf " 0x%016lX ", $rdi
echo \033[32m
printf "RBP:"
echo \033[0m
printf " 0x%016lX ", $rbp
echo \033[32m
printf "RSP:"
echo \033[0m
printf " 0x%016lX ", $rsp
echo \033[32m
printf "RIP:"
echo \033[0m
printf " 0x%016lX\n ", $rip
echo \033[32m
printf "R8 :"
echo \033[0m
printf " 0x%016lX ", $r8
echo \033[32m
printf "R9 :"
echo \033[0m
printf " 0x%016lX ", $r9
echo \033[32m
printf "R10:"
echo \033[0m
printf " 0x%016lX ", $r10
echo \033[32m
printf "R11:"
echo \033[0m
printf " 0x%016lX ", $r11
echo \033[32m
printf "R12:"
echo \033[0m
printf " 0x%016lX\n ", $r12
echo \033[32m
printf "R13:"
echo \033[0m
printf " 0x%016lX ", $r13
echo \033[32m
printf "R14:"
echo \033[0m
printf " 0x%016lX ", $r14
echo \033[32m
printf "R15:"
echo \033[0m
printf " 0x%016lX\n ", $r15
echo \033[32m
printf "CS:"
echo \033[0m
printf " %04X ", $cs
echo \033[32m
printf "DS:"
echo \033[0m
printf " %04X ", $ds
echo \033[32m
printf "ES:"
echo \033[0m
printf " %04X ", $es
echo \033[32m
printf "FS:"
echo \033[0m
printf " %04X ", $fs
echo \033[32m
printf "GS:"
echo \033[0m
printf " %04X ", $gs
echo \033[32m
printf "SS:"
echo \033[0m
printf " %04X", $ss
echo \033[0m
# 32bits stuff
else
printf " "
echo \033[32m
printf "EAX:"
echo \033[0m
printf " 0x%08X ", $eax
echo \033[32m
printf "EBX:"
echo \033[0m
printf " 0x%08X ", $ebx
echo \033[32m
printf "ECX:"
echo \033[0m
printf " 0x%08X ", $ecx
echo \033[32m
printf "EDX:"
echo \033[0m
printf " 0x%08X ", $edx
echo \033[1m\033[4m\033[31m
flags
echo \033[0m
printf " "
echo \033[32m
printf "ESI:"
echo \033[0m
printf " 0x%08X ", $esi
echo \033[32m
printf "EDI:"
echo \033[0m
printf " 0x%08X ", $edi
echo \033[32m
printf "EBP:"
echo \033[0m
printf " 0x%08X ", $ebp
echo \033[32m
printf "ESP:"
echo \033[0m
printf " 0x%08X ", $esp
echo \033[32m
printf "EIP:"
echo \033[0m
printf " 0x%08X\n ", $eip
echo \033[32m
printf "CS:"
echo \033[0m
printf " %04X ", $cs
echo \033[32m
printf "DS:"
echo \033[0m
printf " %04X ", $ds
echo \033[32m
printf "ES:"
echo \033[0m
printf " %04X ", $es
echo \033[32m
printf "FS:"
echo \033[0m
printf " %04X ", $fs
echo \033[32m
printf "GS:"
echo \033[0m
printf " %04X ", $gs
echo \033[32m
printf "SS:"
echo \033[0m
printf " %04X", $ss
echo \033[0m
end
# call smallregisters
smallregisters
# display conditional jump routine
if ($64BITS == 1)
printf "\t\t\t\t"
end
dumpjump
printf "\n"
end
document reg
Print CPU registers.
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
#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
end
end
document smallregisters
Create the 16 and 8 bit cpu registers (gdb doesn't have them by default)
And 32bits if we are dealing with 64bits binaries
end
define func
if $argc == 0
info functions
end
if $argc == 1
info functions $arg0
end
if $argc > 1
help func
end
end
document func
Print all function names in target, or those matching REGEXP.
Usage: func <REGEXP>
end
define var
if $argc == 0
info variables
end
if $argc == 1
info variables $arg0
end
if $argc > 1
help var
end
end
document var
Print all global and static variable names (symbols), or those matching REGEXP.
Usage: var <REGEXP>
end
define lib
info sharedlibrary
end
document lib
Print shared libraries linked to target.
end
define sig
if $argc == 0
info signals
end
if $argc == 1
info signals $arg0
end
if $argc > 1
help sig
end
end
document sig
Print what debugger does when program gets various signals.
Specify a SIGNAL as argument to print info on that signal only.
Usage: sig <SIGNAL>
end
define threads
info threads
end
document threads
Print threads in target.
end
define dis
if $argc == 0
disassemble
end
if $argc == 1
disassemble $arg0
end
if $argc == 2
disassemble $arg0 $arg1
end
if $argc > 2
help dis
end
end
document dis
Disassemble a specified section of memory.
Default is to disassemble the function surrounding the PC (program counter)
of selected frame. With one argument, ADDR1, the function surrounding this
address is dumped. Two arguments are taken as a range of memory to dump.
Usage: dis <ADDR1> <ADDR2>
end
# __________hex/ascii dump an address_________
define ascii_char
if $argc != 1
help ascii_char
else
# thanks elaine :)
set $_c = *(unsigned char *)($arg0)
if ($_c < 0x20 || $_c > 0x7E)
printf "."
else
printf "%c", $_c
end
end
end
document ascii_char
Print ASCII value of byte at address ADDR.
Print "." if the value is unprintable.
Usage: ascii_char ADDR
end
define hex_quad
if $argc != 1
help hex_quad
else
printf "%02X %02X %02X %02X %02X %02X %02X %02X", \
*(unsigned char*)($arg0), *(unsigned char*)($arg0 + 1), \
*(unsigned char*)($arg0 + 2), *(unsigned char*)($arg0 + 3), \
*(unsigned char*)($arg0 + 4), *(unsigned char*)($arg0 + 5), \
*(unsigned char*)($arg0 + 6), *(unsigned char*)($arg0 + 7)
end
end
document hex_quad
Print eight hexadecimal bytes starting at address ADDR.
Usage: hex_quad ADDR
end
define hexdump
if $argc != 1
help hexdump
else
echo \033[1m
if ($64BITS == 1)
printf "0x%016lX : ", $arg0
else
printf "0x%08X : ", $arg0
end
echo \033[0m
hex_quad $arg0
echo \033[1m
printf " - "
echo \033[0m
hex_quad $arg0+8
printf " "
echo \033[1m
ascii_char $arg0+0x0
ascii_char $arg0+0x1
ascii_char $arg0+0x2
ascii_char $arg0+0x3
ascii_char $arg0+0x4
ascii_char $arg0+0x5
ascii_char $arg0+0x6
ascii_char $arg0+0x7
ascii_char $arg0+0x8
ascii_char $arg0+0x9
ascii_char $arg0+0xA
ascii_char $arg0+0xB
ascii_char $arg0+0xC
ascii_char $arg0+0xD
ascii_char $arg0+0xE
ascii_char $arg0+0xF
echo \033[0m
printf "\n"
end
end
document hexdump
Display a 16-byte hex/ASCII dump of memory at address ADDR.
Usage: hexdump ADDR
end
# _______________data window__________________
define ddump
if $argc != 1
help ddump
else
echo \033[34m
if ($64BITS == 1)
printf "[0x%04X:0x%016lX]", $ds, $data_addr
else
printf "[0x%04X:0x%08X]", $ds, $data_addr
end
echo \033[34m
printf "------------------------"
printf "-------------------------------"
if ($64BITS == 1)
printf "-------------------------------------"
end
echo \033[1;34m
printf "[data]\n"
echo \033[0m
set $_count = 0
while ($_count < $arg0)
set $_i = ($_count * 0x10)
hexdump $data_addr+$_i
set $_count++
end
end
end
document ddump
Display NUM lines of hexdump for address in $data_addr global variable.
Usage: ddump NUM
end
define dd
if $argc != 1
help dd
else
if ((($arg0 >> 0x18) == 0x40) || (($arg0 >> 0x18) == 0x08) || (($arg0 >> 0x18) == 0xBF))
set $data_addr = $arg0
ddump 0x10
else
printf "Invalid address: %08X\n", $arg0
end
end
end
document dd
Display 16 lines of a hex dump of address starting at ADDR.
Usage: dd ADDR
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
else
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
ddump $CONTEXTSIZE_DATA
end
document datawin
Display valid address from one register in data window.
Registers to choose are: esi, edi, eax, or esp.
end

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,24 +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
@ -34,69 +34,29 @@
[log]
abbrevCommit = true
showSignature = true
[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 --color-words
ds = diff --staged --color-words
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
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 --"
# 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:"
[include]
path = ~/.config/git/url-aliases
path = ~/.config/git/aliases
path = ~/.config/git/local
[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,14 +12,45 @@ venv
__pycache__/
*.py[cod]
*$py.class
*.spec
.env
*.env
*.log
*.bak
*~
# db
*.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,235 +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
# 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
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
# 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 (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# 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
# split in horizontal orientation
bindsym $mod+b split h
# split in vertical orientation
bindsym $mod+v split v
# 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

@ -1,5 +1,3 @@
local opt = vim.opt_local
opt.tabstop = 2
opt.softtabstop = 2
opt.shiftwidth = 2
opt.foldmethod = "indent"

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,6 @@
local map = vim.api.nvim_buf_set_keymap
map(0, 'n', "H", "u", {noremap=false})
map(0, 'n', "h", "-^", {noremap=false})
map(0, 'n', "l", "<CR>", {noremap=false})
map(0, 'n', ".", "gh", {noremap=false})

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,130 +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"})
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')
-- 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_python 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 ("AutoSave: saved at " .. vim.fn.strftime("%H:%M:%S"))
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,9 +0,0 @@
return {
"max397574/better-escape.nvim",
config = function()
require("better_escape").setup({
mapping = {'jf', 'оа'},
timeout = vim.o.timeoutlen,
})
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,22 +0,0 @@
return {
"mhartington/formatter.nvim",
config = function()
local util = require "formatter.util"
require("formatter").setup({
filetype = {
python = {
function()
return {
exe = "autopep8",
args = {
util.escape_path(util.get_current_buffer_file_path()),
},
stdin = true,
}
end
}
}
})
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,7 +0,0 @@
return {
'nvim-lualine/lualine.nvim',
config = function()
require("lualine").setup()
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,53 +0,0 @@
return {
'tpope/vim-surround',
'tpope/vim-repeat',
'google/vim-searchindex',
'rbgrouleff/bclose.vim',
'chaoren/vim-wordmotion',
'preservim/vim-pencil',
{
'windwp/nvim-autopairs',
desc = "Auto pair brackets and tags",
config = function()
require("nvim-autopairs").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
},
{
'folke/trouble.nvim',
dependencies = { 'kyazdani42/nvim-web-devicons' },
config = function()
require("trouble").setup()
end
},
}

View File

@ -1,10 +0,0 @@
return {
'folke/neodev.nvim',
ft = {'lua'},
dependencies = {
'neovim/nvim-lspconfig'
},
config = function()
require('neodev').setup()
end
}

View File

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

View File

@ -1,21 +0,0 @@
return {
"nvim-neo-tree/neo-tree.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
},
config = function()
require("neo-tree").setup({
close_if_last_window = true,
filesystem = {
hide_gitignored = true,
hijack_netrw_behavior = "open_current",
},
window = {
mappings = {
["l"] = "open",
}
}
})
end
}

View File

@ -1,23 +0,0 @@
return {
"folke/noice.nvim",
config = function()
require("noice").setup({
cmdline = {
enabled = true, -- enables the Noice cmdline UI
view = "cmdline_popup",
format = {
cmdline = { pattern = "^:", icon = "", lang = "vim" },
search_down = { kind = "search", pattern = "^/", icon = " ", lang = "regex" },
search_up = { kind = "search", pattern = "^%?", icon = " ", lang = "regex" },
filter = { pattern = "^:%s*!", icon = "$", lang = "bash" },
lua = { pattern = { "^:%s*lua%s+", "^:%s*lua%s*=%s*", "^:%s*=%s*" }, icon = "", lang = "lua" },
help = { pattern = "^:%s*he?l?p?%s+", icon = "" },
input = {},
},
},
messages = {
enabled = false,
},
})
end,
}

View File

@ -1,103 +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 = false
},
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.close(),
['<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),
},
sources = cmp.config.sources({
{ name = 'nvim_lsp', priority = 1000 },
{ name = 'luasnip', priority = 750 },
{ name = 'buffer', 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',
},
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,4 +0,0 @@
return {
'kana/vim-textobj-lastpat', -- text-object i/, operate under finding
dependencies = { 'kana/vim-textobj-user' }
}

View File

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

View File

@ -1,10 +1,11 @@
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)
end
end
end

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

@ -1,7 +1,6 @@
local opt = vim.opt
opt.ruler = true
opt.encoding = 'utf-8'
opt.fileencoding = 'utf-8'
@ -13,33 +12,33 @@ opt.relativenumber = true
opt.clipboard:append { 'unnamed' }
opt.clipboard:append { 'unnamedplus' }
opt.shortmess:append { s = true, I = true } -- disable startup message
opt.shortmess:append{a = true, s = true, I = true, c = true, S = true}
opt.shell = 'zsh'
opt.cmdheight = 0
vim.wo.signcolumn = "yes:1"
opt.shell = vim.env.SHELL
opt.ttimeoutlen = 50
opt.timeoutlen = 500
vim.cmd([[
filetype plugin indent on
]])
vim.cmd([[
syntax enable
]])
opt.pumheight = 15
opt.compatible = false
opt.hidden = true
opt.expandtab = true
-- indent
opt.expandtab = true -- spaces instead of tab
opt.smarttab = true
opt.tabstop = 4
opt.tabstop = 4 -- 1 tab appears number spaces
opt.softtabstop = 4
opt.shiftwidth = 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
@ -58,8 +57,27 @@ opt.incsearch = true
opt.mousehide = true
opt.mouse = 'a'
opt.colorcolumn = '81'
opt.scrolloff = 7
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 = {"*"},
callback = function()
opt.formatoptions:remove("c")
opt.formatoptions:remove("r")
opt.formatoptions:remove("o")
end,
})
opt.termguicolors = true
@ -80,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
@ -96,11 +114,9 @@ opt.ffs = 'unix,mac'
opt.path:append { '**' } -- Finding files - Search down into subfolders
vim.cmd([[
let &t_SI.="\e[5 q"
let &t_SR.="\e[3 q"
let &t_EI.="\e[1 q"
]])
vim.g.t_SI = [[\e[5 q]]
vim.g.t_SR = [[\e[3 q]]
vim.g.t_EI = [[\e[1 q]]
-- SI - режим вставки
-- SR - режим замены
@ -119,9 +135,6 @@ vim.api.nvim_create_autocmd("TextYankPost", {
end,
})
-- dont auto commenting new lines
vim.api.nvim_create_autocmd("BufEnter", {pattern = "*", command = [[set fo-=c fo-=r fo-=o]]})
vim.cmd.highlight({ "DiagnosticError", "guifg=Grey" })
vim.cmd.highlight({ "DiagnosticWarn", "guifg=Grey" })
vim.cmd.highlight({ "DiagnosticInfo", "guifg=Grey" })
@ -131,12 +144,29 @@ vim.cmd.highlight({ "DiagnosticHint", "guifg=Grey" })
opt.langmap = 'ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz'
-- remember line number
vim.api.nvim_create_autocmd("BufReadPost", {
pattern = {"*"},
callback = function()
if vim.fn.line("'\"") > 1 and vim.fn.line("'\"") <= vim.fn.line("$") then
vim.api.nvim_exec("normal! g'\"",false)
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(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(args)
local bufname = vim.api.nvim_buf_get_name(args.buf)
if not bufname:match("^term://") then
vim.cmd([[silent! loadview 1]])
end
end,
})
vim.opt.foldcolumn = "1"

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

@ -0,0 +1,17 @@
return {
{
'kana/vim-textobj-lastpat', -- text-object i/, operate under finding
dependencies = { 'kana/vim-textobj-user' }
},
{
'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

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