From b2d707efaa29e409e7e6b7914ba99af9b81aec3d Mon Sep 17 00:00:00 2001 From: Matuush Date: Sun, 20 Jul 2025 18:14:55 +0200 Subject: [PATCH] Init dotfile repository --- alacritty/alacritty.toml | 27 ++ alacritty/themes/blood_moon.toml | 23 + i3/config | 173 +++++++ i3/i3blocks.conf | 44 ++ i3/scripts/lightlevel | Bin 0 -> 16048 bytes i3/scripts/lightlevel.cpp | 30 ++ i3/scripts/no_ip | Bin 0 -> 17712 bytes nvim/ftplugin/ino | 2 + nvim/init.lua | 144 ++++++ nvim/plugin/packer_compiled.lua | 158 +++++++ ranger/rc.conf | 764 +++++++++++++++++++++++++++++++ rofi/config.rasi | 1 + 12 files changed, 1366 insertions(+) create mode 100644 alacritty/alacritty.toml create mode 100644 alacritty/themes/blood_moon.toml create mode 100644 i3/config create mode 100644 i3/i3blocks.conf create mode 100755 i3/scripts/lightlevel create mode 100644 i3/scripts/lightlevel.cpp create mode 100755 i3/scripts/no_ip create mode 100644 nvim/ftplugin/ino create mode 100644 nvim/init.lua create mode 100644 nvim/plugin/packer_compiled.lua create mode 100644 ranger/rc.conf create mode 100644 rofi/config.rasi diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml new file mode 100644 index 0000000..d17a712 --- /dev/null +++ b/alacritty/alacritty.toml @@ -0,0 +1,27 @@ +[env] +TERM = "xterm-256color" + +[font] +size = 12 + +[font.bold] +family = "Cascadia Mono" +style = "Bold" + +[font.bold_italic] +family = "Cascadia Mono" +style = "Bold Italic" + +[font.italic] +family = "Cascadia Mono" +style = "Italic" + +[font.normal] +family = "Cascadia Mono" +style = "Regular" + +[window] +opacity = 0.8 + +[general] +import = ["/home/matuush/.config/alacritty/themes/blood_moon.toml"] diff --git a/alacritty/themes/blood_moon.toml b/alacritty/themes/blood_moon.toml new file mode 100644 index 0000000..d9ea68c --- /dev/null +++ b/alacritty/themes/blood_moon.toml @@ -0,0 +1,23 @@ +[colors.bright] +black = "0x696969" +blue = "0x007FFF" +cyan = "0x00CCCC" +green = "0x03C03C" +magenta = "0xFF1493" +red = "0xFF2400" +white = "0xFFFAFA" +yellow = "0xFDFF00" + +[colors.normal] +black = "0x10100E" +blue = "0x0087BD" +cyan = "0x20B2AA" +green = "0x009F6B" +magenta = "0x9A4EAE" +red = "0xC40233" +white = "0xC6C6C4" +yellow = "0xFFD700" + +[colors.primary] +background = "0x10100E" +foreground = "0xC6C6C4" diff --git a/i3/config b/i3/config new file mode 100644 index 0000000..7e3475c --- /dev/null +++ b/i3/config @@ -0,0 +1,173 @@ + # Matuush i3 config + + set $mod Mod4 + floating_modifier $mod + set $term alacritty + + set $font xft:Cascadia Mono 16 + set $bar_font xft:Cascadia Mono 20 + font $font + + # TODO bindsym b exec "bruh; xdootool key b" + + # Specific workspaces + assign [class="Spotify"] Spotify + assign [class="Ferdium"] Comm + + + bindsym $mod+s exec spotify; workspace "Spotify" + bindsym $mod+Shift+s exec --no-startup-id dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause + + # Start a window + bindsym $mod+t exec $term + + bindsym $mod+d exec --no-startup-id rofi -show drun -show-icons -drun-display-format {name} + bindsym $mod+Shift+d exec --no-startup-id rofi -show run + + bindsym $mod+period exec --no-startup-id rofimoji + bindsym $mod+Shift+period exec unipicker --command "rofi -dmenu" --copy + + bindsym $mod+g exec --no-startup-id alacritty -e ranger + bindsym $mod+c exec --no-startup-id cava + bindsym $mod+b exec firefox + bindsym $mod+z exec zathura + bindsym $mod+i exec ~/.scripts/comm.sh + bindsym $mod+Return exec ~/.scripts/lock + + # Meme + bindsym $mod+Shift+b exec --no-startup-id mpv ~/doc/Sound/bruh.mp3 + bindsym $mod+Shift+p exec --no-startup-id mpv ~/doc/Sound/pipe.mp3 + bindsym $mod+p exec --no-startup-id mpv ~/doc/Sound/cat-anvil.mp3 + + # WM operations + bindsym $mod+q kill + bindsym $mod+Shift+r restart; exec "~/.scripts/reload" + bindsym $mod+f fullscreen toggle + bindsym $mod+n move workspace to output next + + # Change focus + bindsym $mod+h focus left + bindsym $mod+j focus down + bindsym $mod+k focus up + bindsym $mod+l focus right + focus_follows_mouse no + focus_on_window_activation focus + + # 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 + + # System buttons + set $aup XF86AudioRaiseVolume + set $adown XF86AudioLowerVolume + set $lup XF86MonBrightnessUp + set $ldown XF86MonBrightnessDown + bindsym $aup exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && pkill -RTMIN+10 i3blocks + bindsym $adown exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && pkill -RTMIN+10 i3blocks + bindsym $mod+$aup exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && pkill -RTMIN+10 i3blocks + bindsym $mod+$adown exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && pkill -RTMIN+10 i3blocks + bindsym $lup exec --no-startup-id light -S $( light | ~/.config/i3/scripts/lightlevel + ) && pkill -RTMIN+11 i3blocks + bindsym $ldown exec --no-startup-id light -S $( light | ~/.config/i3/scripts/lightlevel - ) && pkill -RTMIN+11 i3blocks + bindsym $mod+$lup exec --no-startup-id light -S $( light | ~/.config/i3/scripts/lightlevel + ) && pkill -RTMIN+11 i3blocks + bindsym $mod+$ldown exec --no-startup-id light -S $( light | ~/.config/i3/scripts/lightlevel - ) && pkill -RTMIN+11 i3blocks + bindsym $mod+Print exec flameshot gui + + # Colors + set $unf-border #111111 + set $background #111111 + set $indicator #111111 + set $text #111111 + set $focus #555555 + # Class border backgr text indic child_border + client.focused $focus $background $text $focus $focus + client.focused_inactive $unf-border $background $text $indicator $unf-border + client.unfocused $unf-border $background $text $indicator $unf-border + client.urgent $unf-border $background $text $indicator $unf-border + client.placeholder $unf-border $background $text $indicator $unf-border + client.background #000000 + + # i3-gaps configuration + gaps inner 10 + gaps outer 0 + smart_gaps on + + default_border none + smart_borders on + hide_edge_borders both + + # Floating dialogs + #for_window [window_role="pop-up"] floating enable + #for_window [window_role="task_dialog"] floating enable + + # switch to workspace + bindsym $mod+ctrl+l workspace next + bindsym $mod+ctrl+h workspace prev + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + + # move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 10 + + bar { + status_command i3blocks -c ~/.config/i3/i3blocks.conf + tray_output none + position top + mode hide + font $bar_font + colors { + background #010101 + statusline #839496 + + focused_workspace #eeeeee #666666 #eeeeee + active_workspace #eeeeee #222222 #eeeeee + inactive_workspace #888888 #222222 #888888 + urgent_workspace #eeeeee #aa5555 #eeeeee + } + } + bindsym $mod+m bar mode toggle + + mode "resize" { + 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 Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" + } + bindsym $mod+r mode "resize" + + default_border pixel 2 + + #exec --no-startup-id i3-msg 'workspace 1; exec $term' + + exec_always --no-startup-id autotiling + exec_always --no-startup-id ~/.scripts/reload + exec --no-startup-id wired + + exec --no-startup-id nmcli c up k222 + exec --no-startup-id nmcli c up Wired connection 1 + + exec --no-startup-id xset 600; xss-lock --transfer-sleep-lock -- /home/matuush/.scripts/lock --nofork + + #exec_always --no-startup-id feh --bg-fill $HOME/Documents/Pictures/hippopotat.webp diff --git a/i3/i3blocks.conf b/i3/i3blocks.conf new file mode 100644 index 0000000..443e3d6 --- /dev/null +++ b/i3/i3blocks.conf @@ -0,0 +1,44 @@ +separator_block_width=24 +separator=false +align=center + +[arch-update] +interval=600 +color=#cc2222 +command=checkupdates 2> /dev/null | wc -l + +[ip] +interval=5 +color=#33af33 +command=ip route get 8.8.8.8 2> /dev/null | tr -s ' ' | cut -d ' ' -f 7 +#command=nmcli d show wlp0s20f3 | grep GENERAL.CONNECTION | sed "s/[ -]\+/ /g" | cut -d ' ' -f 2 + +[memory] +interval=5 +color=#bb11bb +command=free -L -m -h | sed "s/ \+/ /g;s/i/iB/g" | cut -d " " -f 6 + +[brightness] +interval=100000 +color=#ffff33 +command=light | scripts/lightlevel = +signal=11 +min_width=48 + +[volume] +interval=100000 +color=#ffa333 +command=pactl get-sink-volume @DEFAULT_SINK@ | tr -s ' ' | cut -d ' ' -f 5; +signal=10 +min_width=48 + +[battery] +interval=10 +color=#aaaaaa +command=cat /sys/class/power_supply/BAT0/capacity | sed "s/$/%/g" +min_width=48 + +[time] +interval=1 +color=#4444ff +command=date '+%-d.%-m. %H:%M:%S' diff --git a/i3/scripts/lightlevel b/i3/scripts/lightlevel new file mode 100755 index 0000000000000000000000000000000000000000..8423c63201181d6eb8e3a3cebcd5a58c617a987f GIT binary patch literal 16048 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 + +int main(int argc, char* argv[]) { + if(argc < 2) return 1; + + int current; + std::cin >> current; + int add = 0; + if(argv[1][0] == '+') { + if(current < 6) add = 1; + else if(current < 10) add = 2; + else if(current < 20) add = 5; + else if(current < 40) add = 10; + else if(current < 100) add = 20; + } + else if(argv[1][0] == '-') { + if(current > 40) add = -20; + else if(current > 20) add = -10; + else if(current > 10) add = -5; + else if(current > 6) add = -2; + else if(current > 1) add = -1; + } + else if(argv[1][0] == '=') { + std::cout << current << "%\n"; + return 0; + } + else return 2; + std::cout << current+add; + return 0; +} diff --git a/i3/scripts/no_ip b/i3/scripts/no_ip new file mode 100755 index 0000000000000000000000000000000000000000..84cef92ab8cf13fa6fd7f3bdc7733e52e861582e GIT binary patch literal 17712 zcmeHPeQaCTb-&a{q$IW^yLPMCNzBAf;UqIHQnuqP(L&jx@>G9BwXD|3l0H);EpZV^ znS63&BkkPD37{DQyr6U4Ht4dVXww31gSPXGCMXmuuRuuC{5NW zO=IqN?mdTkd?vljOEC=KH6G7BpZDBz@4N54t8@LQk?q|zKA)0OtNut4HrHY(VP=eU za0MW&Hmk+>U8QbT*8s26G{X-Y0In$)YD!@v(`x}quazog;Ejf?1d4|QNv~45u*h%( zD((mA)f0pjbQ0$W&5pv046Lf2-Frx%97qY~D?N_q9hSkDW)SY9BtL8b3CCw?{U^|IbFzc!=1 zFmA|7ptSdK=uuqWZ;@f%#qCuZharxqKpJl<>xYvAn>MT;j;|X|rboxtjcwkvZqtT9 zE)xi8KKa##i-zz1o&Boju$m&8==+qf1g~KnBD#?5GF%jP(jR>1rw{*a?dz?xZH*Ii z6P?cW?;T%FGSm;UNitN3Mwb+Fe>pCaG4W}s@j-%URF<7sv^96UfqQ9a?%$t-bE})c z_1}QLv<&^d3iMYYTTcF;;aEBPZI$d)pm$fW|BVXv*H)m{A>ifwiB)L#(F%6HS;3#X zE69JM0-eU!kIP%mRPYC8%F6#i1^P3|UFi{dA;3yk)GXf7GEGdU-lh^BgW+q>KBNZ(!du5CN}oV#p0HZ~Rv217;)Ldo=C zPu~W+Z==0CXh$N-eyFls#fG;ABL|?_=WIx%FwUt zm+7;~ojxZNOlER6JWkkHKC;p5K|7gFI%v@z92>Jo64_iP9UV?O2kirGWMW&zo>uI^ zhIrJ8awibt%OhN_1F_u*?MAzITTDA%DZCXM?J9;XmKk-f*7IEQP=Y)i zmB+kfZuF-gOQz%Yu0(D$g^7yE6t(vyDfWj5#puL%il?F&O*Au{NUKyL6-$kPkJ%r4 z)Q$~3YVV6ChZV$gPCRz!owWXMA~aR34aQ)JuprT6hJOFnt#*5$O>Nz?r*lh>9SpRq z`?vRO0SfYlKzpbJ4F%n(soSBzhGMOKp&ANo#0^`c|J7ohufr3l4o{I#+eX`#4e)Qn=3R2zt+}F9rl<`KRunOsaysBxx!|1XZ?aaFG-86RDdyq5ZPg7xJ+ zN#0XtmXH;tp5gZ)p&w)VP*}5z?=^y-y3f$**(ggKQKnpU_w)2eE_#De)xYOmbZ%19 zFSzI*a>>uQ==7YIG7>g5@`c7iimcD{J|WL;;>r3<^bZq3O4wA$M+{7{G=@!;=p0H- zXmQcWmXy}8sgb;Se=xY;MVD9;XRV8l0V|d^7yY^-74M@iIwoAPgk5xgW!F5*MaP6G zmR=XVsYq37kBh$4MXy$?5vWGszmLFM%{Twn8vj+Jb+rE6dZnxd29To#%Zlw z*!W|R3%C6pew$Z?Q6qeac(XGFl-o`dPRrTsd5!;oa9WaPr!@Xu!f7d*eNN-wB%GGq z*=IEV6~bvrnmwlRFA`2m(d=Q3KSek#PqQN$|8v4=Nt)fO@joM+mZI5SjUOVMmY~_N z#z#=^|L=2cw_`sCl?j+=roIojTDjdv`Cq_QSna~4}iJ5B;AELZr= z$IzKG^>4S~vG&OHg1^)I7V0!!WN&s5vi-2phmp1>KK+6P zMe6e}Yx3EA0~*VpCgkWN^XI0i>!+xJM|2etm`4QWtfP_n=96mTG%9nbY(Cxm)D(-1 z|EdjQd5Fze6a5#g@lRh+qt|I8vtNLv{Idut`aWizjm(qji;uwH88T`4U~os?RDZhT5lw3x@VI2)PM-K&QibG|c?HRY3@j2g-snJ(p9kK17Ul_dl{6@4?>Y5pWemx2tq>maKELSp0 zEo9V;(dT%KXfn4J2T6zFY<}`xni$iN#<-o$&(S=*dwTR95D=!b`Bagw(I0B`MI-(T z-IbT~?_%OSF*Vw7O2@xm2i!~~_*Yyniz_6Br&_8Js79a~focS*5vWF>8i8sAsuB4A z5dk0V9tJ~q1={d0c%AYg7r?i&_MW|PpFWxw%@qot1N#FUIG8T`0T& z{GR}S33v(ccYr^9t5CQR{5ilQfDgW1D0~(0vw$xFeg*JVK-m-Z9onUQV=cawiy9h_ zG5to^*@O1zdq8zH=xx$9sBXYD@p6E?2-A%0@Yrg)m#>48q75CiHzUEdUlkUT~ z7Qr9A-`LsI@?_1{#n*JB0p>pr_@C&|XSyY5-Tmlm&5YNhm#`a#!z^zU83y1&AY_z)Sdt$B07&Kkrcj&_m|DazEu zi+*&0|1I$8E568&E$GL={~Pdcaq}NGd_QPMz&{E8V{ShAzsL`6amS1k^C0Cs_U|xlR5-nF5fACfelXF>d3P2=JhKIb(4edfR8;j=scXF&4Dy$)>R`OwYq6Abq; zJizcthQ}Fxjp0d#XBfW1@O6gL-cVR-1|mc55B+PA)qJ}@*d7Q4g8oojsJ(4-8~x?` z3WbKdPQ6+1iZp@XLq=7L-*9C9cQSp6hwdf=Yh{`KLi&Qgegyj&r5_>|aCv7RZl;wb|l2 z(u5nkoS%P8^qOWR>y^<`DhfKq^DlV;xP=)L73_SCDOBLjopuaRf_l7xO3~tu+6>4frDSfq$PbrPCVbH0+OF3C`ibbAcJ6`|4 zT*1zdE71QHbU)j4gKO{rDi_b2KrfdE9|E2H{3-hxVq<-vm$N@mf&Mt#ImzRz_u9x- za-=VoO^!H$*a$L?DVKe-jYN9~`Nr*SHuA=u#9#u6^BJTeN3%IQnX^aJx#VCv5%2jE zNq>L;Dyjdu%0W`Gu|(Su%kJLQxg%m*UAvUs_2ACV9X(r>egF0cwsdZ{AL#Dxiy(c! zbIbM!Wyqr|-mL%7uoKy}E!GzTKS2rXI6LqFvaI9Dv^|VVx|E6lltJHo4g) zB$KCIN}@FGt557VwoH09oQdZ$_D~cj1duF#HOCAnU*2spfE4epPX@AyeSr`1D1b?* z_cla{?n(0dZnTviH3un5Pho@-`}KIVV?4ac@Wrqq>zo3bPLw+)Va{<3TZy;R9_f)Q+j0vtyYwQtZ=?oj4F39*sJQxH*;adp3aBPx*2IEet3qQFQtgF{fxK^JLYG>Jo&$vBg6TxOjU9aLI;D4H8m zf%w5RnlRAG8qNV6rAlVfC5R1PHZdF}1+I+@J1U^>pMaAXLtQV8fow)Ug93>mdtWx1 zO4vhj=n4j-IMb6DizP-J8$H59K-;jR*=!W9lMSh(sc0%0gGvV0@e|NZ8uOS>Du8L0 zN~9frefVDk`Yy+-bMeeaE8ZWe2$b(~LtWSh5PUT%^ev3nU0pV_zQ8ck1;}@@;G0l! z>yNR%z%?Ss5U-OZr3aW>|7q42=r55jJ?l!WPvZIwzOBW7*>4ai@AG)=(#7k46jXY* z7k$}}5V)2ZU*p&@mGG9WXPWzOuT&lKMxM|U-V@^LSVe8X)50K&w2F6{6Y^Lq+st9$bSCQJ+L#&KI6quf_HM31DjGSM&v5@6nh2 z%slIlxs_2DJ%P(S`g_AhVQ-s(a-SM(L0|9{&?j5s|KYIVjIn-LCKf9&n=x~4ochn= zMY`yF?_ZLo;)b3kH2(w}oZ$(36R6kXl736Sh$g;kMgAGvXe#H53yZ;}U6G~jtaAFD P_ZkWMe*@gbgR1`mVEp9a literal 0 HcmV?d00001 diff --git a/nvim/ftplugin/ino b/nvim/ftplugin/ino new file mode 100644 index 0000000..af24407 --- /dev/null +++ b/nvim/ftplugin/ino @@ -0,0 +1,2 @@ +noremap :!arduino-uc +noremap :!arduino-compile diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..3af4e50 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,144 @@ +vim.opt.number = true +vim.opt.wrap = false +vim.opt.undofile = true +vim.opt.backup = true +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.list = true +vim.opt.cursorline = true +vim.opt.scrolloff = 5 +vim.opt.shiftwidth = 8 +vim.opt.tabstop = 8 +vim.opt.expandtab = false +vim.opt.guicursor = "i:blinkon1" +vim.opt.listchars = 'trail:~,tab:| ' +vim.opt.backupdir = '/home/matuush/.local/state/nvim/backup//' + +vim.g.netrw_banner = 0 +vim.g.netrw_liststyle = 3 +vim.g.netrw_winsize = 15 +vim.g.netrw_keepdir = 0 +vim.g.loaded_perl_provider = 0 +vim.g.loaded_ruby_provider = 0 + +vim.cmd([[ +syntax on +filetype plugin on +hi clear CursorLineNR +hi CursorLineNR guibg=darkgrey guifg=black +colorscheme jellybeans +highlight DiagnosticUnderlineError guifg=red +highlight DiagnosticUnderlineWarn guifg=orange + +let g:OmniSharp_server_use_net6 = 1 + +nnoremap J j +nnoremap :w +nnoremap ; mKA;'K +nnoremap :lua vim.diagnostic.open_float() +nnoremap :lua vim.diagnostic.goto_prev() +nnoremap :lua vim.diagnostic.goto_next() +inoremap +inoremap ( ()i +inoremap [ []i +inoremap { {}i +noremap :w:!arduino-cli compile --fqbn arduino:avr:uno && arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno +]]) + +require'packer'.startup(function() + use 'nanotech/jellybeans.vim' + use 'neovim/nvim-lspconfig' + use 'tpope/vim-abolish' + use 'tpope/vim-fugitive' + use 'tpope/vim-repeat' + use 'tpope/vim-surround' + use 'wbthomason/packer.nvim' + use {'nvim-lualine/lualine.nvim', requires = { 'nvim-tree/nvim-web-devicons', opt = true }} + use { "iamcco/markdown-preview.nvim", run = "cd app && npm install", setup = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" }, } + use 'OmniSharp/omnisharp-vim' +end) + +vim.diagnostic.config{ + virtual_text = false, + signs = false, + underline = true, + float = { + scope = 'cursor' + }, + jump = { + float = true + }, + update_in_insert = true +} + +local function map(a, b, c) vim.keymap.set(a, b, c, { silent = true, noremap = true }) end + +local on_attach = function(client, _) + map('n', 'gD', vim.lsp.buf.declaration) + map('n', 'gd', vim.lsp.buf.definition) + map('n', 'gr', vim.lsp.buf.references) + map('n', '[d', vim.diagnostic.goto_prev) + map('n', ']d', vim.diagnostic.goto_next) + map('n', '', vim.lsp.buf.hover) + --map('n', 'f', vim.lsp.buf.format) + --map('n', 'rn', vim.lsp.buf.rename) + --map('n', 'ca', vim.lsp.buf.code_action) +end + +require'lspconfig'.clangd.setup{ on_attach = on_attach } +require'lspconfig'.pyright.setup{ on_attach = on_attach } +require'lspconfig'.ruff.setup{ on_attach = on_attach } +require'lspconfig'.ts_ls.setup{ on_attach = on_attach } +require'lspconfig'.tailwindcss.setup{ on_attach = on_attach } +require'lspconfig'.texlab.setup{ on_attach = on_attach } +require'lspconfig'.bashls.setup{ on_attach = on_attach } +require'lspconfig'.omnisharp.setup{ + cmd = { 'omnisharp' }, + settings = { + FormattingOptions = { + EnableEditorConfigSupport = false, + OrganizeImports = nil, + }, + RoslynExtensionsOptions = { + EnableAnalyzersSupport = true, + EnableImportCompletion = true, + AnalyzeOpenDocumentsOnly = nil, + }, + MsBuild = { + LoadProjectsOnDemand = true, + }, + Sdk = { + IncludePrereleases = false, + }, + }, + on_attach = on_attach +} +require'lspconfig'.arduino_language_server.setup { + filetypes = {"arduino"}, + cmd = { + "arduino-language-server", + "-cli-config", "/home/matuush/.arduino15/arduino-cli.yaml", + "-fqbn", "arduino:avr:uno" + }, + on_attach = on_attach, + capabilities = { + textDocument = { + semanticTokens = vim.NIL + }, + workspace = { + semanticTokens = vim.NIL + } + } +} + + +require'lualine'.setup{ + sections = { + lualine_a = {'mode'}, + lualine_b = {'branch'}, + lualine_c = {'diff', 'diagnostics'}, + lualine_x = {'filename'}, + lualine_y = {}, + lualine_z = {'location'} + } +} diff --git a/nvim/plugin/packer_compiled.lua b/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..117cf52 --- /dev/null +++ b/nvim/plugin/packer_compiled.lua @@ -0,0 +1,158 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + +_G._packer = _G._packer or {} +_G._packer.inside_compile = true + +local time +local profile_info +local should_profile = false +if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end +else + time = function(chunk, start) end +end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + if threshold then + table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') + end + + _G._packer.profile_output = results +end + +time([[Luarocks path setup]], true) +local package_path_str = "/home/matuush/.cache/nvim/packer_hererocks/2.1.1731601260/share/lua/5.1/?.lua;/home/matuush/.cache/nvim/packer_hererocks/2.1.1731601260/share/lua/5.1/?/init.lua;/home/matuush/.cache/nvim/packer_hererocks/2.1.1731601260/lib/luarocks/rocks-5.1/?.lua;/home/matuush/.cache/nvim/packer_hererocks/2.1.1731601260/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/matuush/.cache/nvim/packer_hererocks/2.1.1731601260/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end + +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end + +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end + +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["jellybeans.vim"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/jellybeans.vim", + url = "https://github.com/nanotech/jellybeans.vim" + }, + ["lualine.nvim"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/lualine.nvim", + url = "https://github.com/nvim-lualine/lualine.nvim" + }, + ["markdown-preview.nvim"] = { + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/matuush/.local/share/nvim/site/pack/packer/opt/markdown-preview.nvim", + url = "https://github.com/iamcco/markdown-preview.nvim" + }, + ["nvim-lspconfig"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, + ["nvim-web-devicons"] = { + loaded = false, + needs_bufread = false, + path = "/home/matuush/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons", + url = "https://github.com/nvim-tree/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["vim-abolish"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/vim-abolish", + url = "https://github.com/tpope/vim-abolish" + }, + ["vim-fugitive"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/vim-fugitive", + url = "https://github.com/tpope/vim-fugitive" + }, + ["vim-repeat"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/vim-repeat", + url = "https://github.com/tpope/vim-repeat" + }, + ["vim-surround"] = { + loaded = true, + path = "/home/matuush/.local/share/nvim/site/pack/packer/start/vim-surround", + url = "https://github.com/tpope/vim-surround" + } +} + +time([[Defining packer_plugins]], false) +-- Setup for: markdown-preview.nvim +time([[Setup for markdown-preview.nvim]], true) +try_loadstring("\27LJ\2\n=\0\0\2\0\4\0\0056\0\0\0009\0\1\0005\1\3\0=\1\2\0K\0\1\0\1\2\0\0\rmarkdown\19mkdp_filetypes\6g\bvim\0", "setup", "markdown-preview.nvim") +time([[Setup for markdown-preview.nvim]], false) +vim.cmd [[augroup packer_load_aucmds]] +vim.cmd [[au!]] + -- Filetype lazy-loads +time([[Defining lazy-load filetype autocommands]], true) +vim.cmd [[au FileType markdown ++once lua require("packer.load")({'markdown-preview.nvim'}, { ft = "markdown" }, _G.packer_plugins)]] +time([[Defining lazy-load filetype autocommands]], false) +vim.cmd("augroup END") + +_G._packer.inside_compile = false +if _G._packer.needs_bufread == true then + vim.cmd("doautocmd BufRead") +end +_G._packer.needs_bufread = false + +if should_profile then save_profiles() end + +end) + +if not no_errors then + error_msg = error_msg:gsub('"', '\\"') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') +end diff --git a/ranger/rc.conf b/ranger/rc.conf new file mode 100644 index 0000000..0867cec --- /dev/null +++ b/ranger/rc.conf @@ -0,0 +1,764 @@ +# =================================================================== +# This file contains the default startup commands for ranger. +# To change them, it is recommended to create either /etc/ranger/rc.conf +# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom +# commands there. +# +# If you copy this whole file there, you may want to set the environment +# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. +# +# The purpose of this file is mainly to define keybindings and settings. +# For running more complex python code, please create a plugin in "plugins/" or +# a command in "commands.py". +# +# Each line is a command that will be run before the user interface +# is initialized. As a result, you can not use commands which rely +# on the UI such as :delete or :mark. +# =================================================================== + +# =================================================================== +# == Options +# =================================================================== + +# Which viewmode should be used? Possible values are: +# miller: Use miller columns which show multiple levels of the hierarchy +# multipane: Midnight-commander like multipane view showing all tabs next +# to each other +set viewmode miller + +# How many columns are there, and what are their relative widths? +set column_ratios 0,2,3 + +# Which files should be hidden? (regular expression) +set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ + +# Show hidden files? You can toggle this by typing 'zh' +set show_hidden false + +# Ask for a confirmation when running the "delete" command? +# Valid values are "always", "never", "multiple" (default) +# With "multiple", ranger will ask only if you delete multiple files at once. +set confirm_on_delete never + +# Use non-default path for file preview script? +# ranger ships with scope.sh, a script that calls external programs (see +# README.md for dependencies) to preview images, archives, etc. +#set preview_script ~/.config/ranger/scope.sh + +# Use the external preview script or display simple plain text or image previews? +set use_preview_script true + +# Automatically count files in the directory, even before entering them? +set automatically_count_files true + +# Open all images in this directory when running certain image viewers +# like feh or sxiv? You can still open selected files by marking them. +set open_all_images true + +# Be aware of version control systems and display information. +set vcs_aware false + +# State of the four backends git, hg, bzr, svn. The possible states are +# disabled, local (only show local info), enabled (show local and remote +# information). +set vcs_backend_git enabled +set vcs_backend_hg disabled +set vcs_backend_bzr disabled +set vcs_backend_svn disabled + +# Truncate the long commit messages to this length when shown in the statusbar. +set vcs_msg_length 50 + +# Use one of the supported image preview protocols +set preview_images true + +# Set the preview image method. Supported methods: +# +# * w3m (default): +# Preview images in full color with the external command "w3mimgpreview"? +# This requires the console web browser "w3m" and a supported terminal. +# It has been successfully tested with "xterm" and "urxvt" without tmux. +# +# * iterm2: +# Preview images in full color using iTerm2 image previews +# (http://iterm2.com/images.html). This requires using iTerm2 compiled +# with image preview support. +# +# This feature relies on the dimensions of the terminal's font. By default, a +# width of 8 and height of 11 are used. To use other values, set the options +# iterm2_font_width and iterm2_font_height to the desired values. +# +# * terminology: +# Previews images in full color in the terminology terminal emulator. +# Supports a wide variety of formats, even vector graphics like svg. +# +# * sixel: +# Previews images using the SIXEL protocol. This requires "imagemagick". +# +# * urxvt: +# Preview images in full color using urxvt image backgrounds. This +# requires using urxvt compiled with pixbuf support. +# +# * urxvt-full: +# The same as urxvt but utilizing not only the preview pane but the +# whole terminal window. +# +# * kitty: +# Preview images in full color using kitty image protocol. +# Requires python PIL or pillow library. +# If ranger does not share the local filesystem with kitty +# the transfer method is changed to encode the whole image; +# while slower, this allows remote previews, +# for example during an ssh session. +# Tmux is unsupported. +# +# * ueberzug: +# Preview images in full color with the external command "ueberzug". +# Images are shown by using a child window. +# Only for users who run X11 in GNU/Linux. +set preview_images_method w3m + +# Delay in seconds before displaying an image with the w3m method. +# Increase it in case of experiencing display corruption. +set w3m_delay 0.02 + +# Manually adjust the w3mimg offset when using a terminal which needs this +set w3m_offset 0 + +# Default iTerm2 font size (see: preview_images_method: iterm2) +set iterm2_font_width 8 +set iterm2_font_height 11 + +# Use a unicode "..." character to mark cut-off filenames? +set unicode_ellipsis false + +# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). +# Requires the python-bidi pip package +set bidi_support false + +# Show dotfiles in the bookmark preview box? +set show_hidden_bookmarks true + +# Which colorscheme to use? These colorschemes are available by default: +# default, jungle, snow, solarized +set colorscheme default + +# Preview files on the rightmost column? +# And collapse (shrink) the last column if there is nothing to preview? +set preview_files true +set preview_directories false +set collapse_preview true + +# Wrap long lines in plain text previews? +set wrap_plaintext_previews false + +# Save the console history on exit? +set save_console_history true + +# Draw the status bar on top of the browser window (default: bottom) +set status_bar_on_top false + +# Draw a progress bar in the status bar which displays the average state of all +# currently running tasks which support progress bars? +set draw_progress_bar_in_status_bar true + +# Draw borders around columns? (separators, outline, both, or none) +# Separators are vertical lines between columns. +# Outline draws a box around all the columns. +# Both combines the two. +set draw_borders none + +# Display the directory name in tabs? +set dirname_in_tabs false + +# Enable the mouse support? +set mouse_enabled true + +# Display the file size in the main column or status bar? +set display_size_in_main_column false +set display_size_in_status_bar true + +# Display the free disk space in the status bar? +set display_free_space_in_status_bar false + +# Display files tags in all columns or only in main column? +set display_tags_in_all_columns false + +# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME` +set update_title false + +# Set the tmux/screen window-name to "ranger"? +set update_tmux_title true + +# Shorten the title if it gets long? The number defines how many +# directories are displayed at once, 0 turns off this feature. +set shorten_title 0 + +# Show hostname in titlebar? +set hostname_in_titlebar false + +# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? +set tilde_in_titlebar true + +# How many directory-changes or console-commands should be kept in history? +set max_history_size 20 +set max_console_history_size 50 + +# Try to keep so much space between the top/bottom border when scrolling: +set scroll_offset 8 + +# Flush the input after each key hit? (Noticeable when ranger lags) +set flushinput true + +# Padding on the right when there's no preview? +# This allows you to click into the space to run the file. +set padding_right false + +# Save bookmarks (used with mX and `X) instantly? +# This helps to synchronize bookmarks between multiple ranger +# instances but leads to *slight* performance loss. +# When false, bookmarks are saved when ranger is exited. +set autosave_bookmarks true + +# Save the "`" bookmark to disk. This can be used to switch to the last +# directory by typing "``". +set save_backtick_bookmark true + +# You can display the "real" cumulative size of directories by using the +# command :get_cumulative_size or typing "dc". The size is expensive to +# calculate and will not be updated automatically. You can choose +# to update it automatically though by turning on this option: +set autoupdate_cumulative_size false + +# Turning this on makes sense for screen readers: +set show_cursor false + +# One of: size, natural, basename, atime, ctime, mtime, type, random +set sort natural + +# Additional sorting options +set sort_reverse false +set sort_case_insensitive true +set sort_directories_first true +set sort_unicode false + +# Enable this if key combinations with the Alt Key don't work for you. +# (Especially on xterm) +set xterm_alt_key false + +# Whether to include bookmarks in cd command +set cd_bookmarks true + +# Changes case sensitivity for the cd command tab completion +set cd_tab_case insensitive + +# Use fuzzy tab completion with the "cd" command. For example, +# ":cd /u/lo/b" expands to ":cd /usr/local/bin". +set cd_tab_fuzzy false + +# Avoid previewing files larger than this size, in bytes. Use a value of 0 to +# disable this feature. +set preview_max_size 0 + +# The key hint lists up to this size have their sublists expanded. +# Otherwise the submaps are replaced with "...". +set hint_collapse_threshold 10 + +# Add the highlighted file to the path in the titlebar +set show_selection_in_titlebar true + +# The delay that ranger idly waits for user input, in milliseconds, with a +# resolution of 100ms. Lower delay reduces lag between directory updates but +# increases CPU load. +set idle_delay 2000 + +# When the metadata manager module looks for metadata, should it only look for +# a ".metadata.json" file in the current directory, or do a deep search and +# check all directories above the current one as well? +set metadata_deep_search false + +# Clear all existing filters when leaving a directory +set clear_filters_on_dir_change false + +# Disable displaying line numbers in main column. +# Possible values: false, absolute, relative. +set line_numbers false + +# When line_numbers=relative show the absolute line number in the +# current line. +set relative_current_zero false + +# Start line numbers from 1 instead of 0 +set one_indexed false + +# Save tabs on exit +set save_tabs_on_exit false + +# Enable scroll wrapping - moving down while on the last item will wrap around to +# the top and vice versa. +set wrap_scroll false + +# Set the global_inode_type_filter to nothing. Possible options: d, f and l for +# directories, files and symlinks respectively. +set global_inode_type_filter + +# This setting allows to freeze the list of files to save I/O bandwidth. It +# should be 'false' during start-up, but you can toggle it by pressing F. +set freeze_files false + +# Print file sizes in bytes instead of the default human-readable format. +set size_in_bytes false + +# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words +# give a warning when you nest ranger in a subshell started by ranger. +# Special value "error" makes the warning more visible. +set nested_ranger_warning true + +# =================================================================== +# == Local Options +# =================================================================== +# You can set local options that only affect a single directory. + +# Examples: +# setlocal path=~/downloads sort mtime + +# =================================================================== +# == Command Aliases in the Console +# =================================================================== + +alias e edit +alias q quit +alias q! quit! +alias qa quitall +alias qa! quitall! +alias qall quitall +alias qall! quitall! +alias setl setlocal + +alias filter scout -prts +alias hide scout -prtsv +alias find scout -aets +alias mark scout -mr +alias unmark scout -Mr +alias search scout -rs +alias search_inc scout -rts +alias travel scout -aefklst + +# =================================================================== +# == Define keys for the browser +# =================================================================== + +# Basic +map Q quitall +map q quit +copymap q ZZ ZQ + +map R reload_cwd +map F set freeze_files! +map reset +map redraw_window +map abort +map change_mode normal +map ~ set viewmode! + +map i display_file +map scroll_preview 1 +map scroll_preview -1 +map ? help +map W display_log +map w taskview_open +map S shell $SHELL + +map : console +map ; console +map ! console shell%space +map @ console -p6 shell %%s +map # console shell -p%space +map s console shell%space +map r chain draw_possible_programs; console open_with%space +map f console find%space +map cd console cd%space + +map chain console; eval fm.ui.console.history_move(-1) + +# Change the line mode +map Mf linemode filename +map Mi linemode fileinfo +map Mm linemode mtime +map Mh linemode humanreadablemtime +map Mp linemode permissions +map Ms linemode sizemtime +map MH linemode sizehumanreadablemtime +map Mt linemode metatitle + +# Tagging / Marking +map t tag_toggle +map ut tag_remove +map " tag_toggle tag=%any +map mark_files toggle=True +map v mark_files all=True toggle=True +map uv mark_files all=True val=False +map V toggle_visual_mode +map uV toggle_visual_mode reverse=True + +# For the nostalgics: Midnight Commander bindings +map help +map rename_append +map display_file +map edit +map copy +map cut +map console mkdir%space +map console delete +#map console trash +map exit + +# In case you work on a keyboard with dvorak layout +map move up=1 +map move down=1 +map move left=1 +map move right=1 +map move to=0 +map move to=-1 +map move down=1 pages=True +map move up=1 pages=True +map move right=1 +#map console delete +map console touch%space + +# VIM-like +copymap k +copymap j +copymap h +copymap l +copymap gg +copymap G +copymap +copymap + +map J move down=0.5 pages=True +map K move up=0.5 pages=True +copymap J +copymap K + +# Jumping around +map H history_go -1 +map L history_go 1 +map ] move_parent 1 +map [ move_parent -1 +map } traverse +map { traverse_backwards +map ) jump_non + +map gh cd ~ +map ge cd /etc +map gu cd /usr +map gd cd /dev +map gl cd -r . +map gL cd -r %f +map go cd /opt +map gv cd /var +map gm cd /media +map gi eval fm.cd('/run/media/' + os.getenv('USER')) +map gM cd /mnt +map gs cd /srv +map gp cd /tmp +map gr cd / +map gR eval fm.cd(ranger.RANGERDIR) +map g/ cd / +map g? cd /usr/share/doc/ranger + +# External Programs +map E edit +map du shell -p du -d 1 -h "$(2>/dev/null >&2 du --apparent-size /dev/null && printf '%s\n' --apparent-size || printf '%s\n' --)" +map dU shell -p du -d 1 -h "$(2>/dev/null >&2 du --apparent-size /dev/null && printf '%s\n' --apparent-size || printf '%s\n' --)" | sort -rh +map yp yank path +map yd yank dir +map yn yank name +map y. yank name_without_extension + +# Filesystem Operations +map = chmod + +map cw console rename%space +map a rename_append +map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) +map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) + +map pp paste +map po paste overwrite=True +map pP paste append=True +map pO paste overwrite=True append=True +map pl paste_symlink relative=False +map pL paste_symlink relative=True +map phl paste_hardlink +map pht paste_hardlinked_subtree +map pd console paste dest= +map p` paste dest=%any_path +map p' paste dest=%any_path + +map dD console delete +map dT console trash + +map dd cut +map ud uncut +map da cut mode=add +map dr cut mode=remove +map dt cut mode=toggle + +map yy copy +map uy uncut +map ya copy mode=add +map yr copy mode=remove +map yt copy mode=toggle + +# Temporary workarounds +map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) +map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) +map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) +map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) +map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) +map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) +map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) +map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) + +# Searching +map / console search%space +map n search_next +map N search_next forward=False +map ct search_next order=tag +map cs search_next order=size +map ci search_next order=mimetype +map cc search_next order=ctime +map cm search_next order=mtime +map ca search_next order=atime + +# Tabs +map tab_new +map tab_close +map tab_move 1 +map tab_move -1 +map tab_move 1 +map tab_move -1 +map gt tab_move 1 +map gT tab_move -1 +map gn tab_new +map gc tab_close +map uq tab_restore +map tab_open 1 +map tab_open 2 +map tab_open 3 +map tab_open 4 +map tab_open 5 +map tab_open 6 +map tab_open 7 +map tab_open 8 +map tab_open 9 +map tab_shift 1 +map tab_shift -1 + +# Sorting +map or set sort_reverse! +map oz set sort=random +map os chain set sort=size; set sort_reverse=False +map ob chain set sort=basename; set sort_reverse=False +map on chain set sort=natural; set sort_reverse=False +map om chain set sort=mtime; set sort_reverse=False +map oc chain set sort=ctime; set sort_reverse=False +map oa chain set sort=atime; set sort_reverse=False +map ot chain set sort=type; set sort_reverse=False +map oe chain set sort=extension; set sort_reverse=False + +map oS chain set sort=size; set sort_reverse=True +map oB chain set sort=basename; set sort_reverse=True +map oN chain set sort=natural; set sort_reverse=True +map oM chain set sort=mtime; set sort_reverse=True +map oC chain set sort=ctime; set sort_reverse=True +map oA chain set sort=atime; set sort_reverse=True +map oT chain set sort=type; set sort_reverse=True +map oE chain set sort=extension; set sort_reverse=True + +map dc get_cumulative_size + +# Settings +map zc set collapse_preview! +map zd set sort_directories_first! +map zh set show_hidden! +map set show_hidden! +copymap +copymap +map zI set flushinput! +map zi set preview_images! +map zm set mouse_enabled! +map zp set preview_files! +map zP set preview_directories! +map zs set sort_case_insensitive! +map zu set autoupdate_cumulative_size! +map zv set use_preview_script! +map zf console filter%space +copymap zf zz + +# Filter stack +map .d filter_stack add type d +map .f filter_stack add type f +map .l filter_stack add type l +map .m console filter_stack add mime%space +map .n console filter_stack add name%space +map .# console filter_stack add hash%space +map ." filter_stack add duplicate +map .' filter_stack add unique +map .| filter_stack add or +map .& filter_stack add and +map .! filter_stack add not +map .r filter_stack rotate +map .c filter_stack clear +map .* filter_stack decompose +map .p filter_stack pop +map .. filter_stack show + +# Bookmarks +map ` enter_bookmark %any +map ' enter_bookmark %any +map m set_bookmark %any +map um unset_bookmark %any + +map m draw_bookmarks +copymap m um ` ' p` p' + +# Generate all the chmod bindings with some python help: +eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +{0} shell -f chmod +{0} %s".format(arg)) + +eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -{0} shell -f chmod -{0} %s".format(arg)) + +# =================================================================== +# == Define keys for the console +# =================================================================== +# Note: Unmapped keys are passed directly to the console. + +# Basic +cmap eval fm.ui.console.tab() +cmap eval fm.ui.console.tab(-1) +cmap eval fm.ui.console.close() +cmap eval fm.ui.console.execute() +cmap redraw_window + +copycmap +copycmap + +# Move around +cmap eval fm.ui.console.history_move(-1) +cmap eval fm.ui.console.history_move(1) +cmap eval fm.ui.console.move(left=1) +cmap eval fm.ui.console.move(right=1) +cmap eval fm.ui.console.move(right=0, absolute=True) +cmap eval fm.ui.console.move(right=-1, absolute=True) +cmap eval fm.ui.console.move_word(left=1) +cmap eval fm.ui.console.move_word(right=1) + +copycmap +copycmap + +# Line Editing +cmap eval fm.ui.console.delete(-1) +cmap eval fm.ui.console.delete(0) +cmap eval fm.ui.console.delete_word() +cmap eval fm.ui.console.delete_word(backward=False) +cmap eval fm.ui.console.delete_rest(1) +cmap eval fm.ui.console.delete_rest(-1) +cmap eval fm.ui.console.paste() +cmap eval fm.ui.console.transpose_chars() +cmap eval fm.ui.console.transpose_words() + +# And of course the emacs way +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap + +# Note: There are multiple ways to express backspaces. (code 263) +# and (code 127). To be sure, use both. +copycmap + +# This special expression allows typing in numerals: +cmap false + +# =================================================================== +# == Pager Keybindings +# =================================================================== + +# Movement +pmap pager_move down=1 +pmap pager_move up=1 +pmap pager_move left=4 +pmap pager_move right=4 +pmap pager_move to=0 +pmap pager_move to=-1 +pmap pager_move down=1.0 pages=True +pmap pager_move up=1.0 pages=True +pmap pager_move down=0.5 pages=True +pmap pager_move up=0.5 pages=True + +copypmap k +copypmap j +copypmap h +copypmap l +copypmap g +copypmap G +copypmap d +copypmap u +copypmap n f +copypmap p b + +# Basic +pmap redraw_window +pmap pager_close +copypmap q Q i +pmap E edit_file + +# =================================================================== +# == Taskview Keybindings +# =================================================================== + +# Movement +tmap taskview_move up=1 +tmap taskview_move down=1 +tmap taskview_move to=0 +tmap taskview_move to=-1 +tmap taskview_move down=1.0 pages=True +tmap taskview_move up=1.0 pages=True +tmap taskview_move down=0.5 pages=True +tmap taskview_move up=0.5 pages=True + +copytmap k +copytmap j +copytmap g +copytmap G +copytmap u +copytmap n f +copytmap p b + +# Changing priority and deleting tasks +tmap J eval -q fm.ui.taskview.task_move(-1) +tmap K eval -q fm.ui.taskview.task_move(0) +tmap dd eval -q fm.ui.taskview.task_remove() +tmap eval -q fm.ui.taskview.task_move(-1) +tmap eval -q fm.ui.taskview.task_move(0) +tmap eval -q fm.ui.taskview.task_remove() + +# Basic +tmap redraw_window +tmap taskview_close +copytmap q Q w diff --git a/rofi/config.rasi b/rofi/config.rasi new file mode 100644 index 0000000..e66e0ae --- /dev/null +++ b/rofi/config.rasi @@ -0,0 +1 @@ +@theme "/usr/share/rofi/themes/Arc-Dark.rasi"