diff options
author | awy <awy@awy.one> | 2025-07-29 03:42:18 +0300 |
---|---|---|
committer | awy <awy@awy.one> | 2025-07-29 03:42:18 +0300 |
commit | ef6dff4cce15186a66ba34cdd7bd39958ebf7f58 (patch) | |
tree | fcfa61164ca6e79c900b5d11f6afc6b46aaccb84 /.config | |
download | hyprdots-ef6dff4cce15186a66ba34cdd7bd39958ebf7f58.tar.gz |
first commit
Diffstat (limited to '.config')
47 files changed, 2554 insertions, 0 deletions
diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf new file mode 100644 index 0000000..f54e85d --- /dev/null +++ b/.config/btop/btop.conf @@ -0,0 +1,6 @@ +color_theme = "/usr/share/btop/themes/gruvbox_dark.theme" +theme_background = False +vim_keys = True +rounded_corners = False +shown_boxes = "cpu net proc mem gpu0" +proc_sorting = "memory" diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf new file mode 100644 index 0000000..7eb3159 --- /dev/null +++ b/.config/fontconfig/fonts.conf @@ -0,0 +1,40 @@ +<?xml version='1.0'?> +<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> +<fontconfig> + <alias> + <family>serif</family> + <prefer> + <family>LiterationSerif Nerd Font Propo</family> + <family>Noto Color Emoji</family> + <family>FontAwesome</family> + <family>SymbolsNerdFont</family> + </prefer> + </alias> + <alias> + <family>sans-serif</family> + <prefer> + <family>LiterationSans Nerd Font Propo</family> + <family>Noto Color Emoji</family> + <family>FontAwesome</family> + <family>SymbolsNerdFont</family> + </prefer> + </alias> + <alias> + <family>sans</family> + <prefer> + <family>LiterationSans Nerd Font Propo</family> + <family>Noto Color Emoji</family> + <family>FontAwesome</family> + <family>SymbolsNerdFont</family> + </prefer> + </alias> + <alias> + <family>monospace</family> + <prefer> + <family>LiterationMono Nerd Font Propo</family> + <family>Noto Color Emoji</family> + <family>FontAwesome</family> + <family>SymbolsNerdFont</family> + </prefer> + </alias> +</fontconfig> diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini new file mode 100644 index 0000000..1f17ff0 --- /dev/null +++ b/.config/foot/foot.ini @@ -0,0 +1,21 @@ +include=/usr/share/foot/themes/gruvbox-dark +font=monospace:size=14 +font-size-adjustment=3 +# dpi-aware=true + +[cursor] +# style=beam + +[colors] +alpha = 0.9 + +[key-bindings] +clipboard-copy=Mod1+c +clipboard-paste=Mod1+v +scrollback-up-line=Mod1+k +scrollback-down-line=Mod1+j +font-increase=Mod1+Shift+k +font-decrease=Mod1+Shift+j +font-reset=Mod1+0 +show-urls-launch=Mod1+l +show-urls-copy=Mod1+y diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..c381f97 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,224 @@ +monitor = DP-3, 3840x2160@165, 0x0, 1.5, bitdepth, 10 +monitor = DP-2, 2560x1440@165, -2560x0, 1 + +$terminal = footclient +$menu = mew-run + +exec-once = dbus-update-activation-environment --all +exec-once = start-pipewire +exec-once = mpd +exec-once = waybar +exec-once = mako +exec-once = singboxwrap +exec-once = sleep 0.1 && randombg +exec-once = gpg-agent --daemon +exec-once = gnome-keyring-daemon --start --components=secrets + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 +env = GBM_BACKEND,nvidia-drm +env = GTK_THEME,Gruvbox-Material-Dark + +# ecosystem { +# enforce_permissions = 1 +# } + +# permission = /usr/(bin|local/bin)/grim, screencopy, allow +# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow +# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow + +general { + gaps_in = 5, 10, 10, 5 + gaps_out = 20, 10, 10, 20 + border_size = 3 + col.active_border = rgb(005577) + col.inactive_border = rgba(595959aa) + resize_on_border = false + allow_tearing = false + layout = dwindle +} + +decoration { + rounding = 0 + rounding_power = 2 + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = false + } + + blur { + enabled = false + } +} + +animations { + enabled = false +} + +dwindle { + pseudotile = true + preserve_split = true +} + +master { + new_status = master +} + +misc { + force_default_wallpaper = 0 + disable_hyprland_logo = true + enable_swallow = 1 + swallow_regex = ^(footclient)$ +} + +experimental { + xx_color_management_v4 = true +} + +xwayland { + enabled = true + force_zero_scaling = true +} + +ecosystem { + no_update_news = true +} + +cursor { + default_monitor = DP-3 +} + +input { + kb_layout = us,ru + kb_variant = + kb_model = + kb_options = caps:escape #,grp:alt_shift_toggle + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + force_no_accel = 1 + repeat_rate = 45 + repeat_delay = 300 + + touchpad { + natural_scroll = false + } +} + +gestures { + workspace_swipe = false +} + +$mainMod = SUPER +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, W, exec, firefox +bind = $mainMod, R, exec, $terminal -e yazi +bind = $mainMod SHIFT, D, exec, tessen +bind = $mainMod, V, togglefloating, +bind = $mainMod, D, exec, $menu +bind = $mainMod, P, exec, mpc toggle +bind = $mainMod, Grave, exec, bookmarks +bind = $mainMod SHIFT, J, togglesplit, # dwindle +bind = $mainMod, F, fullscreen, +bind = $mainMod SHIFT, Return, swapnext +bind = , Print, exec, grim pic-full-$(date '+%y%m%d-%H%M-%S').png +bind = SHIFT, Print, exec, maimpick +bind = $mainMod, Print, exec, dmenurecord +bind = $mainMod SHIFT, Print, exec, dmenurecord kill +bind = $mainMod, E, exec, $terminal neomutt; pkill -RTMIN+12 waybar +bind = $mainMod SHIFT, N, exec, $terminal newsboat; pkill -RTMIN+6 waybar +bind = $mainMod SHIFT, R, exec, $terminal -e btop +bind = $mainMod, M, exec, $terminal -e rmpc +bind =,XF86AudioPlay, exec, mpc toggle +bind =,XF86AudioPrev, exec, mpc prev +bind = $mainMod, comma, exec, mpc prev +bind = $mainMod, period, exec, mpc next +bind = $mainMod SHIFT, comma, exec, mpc seek 0% +bind = $mainMod SHIFT, period, exec, mpc repeat +bind =,XF86AudioNext, exec, mpc next +bind = $mainMod, bracketleft, exec, mpc seek -10 +bind = $mainMod SHIFT, bracketleft, exec, mpc seek -60 +bind = $mainMod, bracketright, exec, mpc seek +10 +bind = $mainMod SHIFT, bracketright, exec, mpc seek +60 +bind =,mouse:276, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && pkill -RTMIN+23 waybar +bind = $mainMod, minus, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; pkill -RTMIN+10 waybar +bind = $mainMod SHIFT, minus, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%-; pkill -RTMIN+10 waybar +bind = $mainMod, equal, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; pkill -RTMIN+10 waybar +bind = $mainMod SHIFT, equal, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%+; pkill -RTMIN+10 waybar +bind = $mainMod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle; pkill -RTMIN+10 waybar + +bind = $mainMod, F1, exec, singboxwrap menu +bind = $mainMod, F4, exec, $terminal -e pulsemixer; pkill -RTMIN+10 waybar; pkill -RTMIN+23 waybar +bind = $mainMod, F6, exec, torwrap +bind = $mainMod, F7, exec, td-toggle +bind = $mainMod, F8, exec, mailup +bind = $mainMod, F9, exec, mounter +bind = $mainMod, F10, exec, unmounter + +bind = $mainMod SHIFT, Q, exec, sysact + +bind = $mainMod, L, resizeactive, 100 0 +bind = $mainMod, H, resizeactive, -100 0 + +bind = $mainMod, J, cyclenext, prev +bind = $mainMod, K, cyclenext + +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +windowrule = suppressevent maximize, class:.* +windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + +workspace = 1, monitor:DP-2 +workspace = 2, monitor:DP-2 +workspace = 3, monitor:DP-3 +workspace = 4, monitor:DP-3 + +windowrulev2 = float, class:^(steam)$, title:^(Friends List)$ +windowrulev2 = float, class:^(steam)$, title:^(Steam - News)$ +windowrulev2 = float, class:^(steam)$, title:.* - Chat$ +windowrulev2 = float, class:^(steam)$, title:.* Settings$ +windowrulev2 = float, class:^(steam)$, title:.* - event started$ +windowrulev2 = float, class:^(steam)$, title:.* CD key$ +windowrulev2 = float, class:^(steam)$, title:^(Steam - Self Updater)$ +windowrulev2 = float, class:^(steam)$, title:^(Screenshot Uploader)$ +windowrulev2 = float, class:^(steam)$, title:^(Recordings & Screenshots)$ +windowrulev2 = float, class:^(steam)$, title:^(Steam Guard - Computer Authorization Required)$ +windowrulev2 = float, title:^(Steam Keyboard)$ diff --git a/.config/lazygit/config.yml b/.config/lazygit/config.yml new file mode 100644 index 0000000..380f458 --- /dev/null +++ b/.config/lazygit/config.yml @@ -0,0 +1,11 @@ +git: + paging: + colorArg: always + pager: delta --dark --paging=never +keybinding: + universal: + nextBlock-alt2: <disabled> + nextTab: <tab> + prevTab: <disabled> +gui: + border: single diff --git a/.config/lazygit/themes.gitconfig b/.config/lazygit/themes.gitconfig new file mode 100644 index 0000000..d1b65e6 --- /dev/null +++ b/.config/lazygit/themes.gitconfig @@ -0,0 +1,667 @@ +# To use these themes, first include this file in your own gitconfig file: +# +# [include] +# path = PATH/TO/delta/themes.gitconfig +# +# Then, in your own gitconfig file, activate the chosen theme, e.g. +# +# [delta] +# features = kingfisher +# +# Please add your own themes to this file, and open a PR. +# +# Instructions: +# +# 1. The name of the theme must be the name of some sort of wild organism: +# mammal, bird, plant, mollusk -- whatever. It can be in any language. +# +# 2. Use `delta --show-config` to list all the style settings that are active in +# your current delta environment, but only include settings in your theme +# that are essential to its appearance. +# +# 3. Include either `dark = true` or `light = true` according to whether it is +# designed for a light or dark terminal background. (This marks a feature as +# a "theme", causing it to be picked up by `delta --show-themes`). +# +# 4. Feel free to include a comment line indicating who is the author of the +# theme. E.g. a link to your github user page. + +[delta "colibri"] + # author: https://github.com/pablospe + # Based on woolly-mammoth: https://github.com/Kr1ss-XD. + commit-decoration-style = 130 box + dark = true + file-decoration-style = "#606018" overline + file-added-label = [●] + file-copied-label = [C] + file-modified-label = [+] + file-removed-label = [⛌] + file-renamed-label = [→] + file-style = 232 bold 184 + hunk-header-style = syntax bold italic 237 + line-numbers = true + line-numbers-left-format = "{nm:>1}┊" + line-numbers-left-style = red + line-numbers-minus-style = red bold + line-numbers-plus-style = green bold + line-numbers-right-format = " {np:>1}┊" + line-numbers-right-style = green + line-numbers-zero-style = "#545474" italic + minus-emph-style = normal "#80002a" + minus-style = normal "#5e0000" + plus-emph-style = syntax bold "#007e5e" + plus-style = syntax "#003500" + syntax-theme = OneHalfDark + whitespace-error-style = "#80002a" reverse + zero-style = syntax + blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ " + +[delta "collared-trogon"] + # author: https://github.com/clnoll + commit-decoration-style = bold box ul + dark = true + file-decoration-style = none + file-style = omit + hunk-header-decoration-style = "#022b45" box ul + hunk-header-file-style = "#999999" + hunk-header-line-number-style = bold "#003300" + hunk-header-style = file line-number syntax + line-numbers = true + line-numbers-left-style = "#022b45" + line-numbers-minus-style = "#80002a" + line-numbers-plus-style = "#003300" + line-numbers-right-style = "#022b45" + line-numbers-zero-style = "#999999" + minus-emph-style = normal "#80002a" + minus-style = normal "#330011" + plus-emph-style = syntax "#003300" + plus-style = syntax "#001a00" + syntax-theme = Nord + +[delta "coracias-caudatus"] + # author: https://github.com/clnoll + commit-decoration-style = ol "#7536ff" + commit-style = "#200078" + file-decoration-style = none + file-style = omit + hunk-header-decoration-style = "#cfd6ff" ul + hunk-header-file-style = "#858dff" + hunk-header-line-number-style = "#7536ff" + hunk-header-style = file line-number syntax + light = true + line-numbers = true + line-numbers-left-format = "{nm:>4} ." + line-numbers-left-style = "#e3ab02" + line-numbers-minus-style = "#ff38b6" + line-numbers-plus-style = "#00e0c2" + line-numbers-right-format = "{np:>4} " + line-numbers-right-style = white + line-numbers-zero-style = "#cccccc" + minus-emph-style = bold "#ff3838" "#ffe3f7" + minus-style = "#ff0080" + plus-emph-style = "#008a81" bold "#00ffbf" + plus-style = syntax "#cffff3" + syntax-theme = GitHub + +[delta "hoopoe"] + # author: https://github.com/dandavison + light = true + pink = "#ffe0e0" + dark-pink = "#ffc0c0" + green = "#d0ffd0" + dark-green = "#a0efa0" + dark-green-2 = "#067a00" + minus-style = normal hoopoe.pink + minus-emph-style = normal hoopoe.dark-pink + minus-non-emph-style = minus-style + plus-style = syntax hoopoe.green + plus-emph-style = syntax hoopoe.dark-green + plus-non-emph-style = plus-style + minus-empty-line-marker-style = minus-style + plus-empty-line-marker-style = plus-style + commit-decoration-style = blue ol + commit-style = raw + file-style = omit + hunk-header-decoration-style = blue box + hunk-header-file-style = red + hunk-header-line-number-style = hoopoe.dark-green-2 + hunk-header-style = file line-number syntax + syntax-theme = GitHub + zero-style = syntax + +[delta "tangara-chilensis"] + # author: https://github.com/clnoll + commit-decoration-style = bold box ul "#34fd50" + dark = true + file-decoration-style = none + file-style = omit + hunk-header-decoration-style = "#00b494" box ul + hunk-header-file-style = "#999999" + hunk-header-line-number-style = bold "#03a4ff" + hunk-header-style = file line-number syntax + line-numbers = true + line-numbers-left-style = black + line-numbers-minus-style = "#B10036" + line-numbers-plus-style = "#03a4ff" + line-numbers-right-style = black + line-numbers-zero-style = "#999999" + minus-emph-style = normal "#de004e" + minus-style = normal "#990017" + plus-emph-style = syntax "#03a4ff" + plus-style = syntax "#450eff" + side-by-side = true + syntax-theme = Vibrant Sunburst + +[delta "villsau"] + # author: https://github.com/torarnv + dark = true + file-style = omit + hunk-header-decoration-style = omit + hunk-header-file-style = magenta + hunk-header-line-number-style = dim magenta + hunk-header-style = file line-number syntax + line-numbers = false + minus-emph-style = bold red 52 + minus-empty-line-marker-style = normal "#3f0001" + minus-non-emph-style = dim red + minus-style = bold red + plus-emph-style = bold green 22 + plus-empty-line-marker-style = normal "#002800" + plus-non-emph-style = dim green + plus-style = bold green + syntax-theme = OneHalfDark + whitespace-error-style = reverse red + zero-style = dim syntax + +[delta "woolly-mammoth"] + # author: https://github.com/Kr1ss-XD + commit-decoration-style = 232 130 box + commit-style = 232 bold italic 130 + dark = true + file-added-label = [+] + file-copied-label = [C] + file-decoration-style = "#606018" overline + file-modified-label = [M] + file-removed-label = [-] + file-renamed-label = [R] + file-style = 232 bold 184 + hunk-header-decoration-style = none + hunk-header-style = syntax bold italic 237 + line-numbers = true + line-numbers-left-format = "{nm:>1}┊" + line-numbers-left-style = red + line-numbers-minus-style = red italic black + line-numbers-plus-style = green italic black + line-numbers-right-format = "{np:>1}┊" + line-numbers-right-style = green + line-numbers-zero-style = "#545474" italic + minus-emph-style = syntax bold "#780000" + minus-style = syntax "#400000" + plus-emph-style = syntax bold "#007800" + plus-style = syntax "#004000" + syntax-theme = Vibrant Sunburst + whitespace-error-style = "#280050" reverse + zero-style = syntax + blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ " + blame-palette = "#101010 #200020 #002800 #000028 #202000 #280000 #002020 #002800 #202020" + +[delta "calochortus-lyallii"] + # author: https://github.com/manojkarthick + commit-decoration-style = none + dark = true + file-added-label = [+] + file-copied-label = [C] + file-decoration-style = none + file-modified-label = [M] + file-removed-label = [-] + file-renamed-label = [R] + file-style = 232 bold 184 + hunk-header-decoration-style = none + hunk-header-file-style = "#999999" + hunk-header-line-number-style = bold "#03a4ff" + hunk-header-style = file line-number syntax + line-numbers = true + line-numbers-left-style = black + line-numbers-minus-style = "#B10036" + line-numbers-plus-style = "#03a4ff" + line-numbers-right-style = black + line-numbers-zero-style = "#999999" + minus-emph-style = syntax bold "#780000" + minus-style = syntax "#400000" + plus-emph-style = syntax bold "#007800" + plus-style = syntax "#004000" + whitespace-error-style = "#280050" reverse + zero-style = syntax + syntax-theme = Nord + +[delta "mantis-shrimp"] + #author: https://github.com/2kabhishek + dark = true + side-by-side = true + keep-plus-minus-markers = true + hyperlinks = true + file-added-label = [+] + file-copied-label = [==] + file-modified-label = [*] + file-removed-label = [-] + file-renamed-label = [->] + file-style = omit + zero-style = syntax + syntax-theme = Monokai Extended + commit-decoration-style ="#11ce16" box + commit-style = "#ffd21a" bold italic + hunk-header-decoration-style = "#1688f0" box ul + hunk-header-file-style = "#c63bee" ul bold + hunk-header-line-number-style = "#ffd21a" box bold + hunk-header-style = file line-number syntax bold italic + line-numbers = true + line-numbers-left-format = "{nm:>1}|" + line-numbers-left-style = "#1688f0" + line-numbers-minus-style = "#ff0051" bold + line-numbers-plus-style = "#03e57f" bold + line-numbers-right-format = "{np:>1}|" + line-numbers-right-style = "#1688f0" + line-numbers-zero-style = "#aaaaaa" italic + minus-emph-style = syntax bold "#b80000" + minus-style = syntax "#5d001e" + plus-emph-style = syntax bold "#007800" + plus-style = syntax "#004433" + whitespace-error-style = "#280050" + +[delta "mantis-shrimp-lite"] + #author: https://github.com/2kabhishek + dark = true + side-by-side = true + keep-plus-minus-markers = true + file-added-label = [+] + file-copied-label = [==] + file-modified-label = [*] + file-removed-label = [-] + file-renamed-label = [->] + file-style = omit + zero-style = syntax + syntax-theme = Monokai Extended + commit-decoration-style = green box + commit-style = yellow bold italic + hunk-header-decoration-style = blue box ul + hunk-header-file-style = purple ul bold + hunk-header-line-number-style = yellow box bold + hunk-header-style = file line-number syntax bold italic + line-numbers = true + line-numbers-left-format = "{nm:>1}|" + line-numbers-left-style = blue + line-numbers-minus-style = red bold + line-numbers-plus-style = green bold + line-numbers-right-format = "{np:>1}|" + line-numbers-right-style = blue + line-numbers-zero-style = white italic + minus-emph-style = syntax bold red + plus-emph-style = syntax bold green + whitespace-error-style = purple bold + +[delta "zebra-dark"] + minus-style = syntax "#330f0f" + minus-emph-style = syntax "#4f1917" + plus-style = syntax "#0e2f19" + plus-emph-style = syntax "#174525" + map-styles = \ + bold purple => syntax "#330f29", \ + bold blue => syntax "#271344", \ + bold cyan => syntax "#0d3531", \ + bold yellow => syntax "#222f14" + zero-style = syntax + whitespace-error-style = "#aaaaaa" + +[delta "zebra-light"] + minus-style = syntax "#fbdada" + minus-emph-style = syntax "#f6b6b6" + plus-style = syntax "#d6ffd6" + plus-emph-style = syntax "#adffad" + map-styles = \ + bold purple => syntax "#feecf7", \ + bold blue => syntax "#e5dff6", \ + bold cyan => syntax "#d8fdf6", \ + bold yellow => syntax "#f4ffe0" + zero-style = syntax + whitespace-error-style = "#aaaaaa" + +[delta "chameleon"] + #author: https://github.com/AirOnSkin + dark = true + line-numbers = true + side-by-side = true + keep-plus-minus-markers = false + syntax-theme = Nord + file-style = "#434C5E" bold + file-decoration-style = "#434C5E" ul + file-added-label = [+] + file-copied-label = [==] + file-modified-label = [*] + file-removed-label = [-] + file-renamed-label = [->] + hunk-header-style = omit + line-numbers-left-format = " {nm:>3} │" + line-numbers-left-style = red + line-numbers-right-format = " {np:>3} │" + line-numbers-right-style = green + line-numbers-minus-style = red italic black + line-numbers-plus-style = green italic black + line-numbers-zero-style = "#434C5E" italic + minus-style = bold red + minus-emph-style = bold "#202020" "#FF5555" + minus-non-emph-style = bold + plus-style = bold green + plus-emph-style = bold "#202020" "#50FA7B" + plus-non-emph-style = bold + zero-style = syntax + blame-code-style = syntax + blame-format = "{author:<18} ({commit:>9}) {timestamp:^16}" + blame-palette = "#2E3440" "#3B4252" "#434C5E" "#4C566A" + merge-conflict-begin-symbol = ~ + merge-conflict-end-symbol = ~ + merge-conflict-ours-diff-header-style = "#F1FA8C" bold + merge-conflict-ours-diff-header-decoration-style = "#434C5E" box + merge-conflict-theirs-diff-header-style = "#F1FA8C" bold + merge-conflict-theirs-diff-header-decoration-style = "#434C5E" box + +[delta "gruvmax-fang"] + # author: https://github.com/maxfangx + # General appearance + dark = true + syntax-theme = gruvbox-dark + # File + file-style = "#FFFFFF" bold + file-added-label = [+] + file-copied-label = [==] + file-modified-label = [*] + file-removed-label = [-] + file-renamed-label = [->] + file-decoration-style = "#434C5E" ul + file-decoration-style = "#84786A" ul + # No hunk headers + hunk-header-style = omit + # Line numbers + line-numbers = true + line-numbers-left-style = "#84786A" + line-numbers-right-style = "#84786A" + line-numbers-minus-style = "#A02A11" + line-numbers-plus-style = "#479B36" + line-numbers-zero-style = "#84786A" + line-numbers-left-format = " {nm:>3} │" + line-numbers-right-format = " {np:>3} │" + # Diff contents + inline-hint-style = syntax + minus-style = syntax "#330011" + minus-emph-style = syntax "#80002a" + minus-non-emph-style = syntax auto + plus-style = syntax "#001a00" + plus-emph-style = syntax "#003300" + plus-non-emph-style = syntax auto + whitespace-error-style = "#FB4934" reverse + # Commit hash + commit-decoration-style = normal box + commit-style = "#ffffff" bold + # Blame + blame-code-style = syntax + blame-format = "{author:>18} ({commit:>8}) {timestamp:<13} " + blame-palette = "#000000" "#1d2021" "#282828" "#3c3836" + # Merge conflicts + merge-conflict-begin-symbol = ⌃ + merge-conflict-end-symbol = ⌄ + merge-conflict-ours-diff-header-style = "#FABD2F" bold + merge-conflict-theirs-diff-header-style = "#FABD2F" bold overline + merge-conflict-ours-diff-header-decoration-style = '' + merge-conflict-theirs-diff-header-decoration-style = '' + +[delta "discord"] + commit-style = omit + file-style = 34 ul + file-decoration-style = none + hunk-header-style = omit + minus-style = 31 + minus-non-emph-style = 31 + minus-emph-style = 40 + minus-empty-line-marker-style = 31 + zero-style = 30 + plus-style = 32 + plus-non-emph-style = 32 + plus-emph-style = 40 + grep-file-style = 34 + grep-line-number-style = 34 + whitespace-error-style = 41 + blame-code-style = omit + true-color = never + file-modified-label = changed: + right-arrow = > + hyperlinks = false + keep-plus-minus-markers = true + diff-stat-align-width = 10 + syntax-theme = none + width = variable + +[delta "mellow-barbet"] + # author: https://github.com/kvrohit + # To configure terminal colors see https://github.com/kvrohit/mellow.nvim#terminals + dark = true + syntax-theme = base16 + line-numbers = true + side-by-side = true + file-style = brightwhite + file-decoration-style = none + file-added-label = [+] + file-copied-label = [==] + file-modified-label = [*] + file-removed-label = [-] + file-renamed-label = [->] + hunk-header-decoration-style = "#3e3e43" box ul + plus-style = brightgreen black + plus-emph-style = black green + minus-style = brightred black + minus-emph-style = black red + line-numbers-minus-style = brightred + line-numbers-plus-style = brightgreen + line-numbers-left-style = "#3e3e43" + line-numbers-right-style = "#3e3e43" + line-numbers-zero-style = "#57575f" + zero-style = syntax + whitespace-error-style = black bold + blame-code-style = syntax + blame-palette = "#161617" "#1b1b1d" "#2a2a2d" "#3e3e43" + merge-conflict-begin-symbol = ~ + merge-conflict-end-symbol = ~ + merge-conflict-ours-diff-header-style = yellow bold + merge-conflict-ours-diff-header-decoration-style = "#3e3e43" box + merge-conflict-theirs-diff-header-style = yellow bold + merge-conflict-theirs-diff-header-decoration-style = "#3e3e43" box + +[delta "arctic-fox"] + # author: https://github.com/anthony-halim + dark = true + syntax-theme = Nord + file-added-label = [+] + file-copied-label = [==] + file-modified-label = [*] + file-removed-label = [-] + file-renamed-label = [->] + file-style = omit + hunk-header-decoration-style = "#5E81AC" ul + hunk-header-file-style = blue ul bold + hunk-header-line-number-style = yellow box bold + hunk-header-style = file line-number syntax bold italic + plus-style = brightgreen + plus-emph-style = black green + minus-style = brightred + minus-emph-style = black red + line-numbers = true + line-numbers-minus-style = brightred + line-numbers-plus-style = brightgreen + line-numbers-left-style = "#5E81AC" + line-numbers-right-style = "#5E81AC" + line-numbers-zero-style = "#4C566A" + zero-style = syntax + whitespace-error-style = black bold + blame-code-style = syntax + blame-format = "{author:<18} {commit:<6} {timestamp:<15}" + blame-palette = "#2E3440" "#3B4252" "#434C5E" + merge-conflict-begin-symbol = ~ + merge-conflict-end-symbol = ~ + merge-conflict-ours-diff-header-style = yellow bold + merge-conflict-ours-diff-header-decoration-style = "#5E81AC" box + merge-conflict-theirs-diff-header-style = yellow bold + merge-conflict-theirs-diff-header-decoration-style = "#5E81AC" box + +[delta "corvus"] + # author: https://github.com/evilwaveforms + dark = true + commit-style = "#949494" + file-style = omit + syntax-theme = none + hunk-header-decoration-style = "#949494" ul + hunk-header-file-style = "#949494" + hunk-header-style = "#949494" + line-numbers = true + line-numbers-left-style = "#949494" + line-numbers-right-style = "#949494" + line-numbers-left-format = "{nm:>2}|" + line-numbers-right-format = "{np:>3} " + line-numbers-plus-style = "#54c047" + line-numbers-minus-style = bold "#591102" + plus-style = "#54c047" + plus-emph-style = bold "#54c047" + plus-non-emph-style = dim "#54c047" + minus-style = normal "#591102" + minus-emph-style = normal "#591102" + minus-non-emph-style = bold "#591102" + blame-code-style = omit + blame-format = "{author:<18} {commit:<6} {timestamp:<15}" + blame-palette = "#000000" "#343434" + zero-style = dim + +[delta "platypus"] + # Author: https://github.com/sarpuser + dark = true + side-by-side = true + true-color = always + file-added-label = [+] + file-copied-label = [==] + file-modified-label = [M] + file-removed-label = [-] + file-renamed-label = [->] + file-style = "#ff9b00" ul bold + file-decoration-style = "#ea00ff" box ul + zero-style = syntax + syntax-theme = Solarized (dark) + commit-decoration-style ="#ea00ff" ul + hunk-header-decoration-style = omit + hunk-header-file-style = "#ff9b00" ul bold + hunk-header-line-number-style = "#ffd21a" bold + hunk-header-style = line-number syntax bold italic + line-numbers = true + line-numbers-left-format = "{nm:>1}|" + line-numbers-left-style = "#ea00ff" + line-numbers-minus-style = "#ff0051" bold + line-numbers-plus-style = "#1ac71e" bold + line-numbers-right-format = "{np:>1}|" + line-numbers-right-style = "#ea00ff" + line-numbers-zero-style = "#aaaaaa" italic + minus-emph-style = syntax bold "#b80000" + minus-style = syntax "#5d001e" + plus-emph-style = syntax bold "#1a861a" + plus-style = syntax "#2a5e37" + whitespace-error-style = "#280050" + wrap-max-lines = unlimited + wrap-right-percent = 1 + +[delta "weeping-willow"] + # See 'mirthful-willow' for light mode version. + # Heavily inspired by the themes above. Thank you. <3 + # author: https://github.com/lvdh + # colors: `pastel list` + dark = true + right-arrow = > + syntax-theme = Coldark-Dark + # -- git + blame-format = " ({commit:>7}) {author:<18} {timestamp:^13} " + blame-palette = "normal midnightblue indigo navy darkblue darkslateblue purple rebeccapurple darkviolet" + commit-decoration-style = none + commit-style = bold black orange + # -- grep + grep-file-style = olive + grep-line-number-style = olive + # -- diff + keep-plus-minus-markers = true + line-numbers = true + line-numbers-minus-style = red + line-numbers-plus-style = green + line-numbers-left-style = gray + line-numbers-left-format = "{nm:>1}┊" + line-numbers-right-style = gray + line-numbers-right-format = "{np:>1}┊" + line-numbers-zero-style = gray + minus-emph-style = ghostwhite crimson underline + minus-empty-line-marker-style = syntax maroon + minus-style = syntax darkred + plus-emph-style = ghostwhite olivedrab underline + plus-empty-line-marker-style = syntax seagreen + plus-style = syntax darkgreen + whitespace-error-style = black ghostwhite + zero-style = syntax + # -- decorations + file-decoration-style = olive overline + file-added-label = [+] + file-copied-label = [*] + file-modified-label = [~] + file-removed-label = [-] + file-renamed-label = [>] + file-style = orange bold + hunk-header-decoration-style = none + hunk-header-file-style = olive + hunk-header-line-number-style = orange + hunk-header-style = file line-number orchid + +[delta "mirthful-willow"] + # See 'weeping-willow' for dark mode version. + # Heavily inspired by the themes above. Thank you. <3 + # author: https://github.com/lvdh + # colors: `pastel list` + light = true + right-arrow = > + syntax-theme = Coldark-Cold + # -- git + blame-format = " ({commit:>7}) {author:<18} {timestamp:^13} " + blame-palette = "powderblue papayawhip thistle skyblue lavender plum paleturquoise lightcyan violet" + commit-decoration-style = none + commit-style = bold black orange + # -- grep + grep-file-style = darkgoldenrod + grep-line-number-style = darkgoldenrod + # -- diff + keep-plus-minus-markers = true + line-numbers = true + line-numbers-minus-style = red + line-numbers-plus-style = green + line-numbers-left-style = gray + line-numbers-left-format = "{nm:>1}┊" + line-numbers-right-style = gray + line-numbers-right-format = "{np:>1}┊" + line-numbers-zero-style = gray + minus-emph-style = ghostwhite tomato underline + minus-empty-line-marker-style = syntax orangered + minus-style = syntax lightpink + plus-emph-style = ghostwhite limegreen underline + plus-empty-line-marker-style = syntax forestgreen + plus-style = syntax lightgreen + whitespace-error-style = black ghostwhite + zero-style = syntax + # -- decorations + file-decoration-style = darkgoldenrod overline + file-added-label = [+] + file-copied-label = [*] + file-modified-label = [~] + file-removed-label = [-] + file-renamed-label = [>] + file-style = orange bold + hunk-header-decoration-style = none + hunk-header-file-style = darkgoldenrod + hunk-header-line-number-style = orange + hunk-header-style = file line-number darkviolet diff --git a/.config/mako/config b/.config/mako/config new file mode 100644 index 0000000..30046c5 --- /dev/null +++ b/.config/mako/config @@ -0,0 +1,38 @@ +anchor=top-right +text-alignment=left +width=400 +height=400 +max-history=10 +sort=-time + +on-button-left=invoke-default-action +on-button-middle=exec makoctl menu -n $id -- mew -p 'Select action: ' +on-button-right=dismiss + +max-visible=10 +font=monospace 14 +max-icon-size=38 +icon-location=left +margin=6 +padding=3 +format=<b>%s</b>\n%b + +background-color=#222222aa +border-size=3 +border-radius=0 +default-timeout=10000 + +[urgency=low] +text-color=#eeeeee +border-color=#005577 +default-timeout=10000 + +[urgency=normal] +text-color=#eeeeee +border-color=#005577 +default-timeout=10000 + +[urgency=critical] +text-color=#eeeeee +border-color=#005577 +default-timeout=0 diff --git a/.config/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..9124fce --- /dev/null +++ b/.config/mimeapps.list @@ -0,0 +1,20 @@ +[Default Applications] + +# xdg-open will use these settings to determine how to open filetypes. +# These .desktop entries can also be seen and changed in ~/.local/share/applications/ + +text/x-shellscript=text.desktop; +x-scheme-handler/magnet=torrent.desktop; +application/x-bittorrent=torrent.desktop; +x-scheme-handler/mailto=mail.desktop; +text/plain=text.desktop; +application/postscript=pdf.desktop; +application/pdf=pdf.desktop; +image/png=img.desktop; +image/jpeg=img.desktop; +image/gif=img.desktop; +application/rss+xml=rss.desktop +video/x-matroska=video.desktop +video/mp4=video.desktop +x-scheme-handler/lbry=lbry.desktop +inode/directory=file.desktop diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf new file mode 100644 index 0000000..5067671 --- /dev/null +++ b/.config/mpd/mpd.conf @@ -0,0 +1,19 @@ +music_directory "/mnt/ssd/music" +playlist_directory "~/.config/mpd/playlists" + +auto_update "yes" +bind_to_address "127.0.0.1" +restore_paused "yes" +max_output_buffer_size "16384" + +audio_output { + type "pipewire" + name "PipeWire Sound Server" +} + +audio_output { + type "fifo" + name "Visualizer feed" + path "/tmp/mpd.fifo" + format "44100:16:2" +} diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf new file mode 100644 index 0000000..d614b15 --- /dev/null +++ b/.config/mpv/input.conf @@ -0,0 +1,5 @@ +l seek 5 +h seek -5 +j seek -60 +k seek 60 +S cycle sub diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf new file mode 100644 index 0000000..1ab6305 --- /dev/null +++ b/.config/mpv/mpv.conf @@ -0,0 +1,8 @@ +profile=high-quality +vo=gpu-next +gpu-api=vulkan +gpu-context=waylandvk +hwdec=auto +target-colorspace-hint=yes +alang=eng +slang=eng diff --git a/.config/newsboat/config b/.config/newsboat/config new file mode 100644 index 0000000..3017d96 --- /dev/null +++ b/.config/newsboat/config @@ -0,0 +1,55 @@ +#show-read-feeds no +auto-reload yes + +external-url-viewer "urlscan -dc -r 'linkhandler {}'" + +bind-key j down +bind-key k up +bind-key j next articlelist +bind-key k prev articlelist +bind-key J next-feed articlelist +bind-key K prev-feed articlelist +bind-key G end +bind-key g home +bind-key d pagedown +bind-key u pageup +bind-key l open +bind-key h quit +bind-key a toggle-article-read +bind-key n next-unread +bind-key N prev-unread +bind-key D pb-download +bind-key U show-urls +bind-key x pb-delete + +color listnormal cyan default +color listfocus black yellow standout bold +color listnormal_unread blue default +color listfocus_unread yellow default bold +color info red black bold +color article white default bold + +browser linkhandler +macro , open-in-browser +macro t set browser "qndl" ; open-in-browser ; set browser linkhandler +macro a set browser "tsp yt-dlp --embed-metadata -xic -f bestaudio/best --restrict-filenames" ; open-in-browser ; set browser linkhandler +macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler +macro w set browser "lynx" ; open-in-browser ; set browser linkhandler +macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler +macro c set browser "echo %u | wl-copy" ; open-in-browser ; set browser linkhandler +macro C set browser "youtube-viewer --comments=%u" ; open-in-browser ; set browser linkhandler +macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler +macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler + +highlight all "---.*---" yellow +highlight feedlist ".*(0/0))" black +highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold +highlight article "(^Link:.*|^Date:.*)" default default +highlight article "https?://[^ ]+" green default +highlight article "^(Title):.*$" blue default +highlight article "\\[[0-9][0-9]*\\]" magenta default bold +highlight article "\\[image\\ [0-9]+\\]" green default bold +highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold +highlight article ":.*\\(link\\)$" cyan default +highlight article ":.*\\(image\\)$" blue default +highlight article ":.*\\(embedded flash\\)$" magenta default diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..611659e --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,20 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Setup lazy.nvim +require("vim-options") +require("lazy").setup("plugins") diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua new file mode 100644 index 0000000..a2b4f84 --- /dev/null +++ b/.config/nvim/lua/plugins.lua @@ -0,0 +1,2 @@ +return {} + diff --git a/.config/nvim/lua/plugins/completions.lua b/.config/nvim/lua/plugins/completions.lua new file mode 100644 index 0000000..ff8fd40 --- /dev/null +++ b/.config/nvim/lua/plugins/completions.lua @@ -0,0 +1,42 @@ +return { + { + "hrsh7th/cmp-nvim-lsp" + }, + { + "L3MON4D3/LuaSnip", + dependencies = { + "saadparwaiz1/cmp_luasnip", + "rafamadriz/friendly-snippets" + } + }, + { + "hrsh7th/nvim-cmp", + config = function() + local cmp = require'cmp' + cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + ['<C-b>'] = cmp.mapping.scroll_docs(-4), + ['<C-f>'] = cmp.mapping.scroll_docs(4), + ['<C-Space>'] = cmp.mapping.complete(), + ['<C-e>'] = cmp.mapping.abort(), + ['<CR>'] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, { + { name = 'buffer' }, + }) + }) + end + } +} diff --git a/.config/nvim/lua/plugins/gitsigns.lua b/.config/nvim/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..8fcc21f --- /dev/null +++ b/.config/nvim/lua/plugins/gitsigns.lua @@ -0,0 +1,6 @@ +return { + "lewis6991/gitsigns.nvim", + config = function() + require("gitsigns").setup() + end, +} diff --git a/.config/nvim/lua/plugins/gruvbox.lua b/.config/nvim/lua/plugins/gruvbox.lua new file mode 100644 index 0000000..ecd9b49 --- /dev/null +++ b/.config/nvim/lua/plugins/gruvbox.lua @@ -0,0 +1,9 @@ +return { + "ellisonleao/gruvbox.nvim", + config = function() + require("gruvbox").setup({ + transparent_mode = true, + }) + vim.cmd.colorscheme "gruvbox" + end, +} diff --git a/.config/nvim/lua/plugins/lsp-config.lua b/.config/nvim/lua/plugins/lsp-config.lua new file mode 100644 index 0000000..4a55fc8 --- /dev/null +++ b/.config/nvim/lua/plugins/lsp-config.lua @@ -0,0 +1,67 @@ +return { + { + "neovim/nvim-lspconfig", + config = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require("lspconfig") + lspconfig.clangd.setup({ + capabilities = capabilities, + }) + lspconfig.rust_analyzer.setup({ + settings = { + ["rust-analyzer"] = { + cargo = { allFeatures = true }, + } + } + }) + lspconfig.lua_ls.setup({ + capabilities = capabilities, + }) + lspconfig.html.setup({ + capabilities = capabilities, + }) + lspconfig.cssls.setup({ + capabilities = capabilities, + }) + lspconfig.jsonls.setup({ + capabilities = capabilities, + }) + lspconfig.yamlls.setup({ + settings = { + yaml = { + -- schemas = { + -- ["https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/v1.17.0-standalone-strict/all.json"] = "/*.k8s.yaml", + -- } + schemas = { + kubernetes = "*.yaml", + ["http://json.schemastore.org/github-workflow"] = ".github/workflows/*", + ["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}", + ["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}", + ["http://json.schemastore.org/kustomization"] = "kustomization.{yml,yaml}", + ["http://json.schemastore.org/ansible-playbook"] = "*play*.{yml,yaml}", + ["http://json.schemastore.org/chart"] = "Chart.{yml,yaml}", + -- ["https://json.schemastore.org/gitlab-ci"] = "*gitlab-ci*.{yml,yaml}", + ["https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json"] = "*gitlab-ci*.{yml,yaml}", + ["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "*docker-compose*.{yml,yaml}", + ["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}", + }, + } + } + }) + vim.diagnostic.config({ + virtual_text = { + prefix = '', + spacing = 4, + }, + signs = true, + underline = true, + -- update_in_insert = false, + severity_sort = true, + }) + vim.keymap.set("n", "K", vim.lsp.buf.hover, {}) + vim.keymap.set("n", "<leader>gd", vim.lsp.buf.definition, {}) + vim.keymap.set("n", "<leader>gr", vim.lsp.buf.references, {}) + vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {}) + end + } +} diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..cebdf54 --- /dev/null +++ b/.config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,8 @@ +return { + { + 'nvim-lualine/lualine.nvim', + config = function() + require('lualine').setup({}) + end + } +} diff --git a/.config/nvim/lua/plugins/neotree.lua b/.config/nvim/lua/plugins/neotree.lua new file mode 100644 index 0000000..ed60017 --- /dev/null +++ b/.config/nvim/lua/plugins/neotree.lua @@ -0,0 +1,15 @@ +return { + { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "MunifTanjim/nui.nvim", + "nvim-tree/nvim-web-devicons", + }, + lazy = false, + config = function() + vim.keymap.set('n', '<C-n>', ':Neotree filesystem reveal left<CR>', {}) + end + } +} diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..0097f61 --- /dev/null +++ b/.config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,25 @@ +return { + { + 'nvim-telescope/telescope.nvim', tag = '0.1.8', + dependencies = { 'nvim-lua/plenary.nvim' }, + config = function() + local builtin = require("telescope.builtin") + vim.keymap.set('n', '<C-p>', builtin.find_files, {}) + vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) + end + }, + { + 'nvim-telescope/telescope-ui-select.nvim', + config = function() + require("telescope").setup { + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown { + } + } + } + } + require("telescope").load_extension("ui-select") + end + }, +} diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..5b1e85c --- /dev/null +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,31 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + branch = 'master', + lazy = false, + build = ":TSUpdate", + config = function() + local config = require("nvim-treesitter.configs") + config.setup({ + ensure_installed = { + "lua", + "javascript", + "c", + "cpp", + "go", + "markdown", + "meson", + "make", + "cmake", + "python", + "rust", + "yaml", + "toml", + "ron", + }, + highlight = { enable = true }, + indent = { enable = true }, + }) + end + } +} diff --git a/.config/nvim/lua/plugins/trim.lua b/.config/nvim/lua/plugins/trim.lua new file mode 100644 index 0000000..f6fa98f --- /dev/null +++ b/.config/nvim/lua/plugins/trim.lua @@ -0,0 +1,6 @@ +return { + "cappyzawa/trim.nvim", + config = function() + require("trim").setup({}) + end +} diff --git a/.config/nvim/lua/vim-options.lua b/.config/nvim/lua/vim-options.lua new file mode 100644 index 0000000..3a8b3e1 --- /dev/null +++ b/.config/nvim/lua/vim-options.lua @@ -0,0 +1,10 @@ +vim.cmd("set expandtab") +vim.cmd("set tabstop=2") +vim.cmd("set softtabstop=2") +vim.cmd("set shiftwidth=2") +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" +vim.opt.swapfile = false +vim.wo.number = true +vim.wo.relativenumber = true +vim.opt.clipboard = "unnamedplus" diff --git a/.config/paru/paru.conf b/.config/paru/paru.conf new file mode 100644 index 0000000..febee6b --- /dev/null +++ b/.config/paru/paru.conf @@ -0,0 +1,2 @@ +[bin] +Sudo = doas diff --git a/.config/pipewire/pipewire.conf.d/user-session.conf b/.config/pipewire/pipewire.conf.d/user-session.conf new file mode 100644 index 0000000..4cbe1d5 --- /dev/null +++ b/.config/pipewire/pipewire.conf.d/user-session.conf @@ -0,0 +1,4 @@ +context.exec = [ + { path = "/usr/bin/wireplumber" args = "" condition = [ { exec.session-manager = null } { exec.session-manager = true } ] } + { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" condition = [ { exec.pipewire-pulse = null } { exec.pipewire-pulse = true } ] } +] diff --git a/.config/python/pythonrc b/.config/python/pythonrc new file mode 100644 index 0000000..b32e6b6 --- /dev/null +++ b/.config/python/pythonrc @@ -0,0 +1,2 @@ +import readline +readline.write_history_file = lambda *args: None diff --git a/.config/rmpc/config.ron b/.config/rmpc/config.ron new file mode 100644 index 0000000..0818ddb --- /dev/null +++ b/.config/rmpc/config.ron @@ -0,0 +1,218 @@ +#![enable(implicit_some)] +#![enable(unwrap_newtypes)] +#![enable(unwrap_variant_newtypes)] +( + address: "127.0.0.1:6600", + volume_step: 5, + scrolloff: 2, + max_fps: 60, + wrap_navigation: true, + theme: "def", + lyrics_dir: "/mnt/ssd/music", + on_song_change: ["~/.config/rmpc/scripts/statusbar"], + on_resize: None, + status_update_interval_ms: 1000, + enable_mouse: true, + enable_config_hot_reload: true, + album_art: ( + method: Auto, + max_size_px: (width: 0, height: 0), + vertical_align: Top, + horizontal_align: Center, + ), + keybinds: ( + global: { + ":": CommandMode, + ",": VolumeDown, + "s": Stop, + ".": VolumeUp, + "<Tab>": NextTab, + "<S-Tab>": PreviousTab, + "1": SwitchToTab("Queue"), + "2": SwitchToTab("Directories"), + "3": SwitchToTab("Artists"), + "4": SwitchToTab("Album Artists"), + "5": SwitchToTab("Albums"), + "6": SwitchToTab("Playlists"), + "7": SwitchToTab("Search"), + "q": Quit, + ">": NextTrack, + "p": TogglePause, + "<": PreviousTrack, + "f": SeekForward, + "z": ToggleRepeat, + "x": ToggleRandom, + "c": ToggleConsume, + "v": ToggleSingle, + "b": SeekBack, + "~": ShowHelp, + "I": ShowCurrentSongInfo, + "O": ShowOutputs, + "P": ShowDecoders, + }, + navigation: { + "k": Up, + "j": Down, + "h": Left, + "l": Right, + "<Up>": Up, + "<Down>": Down, + "<Left>": Left, + "<Right>": Right, + "<C-k>": PaneUp, + "<C-j>": PaneDown, + "<C-h>": PaneLeft, + "<C-l>": PaneRight, + "<C-u>": UpHalf, + "N": PreviousResult, + "a": Add, + "A": AddAll, + "r": Rename, + "n": NextResult, + "g": Top, + "<Space>": Select, + "<C-Space>": InvertSelection, + "G": Bottom, + "<CR>": Confirm, + "i": FocusInput, + "J": MoveDown, + "<C-d>": DownHalf, + "/": EnterSearch, + "<C-c>": Close, + "<Esc>": Close, + "K": MoveUp, + "D": Delete, + }, + queue: { + "D": DeleteAll, + "<CR>": Play, + "<C-s>": Save, + "a": AddToPlaylist, + "d": Delete, + "i": ShowInfo, + "C": JumpToCurrent, + }, + ), + search: ( + case_sensitive: false, + mode: Contains, + tags: [ + (value: "any", label: "Any Tag"), + (value: "artist", label: "Artist"), + (value: "album", label: "Album"), + (value: "albumartist", label: "Album Artist"), + (value: "title", label: "Title"), + ], + ), + tabs: [ + ( + name: "Queue", + border_type: None, + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "40%", + borders: "RIGHT", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "3", + pane: Pane(Lyrics), + ), + ( + size: "100%", + pane: Pane(AlbumArt), + ) + ], + ), + ), + ( + size: "60%", + pane: Pane(Queue), + ), + ], + ), + ), + ( + name: "Directories", + border_type: None, + pane: Pane(Directories), + ), + ( + name: "Artists", + border_type: None, + pane: Pane(Artists), + ), + ( + name: "Album Artists", + border_type: None, + pane: Pane(AlbumArtists), + ), + ( + name: "Albums", + border_type: None, + pane: Pane(Albums), + ), + ( + name: "Playlists", + border_type: None, + pane: Pane(Playlists), + ), + ( + name: "Search", + border_type: None, + pane: Pane(Search), + ), + ( + name: "Testing", + border_type: Single, + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "40%", + pane: Pane(Queue), + ), + ( + size: "60%", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "50%", + pane: Pane(Directories), + ), + ( + size: "50%", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "60%", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "50%", + pane: Pane(Albums), + ), + ( + size: "50%", + pane: Pane(Artists), + ), + ], + ), + ), + ], + ), + ), + ], + ), + ), + ], + ), + ), + ], +) diff --git a/.config/rmpc/scripts/statusbar b/.config/rmpc/scripts/statusbar new file mode 100755 index 0000000..3508a02 --- /dev/null +++ b/.config/rmpc/scripts/statusbar @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/bin/pkill -RTMIN+11 waybar diff --git a/.config/rmpc/themes/def.ron b/.config/rmpc/themes/def.ron new file mode 100644 index 0000000..c4baa27 --- /dev/null +++ b/.config/rmpc/themes/def.ron @@ -0,0 +1,238 @@ +#![enable(implicit_some)] +#![enable(unwrap_newtypes)] +#![enable(unwrap_variant_newtypes)] +( + draw_borders: false, + show_song_table_header: true, + background_color: None, + default_album_art_path: None, + header_background_color: None, + modal_background_color: None, + modal_backdrop: true, + text_color: None, + layout: Split( + direction: Vertical, + panes: [ + ( + size: "4", + borders: "ALL", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "1", + direction: Vertical, + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "23", + pane: Pane(Property( + content: [ + (kind: Text("["), style: (fg: "yellow", modifiers: "Bold")), + (kind: Property(Status(StateV2())), style: (fg: "yellow", modifiers: "Bold")), + (kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")), + ], align: Left, + )), + ), + ( + size: "100%", + borders: "LEFT | RIGHT", + pane: Pane(Property( + content: [ + (kind: Property(Song(Filename)), style: (modifiers: "Bold"), + default: (kind: Text("No Song"), style: (modifiers: "Bold"))) + ], align: Center, scroll_speed: 1 + )), + ), + ( + size: "23", + pane: Pane(Property( + content: [ + (kind: Property(Widget(Volume)), style: (fg: "blue", modifiers: "Bold")) + ], align: Right + )), + ), + ], + ), + ), + ( + size: "1", + direction: Vertical, + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "23", + pane: Pane(Property( + content: [ + (kind: Property(Status(Elapsed))), + (kind: Text(" / ")), + (kind: Property(Status(Duration))), + (kind: Group([ + (kind: Text(" (")), + (kind: Property(Status(Bitrate))), + (kind: Text(" kbps)")), + ])), + ], align: Left, + )), + ), + ( + size: "100%", + borders: "LEFT | RIGHT", + pane: Pane(Property( + content: [ + (kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"), + default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))), + (kind: Text(" - ")), + (kind: Property(Song(Album)), default: (kind: Text("Unknown Album"))) + ], align: Center, scroll_speed: 2 + )), + ), + ( + size: "23", + pane: Pane(Property(content: [ + (kind: Property(Status(RepeatV2( + on_label: " ", + off_label: " ", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + )))), + (kind: Property(Status(RandomV2( + on_label: " ", + off_label: " ", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + )))), + (kind: Property(Status(SingleV2( + on_label: " ", + off_label: " ", + oneshot_label: " ", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + oneshot_style: (fg: "red", modifiers: "Bold"), + )))), + (kind: Property(Status(ConsumeV2( + on_label: " ", + off_label: " ", + oneshot_label: "", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + oneshot_style: (fg: "red", modifiers: "Dim"), + )))), + ], align: Right)), + ), + ], + ), + ), + ] + ) + ), + ( + size: "3", + borders: "ALL", + pane: Pane(Tabs), + ), + ( + size: "100%", + borders: "ALL", + background_color: "red", + pane: Pane(TabContent), + ), + ( + size: "3", + borders: "ALL", + pane: Split( + direction: Horizontal, + panes: [ + ( + pane: Pane(Property(content: [(kind: Property(Status(StateV2(playing_label: " ", paused_label: " ", stopped_label: " ", + playing_style: (fg: "blue"), paused_style: (fg: "green"), stopped_style: (fg: "red") + ))))], align: Left)), + size: "3", + ), + ( + size: "100%", + pane: Pane(ProgressBar), + ), + ( + size: "13", + pane: Pane(Property( + content: [ + (kind: Property(Status(Elapsed))), + (kind: Text(" / ")), + (kind: Property(Status(Duration))), + ], align: Right, + )), + ), + ] + ), + ), + ] + ), + symbols: ( + song: "", + dir: "", + marker: "\u{e0b0}", + ellipsis: "…" + ), + progress_bar: ( + symbols: ["█", "\u{e0b0}", "█"], + track_style: (fg: "#1e2030"), + elapsed_style: (fg: "blue"), + thumb_style: (fg: "blue", bg: "#1e2030"), + ), + scrollbar: ( + symbols: ["│", "█", "▲", "▼"], + track_style: (), + ends_style: (), + thumb_style: (fg: "blue"), + ), + browser_column_widths: [20, 38, 42], + browser_song_format: [ + ( + kind: Group([ + (kind: Property(Track)), + (kind: Text(" ")), + ]) + ), + ( + kind: Group([ + (kind: Property(Artist)), + (kind: Text(" - ")), + (kind: Property(Title)), + ]), + default: (kind: Property(Filename)) + ), + ], + tab_bar: ( + active_style: (fg: "black", bg: "blue", modifiers: "Bold"), + inactive_style: (), + ), + highlighted_item_style: (fg: "blue", modifiers: "Bold"), + current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"), + borders_style: (fg: "blue", modifiers: "Bold"), + highlight_border_style: (fg: "red"), + song_table_format: [ + ( + prop: (kind: Property(Other("albumartist")), default: (kind: Property(Artist), default: (kind: Text("Unknown")))), + width: "20%", + label: "Artist" + ), + ( + prop: (kind: Property(Title), default: (kind: Text("Unknown"))), + width: "35%", + ), + ( + prop: (kind: Property(Album), default: (kind: Text("Unknown Album"))), + width: "45%", + ), + ( + prop: (kind: Property(Duration),default: (kind: Text("-"))), + width: "5", + alignment: Right, + label: "Len" + ), + ], + header: (rows: []), +) diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc new file mode 100644 index 0000000..f875a05 --- /dev/null +++ b/.config/shell/aliasrc @@ -0,0 +1,75 @@ +#!/bin/sh + +# Use neovim for vim if present. +[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d" + +[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC" + +# doas not required for some system commands +for command in mount umount dinitctl pacman updatedb su shutdown poweroff reboot ; do + alias $command="doas $command" +done; unset command + +se() { + choice="$(fd . --base-directory=$HOME/.local/bin -t f --min-depth=1 | fzf)" + [ -f "$HOME/.local/bin/$choice" ] && $EDITOR "$HOME/.local/bin/$choice" +} + +# Verbosity and settings that you pretty much just always are going to want. +alias \ + cp="cp -iv" \ + mv="mv -iv" \ + rm="rm -vI" \ + bc="bc -ql" \ + rsync="rsync -vrPlu" \ + mkd="mkdir -pv" \ + yt="yt-dlp --embed-metadata -i" \ + yta="yt -x -f bestaudio/best" \ + ytt="yt --skip-download --write-thumbnail" \ + ffmpeg="ffmpeg -hide_banner" + +# Colorize commands when possible. +alias \ + ll="eza -lh --group-directories-first --color=auto --color-scale=all --color-scale-mode=fixed --icons --no-quotes --smart-group -s size --total-size --no-user --no-permissions" \ + ls="eza --group-directories-first --color=auto --icons --no-quotes -s name" \ + lsf="eza -f --group-directories-first --color=auto --icons --no-quotes -s name" \ + lsd="eza -D --group-directories-first --color=auto --icons --no-quotes -s name" \ + lst="eza -lh --group-directories-first --color=auto --color-scale --icons --no-quotes --smart-group -s time --total-size --no-user --no-permissions" \ + cat="bat -P" \ + ccat="highlight --out-format=ansi" \ + ip="ip -color=auto" + +# These common commands are just too long! Abbreviate them. +alias \ + cl="clear" \ + ka="killall" \ + trem="transmission-remote" \ + YT="youtube-viewer" \ + sdn="shutdown -h now" \ + e="$EDITOR" \ + v="$EDITOR" \ + p="paru" \ + z="zathura" \ + lg="lazygit" \ + sx="swayimg" \ + md="monerod --prune-blockchain --fast-block-sync 1 --data-dir /mnt/ssd/monero/bitmonero" \ + fetch="fastfetch" \ + de="doasedit" + +# Git related +alias \ + g="git" \ + gs="git status --short" \ + gd="git diff" \ + ga="git add" \ + gc="git commit" \ + gp="git push" \ + gu="git pull" \ + gl="git log" \ + gb="git branch" \ + gi="git init" \ + gcl="git clone" + +alias \ + magit="nvim -c MagitOnly" \ + ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" diff --git a/.config/shell/bm-dirs b/.config/shell/bm-dirs new file mode 100644 index 0000000..3ab0b0d --- /dev/null +++ b/.config/shell/bm-dirs @@ -0,0 +1,14 @@ +# You can add comments to these files with # +cac ${XDG_CACHE_HOME:-$HOME/.cache} +cf ${XDG_CONFIG_HOME:-$HOME/.config} +D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads} +d ${XDG_DOCUMENTS_DIR:-$HOME/Documents} +dt ${XDG_DATA_HOME:-$HOME/.local/share} +rr /mnt/ssd/projects +h $HOME +m ${XDG_MUSIC_DIR:-$HOME/Music} +mn /mnt +pp ${XDG_PICTURES_DIR:-$HOME/Pictures} +sc $HOME/.local/bin +src $HOME/.local/src +vv ${XDG_VIDEOS_DIR:-$HOME/Videos} diff --git a/.config/shell/bm-files b/.config/shell/bm-files new file mode 100644 index 0000000..7d7ef0d --- /dev/null +++ b/.config/shell/bm-files @@ -0,0 +1,16 @@ +# These files automatically update when edited/saved in vim: + +# keys filename description +bf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files # This file, a list of bookmarked files +bd ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs # A list of bookmarked directories similar to this file + +# These do not update automatically, but on the next new instance of a program: + +cfv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim # vim/neovim config +cfz $ZDOTDIR/.zshrc # zsh (shell) config +cfa ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc # aliases used by zsh (and potentially other shells) +cfp ${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile # profile file for login settings for zsh +cfm ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc # mutt (email client) config +cfn ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config # newsboat (RSS reader) +cfu ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls # RSS urls for newsboat +cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/rmpc/config.ron # rmpc (music player) config diff --git a/.config/shell/inputrc b/.config/shell/inputrc new file mode 100644 index 0000000..f9b94dd --- /dev/null +++ b/.config/shell/inputrc @@ -0,0 +1,19 @@ +$include /etc/inputrc +set editing-mode vi +$if mode=vi + +set show-mode-in-prompt on +set vi-ins-mode-string \1\e[6 q\2 +set vi-cmd-mode-string \1\e[2 q\2 + +set keymap vi-command +# these are for vi-command mode +Control-l: clear-screen +Control-a: beginning-of-line + +set keymap vi-insert +# these are for vi-insert mode +Control-l: clear-screen +Control-a: beginning-of-line + +$endif diff --git a/.config/shell/profile b/.config/shell/profile new file mode 100644 index 0000000..6234bba --- /dev/null +++ b/.config/shell/profile @@ -0,0 +1,94 @@ +#!/bin/sh +# shellcheck disable=SC2155 + +# Profile file, runs on login. Environmental variables are set here. + +# Add all directories in `~/.local/bin` to $PATH +export PATH="$PATH:$(find ~/.local/bin -type d | paste -sd ':' -)" + +unsetopt PROMPT_SP 2>/dev/null + +# Default programs: +export EDITOR="nvim" +export MANPAGER='nvim +Man!' +export TERMINAL="footclient" +export TERMINAL_PROG="footclient" +export BROWSER="firefox" + +unset SSH_AGENT_PID +if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then + export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" +fi + +# Change the default crypto/weather monitor sites. +# export CRYPTOURL="rate.sx" +# export WTTRURL="wttr.in" + +# ~/ Clean-up: +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_STATE_HOME="$HOME/.local/state" +export XDG_MUSIC_DIR="/mnt/ssd/music" +export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config" +export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc" +export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc" +export ZDOTDIR="$XDG_CONFIG_HOME/zsh" +#export GNUPGHOME="$XDG_DATA_HOME/gnupg" +export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default" +export KODI_DATA="$XDG_DATA_HOME/kodi" +export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store" +export TMUX_TMPDIR="$XDG_RUNTIME_DIR" +export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android" +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export GOPATH="$XDG_DATA_HOME/go" +export GOMODCACHE="$XDG_CACHE_HOME/go/mod" +export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg" +export UNISON="$XDG_DATA_HOME/unison" +export HISTFILE="$XDG_DATA_HOME/history" +export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" +export ELECTRUMDIR="$XDG_DATA_HOME/electrum" +export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc" +export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" +export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc" +export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv" +export KUBECONFIG="$XDG_CONFIG_HOME/kube/config" +export KUBECACHEDIR="$XDG_CACHE_HOME/kube" +export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker" +export PASSWORD_STORE_CLIP_TIME=5 + +# Other program settings: +export DICS="/usr/share/stardict/dic/" +export DOAS_ASKPASS="$HOME/.local/bin/dmenupass" +export LESS="R" +export LESS_TERMCAP_mb="$(printf '%b' '[1;31m')" +export LESS_TERMCAP_md="$(printf '%b' '[1;36m')" +export LESS_TERMCAP_me="$(printf '%b' '[0m')" +export LESS_TERMCAP_so="$(printf '%b' '[01;44;33m')" +export LESS_TERMCAP_se="$(printf '%b' '[0m')" +export LESS_TERMCAP_us="$(printf '%b' '[1;32m')" +export LESS_TERMCAP_ue="$(printf '%b' '[0m')" +export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" +export QT_QPA_PLATFORMTHEME="gtk3" # Have QT use gtk3 theme. +export MOZ_USE_XINPUT2=1 # Mozilla smooth scrolling/touchpads. +export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname +export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm +export LIBVA_DRIVER_NAME=nvidia +export __GLX_VENDOR_LIBRARY_NAME=nvidia +export MOZ_DISABLE_RDD_SANDBOX=1 # For HW in Firefox on nvidia gpu +export ELECTRON_OZONE_PLATFORM_HINT=auto # Electron fix +export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 # Disables decorations for QT applications +export FZF_DEFAULT_OPTS=\ +"--layout=reverse --height 40% \ +--color=fg:#e5e9f0,bg:-1,hl:#81a1c1 \ +--color=fg+:#e5e9f0,bg+:#3b4252,hl+:#81a1c1 \ +--color=info:#eacb8a,prompt:#bf6069,pointer:#b48dac \ +--color=marker:#a3be8b,spinner:#b48dac,header:#a3be8b" +export YT_X_FZF_OPTS="$FZF_DEFAULT_OPTS" +export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#767676" +export BAT_THEME="gruvbox-dark" + +[ ! -f "$XDG_CONFIG_HOME/shell/shortcutrc" ] && setsid -f shortcuts >/dev/null 2>&1 + +# Start graphical server on user's current tty if not already running. +[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Hyprland >/dev/null 2>&1 && exec dbus-run-session Hyprland diff --git a/.config/swayidle/config b/.config/swayidle/config new file mode 100644 index 0000000..3d33378 --- /dev/null +++ b/.config/swayidle/config @@ -0,0 +1,3 @@ +timeout 300 'swaylock -f' +timeout 330 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' +before-sleep 'swaylock -f' diff --git a/.config/swayimg/config b/.config/swayimg/config new file mode 100644 index 0000000..e2892a3 --- /dev/null +++ b/.config/swayimg/config @@ -0,0 +1,38 @@ +[general] +compositor = no +[viewer] +window = #000000 +scale = fit +[gallery] +window = #000000 +[list] +all = yes +[keys.viewer] +h = step_left +j = step_down +k = step_up +l = step_right +n = next_file +p = prev_file +w = zoom fit +g = first_file +Shift+g = last_file +Ctrl+x = exec ~/.config/swayimg/key-handler "%" +r = rotate_right +Shift+r = rotate_left +Alt+Shift+k = zoom +20 +Alt+Shift+j = zoom -20 +[keys.gallery] +h = step_left +j = step_down +k = step_up +l = step_right +g = first_file +Shift+g = last_file +[info] +info_timeout = 0 +[info.viewer] +top_left = none +top_right = none +bottom_left = +name +bottom_right = +scale,+frame,+index diff --git a/.config/swayimg/key-handler b/.config/swayimg/key-handler new file mode 100755 index 0000000..67943a9 --- /dev/null +++ b/.config/swayimg/key-handler @@ -0,0 +1,35 @@ +#!/bin/sh +file=$1 + [ -z "$selection" ] && selection=$(printf "w - Set as wallpaper\nc - Copy to dir\nm - Move to dir\nr - Rotate 90°\nR - Rotate -90°\nf - Flip horizontal\ny - Copy filename to clipboard\nY - Copy full path to clipboard\nd - Delete\ng - Open in GIMP\ni - Show media info" | + mew -i -l 12 -p "Choose action for selected files:") + action=$(printf "%s" "$selection" | cut -d'-' -f1 | tr -d ' ') + case "$action" in + "w") setbg "$file" & ;; + "c") + [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | mew -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")" + [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit + cp "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file copied to $destdir." & + ;; + "m") + [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | mew -l 20 -i -p "Move file(s) to where?" | sed "s|~|$HOME|g")" + [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit + mv "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file moved to $destdir." & + ;; + "r") + magick "$file" -rotate 90 "$file" ;; + "R") + magick "$file" -rotate -90 "$file" ;; + "f") + magick "$file" -flop "$file" ;; + "y") + printf "%s" "$file" | tr -d '\n' | wl-copy && + notify-send "$file copied to clipboard" & ;; + "Y") + readlink -f "$file" | tr -d '\n' | wl-copy && + notify-send "$(readlink -f "$file") copied to clipboard" & ;; + "d") + [ "$(printf "No\\nYes" | mew -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;; + "g") ifinstalled gimp && setsid -f gimp "$file" ;; + "i") notify-send "File information" "$(mediainfo "$file" | sed "s/[ ]\+:/:/g;s/: /: <b>/;s/$/<\/b>/" | rg "<b>")" ;; + *) notify-send "No keybind for that key" ;; + esac diff --git a/.config/swaylock/config b/.config/swaylock/config new file mode 100644 index 0000000..501b8d6 --- /dev/null +++ b/.config/swaylock/config @@ -0,0 +1 @@ +image=$(fd . /mnt/ssd/papes -t f | shuf -n1) diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..5a28707 --- /dev/null +++ b/.config/user-dirs.dirs @@ -0,0 +1 @@ +XDG_DESKTOP_DIR="$HOME/" diff --git a/.config/waybar/config b/.config/waybar/config new file mode 120000 index 0000000..0cffcb3 --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1 @@ +config.json
\ No newline at end of file diff --git a/.config/waybar/config.json b/.config/waybar/config.json new file mode 100644 index 0000000..581d763 --- /dev/null +++ b/.config/waybar/config.json @@ -0,0 +1,223 @@ +{ + "layer": "top", + "position": "top", + "output": "DP-2", + "reload_style_on_change": true, + "modules-left": [ + "hyprland/workspaces", + "custom/vanity", + "hyprland/window" + ], + "modules-right": [ + "custom/recording", + "custom/tasks", + "custom/music", + "custom/packages", + "custom/news", + "custom/torrent", + "custom/memory", + "custom/forecast", + "custom/mailbox", + "custom/nettraf", + "custom/microphone", + "custom/volume", + "custom/clock", + "custom/internet", + "tray" + ], + + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-click": "activate", + "format": "{icon}" + }, + + "custom/vanity" : { + "tooltip": false, + "format": "[]=" + }, + + "custom/recording" : { + "tooltip": false, + "format": "{}", + "signal": 9, + "exec" : "cat /tmp/recordingicon 2> /dev/null" + }, + + "custom/tasks" : { + "tooltip": false, + "format": "{}", + "signal": 26, + "interval": 10, + "exec" : "sb-tasks", + "on-click": "BLOCK_BUTTON=1 sb-tasks", + "on-click-right": "BLOCK_BUTTON=3 sb-tasks", + "on-click-middle": "BLOCK_BUTTON=3 sb-tasks", + "on-click-backward": "BLOCK_BUTTON=3 sb-tasks" + }, + + "custom/music" : { + "tooltip": false, + "escape": true, + "format": "{}", + "signal": 11, + "exec" : "sb-music", + "on-click": "BLOCK_BUTTON=1 sb-music", + "on-click-right": "BLOCK_BUTTON=3 sb-music", + "on-click-middle": "BLOCK_BUTTON=2 sb-music", + "on-scroll-up": "BLOCK_BUTTON=4 sb-music", + "on-scroll-down": "BLOCK_BUTTON=5 sb-music", + "on-click-backward": "BLOCK_BUTTON=8 sb-music" + }, + + "custom/packages" : { + "tooltip": false, + "format": "{}", + "signal": 8, + "exec" : "sb-pacpackages", + "on-click": "BLOCK_BUTTON=1 sb-pacpackages", + "on-click-right": "BLOCK_BUTTON=3 sb-pacpackages", + "on-click-middle": "BLOCK_BUTTON=2 sb-pacpackages", + "on-click-backward": "BLOCK_BUTTON=8 sb-pacpackages" + }, + + "custom/news" : { + "tooltip": false, + "format": "{}", + "signal": 6, + "exec" : "sb-news", + "on-click": "BLOCK_BUTTON=1 sb-news; pkill -RTMIN+6 waybar", + "on-click-right": "BLOCK_BUTTON=3 sb-news 3", + "on-click-middle": "BLOCK_BUTTON=2 sb-news 2", + "on-click-backward": "BLOCK_BUTTON=8 sb-news 8" + }, + + "custom/torrent" : { + "tooltip": false, + "format": "{}", + "signal": 7, + "interval": 20, + "exec" : "sb-torrent", + "on-click": "BLOCK_BUTTON=1 sb-torrent", + "on-click-right": "BLOCK_BUTTON=3 sb-torrent", + "on-click-middle": "BLOCK_BUTTON=2 sb-torrent", + "on-click-backward": "BLOCK_BUTTON=8 sb-torrent" + }, + + "custom/memory" : { + "tooltip": false, + "format": "{}", + "signal": 14, + "exec" : "sb-memory", + "interval": 10, + "on-click": "BLOCK_BUTTON=1 sb-memory", + "on-click-right": "BLOCK_BUTTON=3 sb-memory", + "on-click-middle": "BLOCK_BUTTON=2 sb-memory", + "on-click-backward": "BLOCK_BUTTON=8 sb-memory" + }, + + "custom/doppler" : { + "tooltip": false, + "format": "{}", + "signal": 13, + "interval": 650, + "exec" : "sb-doppler", + "on-click": "BLOCK_BUTTON=1 sb-doppler", + "on-click-right": "BLOCK_BUTTON=3 sb-doppler", + "on-click-middle": "BLOCK_BUTTON=2 sb-doppler", + "on-click-backward": "BLOCK_BUTTON=8 sb-doppler" + }, + + "custom/forecast" : { + "tooltip": false, + "format": "{}", + "signal": 5, + "exec" : "sb-forecast", + "interval" : 18000, + "on-click": "BLOCK_BUTTON=1 sb-forecast", + "on-click-right": "BLOCK_BUTTON=3 sb-forecast", + "on-click-middle": "BLOCK_BUTTON=2 sb-forecast", + "on-click-backward": "BLOCK_BUTTON=8 sb-forecast" + }, + + "custom/mailbox" : { + "tooltip": false, + "format": "{}", + "signal": 12, + "exec" : "sb-mailbox", + "interval" : 180, + "on-click": "BLOCK_BUTTON=1 sb-mailbox", + "on-click-right": "BLOCK_BUTTON=3 sb-mailbox", + "on-click-middle": "BLOCK_BUTTON=2 sb-mailbox", + "on-click-backward": "BLOCK_BUTTON=8 sb-mailbox" + }, + + "custom/nettraf" : { + "tooltip": false, + "format": "{}", + "signal": 16, + "exec" : "sb-nettraf", + "interval" : 1, + "on-click": "BLOCK_BUTTON=1 sb-nettraf", + "on-click-right": "BLOCK_BUTTON=3 sb-nettraf", + "on-click-backward": "BLOCK_BUTTON=8 sb-nettraf" + }, + + "custom/microphone" : { + "tooltip": false, + "format": "{}", + "signal": 23, + "exec" : "sb-microphone", + "interval": 10, + "on-click": "BLOCK_BUTTON=1 sb-microphone", + "on-click-middle": "BLOCK_BUTTON=2 sb-microphone", + "on-scroll-up": "BLOCK_BUTTON=4 sb-microphone", + "on-scroll-down": "BLOCK_BUTTON=5 sb-microphone", + "on-click-right": "BLOCK_BUTTON=3 sb-microphone", + "on-click-backward": "BLOCK_BUTTON=8 sb-microphone" + }, + + "custom/volume" : { + "tooltip": false, + "format": "{}", + "signal": 10, + "exec" : "sb-volume", + "interval": 10, + "on-click": "BLOCK_BUTTON=1 sb-volume", + "on-click-middle": "BLOCK_BUTTON=2 sb-volume", + "on-scroll-up": "BLOCK_BUTTON=4 sb-volume", + "on-scroll-down": "BLOCK_BUTTON=5 sb-volume", + "on-click-right": "BLOCK_BUTTON=3 sb-volume", + "on-click-backward": "BLOCK_BUTTON=8 sb-volume" + }, + + "custom/clock" : { + "tooltip": false, + "format": "{}", + "signal": 1, + "exec" : "sb-clock", + "interval" : 1, + "on-click": "BLOCK_BUTTON=1 sb-clock", + "on-click-middle": "BLOCK_BUTTON=2 sb-clock", + "on-click-right": "BLOCK_BUTTON=3 sb-clock", + "on-click-backward": "BLOCK_BUTTON=8 sb-clock" + }, + + "custom/internet" : { + "tooltip": false, + "format": "{}", + "signal": 4, + "exec" : "sb-internet", + "interval": 10, + "on-click": "BLOCK_BUTTON=1 sb-internet; pkill -RTMIN+4 waybar", + "on-click-right": "BLOCK_BUTTON=3 sb-internet; pkill -RTMIN+4 waybar", + "on-click-middle": "pkill -RTMIN+4 waybar", + "on-click-backward": "BLOCK_BUTTON=8 sb-internet" + }, + + "tray" : { + "icon-size": 18, + "spacing": 10 + } +} diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..ff119b0 --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,98 @@ +* { + font-family: "monospace"; + min-height: 0; + font-size: 100%; +} + +window#waybar { + background-color: #005577; +} + +#window { + background-color: #005577; + padding-left: 10px; +} + +#custom-vanity { + padding-left: 5px; + padding-right: 10px; +} + +#taskbar button, +#workspaces button { + color: #bbb; + background-color: #222; + border-radius: 0px; +} + +#taskbar button.active, +#workspaces button.active { + color: #eee; + background-color: #005577; +} + +#workspaces button.urgent { + color: #fb4934; +} + +.modules-left, .modules-right { + background: #222; + color: #bbb; +} + +.modules-right { + padding-left: 10px; +} + +#window { + color: #fff; +} + +#custom-music { + padding-right: 10px; +} + +#custom-packages { + padding-right: 10px; +} + +#custom-news { + padding-right: 10px; +} + +#custom-memory { + padding-right: 10px; +} + +#custom-forecast { + padding-right: 10px; +} + +#custom-mailbox { + padding-right: 10px; +} + +#custom-nettraf { + min-width: 120px; + padding-right: 10px; +} + +#custom-microphone { + padding-right: 10px; +} + +#custom-volume { + padding-right: 10px; +} + +#custom-clock { + padding-right: 10px; +} + +#custom-internet { + padding-right: 10px; +} + +#tray { + padding-right: 10px; +} diff --git a/.config/wget/wgetrc b/.config/wget/wgetrc new file mode 100644 index 0000000..4fd7999 --- /dev/null +++ b/.config/wget/wgetrc @@ -0,0 +1 @@ +hsts-file=~/.cache/wget-hsts diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml new file mode 100644 index 0000000..7f1fde1 --- /dev/null +++ b/.config/yazi/yazi.toml @@ -0,0 +1,2 @@ +[mgr] +show_hidden = true diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc new file mode 100644 index 0000000..de92e4d --- /dev/null +++ b/.config/zathura/zathurarc @@ -0,0 +1,25 @@ +set sandbox none +set statusbar-h-padding 0 +set statusbar-v-padding 0 +set page-padding 1 +set selection-clipboard clipboard +map u scroll half-up +map d scroll half-down +map D toggle_page_mode +map r reload +map R rotate +map K zoom in +map J zoom out +map i recolor +map p print +map g goto top +map [fullscreen] u scroll half-up +map [fullscreen] d scroll half-down +map [fullscreen] D toggle_page_mode +map [fullscreen] r reload +map [fullscreen] R rotate +map [fullscreen] K zoom in +map [fullscreen] J zoom out +map [fullscreen] i recolor +map [fullscreen] p print +map [fullscreen] g goto top diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc new file mode 100644 index 0000000..4d482f6 --- /dev/null +++ b/.config/zsh/.zshrc @@ -0,0 +1,87 @@ +# Enable colors and change prompt: +autoload -U colors && colors # Load colors +PS1='%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b${vcs_info_msg_0_} ' +setopt autocd # Automatically cd into typed directory. +stty stop undef # Disable ctrl-s to freeze terminal. +setopt interactive_comments +setopt prompt_subst +# History in cache directory: +HISTSIZE=10000000 +SAVEHIST=10000000 +HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history" +setopt inc_append_history + +autoload -Uz vcs_info # enable vcs_info +precmd () { vcs_info } +zstyle ':vcs_info:*' formats ' %s(%F{blue}%b%f)' # git(main) + +# Load aliases and shortcuts if existent. +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" + +# Basic auto/tab complete: +autoload -U compinit +zstyle ':completion:*' menu select +zmodload zsh/complist +compinit +_comp_options+=(globdots) # Include hidden files. + +# vi mode +bindkey -v +export KEYTIMEOUT=1 + +# Use vim keys in tab complete menu: +bindkey -M menuselect 'h' vi-backward-char +bindkey -M menuselect 'k' vi-up-line-or-history +bindkey -M menuselect 'l' vi-forward-char +bindkey -M menuselect 'j' vi-down-line-or-history +bindkey -v '^?' backward-delete-char + +# Change cursor shape for different vi modes. +function zle-keymap-select () { + case $KEYMAP in + vicmd) echo -ne '\e[6 q';; + viins|main) echo -ne '\033[0 q';; + esac +} +zle -N zle-keymap-select +zle-line-init() { + zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) + echo -ne '\033[0 q' +} +zle -N zle-line-init + +function preexec { + print -Pn "\e]0;${(q)1}\e\\" +} + +# Use yazi to switch directories and bind it to ctrl-o +function y() { + local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd + yazi "$@" --cwd-file="$tmp" + if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then + builtin cd -- "$cwd" + fi + rm -f -- "$tmp" > /dev/null +} + +bindkey -s '^o' '^uy\n' + +bindkey -s '^a' '^ubc -lq\n' + +bindkey -s '^f' '^ucd "$(dirname "$(fzf)")"\n' + +bindkey '^[[P' delete-char + +# Edit line in vim with ctrl-e: +autoload edit-command-line; zle -N edit-command-line +bindkey '^e' edit-command-line +bindkey -M vicmd '^[[P' vi-delete-char +bindkey -M vicmd '^e' edit-command-line +bindkey -M visual '^[[P' vi-delete + +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +# Load syntax highlighting; should be last. +source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null |