├── .gitignore ├── README.md ├── XCompose ├── Xresources ├── bedrock.conf ├── bin ├── agent-init ├── ddd ├── detach ├── e ├── edit-script ├── elvmv ├── folderscontain ├── git-push-all ├── git-yikes ├── imgur ├── mime ├── mpvwall ├── mpw-get ├── png-optimize ├── rofi-bspwm-unhide ├── rofi-powermenu ├── rofi-windowswitcher ├── screenshot ├── wal-to-context ├── xbps-src └── xresources-to-context ├── bspwm ├── dinit ├── asf ├── audio-share ├── boot ├── boot.d │ ├── dinit-dbus │ ├── mpd │ ├── mpdris2 │ ├── pipewire-pulse │ ├── ssh-agent │ ├── syncthing │ ├── wireplumber │ └── x11 ├── bspwm ├── dbus-session ├── dinit-dbus ├── discover-overlay ├── dunst ├── easyeffects ├── gpu-screen-recorder-ui ├── graphical-session ├── hypridle ├── hyprland ├── hyprland-per-window-layout ├── ironbar ├── mpd ├── mpdpresence ├── mpdris2 ├── mpv-wallpaper ├── noisetorch ├── perWindowLayoutD ├── picom ├── pipewire ├── pipewire-pulse ├── polkit-authentication-agent ├── polybar-main ├── polybar-secondary ├── scripts │ ├── dbus-session │ ├── mpv-wallpaper │ ├── wayland-env │ ├── wayland-ready │ ├── xorg-autostart │ └── xorg-launcher ├── ssh-agent ├── swww ├── sxhkd ├── syncthing ├── unclutter ├── waybar ├── wayland ├── wayland-compositor ├── wayland-compositor-alias ├── wayland-env ├── wayland.d │ ├── graphical-session │ ├── hypridle │ ├── hyprland-per-window-layout │ ├── polkit-authentication-agent │ ├── swww │ ├── waybar │ └── wayland-compositor ├── window-manager ├── wireplumber ├── x11 ├── x11-autostart ├── x11.d │ ├── gpu-screen-recorder-ui │ ├── graphical-session │ ├── perWindowLayoutD │ ├── picom │ ├── polkit-authentication-agent │ ├── polybar-main │ ├── polybar-secondary │ ├── sxhkd │ ├── unclutter │ ├── window-manager │ └── x11-autostart └── xorg ├── dunst ├── elvish ├── lib │ ├── completers.elv │ ├── config.elv │ ├── git.elv │ ├── semantic-prompt.elv │ ├── television.elv │ ├── theme.elv │ └── util.elv └── rc.elv ├── firefox ├── homepage.css ├── homepage.nims ├── user.js └── userChrome.css ├── fontconfig ├── gitconfig.ini ├── gtk ├── gtkrc └── settings.ini ├── hypr ├── hypridle.conf └── hyprland.conf ├── kak ├── autoload │ ├── current-word.kak │ ├── git-branch.kak │ └── kittyutils.kak └── kakrc ├── kitty ├── colors-diff.conf ├── colors.conf ├── diff.conf ├── kitty.conf └── open-actions.conf ├── layout.xkb ├── lc.ini ├── mpd ├── mpv ├── input.conf ├── mpv.conf └── script-opts │ ├── mpv-twitch-chat.conf │ ├── thumbfast.conf │ ├── uosc.conf │ ├── visualizer.conf │ └── webm.conf ├── ncmpcpp ├── nim.nim ├── ntr ├── contexts │ ├── allomancer │ ├── anderson │ ├── apprentice │ ├── assuka │ ├── blaquemagick │ ├── causal_scheme │ ├── coco │ ├── cosmic_latte │ ├── dracula │ ├── fahrenheit │ ├── falcon │ ├── gruvbox │ ├── iceberg │ ├── iosvkem │ ├── miasma │ ├── moonfly │ ├── mysticaltutor │ ├── nature-suede │ ├── nord │ ├── nova │ ├── onedark │ ├── paints │ ├── petal │ ├── rusticated │ ├── seoul256 │ ├── smyck │ ├── snow │ ├── sourcerer │ ├── srcery │ ├── stellarized │ ├── sweetlove │ ├── twilight │ └── vice ├── finishers │ ├── Xresources │ ├── default │ ├── dunst │ ├── kitty-colors │ ├── polybar │ └── terminal_colors ├── profiles │ └── default └── templates │ ├── Xresources │ ├── colorscheme.kak │ ├── dunst │ ├── homepage.css │ ├── kitty-colors │ ├── kitty-colors-diff │ ├── polybar │ ├── pygments │ ├── rofi-theme │ ├── terminal_colors │ └── zathura ├── polybar.ini ├── profile ├── rofi.rasi ├── setup ├── splug.toml ├── sudo ├── sxhkd ├── user-dirs ├── xbps-src ├── xonotic.cfg ├── yazi ├── init.lua ├── keymap.toml ├── plugins │ ├── arrow.yazi │ │ └── main.lua │ ├── count.yazi │ │ └── main.lua │ ├── folder-size.yazi │ │ └── main.lua │ ├── free-space.yazi │ │ └── main.lua │ ├── parent-arrow.yazi │ │ └── main.lua │ └── shellcd.yazi │ │ └── main.lua ├── theme.toml └── yazi.toml └── zathura /.gitignore: -------------------------------------------------------------------------------- 1 | .pijul 2 | .stfolder 3 | .stignore 4 | elvish/lib/github.com/ 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Huh? 2 | 3 | Dotfiles are partially managed/created with the help of [ntr](https://github.com/SolitudeSF/ntr) - templating configuration renderer. See [ntr/](ntr) for example. 4 | 5 | `bin/` scripts are probably unusable on your system, since they depend on programs that aren't present in coreutils (for no practical reason other than marginal performance gain) 6 | -------------------------------------------------------------------------------- /XCompose: -------------------------------------------------------------------------------- 1 | include "%L" 2 | 3 | # Greek 4 | : "α" 5 | : "β" 6 | : "γ" 7 | : "δ" 8 | <3> : "ε" 9 | : "ζ" 10 | : "η" 11 | : "θ" 12 | : "ι" 13 | : "κ" 14 | : "λ" 15 | : "μ" 16 | : "ν" 17 | : "ξ" 18 |

: "π" 19 | : "ρ" 20 | : "σ" 21 | : "τ" 22 | : "ψ" 23 | : "φ" 24 | : "χ" 25 | : "ω" 26 | 27 | : "Γ" 28 | : "Δ" 29 | : "Θ" 30 | : "Λ" 31 | : "Ξ" 32 |

: "ℙ" 55 | : "ℚ" 56 | : "ℝ" 57 | : "𝕊" 58 | : "𝕋" 59 | : "𝕌" 60 | : "𝕍" 61 | : "𝕎" 62 | : "𝕏" 63 | : "𝕐" 64 | : "ℤ" 65 | 66 | # Misc 67 | 68 | : "≈" 69 | -------------------------------------------------------------------------------- /Xresources: -------------------------------------------------------------------------------- 1 | ntr/templates/Xresources -------------------------------------------------------------------------------- /bin/agent-init: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | name=$(cat "$HOME/sns/mpwname") 3 | mpwc -k max -n "$name" -s gpg | clip-copy 4 | gpg2 -d -q "$HOME/sns/password.gpg" | mpwc -k max -n "$name" -s ssh -S 2>/dev/null | clip-copy 5 | SSH_ASKPASS=prefer ssh-add 6 | -------------------------------------------------------------------------------- /bin/ddd: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ "$(id -u)" = 0 ] || _sudo=sudo 3 | [ $# = 2 ] && exec $_sudo dd if="$1" of="$2" 4 | -------------------------------------------------------------------------------- /bin/detach: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | "$@" /dev/null 2>&1 & 3 | -------------------------------------------------------------------------------- /bin/e: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | F=0 3 | for arg; do [ -f "$arg" ] && F=1 && break; done 4 | [ $F = 1 ] && F='' || F=$(f -t f | fzy) 5 | exec "$EDITOR" "$@" "$F" 6 | -------------------------------------------------------------------------------- /bin/edit-script: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ -z "$1" ] && return 1 || f=$(command -v "$1") 3 | if [ -z "$f" ]; then 4 | f="$HOME/.local/bin/$1" 5 | $EDITOR "$f" 6 | [ -f "$f" ] && chmod +x "$f" 7 | else 8 | exec $EDITOR "$f" 9 | fi 10 | -------------------------------------------------------------------------------- /bin/elvmv: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env elvish 2 | 3 | use os 4 | use file 5 | use path 6 | 7 | fn list-items {|a| 8 | if (path:is-dir $a) { put $a/* } else { put $a } 9 | } 10 | 11 | fn get-editor { 12 | if (has-env VISUAL) { 13 | put $E:VISUAL 14 | } elif (has-env EDITOR) { 15 | put $E:EDITOR 16 | } else { 17 | put vi 18 | } 19 | } 20 | 21 | var items = [] 22 | 23 | if (== (count $args) 0) { 24 | set items = [./*] 25 | } else { 26 | for i $args { 27 | if (eq $i '-') { 28 | each {|x| set items = (conj $items (list-items $x)) } 29 | } else { 30 | set items = (conj $items (list-items $i)) 31 | } 32 | } 33 | } 34 | 35 | var file = (os:temp-file elvmv) 36 | print > $file 37 | 38 | for i $items { 39 | echo $i >> $file 40 | } 41 | 42 | try { 43 | (external (get-editor)) $file 44 | } catch { 45 | os:remove $file 46 | echo 'Editor exited with error. Aborting...' >&2 47 | exit 1 48 | } 49 | 50 | var i = 0 51 | cat $file[name] | each {|l| 52 | if (eq $l '') { 53 | os:remove-all $items[$i] 54 | } elif (not-eq $l $items[$i]) { 55 | os:mkdir-all (path:dir $l) 56 | os:rename $items[$i] $l 57 | } 58 | set i = (+ $i 1) 59 | } 60 | 61 | file:close $file 62 | os:remove $file[name] 63 | -------------------------------------------------------------------------------- /bin/folderscontain: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | (for i; do f -t f ".$i" -e dirname; done) | sort | uniq 3 | -------------------------------------------------------------------------------- /bin/git-push-all: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | for remote in $(git remote); do 3 | git push "$remote" "$@" 4 | done 5 | -------------------------------------------------------------------------------- /bin/git-yikes: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | git commit --amend --no-edit -q && git push -f -q 3 | -------------------------------------------------------------------------------- /bin/imgur: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env elvish 2 | 3 | resp = [&] 4 | id = (from-json <~/sns/imgur.json)[SolitudeAnon][id] 5 | command = [-sLX POST 'https://api.imgur.com/3/image' --data-binary '@-' -H "Authorization: Client-ID "$id ] 6 | argn = (count $args) 7 | 8 | if (and (> $argn 0) (eq $args[0] -d)) { 9 | if (== $argn 1) { 10 | echo Provide deletion hash 11 | exit 1 12 | } 13 | resp = (curl -sLX DELETE 'https://api.imgur.com/3/image/'$args[1] -H \ 14 | 'Authorization: Client-ID '$id | from-json) 15 | if (and (has-key $resp success) (eq $resp[success] $true)) { 16 | echo Image deleted 17 | } else { 18 | echo Failed to delete image 19 | exit 1 20 | } 21 | } else { 22 | if (not-eq ?(tty -s) $ok) { 23 | resp = (all | base64 | curl $@command | from-json) 24 | } elif (> $argn 0) { 25 | resp = (base64 $args[0] | curl $@command | from-json) 26 | } else { 27 | exit 1 28 | } 29 | 30 | if (and (has-key $resp success) (eq $resp[success] $true)) { 31 | echo Uploaded to $resp[data][link] 32 | echo Delete hash: $resp[data][deletehash] 33 | } else { 34 | echo Upload failed 35 | exit 1 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /bin/mime: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env elvish 2 | each {|file| 3 | echo $file 4 | echo "file: "(file -bL --mime-type $file) 5 | echo "xdg-mime: "(xdg-mime query filetype $file) 6 | echo "handlr: "(handlr mime --json $file | from-json)[0][mime] 7 | echo 8 | } $args 9 | -------------------------------------------------------------------------------- /bin/mpvwall: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | pkill xwinwrap 3 | exec xwinwrap -ni -fs -s -nf -b -un -argb -fdt -- \ 4 | mpv --wid=WID --no-terminal --no-audio --no-config --no-border \ 5 | --x11-bypass-compositor=no --keepaspect=no --loop "$@" 6 | -------------------------------------------------------------------------------- /bin/mpw-get: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | name=$(cat "$HOME/sns/mpwname") 3 | target=${1:-$(rofi -dmenu -p 'Enter site: ' -width 20 -columns 1 <"$XDG_CONFIG_HOME/mpwc/$name.mpsites")} 4 | gpg2 -d -q "$HOME/sns/password.gpg" | mpwc -S -k max -n "$name" -s "$target" 2>/dev/null | clip-copy 5 | -------------------------------------------------------------------------------- /bin/png-optimize: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec xe -a -j0 optipng -quiet -keep -o7 -- "$@" 3 | -------------------------------------------------------------------------------- /bin/rofi-bspwm-unhide: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | win=$(bspc query -N -n .hidden.window) 3 | n=$(for w in $win; do 4 | name=$(xprop -id "$w" WM_CLASS 2>/dev/null | sed -r 's/.+ "(.+)"$/\1/') 5 | title=$(xprop -id "$w" WM_NAME 2>/dev/null | sed -r 's/.+ "(.+)"$/\1/') 6 | [ "$name" = "WM_CLASS" ] && echo "node $w" || echo "$name \"$title\"" 7 | done | rofi -dmenu -no-custom -format i -p 'Unhide: ') 8 | if [ -n "$n" ]; then 9 | id=$(echo "$win" | sed -n "$((n+1))p") 10 | bspc node "$id" -d focused 11 | bspc node "$id" -g hidden=off 12 | fi 13 | -------------------------------------------------------------------------------- /bin/rofi-powermenu: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # rofi based powermenu 3 | 4 | LOCKSCREEN="trollock -b bg" 5 | 6 | case "$(printf %s "\ 7 | Suspend 8 | Lock screen 9 | Reboot 10 | Power-off 11 | " | rofi -width 20 -lines 4 -dmenu -no-custom -i -format i -p 'Powermenu: ')" in 12 | 0) $LOCKSCREEN & loginctl suspend;; 13 | 1) $LOCKSCREEN & xset dpms force off;; 14 | 2) loginctl reboot;; 15 | 3) loginctl poweroff;; 16 | esac 17 | -------------------------------------------------------------------------------- /bin/rofi-windowswitcher: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec rofi -show window -modi window -show-icons -columns 2 -kb-accept-entry 'Return,Alt+Tab' 3 | -------------------------------------------------------------------------------- /bin/screenshot: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | dir=$(xdg-user-dir PICTURES)/screen 3 | [ -d "$dir" ] || mkdir -p "$dir" 4 | path=$dir/$(date "+%Y-%m-%d_%H:%M:%S").png 5 | if maim "$@" "$path"; then 6 | notify-send --icon "$path" "Screenshot saved" "$path" 7 | xclip -sel c -t image/png "$path" 8 | fi 9 | -------------------------------------------------------------------------------- /bin/wal-to-context: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env elvish 2 | use re 3 | 4 | data = (all | from-json) 5 | col = $data[colors] 6 | spec = $data[special] 7 | wall = $data[wallpaper] 8 | name = (re:replace '(\..+)?$' '' (path-base $wall)) 9 | author = $E:USER 10 | 11 | if (> (count $args) 0) { 12 | name = $args[0] 13 | if (> (count $args) 1) { author = $args[1] } 14 | } 15 | 16 | echo meta 17 | echo ' name*: '$name 18 | echo ' author: '$author 19 | echo ' source: pywal' 20 | echo 21 | echo color 22 | echo ' bg: '$spec[background] 23 | echo ' fg: '$spec[foreground] 24 | echo ' cursor: '$spec[cursor] 25 | echo 26 | echo 'color0: '$col[color0] 27 | echo 'color8: '$col[color8] 28 | echo 29 | echo 'color1: '$col[color1] 30 | echo 'color9: '$col[color9] 31 | echo 32 | echo 'color2: '$col[color2] 33 | echo 'color10: '$col[color10] 34 | echo 35 | echo 'color3: '$col[color3] 36 | echo 'color11: '$col[color11] 37 | echo 38 | echo 'color4: '$col[color4] 39 | echo 'color12: '$col[color12] 40 | echo 41 | echo 'color5: '$col[color5] 42 | echo 'color13: '$col[color13] 43 | echo 44 | echo 'color6: '$col[color6] 45 | echo 'color14: '$col[color14] 46 | echo 47 | echo 'color7: '$col[color7] 48 | echo 'color15: '$col[color15] 49 | echo 50 | echo 'wallpaper*: '(re:replace &literal=$true '^'(put ~) '{{$HOME}}' $wall) 51 | -------------------------------------------------------------------------------- /bin/xbps-src: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$XBPS_DISTDIR" && exec ./xbps-src "$@" 3 | -------------------------------------------------------------------------------- /bin/xresources-to-context: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env elvish 2 | use re 3 | c = [&] 4 | all | each [l]{ 5 | if (re:match '^(\*\.?|URxvt\*)' $l) { 6 | put $l | re:awk [_ k @v]{ 7 | if (eq (count $v) 1) { c[(re:replace '(^\*\.?|^URxvt\*|:$)' '' $k)] = $v[0] } 8 | } 9 | } 10 | } 11 | echo color 12 | echo ' bg: '$c[background] 13 | echo ' fg: '$c[foreground] 14 | if (has-key $c cursorColor) { 15 | echo ' cursor: '$c[cursorColor] 16 | } 17 | echo 18 | echo 'color0: '$c[color0] 19 | echo 'color8: '$c[color8] 20 | echo 21 | echo 'color1: '$c[color1] 22 | echo 'color9: '$c[color9] 23 | echo 24 | echo 'color2: '$c[color2] 25 | echo 'color10: '$c[color10] 26 | echo 27 | echo 'color3: '$c[color3] 28 | echo 'color11: '$c[color11] 29 | echo 30 | echo 'color4: '$c[color4] 31 | echo 'color12: '$c[color12] 32 | echo 33 | echo 'color5: '$c[color5] 34 | echo 'color13: '$c[color13] 35 | echo 36 | echo 'color6: '$c[color6] 37 | echo 'color14: '$c[color14] 38 | echo 39 | echo 'color7: '$c[color7] 40 | echo 'color15: '$c[color15] 41 | -------------------------------------------------------------------------------- /bspwm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | bspc monitor DisplayPort-1 -d 0 1 2 3 4 5 6 7 8 9 3 | bspc monitor HDMI-A-0 -d 10 11 12 13 14 15 16 17 18 19 4 | 5 | bspc config border_width 1 6 | bspc config window_gap 3 7 | bspc config split_ratio 0.5 8 | bspc config removal_adjustment false 9 | bspc config borderless_monocle true 10 | bspc config gapless_monocle true 11 | bspc config focus_follows_pointer true 12 | bspc config pointer_follows_monitor true 13 | bspc config click_to_focus button1 14 | -------------------------------------------------------------------------------- /dinit/asf: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat arch $HOME/app/ArchiSteamFarm/ArchiSteamFarm 3 | -------------------------------------------------------------------------------- /dinit/audio-share: -------------------------------------------------------------------------------- 1 | type = process 2 | command = as-cmd -b 0.0.0.0 3 | depends-on = pipewire 4 | -------------------------------------------------------------------------------- /dinit/boot: -------------------------------------------------------------------------------- 1 | type = internal 2 | waits-for.d = boot.d 3 | -------------------------------------------------------------------------------- /dinit/boot.d/dinit-dbus: -------------------------------------------------------------------------------- 1 | ../dinit-dbus -------------------------------------------------------------------------------- /dinit/boot.d/mpd: -------------------------------------------------------------------------------- 1 | ../mpd -------------------------------------------------------------------------------- /dinit/boot.d/mpdris2: -------------------------------------------------------------------------------- 1 | ../mpdris2 -------------------------------------------------------------------------------- /dinit/boot.d/pipewire-pulse: -------------------------------------------------------------------------------- 1 | ../pipewire-pulse -------------------------------------------------------------------------------- /dinit/boot.d/ssh-agent: -------------------------------------------------------------------------------- 1 | ../ssh-agent -------------------------------------------------------------------------------- /dinit/boot.d/syncthing: -------------------------------------------------------------------------------- 1 | ../syncthing -------------------------------------------------------------------------------- /dinit/boot.d/wireplumber: -------------------------------------------------------------------------------- 1 | ../wireplumber -------------------------------------------------------------------------------- /dinit/boot.d/x11: -------------------------------------------------------------------------------- 1 | ../x11 -------------------------------------------------------------------------------- /dinit/bspwm: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat void bspwm 3 | depends-on = xorg 4 | -------------------------------------------------------------------------------- /dinit/dbus-session: -------------------------------------------------------------------------------- 1 | type = process 2 | command = $XDG_CONFIG_HOME/dinit.d/scripts/dbus-session --print-address=4 3 | ready-notification = pipefd:4 4 | -------------------------------------------------------------------------------- /dinit/dinit-dbus: -------------------------------------------------------------------------------- 1 | command = dinit-dbus 2 | depends-on = dbus-session 3 | ready-notification = pipevar:DINIT_DBUS_READY_FD 4 | options = pass-cs-fd 5 | -------------------------------------------------------------------------------- /dinit/discover-overlay: -------------------------------------------------------------------------------- 1 | type = process 2 | command = discover-overlay 3 | -------------------------------------------------------------------------------- /dinit/dunst: -------------------------------------------------------------------------------- 1 | type = process 2 | command = dunst 3 | depends-on = dbus-session 4 | -------------------------------------------------------------------------------- /dinit/easyeffects: -------------------------------------------------------------------------------- 1 | type = process 2 | command = easyeffects --gapplication-service 3 | depends-on = pipewire 4 | depends-on = xorg 5 | -------------------------------------------------------------------------------- /dinit/gpu-screen-recorder-ui: -------------------------------------------------------------------------------- 1 | type = process 2 | command = gsr-ui 3 | depends-on = xorg 4 | -------------------------------------------------------------------------------- /dinit/graphical-session: -------------------------------------------------------------------------------- 1 | type = internal 2 | depends-on = xorg 3 | -------------------------------------------------------------------------------- /dinit/hypridle: -------------------------------------------------------------------------------- 1 | type = process 2 | command = hypridle 3 | depends-on = hyprland 4 | -------------------------------------------------------------------------------- /dinit/hyprland: -------------------------------------------------------------------------------- 1 | type = process 2 | command = Hyprland 3 | depends-on = dbus-session 4 | working-dir = $HOME 5 | ready-notification = pipevar:DINIT_READYFD 6 | -------------------------------------------------------------------------------- /dinit/hyprland-per-window-layout: -------------------------------------------------------------------------------- 1 | type = process 2 | command = hyprland-per-window-layout 3 | depends-on = hyprland 4 | -------------------------------------------------------------------------------- /dinit/ironbar: -------------------------------------------------------------------------------- 1 | type = process 2 | command = ironbar 3 | depends-on = wayland-compositor 4 | -------------------------------------------------------------------------------- /dinit/mpd: -------------------------------------------------------------------------------- 1 | type = process 2 | command = mpd --no-daemon 3 | depends-on = pipewire 4 | -------------------------------------------------------------------------------- /dinit/mpdpresence: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat void mpdpresence 3 | depends-on = mpd 4 | -------------------------------------------------------------------------------- /dinit/mpdris2: -------------------------------------------------------------------------------- 1 | type = process 2 | command = mpDris2 3 | depends-on = dbus-session 4 | depends-on = mpd 5 | -------------------------------------------------------------------------------- /dinit/mpv-wallpaper: -------------------------------------------------------------------------------- 1 | type = process 2 | command = scripts/mpv-wallpaper 3 | depends-on = xorg 4 | after = bspwm 5 | -------------------------------------------------------------------------------- /dinit/noisetorch: -------------------------------------------------------------------------------- 1 | type = scripted 2 | command = noisetorch -i 3 | stop-command = noisetorch -u 4 | depends-on = pipewire 5 | -------------------------------------------------------------------------------- /dinit/perWindowLayoutD: -------------------------------------------------------------------------------- 1 | type = process 2 | command = perWindowLayoutD -n 3 | depends-on = xorg 4 | -------------------------------------------------------------------------------- /dinit/picom: -------------------------------------------------------------------------------- 1 | type = process 2 | command = picom 3 | depends-on = xorg 4 | -------------------------------------------------------------------------------- /dinit/pipewire: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat arch pipewire 3 | depends-on = dbus-session 4 | -------------------------------------------------------------------------------- /dinit/pipewire-pulse: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat arch pipewire -c pipewire-pulse.conf 3 | depends-on = pipewire 4 | -------------------------------------------------------------------------------- /dinit/polkit-authentication-agent: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat void /usr/libexec/polkit-mate-authentication-agent-1 3 | depends-on = graphical-session 4 | -------------------------------------------------------------------------------- /dinit/polybar-main: -------------------------------------------------------------------------------- 1 | type = process 2 | command = polybar main 3 | depends-on = xorg 4 | after = bspwm 5 | -------------------------------------------------------------------------------- /dinit/polybar-secondary: -------------------------------------------------------------------------------- 1 | type = process 2 | command = polybar secondary 3 | depends-on = xorg 4 | after = bspwm 5 | -------------------------------------------------------------------------------- /dinit/scripts/dbus-session: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | dinitctl setenv DBUS_SESSION_BUS_ADDRESS || : 3 | exec dbus-daemon --session --address="$DBUS_SESSION_BUS_ADDRESS" "$@" 4 | -------------------------------------------------------------------------------- /dinit/scripts/mpv-wallpaper: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec xwinwrap -g "$(xrandr | awk '/ connected/ {print $4}')" -un -fdt -ni -b -nf -- mpv --vo=vaapi --hwdec=vaapi --no-audio --no-border --no-config --no-window-dragging --no-input-default-bindings --no-osd-bar --no-sub --loop -wid WID "$(cat "$XDG_CONFIG_HOME/mpv-wallpaper/conf")" 3 | -------------------------------------------------------------------------------- /dinit/scripts/wayland-env: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export GDK_BACKEND=wayland,x11 3 | export QT_QPA_PLATFORM='wayland;xcb' 4 | export SDL_VIDEODRIVER=wayland 5 | dinitctl setenv GDK_BACKEND QT_QPA_PLATFORM SDL_VIDEODRIVER 6 | dbus-update-activation-environment GDK_BACKEND QT_QPA_PLATFORM SDL_VIDEODRIVER 7 | -------------------------------------------------------------------------------- /dinit/scripts/wayland-ready: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | dinitctl setenv DISPLAY WAYLAND_DISPLAY XDG_BACKEND XDG_CURRENT_DESKTOP XDG_SESSION_TYPE XDG_SESSION_ID XDG_SESSION_CLASS XDG_SEAT HYPRLAND_INSTANCE_SIGNATURE 3 | dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY XDG_BACKEND XDG_CURRENT_DESKTOP XDG_SESSION_TYPE XDG_SESSION_ID XDG_SESSION_CLASS XDG_SEAT HYPRLAND_INSTANCE_SIGNATURE 4 | echo 1 >&"$DINIT_READYFD" 5 | -------------------------------------------------------------------------------- /dinit/scripts/xorg-autostart: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | xrandr --output DisplayPort-1 --primary 3 | xrandr --output HDMI-A-0 --auto --left-of DisplayPort-1 4 | 5 | xrdb -nocpp "$XDG_CONFIG_HOME/X11/xresources" & 6 | xsetroot -cursor_name left_ptr & 7 | xkbcomp "$DOTS_DIR/layout.xkb" "$DISPLAY" & 8 | strat void wlp 9 | -------------------------------------------------------------------------------- /dinit/scripts/xorg-launcher: -------------------------------------------------------------------------------- 1 | #!/bin/sh -- 2 | tty=$(tty) 3 | tty=${tty#/dev/tty} 4 | 5 | runtimedir=${XDG_RUNTIME_DIR:-/run/user/$(id -u)} 6 | 7 | export XAUTHORITY="${XAUTHORITY:-$runtimedir/xauthority}" 8 | export DISPLAY=:"$tty" 9 | 10 | touch -- "$XAUTHORITY" 11 | 12 | xauth add :"$tty" MIT-MAGIC-COOKIE-1 "$(od -An -N16 -tx /dev/urandom | tr -d ' ')" 13 | 14 | dbus-update-activation-environment DISPLAY XAUTHORITY 15 | dinitctl setenv DISPLAY XAUTHORITY 16 | 17 | Xorg :"$tty" -keeptty vt"$tty" -noreset -auth "$XAUTHORITY" -displayfd "$DINIT_READYFD" 18 | xauth remove :"$tty" 19 | -------------------------------------------------------------------------------- /dinit/ssh-agent: -------------------------------------------------------------------------------- 1 | type = process 2 | command = ssh-agent -D -a $SSH_AUTH_SOCK 3 | -------------------------------------------------------------------------------- /dinit/swww: -------------------------------------------------------------------------------- 1 | type = process 2 | command = swww-daemon 3 | depends-on = wayland-compositor 4 | -------------------------------------------------------------------------------- /dinit/sxhkd: -------------------------------------------------------------------------------- 1 | type = process 2 | command = sxhkd -m 1 3 | depends-on = xorg 4 | working-dir = $HOME 5 | -------------------------------------------------------------------------------- /dinit/syncthing: -------------------------------------------------------------------------------- 1 | type = process 2 | command = syncthing -no-browser 3 | -------------------------------------------------------------------------------- /dinit/unclutter: -------------------------------------------------------------------------------- 1 | type = process 2 | command = unclutter 3 | depends-on = xorg 4 | -------------------------------------------------------------------------------- /dinit/waybar: -------------------------------------------------------------------------------- 1 | type = process 2 | command = waybar 3 | depends-on = wayland-compositor 4 | -------------------------------------------------------------------------------- /dinit/wayland: -------------------------------------------------------------------------------- 1 | type = internal 2 | waits-for.d = wayland.d 3 | -------------------------------------------------------------------------------- /dinit/wayland-compositor: -------------------------------------------------------------------------------- 1 | type = internal 2 | depends-on = wayland-env 3 | depends-on = wayland-compositor-alias 4 | -------------------------------------------------------------------------------- /dinit/wayland-compositor-alias: -------------------------------------------------------------------------------- 1 | type = internal 2 | depends-on = hyprland 3 | -------------------------------------------------------------------------------- /dinit/wayland-env: -------------------------------------------------------------------------------- 1 | type = scripted 2 | command = $XDG_CONFIG_HOME/dinit.d/scripts/wayland-env 3 | depends-on = dbus-session 4 | before = wayland-compositor-alias 5 | -------------------------------------------------------------------------------- /dinit/wayland.d/graphical-session: -------------------------------------------------------------------------------- 1 | ../graphical-session -------------------------------------------------------------------------------- /dinit/wayland.d/hypridle: -------------------------------------------------------------------------------- 1 | ../hypridle -------------------------------------------------------------------------------- /dinit/wayland.d/hyprland-per-window-layout: -------------------------------------------------------------------------------- 1 | ../hyprland-per-window-layout -------------------------------------------------------------------------------- /dinit/wayland.d/polkit-authentication-agent: -------------------------------------------------------------------------------- 1 | ../polkit-authentication-agent -------------------------------------------------------------------------------- /dinit/wayland.d/swww: -------------------------------------------------------------------------------- 1 | ../swww -------------------------------------------------------------------------------- /dinit/wayland.d/waybar: -------------------------------------------------------------------------------- 1 | ../waybar -------------------------------------------------------------------------------- /dinit/wayland.d/wayland-compositor: -------------------------------------------------------------------------------- 1 | ../wayland-compositor -------------------------------------------------------------------------------- /dinit/window-manager: -------------------------------------------------------------------------------- 1 | type = internal 2 | depends-on = bspwm 3 | -------------------------------------------------------------------------------- /dinit/wireplumber: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat arch wireplumber 3 | depends-on = pipewire 4 | after = pipewire-pulse 5 | -------------------------------------------------------------------------------- /dinit/x11: -------------------------------------------------------------------------------- 1 | type = internal 2 | waits-for.d = x11.d 3 | -------------------------------------------------------------------------------- /dinit/x11-autostart: -------------------------------------------------------------------------------- 1 | type = scripted 2 | command = strat arch $XDG_CONFIG_HOME/dinit.d/scripts/xorg-autostart 3 | depends-on = xorg 4 | restart = false 5 | -------------------------------------------------------------------------------- /dinit/x11.d/gpu-screen-recorder-ui: -------------------------------------------------------------------------------- 1 | ../gpu-screen-recorder-ui -------------------------------------------------------------------------------- /dinit/x11.d/graphical-session: -------------------------------------------------------------------------------- 1 | ../graphical-session -------------------------------------------------------------------------------- /dinit/x11.d/perWindowLayoutD: -------------------------------------------------------------------------------- 1 | ../perWindowLayoutD -------------------------------------------------------------------------------- /dinit/x11.d/picom: -------------------------------------------------------------------------------- 1 | ../picom -------------------------------------------------------------------------------- /dinit/x11.d/polkit-authentication-agent: -------------------------------------------------------------------------------- 1 | ../polkit-authentication-agent -------------------------------------------------------------------------------- /dinit/x11.d/polybar-main: -------------------------------------------------------------------------------- 1 | ../polybar-main -------------------------------------------------------------------------------- /dinit/x11.d/polybar-secondary: -------------------------------------------------------------------------------- 1 | ../polybar-secondary -------------------------------------------------------------------------------- /dinit/x11.d/sxhkd: -------------------------------------------------------------------------------- 1 | ../sxhkd -------------------------------------------------------------------------------- /dinit/x11.d/unclutter: -------------------------------------------------------------------------------- 1 | ../unclutter -------------------------------------------------------------------------------- /dinit/x11.d/window-manager: -------------------------------------------------------------------------------- 1 | ../window-manager -------------------------------------------------------------------------------- /dinit/x11.d/x11-autostart: -------------------------------------------------------------------------------- 1 | ../x11-autostart -------------------------------------------------------------------------------- /dinit/xorg: -------------------------------------------------------------------------------- 1 | type = process 2 | command = strat arch $XDG_CONFIG_HOME/dinit.d/scripts/xorg-launcher 3 | depends-on = dbus-session 4 | ready-notification = pipevar:DINIT_READYFD 5 | options = runs-on-console 6 | -------------------------------------------------------------------------------- /dunst: -------------------------------------------------------------------------------- 1 | ntr/templates/dunst -------------------------------------------------------------------------------- /elvish/lib/completers.elv: -------------------------------------------------------------------------------- 1 | use re 2 | use str 3 | use path 4 | use util 5 | 6 | fn overlap-at {|a b| 7 | for i [(range 1 (- (count $b) 1))] { 8 | if (has-value $a $b[$i]) { put $i; return } 9 | } 10 | put $false 11 | } 12 | 13 | fn at-command {|cmd| 14 | == (count $cmd) 2 15 | } 16 | 17 | fn prefix-completer {|p a| 18 | set edit:completion:arg-completer[$p] = {|@cmd| 19 | if (== (count $cmd) 2) { 20 | $a $@cmd 21 | } elif (has-key $edit:completion:arg-completer $cmd[1]) { 22 | $edit:completion:arg-completer[$cmd[1]] (all $cmd[1..]) 23 | } else { 24 | edit:complete-filename $cmd[-1] 25 | } 26 | } 27 | } 28 | 29 | set edit:completion:arg-completer[waifu2x-converter-cpp] = {|@cmd| 30 | if (has-value [-i --input -o --output] $cmd[-2]) { 31 | edit:complete-filename $cmd[-1] 32 | } elif (has-value [-m --mode] $cmd[-2]) { 33 | put noise scale noise-scale 34 | } elif (eq $cmd[-2] --noise-level) { 35 | put 0 1 2 3 36 | } else { 37 | put --scale-ratio --noise-level --mode --jobs --png-compression ^ 38 | --image-quality --silent -i -o 39 | } 40 | } 41 | 42 | var kitty-cmds = $nil 43 | var kitty-kittens = $nil 44 | 45 | set edit:completion:arg-completer[kitty] = {|@cmd| 46 | if (not $kitty-cmds) { 47 | set @kitty-cmds = (kitty @ --help | peach {|x| if (re:match '^ \w' $x) { put $x[2..] } }) 48 | set @kitty-kittens = (tmp pwd = /usr/lib/kitty/kittens; f main.py | peach {|x| path:dir $x }) 49 | } 50 | if (has-value [kitten '+kitten'] $cmd[-2]) { 51 | all $kitty-kittens 52 | } elif (eq $cmd[-2] '@') { 53 | all $kitty-cmds 54 | } else { 55 | edit:complete-filename $cmd[-1] 56 | } 57 | } 58 | 59 | set edit:completion:arg-completer[sv] = {|@cmd| 60 | if (== (count $cmd) 2) { 61 | put status up down once pause cont hup alarm interrupt quit kill term 1 2 ^ 62 | exit start try-restart check {force-,}{stop,reload,restart,shutdown} 63 | } else { 64 | tmp pwd = /var/service; put * 65 | } 66 | } 67 | 68 | set edit:completion:arg-completer[man] = {|@cmd| 69 | tmp pwd = /bedrock/cross/man; put man*/* | each {|a| 70 | re:replace &literal=$true '(\.\dp?)?(\.gz)?$' '' (path:base $a) 71 | } 72 | } 73 | 74 | set edit:completion:arg-completer[kill] = {|@cmd| 75 | ps -u (whoami) --no-headers -o pid,command |^ 76 | re:awk {|_ p @c| edit:complex-candidate &display=(print ' '$@c) $p } 77 | } 78 | 79 | set edit:completion:arg-completer[nimble] = {|@cmd| 80 | if (== (count $cmd) 2) { 81 | put {un,}install develop check init publish build c cc js test doc{,2} ^ 82 | refresh search list tasks path dump 83 | if (> (count [*[nomatch-ok].nimble]) 0) { 84 | nimble tasks 2>&- | re:awk {|_ a @_| put $a } 85 | } 86 | } elif (eq $cmd[-2] install) { 87 | for x (from-json <~/.nimble/packages_official.json) { put $x[name] } 88 | } elif (eq $cmd[-2] uninstall) { 89 | var idx = (util:index-of $cmd[-1] '@') 90 | if (== $idx -1) { 91 | nimble list -i | re:awk {|_ n @_| put $n } 92 | } else { 93 | var pkgs = [&] 94 | nimble list -i | re:awk {|_ n @v| 95 | var @ver = $@v[..-1] 96 | set ver[0] = $ver[0][1..] 97 | set pkgs[$n] = $ver 98 | } 99 | var pkg = $cmd[-1][..$idx] 100 | if (has-key $pkgs $pkg) { 101 | for v $pkgs[$pkg] { put $pkg@$v } 102 | } 103 | } 104 | } 105 | } 106 | 107 | set edit:completion:arg-completer[bspc] = {|@cmd| 108 | if (== (count $cmd) 2) { 109 | put node desktop monitor query wm rule config subscribe quit 110 | } elif (eq $cmd[1] subscribe) { 111 | put all report monitor desktop node pointer 112 | } elif (eq $cmd[1] rule) { 113 | put --add --remove --list 114 | } elif (eq $cmd[1] wm) { 115 | put --dump-state --load-state --add-monitor --adopt-orphans --record-history --get-status 116 | } elif (eq $cmd[1] query) { 117 | put --nodes --desktops --monitors --tree 118 | } 119 | } 120 | 121 | set edit:completion:arg-completer[ntr] = {|@cmd| 122 | if (not (str:has-prefix $cmd[-1] '-')) { 123 | tmp pwd = $E:XDG_CONFIG_HOME/ntr/contexts; put ** 124 | } 125 | } 126 | 127 | set edit:completion:arg-completer[update] = {|@cmd| 128 | update | each {|x| if (str:has-prefix $x " ") { put $x[4..] } } 129 | } 130 | 131 | set edit:completion:arg-completer[xr] = {|@cmd| 132 | xpkg -m 133 | xpkg -O | peach {|x| edit:complex-candidate &display=(styled $x bg-red) $x } 134 | } 135 | 136 | set edit:completion:arg-completer[xi] = {|@cmd| 137 | tmp pwd = $E:XBPS_DISTDIR/srcpkgs; put * 138 | } 139 | 140 | var xbps-src-cmds = $nil 141 | var xbps-src-arch = $nil 142 | 143 | set edit:completion:arg-completer[xbps-src] = {|@cmd| 144 | if (not $xbps-src-cmds) { 145 | set @xbps-src-cmds = (xbps-src -h | take 129 | drop 4 | each {|x| put (re:find &max=1 '^\w+(\-\w+)*' $x)[text] }) 146 | set @xbps-src-arch = (xbps-src -h | take 162 | drop 136)[1..] 147 | } 148 | if (eq $cmd[-2] '-a') { 149 | all $xbps-src-arch 150 | } else { 151 | if (not (overlap-at $xbps-src-cmds $cmd)) { 152 | all $xbps-src-cmds 153 | } else { 154 | tmp pwd = $E:XBPS_DISTDIR/srcpkgs; put * 155 | } 156 | } 157 | } 158 | 159 | set edit:completion:arg-completer[strat] = {|@cmd| 160 | var @strata = (brl list) 161 | var has-strat = (overlap-at $strata $cmd) 162 | if (not $has-strat) { 163 | all $strata 164 | } else { 165 | edit:complete-sudo (all $cmd[$has-strat..]) 166 | } 167 | } 168 | 169 | set edit:completion:arg-completer[brl] = {|@cmd| 170 | var @brl-cmds = (brl -h | take 36 | drop 5 | each {|x| put (re:find &max=1 '^ \w+' $x)[text][2..] }) 171 | set edit:completion:arg-completer[brl] = {|@cmd| 172 | var has-command = (overlap-at $brl-cmds $cmd) 173 | if (not $has-command) { 174 | all $brl-cmds 175 | } else { 176 | var c = $cmd[$has-command] 177 | if (has-value [status enable disable hide show] $c) { 178 | brl list 179 | } elif (eq $c fetch) { 180 | brl fetch -L 181 | } elif (eq $c which) { 182 | edit:complete-sudo (all $cmd[$has-command..]) 183 | } 184 | } 185 | } 186 | $edit:completion:arg-completer[brl] $@cmd 187 | } 188 | 189 | set edit:completion:arg-completer[tam] = {|@cmd| 190 | if (at-command $cmd) { 191 | put install uninstall enable disable update list query search 192 | } else { 193 | var c = $cmd[1] 194 | if (has-value [uninstall update query] $c) { 195 | tam list -s 196 | } elif (eq $c enable) { 197 | tam list -s -d 198 | } elif (eq $c disable) { 199 | tam list -s -e 200 | } elif (eq $c list) { 201 | put '--short' '--enabled' '--disabled' 202 | } 203 | } 204 | } 205 | 206 | set edit:completion:arg-completer[handlr] = {|@cmd| 207 | if (at-command $cmd) { 208 | put get set add unset launch open list 209 | } elif (and (== (count $cmd) 3) (has-value [get set add unset launch] $cmd[-2])) { 210 | handlr autocomplete -m 211 | } elif (and (== (count $cmd) 4) (has-value [set add] $cmd[-3])) { 212 | handlr autocomplete -d | each {|x| 213 | var desktop name = (str:split "\t" $x) 214 | edit:complex-candidate $desktop &display=$desktop' '$name 215 | } 216 | } else { 217 | edit:complete-filename $@cmd 218 | } 219 | } 220 | 221 | set edit:completion:arg-completer[promotescript] = {|@cmd| 222 | tmp pwd = ~/.local/bin; f -t f 223 | } 224 | 225 | set edit:completion:arg-completer[ferium] = {|@cmd| 226 | var cmds = [add complete help list modpack profile remove upgrade] 227 | var cmd-pos = (overlap-at $cmds $cmd) 228 | if (not $cmd-pos) { 229 | if (> (count $cmd) 2) { 230 | if (eq $cmd[-2] --config-file) { 231 | edit:complete-filename $cmd[-1] 232 | } elif (has-value [--threads -t] $cmd[-2]) { 233 | range 9 234 | } else { 235 | all $cmds 236 | put --config-file --github-token --help --threads --version 237 | } 238 | } else { 239 | all $cmds 240 | put --config-file --github-token --help --threads --version 241 | } 242 | } else { 243 | var command = $cmd[$cmd-pos] 244 | if (eq $command help) { 245 | all $cmds 246 | } elif (eq $command add) { 247 | put --dont-add-dependencies --dont-check-game-version --dont-check-mod-loader 248 | } elif (eq $command list) { 249 | put --markdown --verbose 250 | } 251 | } 252 | } 253 | 254 | set edit:completion:arg-completer[vkpurge] = {|@cmd| 255 | var cmds = [list rm] 256 | var cmd-pos = (overlap-at $cmds $cmd) 257 | if (not $cmd-pos) { 258 | all $cmds 259 | } else { 260 | var command = $cmd[$cmd-pos] 261 | if (eq $command rm) { 262 | vkpurge list 263 | put all 264 | } 265 | } 266 | } 267 | 268 | set edit:completion:arg-completer[dinitctl] = {|@cmd| 269 | var cmds = [status is-started is-failed start stop restart wake release unpin unload reload list shutdown add-dep rm-dep enable disable trigger untrigger setenv catlog signal] 270 | var cmd-pos = (overlap-at $cmds $cmd) 271 | if (not $cmd-pos) { 272 | all $cmds 273 | } 274 | } 275 | 276 | set edit:completion:arg-completer[stratify] = {|@cmd| 277 | if (== 2 (count $cmd)) { brl list } 278 | } 279 | 280 | set edit:completion:arg-completer[playerctl] = {|@cmd| 281 | var cmds = [play pause play-pause stop next previous position volume status metadata open loop shuffle] 282 | var cmd-pos = (overlap-at $cmds $cmd) 283 | if (not $cmd-pos) { 284 | all $cmds 285 | } elif (eq $cmd[$cmd-pos] open) { 286 | edit:complete-filename $cmd[-1] 287 | } elif (eq $cmd[$cmd-pos] loop) { 288 | put None Track Playlist 289 | } elif (eq $cmd[$cmd-pos] shuffle) { 290 | put On Off Toggle 291 | } 292 | } 293 | 294 | set edit:completion:arg-completer[vips] = {|@cmd| 295 | var @cmds = (vips -c) 296 | var cmd-pos = (overlap-at $cmds $cmd) 297 | if (not $cmd-pos) { 298 | all $cmds 299 | } else { 300 | edit:complete-filename $cmd[-1] 301 | } 302 | } 303 | 304 | set edit:completion:arg-completer[mise] = {|@cmd| 305 | var cmds = [activate alias a backends b bin-paths cache completion config cfg deactivate direnv doctor dr env e exec x generate gen implode install i latest link ln ls list ls-remote outdated plugins p prune registry reshim run r self-update set settings shell sh sync tasks t trust uninstall remove rm unset upgrade up use u version v watch w where which help] 306 | var cmd-pos = (overlap-at $cmds $cmd) 307 | if (not $cmd-pos) { 308 | all $cmds 309 | } else { 310 | var command = $cmd[$cmd-pos] 311 | if (or (==s $command upgrade) (==s $command up)) { 312 | keys (mise ls --json | from-json) 313 | } 314 | } 315 | } 316 | set edit:completion:arg-completer[edit-script] = $edit:complete-sudo~ 317 | set edit:completion:arg-completer[whereis] = $edit:complete-sudo~ 318 | set edit:completion:arg-completer[which] = $edit:complete-sudo~ 319 | 320 | set edit:completion:arg-completer[xq] = $edit:completion:arg-completer[xi] 321 | set edit:completion:arg-completer[xqt] = $edit:completion:arg-completer[xi] 322 | set edit:completion:arg-completer[xbps-install] = $edit:completion:arg-completer[xi] 323 | 324 | var prefixes = [ 325 | &sudo=$edit:complete-sudo~ 326 | &strace=$edit:complete-sudo~ 327 | &time=$edit:complete-sudo~ 328 | &torify=$edit:complete-sudo~ 329 | ] 330 | 331 | keys $prefixes | each {|k| prefix-completer $k $prefixes[$k] } 332 | 333 | each {|c| 334 | set edit:completion:arg-completer[$c] = {|@arg| 335 | eval (carapace $c elvish | slurp) 336 | $edit:completion:arg-completer[$c] $@arg 337 | } 338 | } [git kak ffmpeg cargo mkdir dd rsync yt-dlp gitui mpv env set-env unset-env elvish nu sysctl mount umount go pip gdb bluetoothctl] 339 | -------------------------------------------------------------------------------- /elvish/lib/config.elv: -------------------------------------------------------------------------------- 1 | var conf = $E:XDG_CONFIG_HOME 2 | var dot = $E:DOTS_DIR 3 | var ntrtmp = $conf/ntr/templates 4 | 5 | fn select {|@a| 6 | e:f -L -t=f $@a | tv 7 | } 8 | 9 | fn edit {|&type='' @a| 10 | var settype = [] 11 | if (not-eq $type '') { 12 | set settype = ['-e' 'set buffer filetype '$type] 13 | } 14 | kak $@settype $@a 15 | } 16 | 17 | fn profile { edit $E:HOME/.profile } 18 | fn git { edit $conf/git/config } 19 | fn xbps-src { edit &type=sh $E:XBPS_DISTDIR/etc/conf } 20 | fn bspwm { edit &type=sh $conf/bspwm/bspwmrc } 21 | fn sxhkd { edit $conf/sxhkd/sxhkdrc; dinitctl signal USR1 sxhkd } 22 | fn polybar { edit $conf/polybar/config.ini; dinitctl signal USR1 polybar-main } 23 | fn rofi { edit &type=css $conf/rofi/config.rasi } 24 | fn dunst { edit $ntrtmp/dunst } 25 | fn elvish { tmp pwd = $conf/elvish; edit (select '.elv') } 26 | fn nim { edit $conf/nim/config.nims } 27 | fn ntr { tmp pwd = $conf/ntr; edit (select) } 28 | fn splug { edit $conf/splug/config.toml } 29 | fn kitty { tmp pwd = $conf/kitty; edit &type=ini (select) } 30 | fn kitty-colors { edit &type=ini $dot/ntr/templates/kitty-colors } 31 | fn yazi { tmp pwd = $conf/yazi; edit (select) } 32 | fn lc { edit $conf/lc/config } 33 | fn kak { edit $conf/kak/kakrc } 34 | fn pqiv { edit $conf/pqivrc } 35 | fn mpv { tmp pwd = $conf/mpv; edit (select '.conf') } 36 | fn mpwc { edit $conf/mpwc/(slurp <~/sns/mpwname).mpsites } 37 | fn ncmpcpp { edit &type=ini $conf/ncmpcpp/config } 38 | fn bedrock { edit /bedrock/etc/bedrock.conf; sudo brl apply } 39 | fn homepage { edit ~/sns/homepageData.nim; e:nim e -p:$E:HOME/sns/ $dot/firefox/homepage.nims >~/.mozilla/firefox/homepage.html } 40 | fn layout { edit $dot/layout.xkb; xkbcomp $dot/layout.xkb $E:DISPLAY } 41 | fn dinit { tmp pwd = $conf/dinit.d; edit (select) } 42 | fn hyprland { edit $conf/hypr/hyprland.conf } 43 | fn rmpc { edit $conf/rmpc/rmpc.ron } 44 | fn nushell { tmp pwd = $conf/nushell; edit (select '.nu') } 45 | -------------------------------------------------------------------------------- /elvish/lib/git.elv: -------------------------------------------------------------------------------- 1 | use str 2 | 3 | var branch = '' 4 | var dirty = 0 5 | var staged = 0 6 | var untracked = 0 7 | var ahead = 0 8 | var behind = 0 9 | 10 | fn refresh-status { 11 | set branch = '' 12 | set dirty = 0 13 | set staged = 0 14 | set untracked = 0 15 | set ahead = 0 16 | set behind = 0 17 | 18 | set _ = ?( 19 | var @data = (git --no-optional-locks status --ignore-submodules --porcelain=v2 -b 2>&-) 20 | set branch = [(str:split ' ' $data[1])][2] 21 | 22 | if (and (> (count $data) 3) (str:has-prefix $data[3] '# branch.ab')) { 23 | set ahead behind = (all [(str:split ' ' $data[3])][2..])[1..] 24 | } 25 | 26 | for i $data { 27 | if (or (str:has-prefix $i 1) (str:has-prefix $i 2)) { 28 | if (eq $i[2] '.') { 29 | set dirty = (+ $dirty 1) 30 | } else { 31 | set staged = (+ $staged 1) 32 | } 33 | } elif (str:has-prefix $i '?') { 34 | set untracked = (+ $untracked 1) 35 | } 36 | } 37 | ) 38 | } 39 | -------------------------------------------------------------------------------- /elvish/lib/semantic-prompt.elv: -------------------------------------------------------------------------------- 1 | # https://gitlab.freedesktop.org/Per_Bothner/specifications/blob/master/proposals/semantic-prompts.md 2 | 3 | fn prompt-start {|&kind=i| 4 | put "\e]133;P;k="$kind";\e\\" 5 | } 6 | 7 | fn prompt-end {|&kind=i| 8 | put "\e]133;B;k="$kind";\e\\" 9 | } 10 | 11 | fn output-start { 12 | printf "\e]133;C;\e\\" 13 | } 14 | 15 | fn output-end { 16 | printf "\e]133;A;cl=m;aid="$pid"\e\\" 17 | } 18 | -------------------------------------------------------------------------------- /elvish/lib/television.elv: -------------------------------------------------------------------------------- 1 | use store 2 | 3 | fn smart-autocomplete { 4 | var pre-prompt = $edit:current-command[..$edit:-dot] 5 | if (not (== (count $pre-prompt) 0)) { 6 | var output = (var error = ?(tv --autocomplete-prompt $pre-prompt 2>/dev/tty /dev/tty $delta 3600) { 39 | set s = (% $delta 60) 40 | set m = (/ (- (% $delta 3600) $s) 60) 41 | set h = (/ (- $delta (* $m 60) $s) 3600) 42 | } elif (> $delta 60) { 43 | set s = (% $delta 60) 44 | set m = (/ (- $delta $s) 60) 45 | } else { 46 | set s = $delta 47 | } 48 | 49 | if (> $h 0) { 50 | styled ' ⏱ '$h':'(util:pad $m 2 &with=0)':'(util:pad $s 2 &with=0) bold 51 | } elif (> $m 0) { 52 | styled ' ⏱ '$m':'(util:pad $s 2 &with=0) bold 53 | } elif (> $s 5) { 54 | styled ' ⏱ '$s bold 55 | } 56 | } 57 | 58 | fn git { 59 | git:refresh-status 60 | if (not-eq $git:branch '') { 61 | if (not-eq $git:untracked 0) { 62 | styled ' +'$git:untracked magenta 63 | } 64 | if (not-eq $git:dirty 0) { 65 | styled ' ✎ '$git:dirty red 66 | } 67 | if (not-eq $git:staged 0) { 68 | styled ' ✓'$git:staged green 69 | } 70 | if (not-eq $git:ahead 0) { 71 | styled ' ⇡'$git:ahead blue 72 | } 73 | if (not-eq $git:behind 0) { 74 | styled ' ⇣'$git:behind blue 75 | } 76 | styled ' '$git:branch cyan 77 | } 78 | } 79 | 80 | set edit:prompt = { 81 | put "\n "(sym)' ' 82 | styled (pwd)' ' cyan 83 | } 84 | 85 | set edit:rprompt = { 86 | if (not-eq $num-bg-jobs 0) { 87 | put '  '$num-bg-jobs 88 | } 89 | duration 90 | git 91 | } 92 | -------------------------------------------------------------------------------- /elvish/lib/util.elv: -------------------------------------------------------------------------------- 1 | use str 2 | use math 3 | 4 | fn abort {|&code=1 a| 5 | echo (styled $a red) >&2 6 | exit $code 7 | } 8 | 9 | fn set-title {|a| 10 | print "\e]0;"$a"\e\\" 11 | } 12 | 13 | fn path-abbr {|a &len=1| 14 | put (str:split / (dirname $a) | each {|x| 15 | var l = (count $x) 16 | if (eq 0 $l) { put '' } else { put $x[0..(math:min $len $l)] } 17 | } | str:join /)/(basename $a) 18 | } 19 | 20 | fn merge-map {|a b| 21 | keys $b | each {|k| set a[$k] = $b[$k] } 22 | put $a 23 | } 24 | 25 | fn index-of {|a b| 26 | var r = 0 27 | for val $a { 28 | if (eq $val $b) { put $r; return } 29 | set r = (+ $r 1) 30 | } 31 | num -1 32 | } 33 | 34 | fn pad {|str len &with=' ' &left=$true| 35 | var a = (to-string $str) 36 | var p = (repeat (- $len (count $a)) $with | str:join '') 37 | if $left { 38 | put $p$a 39 | } else { 40 | put $a$p 41 | } 42 | } 43 | 44 | fn replace-ext {|file ext| 45 | var dot = (str:last-index $file .) 46 | if (!= $dot -1) { 47 | put $file[0..(+ 1 $dot)]$ext 48 | } else { 49 | put $file'.'$ext 50 | } 51 | } 52 | 53 | fn add-before-readline {|@hooks| 54 | for hook $hooks { 55 | if (not (has-value $edit:before-readline $hook)) { 56 | set edit:before-readline = (conj $edit:before-readline $hook) 57 | } 58 | } 59 | } 60 | 61 | fn add-after-readline {|@hooks| 62 | for hook $hooks { 63 | if (not (has-value $edit:after-readline $hook)) { 64 | set edit:after-readline = (conj $edit:after-readline $hook) 65 | } 66 | } 67 | } 68 | 69 | fn add-after-command {|@hooks| 70 | for hook $hooks { 71 | if (not (has-value $edit:after-readline $hook)) { 72 | set edit:after-command = (conj $edit:after-command $hook) 73 | } 74 | } 75 | } 76 | 77 | fn eval-namespace {|&ns=(ns [&]) code| 78 | eval &ns=$ns &on-end=$put~ $code 79 | } 80 | 81 | fn mimes {|@files| 82 | var result = [&] 83 | each {|file| 84 | set result[$file] = [ 85 | &file=(file -bL --mime-type $file) 86 | &xdg-mime=(xdg-mime query filetype $file) 87 | &handlr=(handlr mime --json $file | from-json)[0][mime] 88 | ] 89 | } $files 90 | put $result 91 | } 92 | -------------------------------------------------------------------------------- /elvish/rc.elv: -------------------------------------------------------------------------------- 1 | set-env GPG_TTY (tty) 2 | set-env CCACHE_DIR $E:XDG_CACHE_HOME/ccache 3 | set-env NUGET_PACKAGES $E:XDG_CACHE_HOME/NuGetPackages 4 | 5 | use epm 6 | use os 7 | use doc 8 | use str 9 | use path 10 | use file 11 | 12 | use util 13 | use config 14 | use television 15 | 16 | var mise: = (util:eval-namespace (mise activate elvish | slurp)) 17 | 18 | fn xqt {|a| e $E:XBPS_DISTDIR/srcpkgs/$a/template } 19 | 20 | fn d {|@a| 21 | var f = (os:temp-file "yazi-*") 22 | if ?(yazi --cwd-file=$f[name] $@a) { cd (slurp <$f) } 23 | file:close $f 24 | os:remove $f[name] 25 | } 26 | 27 | fn edit-current-command { 28 | var temp-file = (os:temp-file "*.elv") 29 | print $edit:current-command >$temp-file 30 | try { 31 | e $temp-file[name] <$path:dev-tty >$path:dev-tty 2>&1 32 | set edit:current-command = (slurp <$temp-file | str:trim-right (one) "\n") 33 | } finally { 34 | file:close $temp-file 35 | os:remove $temp-file[name] 36 | } 37 | } 38 | 39 | fn stratify {|strata| exec strat $strata elvish } 40 | fn newdir {|name| os:mkdir-all $name; put $name } 41 | fn prev { kitty @ get-text --extent=last_non_empty_output } 42 | 43 | fn .. { cd .. } 44 | fn alias {|cmd @a| put {|@b| (external $cmd) $@a $@b } } 45 | 46 | var ls~ = (alias lc) 47 | var cat~ = (alias bat --paging=never) 48 | var xr~ = (alias sudo xbps-remove -R) 49 | var o~ = (alias gio open) 50 | var g~ = (alias kitten hyperlinked_grep) 51 | var f~ = (alias f --hyperlink=auto) 52 | 53 | set edit:insert:binding[Ctrl-X] = { edit:-instant:start } 54 | set edit:insert:binding[Ctrl-N] = { edit:navigation:start; edit:navigation:trigger-filter } 55 | set edit:insert:binding[Ctrl-T] = { television:smart-autocomplete } 56 | set edit:insert:binding[Alt-r] = { television:shell-history } 57 | set edit:insert:binding[Alt-e] = { edit-current-command } 58 | 59 | set edit:abbr = [ 60 | &'.etc'='~/.local/etc/' 61 | ] 62 | 63 | set before-chdir = (conj $before-chdir {|_| 64 | set edit:location:pinned = [$pwd (take 4 [(each {|dir| 65 | if (not (eq $pwd $dir)) { put $dir } 66 | } $edit:location:pinned )] )] 67 | }) 68 | 69 | { 70 | use theme 71 | use completers 72 | use smart-matcher 73 | use semantic-prompt semp 74 | util:add-before-readline { 75 | util:set-title (tilde-abbr $pwd) 76 | } 77 | util:add-after-readline {|a| 78 | util:set-title (str:split ' ' $a | take 1)' '(tilde-abbr $pwd) 79 | semp:output-start 80 | if (eq $a '') { ls } 81 | } 82 | util:add-after-command {|_| 83 | semp:output-end 84 | } 85 | } 86 | 87 | eval (navi widget elvish | slurp) 88 | mise:activate 89 | -override-wcwidth 🦀 2 90 | -------------------------------------------------------------------------------- /firefox/homepage.css: -------------------------------------------------------------------------------- 1 | /home/solitude/dot/ntr/templates/homepage.css -------------------------------------------------------------------------------- /firefox/homepage.nims: -------------------------------------------------------------------------------- 1 | import karax/[karaxdsl, vdom] 2 | from homepageData import links 3 | 4 | type 5 | Link = tuple[url, label: string] 6 | Category = tuple[name: string, items: seq[Link]] 7 | 8 | func homepage(categories: openArray[Category]): VNode = 9 | result = buildHtml(html(lang = "en")): 10 | head: 11 | meta(charset = "UTF-8") 12 | meta(name = "viewport", content = "width=device-width, initial-scale=1") 13 | title: 14 | text "New Tab" 15 | link(rel = "stylesheet", `type` = "text/css", href = "destyle.css") 16 | link(rel = "stylesheet", `type` = "text/css", href = "homepage.css") 17 | body: 18 | main: 19 | for (name, items) in categories: 20 | section: 21 | header: 22 | text name 23 | for (url, label) in items: 24 | tdiv(class = "item"): 25 | a(href = url): 26 | text label 27 | 28 | echo "\n", homepage(links) 29 | -------------------------------------------------------------------------------- /firefox/user.js: -------------------------------------------------------------------------------- 1 | user_pref("general.warnOnAboutConfig", false); 2 | 3 | user_pref("browser.chrome.errorReporter.enabled", false); 4 | 5 | user_pref("media.ffmpeg.vaapi.enabled", true); 6 | user_pref("layers.acceleration.force-enabled", true); 7 | user_pref("gfx.webrender.all", true); 8 | user_pref("svg.context-properties.content.enabled", true); 9 | 10 | user_pref("browser.newtabpage.activity-stream.feeds.section.highlights", false); 11 | user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); 12 | user_pref("browser.newtabpage.activity-stream.feeds.topsites", false); 13 | user_pref("browser.newtabpage.activity-stream.prerender", false); 14 | user_pref("browser.newtabpage.activity-stream.showSearch", false); 15 | 16 | user_pref("browser.safebrowsing.malware.enabled", false); 17 | user_pref("browser.safebrowsing.phishing.enabled", false); 18 | 19 | user_pref("browser.search.suggest.enabled", false); 20 | 21 | user_pref("browser.compactmode.show", true); 22 | 23 | user_pref("extensions.formautofill.addresses.enabled", false); 24 | user_pref("extensions.formautofill.creditCards.enabled", false); 25 | 26 | user_pref("widget.chrome.allow-gtk-dark-theme", true); 27 | user_pref("widget.content.allow-gtk-dark-theme", true); 28 | 29 | user_pref("extensions.pocket.enabled", false); 30 | user_pref("extensions.pocket.api", ""); 31 | user_pref("extensions.pocket.site", ""); 32 | 33 | user_pref("font.name.monospace.x-western", "Iosevka"); 34 | user_pref("font.name.sans-serif.x-western", "Inter UI"); 35 | user_pref("font.name.serif.x-western", "Inter UI"); 36 | 37 | user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true) 38 | -------------------------------------------------------------------------------- /firefox/userChrome.css: -------------------------------------------------------------------------------- 1 | /* Hide tabbar */ 2 | #TabsToolbar { 3 | display: none !important; 4 | } 5 | 6 | /* Hide sidebar header and outline */ 7 | #sidebar-box + #sidebar-splitter { 8 | display: none !important; 9 | } 10 | 11 | #sidebar-box #sidebar-header { 12 | display: none !important; 13 | } 14 | -------------------------------------------------------------------------------- /fontconfig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Times New Roman 8 | 9 | 10 | serif 11 | 12 | 13 | 14 | 15 | 16 | Arial 17 | 18 | 19 | sans-serif 20 | 21 | 22 | 23 | 24 | 25 | Helvetica 26 | 27 | 28 | sans-serif 29 | 30 | 31 | 32 | 33 | 34 | Verdana 35 | 36 | 37 | sans-serif 38 | 39 | 40 | 41 | 42 | 43 | Nimbus Sans L 44 | 45 | 46 | sans-serif 47 | 48 | 49 | 50 | 51 | 52 | Lucida 53 | 54 | 55 | sans-serif 56 | 57 | 58 | 59 | 60 | 61 | serif 62 | 63 | 64 | Liberation Serif 65 | 66 | 67 | hintslight 68 | 69 | 70 | 71 | 72 | 73 | sans-serif 74 | 75 | 76 | Liberation Sans 77 | 78 | 79 | hintslight 80 | 81 | 82 | 83 | 84 | 85 | monospace 86 | 87 | 88 | Iosevka 89 | 90 | 91 | hintslight 92 | 93 | 94 | 95 | 96 | 97 | Iosevka 98 | 99 | 100 | cv98 2 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /gitconfig.ini: -------------------------------------------------------------------------------- 1 | [init] 2 | defaultBranch = master 3 | [user] 4 | email = solitudesf@protonmail.com 5 | name = SolitudeSF 6 | signingkey = 789B06817C385387 7 | [core] 8 | pager = /bedrock/cross/bin/delta 9 | [interactive] 10 | diffFilter = /bedrock/cross/bin/delta --color-only 11 | [delta] 12 | hyperlinks = true 13 | hyperlinks-file-link-format = "file://{path}#{line}" 14 | navigate = true 15 | light = false 16 | [alias] 17 | tags = tag -l 18 | branches = branch -a 19 | diffdir = difftool --dir-diff 20 | alias = !fugitive alias 21 | changelog = !fugitive changelog 22 | lock = !fugitive lock 23 | mirror = !fugitive mirror 24 | open = !fugitive open 25 | release = !fugitive release 26 | scrap = !fugitive scrap 27 | summary = !fugitive summary 28 | undo = !fugitive undo 29 | unlock = !fugitive unlock 30 | unstage = !fugitive unstage 31 | profile = !fugitive profile 32 | get = !fugitive mirror 33 | [color] 34 | ui = auto 35 | [pull] 36 | rebase = true 37 | [commit] 38 | gpgsign = true 39 | [merge] 40 | conflictstyle = diff3 41 | [credential] 42 | helper = store 43 | [diff] 44 | colorMoved = default 45 | tool = kitty 46 | guitool = kitty.gui 47 | [difftool] 48 | prompt = false 49 | trustExitCode = true 50 | [difftool "kitty"] 51 | cmd = kitty +kitten diff $LOCAL $REMOTE 52 | [difftool "kitty.gui"] 53 | cmd = kitty kitty +kitten diff $LOCAL $REMOTE 54 | [filter "lfs"] 55 | required = true 56 | clean = git-lfs clean -- %f 57 | smudge = git-lfs smudge -- %f 58 | process = git-lfs filter-process 59 | -------------------------------------------------------------------------------- /gtk/gtkrc: -------------------------------------------------------------------------------- 1 | gtk-theme-name="vimix-dark-ruby" 2 | gtk-icon-theme-name="Paper" 3 | gtk-font-name="Sarasa UI J 10" 4 | gtk-cursor-theme-name="Paper" 5 | gtk-cursor-theme-size=0 6 | gtk-toolbar-style=GTK_TOOLBAR_ICONS 7 | gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR 8 | gtk-button-images=1 9 | gtk-menu-images=1 10 | gtk-enable-event-sounds=1 11 | gtk-enable-input-feedback-sounds=1 12 | gtk-xft-antialias=1 13 | gtk-xft-hinting=1 14 | gtk-xft-hintstyle="hintfull" 15 | gtk-xft-rgba="rgb" 16 | -------------------------------------------------------------------------------- /gtk/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=vimix-dark-ruby 3 | gtk-icon-theme-name=Paper 4 | gtk-font-name=Sarasa UI J 10 5 | gtk-cursor-theme-name=Paper 6 | gtk-cursor-theme-size=0 7 | gtk-toolbar-style=GTK_TOOLBAR_ICONS 8 | gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR 9 | gtk-button-images=1 10 | gtk-menu-images=1 11 | gtk-enable-event-sounds=1 12 | gtk-enable-input-feedback-sounds=1 13 | gtk-xft-antialias=1 14 | gtk-xft-hinting=1 15 | gtk-xft-hintstyle=hintfull 16 | gtk-xft-rgba=rgb 17 | gtk-application-prefer-dark-theme=1 18 | -------------------------------------------------------------------------------- /hypr/hypridle.conf: -------------------------------------------------------------------------------- 1 | general { 2 | before_sleep_cmd = loginctl lock-session 3 | after_sleep_cmd = hyprctl dispatch dpms on 4 | } 5 | 6 | listener { 7 | timeout = 300 # 5.5min 8 | on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed 9 | on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. 10 | } 11 | -------------------------------------------------------------------------------- /hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | $monitor1 = DP-2 2 | $monitor2 = HDMI-A-1 3 | 4 | monitor=$monitor1,preferred,0x0,1,vrr,1 5 | monitor=$monitor2,preferred,-2540x0,1 6 | monitor=,preferred,auto,auto 7 | 8 | exec-once = $XDG_CONFIG_HOME/dinit.d/scripts/wayland-ready 9 | 10 | input { 11 | kb_layout = en,ru 12 | follow_mouse = 1 13 | sensitivity = 0 14 | } 15 | 16 | general { 17 | gaps_in = 3 18 | gaps_out = 3 19 | border_size = 1 20 | col.active_border = rgba(33ccffee) 21 | col.inactive_border = rgba(595959aa) 22 | layout = dwindle 23 | allow_tearing = true 24 | } 25 | 26 | cursor { 27 | inactive_timeout = 15 28 | } 29 | 30 | misc { 31 | focus_on_activate = yes 32 | disable_autoreload = no 33 | } 34 | 35 | decoration { 36 | rounding = 0 37 | blur { 38 | enabled = no 39 | } 40 | 41 | drop_shadow = yes 42 | shadow_range = 4 43 | shadow_render_power = 3 44 | col.shadow = rgba(1a1a1aee) 45 | } 46 | 47 | animations { 48 | enabled = no 49 | } 50 | 51 | dwindle { 52 | pseudotile = no 53 | preserve_split = yes 54 | } 55 | 56 | device { 57 | name = --hator-gaming-keyboard 58 | kb_file = ~/dot/layout.xkb 59 | } 60 | 61 | workspace = 1,monitor:$monitor1,default:true 62 | workspace = 2,monitor:$monitor1 63 | workspace = 3,monitor:$monitor1 64 | workspace = 4,monitor:$monitor1 65 | workspace = 5,monitor:$monitor1 66 | workspace = 6,monitor:$monitor1 67 | workspace = 7,monitor:$monitor1 68 | workspace = 8,monitor:$monitor1 69 | workspace = 9,monitor:$monitor1 70 | workspace = 10,monitor:$monitor1 71 | workspace = 11,monitor:$monitor2,default:true 72 | workspace = 12,monitor:$monitor2 73 | workspace = 13,monitor:$monitor2 74 | workspace = 14,monitor:$monitor2 75 | workspace = 15,monitor:$monitor2 76 | workspace = 16,monitor:$monitor2 77 | workspace = 17,monitor:$monitor2 78 | workspace = 18,monitor:$monitor2 79 | workspace = 19,monitor:$monitor2 80 | workspace = 20,monitor:$monitor2 81 | 82 | $mainMod = SUPER 83 | $altMod = MOD5 84 | 85 | bind = $mainMod, Return, exec, exec strat void kitty -1 86 | bind = $mainMod Shift, e, exec, exec pcmanfm 87 | bind = $mainMod Shift, n, exec, exec strat void kitty -1 ncmpcpp 88 | bind = $mainMod Shift, v, exec, exec pavucontrol 89 | bind = $mainMod, Space, exec, exec rofi -show drun 90 | bind = $mainMod Shift, Return, exec, exec rofi -modi emoji -show emoji 91 | bind = Alt, Tab, exec, exec rofi-windowswitcher 92 | 93 | bind = $mainMod, End, submap, power 94 | submap = power 95 | bind = , s, exec, exec loginctl suspend 96 | bind = , s, submap, reset 97 | bind = , r, exec, exec loginctl reboot 98 | bind = , r, submap, reset 99 | bind = , p, exec, exec loginctl poweroff 100 | bind = , p, submap, reset 101 | bind = , b, exec, sleep 1 && exec hyprctl dispatch dpms off 102 | bind = , b, submap, reset 103 | bind = , catchall,submap,reset 104 | submap = reset 105 | 106 | bind = $mainMod, w, killactive, 107 | bind = $mainMod, s, togglefloating, 108 | bind = $mainMod, f, fullscreen, 0 109 | # bind = $mainMod, p, pseudo, # dwindle 110 | # bind = $mainMod, j, togglesplit, # dwindle 111 | 112 | bind = $mainMod, h, movefocus, l 113 | bind = $mainMod, l, movefocus, r 114 | bind = $mainMod, k, movefocus, u 115 | bind = $mainMod, j, movefocus, d 116 | 117 | bind = $mainMod, 1, workspace, 1 118 | bind = $mainMod, 2, workspace, 2 119 | bind = $mainMod, 3, workspace, 3 120 | bind = $mainMod, 4, workspace, 4 121 | bind = $mainMod, 5, workspace, 5 122 | bind = $mainMod, 6, workspace, 6 123 | bind = $mainMod, 7, workspace, 7 124 | bind = $mainMod, 8, workspace, 8 125 | bind = $mainMod, 9, workspace, 9 126 | bind = $mainMod, 0, workspace, 10 127 | bind = $altMod, 1, workspace, 11 128 | bind = $altMod, 2, workspace, 12 129 | bind = $altMod, 3, workspace, 13 130 | bind = $altMod, 4, workspace, 14 131 | bind = $altMod, 5, workspace, 15 132 | bind = $altMod, 6, workspace, 16 133 | bind = $altMod, 7, workspace, 17 134 | bind = $altMod, 8, workspace, 18 135 | bind = $altMod, 9, workspace, 19 136 | bind = $altMod, 0, workspace, 20 137 | 138 | bind = $mainMod Shift, 1, movetoworkspacesilent, 1 139 | bind = $mainMod Shift, 2, movetoworkspacesilent, 2 140 | bind = $mainMod Shift, 3, movetoworkspacesilent, 3 141 | bind = $mainMod Shift, 4, movetoworkspacesilent, 4 142 | bind = $mainMod Shift, 5, movetoworkspacesilent, 5 143 | bind = $mainMod Shift, 6, movetoworkspacesilent, 6 144 | bind = $mainMod Shift, 7, movetoworkspacesilent, 7 145 | bind = $mainMod Shift, 8, movetoworkspacesilent, 8 146 | bind = $mainMod Shift, 9, movetoworkspacesilent, 9 147 | bind = $mainMod Shift, 0, movetoworkspacesilent, 10 148 | bind = $altMod Shift, 1, movetoworkspacesilent, 11 149 | bind = $altMod Shift, 2, movetoworkspacesilent, 12 150 | bind = $altMod Shift, 3, movetoworkspacesilent, 13 151 | bind = $altMod Shift, 4, movetoworkspacesilent, 14 152 | bind = $altMod Shift, 5, movetoworkspacesilent, 15 153 | bind = $altMod Shift, 6, movetoworkspacesilent, 16 154 | bind = $altMod Shift, 7, movetoworkspacesilent, 17 155 | bind = $altMod Shift, 8, movetoworkspacesilent, 18 156 | bind = $altMod Shift, 9, movetoworkspacesilent, 19 157 | bind = $altMod Shift, 0, movetoworkspacesilent, 20 158 | 159 | # Scroll through existing workspaces with mainMod + scroll 160 | bind = $mainMod, mouse_down, workspace, e+1 161 | bind = $mainMod, mouse_up, workspace, e-1 162 | 163 | # Move/resize windows with mainMod + LMB/RMB and dragging 164 | bindm = $mainMod, mouse:272, movewindow 165 | bindm = $mainMod, mouse:273, resizewindow 166 | -------------------------------------------------------------------------------- /kak/autoload/current-word.kak: -------------------------------------------------------------------------------- 1 | # Stolen from mawww/eraserhd 2 | declare-option -hidden regex curword 3 | declare-option -hidden str curword_type 'normal' 4 | declare-option -hidden regex curword_word_class 5 | set-face global CurrentWord +b 6 | add-highlighter global/ dynregex '%opt{curword}' 0:CurrentWord 7 | 8 | define-command -override -hidden highlight-curword-normal %{ 9 | evaluate-commands -draft %{ 10 | try %{ 11 | execute-keys ,w 12 | set-option buffer curword "(?/dev/null) 6 | if [ -n "${branch}" ]; then 7 | printf "set window git_branch %%{${branch}}\nset window git_branch_str %%{${branch} }" 8 | fi 9 | } } 10 | -------------------------------------------------------------------------------- /kak/autoload/kittyutils.kak: -------------------------------------------------------------------------------- 1 | provide-module kittyutils %{ 2 | 3 | require-module kitty 4 | 5 | define-command kitty-terminal-overlay -params 1.. -docstring ' 6 | kitty-terminal []: create a new terminal as a kitty overlay window 7 | The program passed as argument will be executed in the new terminal' \ 8 | %{ 9 | nop %sh{ 10 | match="" 11 | if [ -n "$kak_client_env_KITTY_WINDOW_ID" ]; then 12 | match="--match=id:$kak_client_env_KITTY_WINDOW_ID" 13 | fi 14 | listen="" 15 | if [ -n "$kak_client_env_KITTY_LISTEN_ON" ]; then 16 | listen="--to=$kak_client_env_KITTY_LISTEN_ON" 17 | fi 18 | kitty @ $listen launch --no-response --type=overlay --cwd="$PWD" $match "$@" 19 | } 20 | } 21 | complete-command kitty-terminal-overlay shell 22 | 23 | } 24 | -------------------------------------------------------------------------------- /kak/kakrc: -------------------------------------------------------------------------------- 1 | # External plugins 2 | 3 | eval %sh{ 4 | kak-tree-sitter -dks -vvvvv --init $kak_session 5 | colorcol 6 | } 7 | 8 | eval %sh{kak-lsp} 9 | 10 | # Initialization 11 | 12 | colorscheme ntr 13 | 14 | require-module grep 15 | require-module search-highlighter 16 | require-module word-select 17 | require-module replace-mode 18 | require-module fandt 19 | require-module kakpipe 20 | require-module kittyutils 21 | require-module encapsul8-load-defaults 22 | 23 | set global ui_options terminal_assistant=none 24 | set global scrolloff 7,7 25 | set global autoreload yes 26 | set global grepcmd 'rg -iHL --column --vimgrep' 27 | set global modelinefmt '%opt{git_branch_str}%val{bufname} 28 | %val{cursor_line}:%val{cursor_char_column} {{mode_info}} 29 | {{context_info}}{MenuForeground}%val{client}⊙%val{session}' 30 | set global disabled_hooks '.+-insert' 31 | set global path '%/' ./ 32 | 33 | alias global sw sudo-write 34 | alias global cdb change-directory-current-buffer 35 | alias global f find 36 | alias global g grep 37 | 38 | face global LineNumbersWrapped black 39 | face global WhitespaceIndent bright-black,default+d 40 | 41 | # Keybinds 42 | 43 | map global normal -docstring 'remove all sels except main' , 44 | map global normal -docstring 'remove main sel' 45 | map global normal -docstring 'comment line' '#' ': comment-line' 46 | map global normal -docstring 'comment block' '' ': comment-block' 47 | map global normal -docstring 'delete to end of line' D d 48 | map global normal -docstring 'yank to end of line' Y 49 | map global normal -docstring 'replay macro' , q 50 | map global normal -docstring 'record macro' Q 51 | map global normal X ': select-or-extend-lines' 52 | 53 | map global normal w ': word-select-next-word' 54 | map global normal ': word-select-next-big-word' 55 | map global normal q ': word-select-previous-word' 56 | map global normal ': word-select-previous-big-word' 57 | map global normal Q B 58 | map global normal 59 | 60 | map global user -docstring 'replace mode' ': enter-replace-mode' 61 | map global user -docstring 'change directory' ': enter-user-mode cd' 62 | 63 | map global user -docstring 'expand selection' e ': expand' 64 | map global user -docstring 'expand repeat' E ': expand-repeat' 65 | 66 | map global normal -docstring 'buffers…' b ': enter-buffers-mode' 67 | map global normal -docstring 'buffers (lock)…' ': enter-user-mode -lock buffers' 68 | map global normal -docstring 'buffer switcher' B ': buffer-switcher' 69 | 70 | declare-user-mode anchor 71 | map global normal ';' ': enter-user-mode anchor' 72 | map global anchor -docstring 'ensure anchor after cursor' h '' 73 | map global anchor -docstring 'ensure cursor after anchor' l '' 74 | map global anchor -docstring 'flip cursor and anchor' f '' 75 | map global anchor -docstring 'reduce to anchor' a ';' 76 | map global anchor -docstring 'reduce to cursor' c ';' 77 | map global anchor -docstring 'select cursor and anchor' s '' 78 | 79 | map global user -docstring 'clip-paste after' p 'kitten clipboard -g' 80 | map global user -docstring 'clip-paste before' P '!kitten clipboard -g' 81 | map global user -docstring 'clip-paste replace' R '|kitten clipboard -g' 82 | map global user -docstring 'clip-yank' y 'kitten clipboard' 83 | map global user -docstring 'clip-cut' d 'kitten clipboard' 84 | map global user -docstring 'clip-cut -> insert mode' c 'kitten clipboard' 85 | 86 | map global normal -docstring 'Enter tree-sitter mode' ': enter-user-mode tree-sitter' 87 | 88 | # Functions 89 | 90 | def type -params 1 -docstring 'Set buffer filetype' %{ 91 | set window filetype %arg{1} 92 | } 93 | 94 | def lint-engage -docstring 'Enable linting' %{ 95 | map window user -docstring "next error" l ': lint-next-message' 96 | map window user -docstring "previous error" L ': lint-previous-message' 97 | } 98 | 99 | def lsp-engage -docstring 'Enable language server' %{ 100 | lsp-enable-window 101 | lsp-auto-hover-enable 102 | map window user -docstring 'Enter lsp user mode' l ': enter-user-mode lsp' 103 | } 104 | 105 | def lsp-semantic-highlighting -docstring 'Enable semantic highlighting' %{ 106 | hook window -group semantic-tokens BufReload .* lsp-semantic-tokens 107 | hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens 108 | hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens 109 | hook -once -always window WinSetOption filetype=.* %{ 110 | remove-hooks window semantic-tokens 111 | } 112 | } 113 | 114 | def lint-on-write -docstring 'Activate linting on buffer write' %{ 115 | lint-engage 116 | hook window BufWritePost .* lint 117 | } 118 | 119 | def set-indent -params 1 -docstring 'Set indentation width' %{ 120 | set window indentwidth %arg{1} 121 | set window tabstop %arg{1} 122 | set window softtabstop %arg{1} 123 | } 124 | 125 | def no-tabs -params 1 -docstring 'Indent with spaces' %{ 126 | expandtab 127 | set-indent %arg{1} 128 | hook window InsertKey %{ try %{ 129 | exec -draft h^\h+ 130 | exec -with-hooks 131 | }} 132 | } 133 | 134 | def clean-trailing-whitespace -docstring 'Remove trailing whitespace' %{ 135 | try %{ exec -draft '%s\h+$d' } 136 | } 137 | 138 | def -hidden -docstring \ 139 | 'select a word under cursor, or add cursor on next occurrence of current selection' \ 140 | select-or-add-cursor %{ 141 | try %{ 142 | exec "\A.\z" 143 | exec -save-regs '' "_w*" 144 | } catch %{ 145 | exec -save-regs '' "_*" 146 | } catch nop 147 | } 148 | 149 | define-command select-or-extend-lines %{ 150 | execute-keys '' 151 | try %{ 152 | # At least one selection is not full, so select whole lines. 153 | execute-keys -draft '\A^.*\n\z' 154 | execute-keys 'x' 155 | } catch %{ 156 | execute-keys 'Jx' 157 | } 158 | } 159 | 160 | # Hooks 161 | 162 | hook global WinCreate '\*stdin(?:-\d+)?\*' %{ 163 | set-option window filetype scrollback 164 | } 165 | 166 | hook global WinCreate '.*man\.XXXX\w{6}' %{ 167 | ansi-render 168 | write 169 | } 170 | 171 | hook global WinSetOption filetype=(?!scrollback).* %{ 172 | try %{ 173 | addhl window/number-lines number-lines -hlcursor -separator ' ' 174 | addhl window/ruler column 100 default,rgb:303030 175 | addhl window/trailing-whitespace regex '\h+$' 0:default,red 176 | addhl window/todo regex \b(TODO|FIXME|XXX|NOTE)\b 0:default+rb 177 | addhl window/matching-brackets show-matching -previous 178 | addhl window/wrap wrap -word -indent -marker '' 179 | addhl window/indent show-whitespaces -indent '🭰' -spc ' ' -nbspc ' ' -lf ' ' -tab ' ' -tabpad ' ' 180 | 181 | smarttab 182 | readline-enable 183 | colorcol-enable 184 | colorcol-refresh-continuous 185 | indentguide-enable 186 | indentguide-refresh-continuous 187 | mark-show-enable 188 | 189 | hook window NormalIdle .* refresh-git-branch 190 | } 191 | } 192 | 193 | hook global KakBegin .* %{ 194 | state-save-reg-load colon 195 | state-save-reg-load pipe 196 | state-save-reg-load slash 197 | } 198 | 199 | hook global KakEnd .* %{ 200 | state-save-reg-save colon 201 | state-save-reg-save pipe 202 | state-save-reg-save slash 203 | } 204 | 205 | hook global WinDisplay .* info-buffers 206 | 207 | hook global BufWritePre .* %{ nop %sh{ 208 | mkdir -p "$(dirname "$kak_buffile")" 209 | }} 210 | 211 | eval %sh{ git rev-parse --is-inside-work-tree 2>/dev/null 1>/dev/null && printf %s " 212 | hook global BufWritePost .* %{ diff-git } 213 | hook global BufReload .* %{ diff-git } 214 | "} 215 | 216 | hook global ModuleLoaded kitty %{ 217 | set global kitty_window_type os-window 218 | } 219 | 220 | # Filetype detection 221 | 222 | hook global BufCreate .*srcpkgs/.+/template$ %{ 223 | set window filetype sh 224 | def xgensum %{ %sh{ xgensum -i "$kak_buffile" } } 225 | } 226 | 227 | hook global BufCreate .*/\.?((sx|xinit)(rc)?|profile) %{ set buffer filetype sh } 228 | hook global BufCreate .*\.ino %{ set buffer filetype cpp } 229 | hook global BufCreate .*\.cs %{ addhl buffer/java ref java } 230 | hook global BufCreate .*\.rasi %{ set buffer filetype css } 231 | hook global BufCreate .*\.nu %{ set buffer filetype nu } 232 | hook global BufCreate .*\.sccprofile %{ set buffer filetype json } 233 | hook global BufCreate .*hyprland\.conf %{ set buffer filetype hyprlang } 234 | 235 | # Filetype settings 236 | 237 | hook global WinSetOption filetype=kak %{ 238 | no-tabs 2 239 | } 240 | 241 | hook global WinSetOption filetype=sh %{ 242 | set window lintcmd 'shellcheck --norc -x -f gcc' 243 | lint-on-write 244 | set window lsp_servers %{ 245 | [bash-language-server] 246 | args = ["start"] 247 | } 248 | lsp-engage 249 | } 250 | 251 | hook global WinSetOption filetype=elvish %{ 252 | no-tabs 2 253 | set window lsp_servers %{ 254 | [elvish] 255 | args = ["-lsp"] 256 | } 257 | lsp-engage 258 | } 259 | 260 | hook global WinSetOption filetype=go %{ 261 | set window lsp_servers %{ 262 | [gopls] 263 | roots = ["Gopkg.toml", "go.mod", ".git"] 264 | } 265 | lsp-engage 266 | } 267 | 268 | hook global WinSetOption filetype=(c|cpp) %{ 269 | set window formatcmd clang-format 270 | set window lsp_servers %{ 271 | [clangd] 272 | roots = ["compile_commands.json", ".clangd", ".git"] 273 | args = ["--suggest-missing-include"] 274 | } 275 | lsp-engage 276 | } 277 | 278 | hook global WinSetOption filetype=rust %{ 279 | hook window -group rust-inlay-hints BufReload .* rust-analyzer-inlay-hints 280 | hook window -group rust-inlay-hints NormalIdle .* rust-analyzer-inlay-hints 281 | hook window -group rust-inlay-hints InsertIdle .* rust-analyzer-inlay-hints 282 | hook -once -always window WinSetOption filetype=.* %{ 283 | remove-hooks window rust-inlay-hints 284 | } 285 | set window lsp_servers %{ 286 | [rust-analyzer] 287 | roots = ["Cargo.toml"] 288 | } 289 | lsp-engage 290 | } 291 | 292 | hook global WinSetOption filetype=markdown %{ 293 | set window formatcmd 'prettier --parser markdown' 294 | lsp-engage 295 | } 296 | 297 | hook global WinSetOption filetype=python %{ 298 | set window lsp_servers %{ 299 | [pyls] 300 | roots = ["requirements.txt", "setup.py", ".git"] 301 | } 302 | lsp-engage 303 | } 304 | 305 | hook global WinSetOption filetype=nim %{ 306 | set window formatcmd 'nimprettify' 307 | no-tabs 2 308 | set window lsp_servers %{ 309 | [nimlangserver] 310 | root_globs = ["*.nimble", ".git"] 311 | } 312 | lsp-engage 313 | } 314 | 315 | hook global WinSetOption filetype=toml %{ 316 | set window formatcmd 'taplo fmt -' 317 | set window lsp_servers %{ 318 | [taplo] 319 | root = ".git" 320 | args = ["server"] 321 | } 322 | lsp-engage 323 | } 324 | 325 | hook global WinSetOption filetype=json %{ 326 | set window formatcmd 'biome format --stdin-file-path=t.json --json-formatter-indent-style=space --json-formatter-line-width=120' 327 | lsp-engage 328 | } 329 | 330 | hook global WinSetOption filetype=lua %{ 331 | lsp-engage 332 | } 333 | 334 | hook global WinSetOption filetype=nu %{ 335 | no-tabs 2 336 | set window lsp_servers %{ 337 | [nu] 338 | args = ["--lsp"] 339 | } 340 | lsp-engage 341 | } 342 | 343 | hook global WinSetOption filetype=hyprlang %{ 344 | set window lsp_servers %{ 345 | [hyprls] 346 | roots = [".git"] 347 | } 348 | lsp-engage 349 | } 350 | -------------------------------------------------------------------------------- /kitty/colors-diff.conf: -------------------------------------------------------------------------------- 1 | ../ntr/templates/kitty-colors-diff -------------------------------------------------------------------------------- /kitty/colors.conf: -------------------------------------------------------------------------------- 1 | ../ntr/templates/kitty-colors -------------------------------------------------------------------------------- /kitty/diff.conf: -------------------------------------------------------------------------------- 1 | include colors-diff.conf 2 | 3 | syntax_aliases pyj:py recipe:py 4 | pygments_style default 5 | num_context_lines 3 6 | diff_cmd auto 7 | replace_tab_by \x20\x20\x20\x20 8 | 9 | map q quit 10 | map esc quit 11 | map j scroll_by 1 12 | map k scroll_by -1 13 | map down scroll_by 1 14 | map up scroll_by -1 15 | map home scroll_to start 16 | map end scroll_to end 17 | map page_down scroll_to next-page 18 | map page_up scroll_to prev-page 19 | map space scroll_to next-page 20 | map n scroll_to next-change 21 | map p scroll_to prev-change 22 | map a change_context all 23 | map = change_context default 24 | map + change_context 5 25 | map - change_context -5 26 | map / start_search regex forward 27 | map ? start_search regex backward 28 | map . scroll_to next-match 29 | map , scroll_to prev-match 30 | map > scroll_to next-match 31 | map < scroll_to prev-match 32 | map f start_search substring forward 33 | map b start_search substring backward 34 | -------------------------------------------------------------------------------- /kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | include colors.conf 2 | 3 | font_family Iosevka Term 4 | italic_font Iosevka Term Italic 5 | bold_font Iosevka Term Bold 6 | bold_italic_font Iosevka Term Bold Italic 7 | font_size 14.0 8 | font_features Iosevka-Term +VSAA=2 9 | font_features Iosevka-Term-Italic +VSAA=2 10 | font_features Iosevka-Term-Bold +VSAA=2 11 | font_features Iosevka-Term-Bold-Italic +VSAA=2 12 | 13 | # modify_font cell_height -1 14 | box_drawing_scale 0.001, 1, 1.5, 2 15 | undercurl_style thin-sparse 16 | text_composition_strategy platform 17 | 18 | cursor_blink_interval 0.5 19 | cursor_stop_blinking_after 15.0 20 | 21 | scrollback_lines 1000 22 | scrollback_pager_history_size 10 23 | scrollback_pager kak -e "exec CURSOR_LINEg" 24 | 25 | wheel_scroll_multiplier 5.0 26 | click_interval 0.5 27 | 28 | strip_trailing_spaces always 29 | select_by_word_characters :@-./_~?&=%+# 30 | 31 | shell_integration enabled no-rc 32 | notify_on_cmd_finish invisible 33 | shell elvish 34 | editor kak 35 | 36 | mouse_hide_wait 0 37 | focus_follows_mouse yes 38 | 39 | enabled_layouts * 40 | 41 | # 'c' suffix for cells instead of pixels 42 | remember_window_size no 43 | initial_window_width 640 44 | initial_window_height 400 45 | hide_window_decorations no 46 | 47 | repaint_delay 10 48 | input_delay 3 49 | sync_to_monitor yes 50 | 51 | visual_bell_duration 0.0 52 | enable_audio_bell yes 53 | window_alert_on_bell yes 54 | bell_on_tab yes 55 | 56 | open_url_with default 57 | 58 | close_on_child_death no 59 | confirm_os_window_close 0 60 | show_hyperlink_targets no 61 | copy_on_select no 62 | allow_remote_control yes 63 | listen_on unix:/tmp/kitty 64 | startup_session none 65 | clipboard_control write-clipboard write-primary read-clipboard read-primary 66 | allow_hyperlinks yes 67 | term xterm-kitty 68 | 69 | env PAGER=kak 70 | env MANPAGER=kak 71 | env LESSHISTFILE=- 72 | 73 | window_border_width 1 74 | window_margin_width 0 75 | window_padding_width 0 76 | 77 | inactive_text_alpha 1.0 78 | 79 | resize_debounce_time 0.1 80 | resize_in_steps no 81 | 82 | tab_bar_edge bottom 83 | tab_bar_margin_width 0 84 | # fade | separator 85 | tab_bar_style separator 86 | tab_bar_min_tabs 2 87 | tab_switch_strategy previous 88 | tab_fade 0.15 0.3 0.45 0.8 89 | tab_separator " ┇" 90 | tab_title_template {title} 91 | 92 | active_tab_font_style bold-italic 93 | inactive_tab_font_style normal 94 | 95 | url_style double 96 | 97 | background_opacity 0.9 98 | dynamic_background_opacity no 99 | dim_opacity 0.4 100 | 101 | cursor_shape beam 102 | cursor_shape_unfocused hollow 103 | cursor_blink_interval -1 104 | 105 | # Key mapping 106 | # http://www.glfw.org/docs/latest/group__keys.html 107 | # http://www.glfw.org/docs/latest/group__mods.html 108 | # The name to use is the part after the `GLFW_KEY_` prefix. 109 | # 110 | # https://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon-keysyms.h 111 | # The name to use is the part after the `XKB_KEY_` prefix 112 | 113 | # + - chord 114 | # > - sequence 115 | # no_op - unbind 116 | # map key combine action1 action2 action3 ... 117 | kitty_mod ctrl+shift 118 | 119 | map kitty_mod+delete clear_terminal reset active 120 | map kitty_mod+f9 clear_terminal reset active 121 | map kitty_mod+f10 clear_terminal clear active 122 | map kitty_mod+f11 clear_terminal scrollback active 123 | 124 | # Clipboard 125 | map kitty_mod+c copy_to_clipboard 126 | map kitty_mod+v paste_from_clipboard 127 | map shift+insert paste_from_selection 128 | # You can also pass the contents of the current selection to any program using 129 | # pass_selection_to_program. By default, the system's open program is used, but 130 | # you can specify your own, for example: 131 | # map kitty_mod+o pass_selection_to_program firefox 132 | 133 | # Scrolling 134 | map kitty_mod+up scroll_line_up 135 | map kitty_mod+down scroll_line_down 136 | map kitty_mod+k scroll_line_up 137 | map kitty_mod+j scroll_line_down 138 | map kitty_mod+page_up scroll_page_up 139 | map kitty_mod+page_down scroll_page_down 140 | map kitty_mod+home scroll_home 141 | map kitty_mod+end scroll_end 142 | map kitty_mod+h show_scrollback 143 | 144 | map kitty_mod+z scroll_to_prompt -1 145 | map kitty_mod+x scroll_to_prompt 1 146 | 147 | # Window management 148 | map kitty_mod+enter new_window 149 | map kitty_mod+w close_window 150 | map kitty_mod+] next_window 151 | map kitty_mod+[ previous_window 152 | map kitty_mod+f move_window_forward 153 | map kitty_mod+b move_window_backward 154 | map kitty_mod+` move_window_to_top 155 | map kitty_mod+1 first_window 156 | map kitty_mod+2 second_window 157 | map kitty_mod+3 third_window 158 | map kitty_mod+4 fourth_window 159 | map kitty_mod+5 fifth_window 160 | map kitty_mod+6 sixth_window 161 | map kitty_mod+7 seventh_window 162 | map kitty_mod+8 eighth_window 163 | map kitty_mod+9 ninth_window 164 | map kitty_mod+0 tenth_window 165 | 166 | # Tab management 167 | map kitty_mod+right next_tab 168 | map kitty_mod+left previous_tab 169 | map kitty_mod+t new_tab 170 | map kitty_mod+q close_tab 171 | map kitty_mod+alt+l next_layout 172 | map kitty_mod+. move_tab_forward 173 | map kitty_mod+, move_tab_backward 174 | # You can also create shortcuts to go to specific tabs, with 1 being the first tab 175 | # map ctrl+alt+1 goto_tab 1 176 | # map ctrl+alt+2 goto_tab 2 177 | 178 | # Layout management 179 | # You can create shortcuts to switch to specific layouts 180 | # map ctrl+alt+1 goto_layout tall 181 | # map ctrl+alt+2 goto_layout stack 182 | 183 | # Font sizes 184 | # all | current 185 | map kitty_mod+equal change_font_size all +2.0 186 | map kitty_mod+minus change_font_size all -2.0 187 | map kitty_mod+backspace change_font_size all 0 188 | map kitty_mod+alt+equal change_font_size current +2.0 189 | map kitty_mod+alt+minus change_font_size current -2.0 190 | map kitty_mod+alt+backspace change_font_size current 0 191 | 192 | # Kittens 193 | # Open a currently visible URL using the keyboard. The program used to open the 194 | # URL is specified in open_url_with. 195 | map kitty_mod+e kitten hints 196 | # Select a path/filename and insert it into the terminal. 197 | map kitty_mod+p>f kitten hints --type=path --program=- 198 | # Select a path/filename and open it with the default open program. 199 | map kitty_mod+p>shift+f kitten hints --type=path 200 | # Select a line of text and insert it into the terminal. 201 | map kitty_mod+p>l kitten hints --type=line --program=- 202 | # Select words and insert into terminal. 203 | map kitty_mod+p>w kitten hints --type=word --program=- 204 | # Open selected file at the selected line 205 | map kitty_mod+p>n kitten hints --type=linenum --linenum-action=tab kak -e 'exec {line}g' {path} 206 | 207 | map f1 create_marker 208 | map shift+f1 remove_marker 209 | map kitty_mod+n scroll_to_mark next 210 | 211 | map kitty_mod+u input_unicode_character 212 | 213 | # Open the kitty shell in a new window/tab/overlay/os_window to control kitty using commands. 214 | map kitty_mod+escape kitty_shell overlay 215 | map kitty_mod+a>m set_background_opacity +0.1 216 | map kitty_mod+a>l set_background_opacity -0.1 217 | map kitty_mod+a>1 set_background_opacity 1 218 | map kitty_mod+a>d set_background_opacity default 219 | 220 | # Launching and data passing 221 | # --title, --tab-title 222 | # --type background/clipboard/os-window/overlay/primary/tab/window 223 | # --keep-focus 224 | # --cwd path/current 225 | # --env key=value 226 | # --copy-colors, --copy-cmdline, --copy-env 227 | # --location first, last, neighbor 228 | # --allow-remote-control 229 | # --stdin-source @alternate/@alternate_scrollback/@screen/@screen_scrollback/@selection/none 230 | # --stdin-add-formatting, --stdin-add-line-wrap-markers 231 | # KITTY_PIPE_DATA={scrolled_by}:{cursor_x},{cursor_y}:{lines},{columns} 232 | map ctrl+alt+enter launch --type=os-window --cwd=current 233 | map kitty_mod+f1 launch --type=overlay --stdin-source=@alternate_scrollback --stdin-add-formatting kak 234 | map kitty_mod+g launch --type=overlay --cwd=current gitui 235 | map kitty_mod+l launch --type=overlay --stdin-source=@last_cmd_output --stdin-add-formatting kak 236 | map kitty_mod+alt+l launch --type=overlay --stdin-source=@first_cmd_output_on_screen --stdin-add-formatting kak 237 | 238 | mouse_map kitty_mod+left release grabbed,ungrabbed mouse_click_url 239 | mouse_map right press ungrabbed mouse_select_command_output 240 | 241 | # Sending arbitrary text on shortcut key presses 242 | # You can tell kitty to send arbitrary (UTF-8) encoded text to 243 | # the client program when pressing specified shortcut keys. For example: 244 | # map ctrl+alt+a send_text all Special text 245 | # This will send "Special text" when you press the Ctrl+Alt+a key combination. 246 | # The text to be sent is a python string literal so you can use escapes like 247 | # \x1b to send control codes or \u21fb to send unicode characters (or you can 248 | # just input the unicode characters directly as UTF-8 text). The first argument 249 | # to send_text is the keyboard modes in which to activate the shortcut. The possible 250 | # values are normal or application or kitty or a comma separated combination of them. 251 | # The special keyword all means all modes. The modes normal and application refer to 252 | # the DECCKM cursor key mode for terminals, and kitty refers to the special kitty 253 | # extended keyboard protocol. Another example, that outputs a word and then moves the cursor 254 | # to the start of the line (same as pressing the Home key): 255 | # map ctrl+alt+a send_text normal Word\x1b[H 256 | # map ctrl+alt+a send_text application Word\x1bOH 257 | 258 | symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A2,U+E0A3,U+E0B0-U+E0B3,U+E0B4-U+E0C8,U+E0CA,U+E0CC-U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E6B1,U+E600-U+E6C5,U+EA60-U+EBEB,U+F000-U+F2E0,U+F300-U+F372,U+F400-U+F532,U+F0001-U+F1AF0 Symbols Nerd Font Mono 259 | -------------------------------------------------------------------------------- /kitty/open-actions.conf: -------------------------------------------------------------------------------- 1 | protocol file 2 | fragment_matches [0-9]+ 3 | action launch --type=tab --cwd=current kak -e "exec ${FRAGMENT}g" ${FILE_PATH} 4 | 5 | protocol file 6 | mime text/* 7 | action launch --type=tab --cwd=current ${EDITOR} ${FILE_PATH} 8 | 9 | protocol file 10 | mime application/javascript 11 | action launch --type=tab --cwd=current ${EDITOR} ${FILE_PATH} 12 | 13 | protocol file 14 | mime application/x-ndjson 15 | action launch --type=tab --cwd=current ${EDITOR} ${FILE_PATH} 16 | 17 | protocol file 18 | mime application/json 19 | action launch --type=tab jless ${FILE_PATH} 20 | 21 | protocol file 22 | action launch --type=background --cwd=current xdg-open ${FILE_PATH} 23 | -------------------------------------------------------------------------------- /lc.ini: -------------------------------------------------------------------------------- 1 | kind = "object SFX .o .a .la .so .pyc .pyo .dvi .elc .obj" 2 | kind = "script SFX .pl .awk .elv .sh .csh .gpi Makefile .log .nims .R .js .scm .lsp .cfg .cf .conf" 3 | kind = "compress SFX .z .gz .bz .bz2 .lz .Lz .xz 4z .zs .zst" 4 | kind = "tarchive SFX .tar .tgz .tbz .tbz2 .tlz .txz .tLz .tzs" 5 | kind = "archive SFX .zip .rar .deb .rpm" 6 | kind = "pointer SFX .torrent .uri .url .urls" 7 | kind = "backup SFX .swp .vim .bak .orig ~" 8 | kind = "header sfx .h .hh .pxi .pxd .diff .patch" 9 | kind = "source sfx .s .c .cc .cpp .d .i .java .f .f95 .m .nb .py .pyx .nim .vim .el .tex .fig .jl" 10 | kind = "document sfx .txt .doc .html .htm .ps .eps .pdf .prn .mif .fm .md .rst" 11 | kind = "image sfx .img .bmp .jpg .gif .jpeg .png .ppm" 12 | kind = "audio sfx .opus .au .mp3 .wav .ogg .m4a" 13 | kind = "video sfx .mpg .mpeg .mp4 .avi .flv .ogm .mkv .m4v .mts .m2ts .wmv .mov .swf .asf .rm .webm" 14 | kind = "dot PFX ." 15 | kind = "onOutErr PFX o. e." 16 | kind = "core PFX core" 17 | 18 | colors = "fhue- = BLACK" 19 | colors = "fhue0 = PURPLE" 20 | colors = "fhue1 = BLUE" 21 | colors = "fhue2 = CYAN" 22 | colors = "fhue3 = GREEN" 23 | colors = "fhue4 = YELLOW" 24 | colors = "fhue5 = RED" 25 | colors = "fhue+ = WHITE" 26 | 27 | colors = "FHUE- = black" 28 | colors = "FHUE0 = purple" 29 | colors = "FHUE1 = blue" 30 | colors = "FHUE2 = cyan" 31 | colors = "FHUE3 = green" 32 | colors = "FHUE4 = yellow" 33 | colors = "FHUE5 = red" 34 | colors = "FHUE+ = white" 35 | 36 | colors = "bhue- = on_BLACK" 37 | colors = "bhue0 = on_PURPLE" 38 | colors = "bhue1 = on_BLUE" 39 | colors = "bhue2 = on_CYAN" 40 | colors = "bhue3 = on_GREEN" 41 | colors = "bhue4 = on_YELLOW" 42 | colors = "bhue5 = on_RED" 43 | colors = "bhue+ = on_WHITE" 44 | 45 | colors = "BHUE- = on_black" 46 | colors = "BHUE0 = on_purple" 47 | colors = "BHUE1 = on_blue" 48 | colors = "BHUE2 = on_cyan" 49 | colors = "BHUE3 = on_green" 50 | colors = "BHUE4 = on_yellow" 51 | colors = "BHUE5 = on_red" 52 | colors = "BHUE+ = on_white" 53 | 54 | color="dot:0x04:1 NONE" 55 | color="onOutErr:0xF0:0 fhue-" 56 | color="compress:0x3D:0 fhue1" 57 | color="tarchive:0x3E:0 fhue1" 58 | color="archive:0x3F:0 fhue1" 59 | color="audio:0x70:0 fhue0" 60 | color="image:0x71:0 fhue0" 61 | color="video:0x72:0 fhue0" 62 | color="script:0x40:0 fhue4" 63 | color="pointer:0x50:0:ɷ FHUE0" 64 | color="header:0x58:0 fhue2" 65 | color="source:0x60:0 fhue3" 66 | color="object:0x68:0 fhue5" 67 | color="core:0x68:0 fhue5" 68 | color="backup:0x80:0 FHUE4" 69 | color="document:0x24:0 fhue+" 70 | color="backup:0x80:0 FHUE4" 71 | color="document:0x24:0 FHUE+" 72 | 73 | color="symlink:0x10:1 italic" 74 | color="dir:0x20:0 BLUE bold" 75 | color="reg:0x65:1 NONE" 76 | color="cdev:0x30:0 YELLOW on_purple" 77 | color="bdev:0x40:1 CYAN on_purple" 78 | color="fifo:0x50:1 BLUE on_purple" 79 | color="socket:0x60:1 WHITE on_purple" 80 | 81 | color="-sym:0x10:2 blink" #early since no stat data to use 82 | #color="CAP:0x10:2 blink" 83 | #color="ACL:0x10:2 blink" 84 | color="hard:0x80:2 underline" #maybe inverse or struck? 85 | 86 | color="odd:0x30:3 on_RED" #early since combines many things 87 | color="+sym:0x18:3 italic" 88 | color="tmpD:0x20:3 YELLOW" #clobber FG only->yellow on_blue 89 | color="suid:0x50:3 on_CYAN" #pastel backgrounds for sXid 90 | color="sgid:0x60:3 on_green" 91 | color="worldW:0x40:4 on_RED" #world writable higherD 2clobber 92 | 93 | #struck can sometimes be hard to read text; hence hard to read dirents get it: 94 | color="unR:0xF8:5 struck" #unreadable or isDir & no-exec 95 | 96 | color="exec:0x70:6:¶ bold" 97 | 98 | color="unknown:0x22:0 NONE" #Added if missing;Here to set ord 99 | 100 | color = "sizeB fhue1" #Value-conditional fields besides paths 101 | color = "sizeK fhue2" 102 | color = "sizeM fhue3" 103 | color = "sizeG fhue4" 104 | color = "sizeT fhue5 inverse" #TB-scl individual files are likely a problem 105 | color = "sizeS italic" #Additive text attr for sparse files (u<75%) 106 | #Color all 4 octal digs as how only one affects invoking process (dep on owners) 107 | color = "perm0 WHITE on_purple" #000: --- #Not so rare, but very restrictive 108 | color = "perm1 fhue1" #001: --x #rare, but happens w/eg. suid 109 | color = "perm2 CYAN on_red" #010: -w- #unlikely to be correct 110 | color = "perm3 GREEN on_red" #011: -wx #unlikely to be correct 111 | color = "perm4 fhue2" #100: r-- #RO: pretty normal. 112 | color = "perm5 fhue3" #101: r-x #color like 'exec' is colored. 113 | color = "perm6 fhue4" #110: rw- #RW: even more normal 114 | color = "perm7 fhue5" #111: rwx #Only so many yellows..Orange? 115 | 116 | # TIME STYLES (6 char fmts w/(hue|heat)map color scheme for variable radix). 117 | # Syntax: [tag]SecondsOld@highlightableStrftimeFormat (augmented with %) 118 | # OR [tag]SecondsOld@/divisor[/digits] [<]unitString attributes 119 | # where tag=='+' => alt/caps Fmt (%A%M etc); tag=='-' => plain format 120 | 121 | ageFmt = "86400@%{fhue0}y%{fhue1}m%{fhue2}d" # older files lower res in cool 122 | ageFmt = "0@%{fhue3}H%{fhue4}M%{fhue5}S" # <1 day old files higher res fhue 123 | #ageFmt = "3600@%{fhue3}H%{fhue4}M%{fhue5}S" # <1 day old files higher res fhue 124 | #ageFmt = "0@%{fhue4}M%{fhue5}S.%{PURPLE}1" # <1 hr old files v.high res fhue 125 | ageFmt = "FUTURE@%{red}Y%{white}m" # make future times standout-ugly 126 | #ageFmt = "+ANYTIME@%{fhue0}y%{fhue1}m%{fhue2}d%{fhue3}H%{fhue4}M%{fhue5}S" 127 | # Put times to the millisecond in this one; Just do .%6 for usec, .%9 for ns 128 | ageFmt = "-ANYTIME@%y/%m/%d:%H:%M:%S.%3" # '-' => plain mode formats; lc -p 129 | 130 | #ageFmt = "+31556952@/31556952 yrs fhue0" # 1 year&older: years; 365.2425 131 | #ageFmt = "+2678400@/604800 wks fhue1" # 31 days..1 yr: weeks;Mos=unevnUnit 132 | #ageFmt = "+86400@/86400 dys fhue2" # 1 day..31 days: days 133 | #ageFmt = "+6000@/3600 hrs fhue3" # 99 min..1 day: hours 134 | #ageFmt = "+100@/60 min fhue4" # 99 sec..99 min: min 135 | #ageFmt = "+0@/1 sec fhue5" # 0..99 sec: sec with no num-unit spc 136 | 137 | ageFmt="+262974600@/31556952 3 char cells for any age, BUT 139 | ageFmt= "+8640000@/604800 either terse file ages | very wide terminal. 185 | Style = "LLa = -HX./ \"-f%P %{bold}U %{italic}G %n %o %S %B %C %M %A %f%R\"" 186 | Style = "LL = -sLLa -xdot" 187 | Style = "LLai = -HX./ \"-f%P %{bold}U %{italic}G %i %n %o %S %B %C %M %A %f%R\"" 188 | Style = "LLi = -sLLai -xdot" 189 | Style = "debug = -H \"-f%0%1%2%3%4%5%6%7%8%9%.%/ %f%R\"" 190 | 191 | # Add-on styles; Cn=compr-patternEscaped; cn=same+reFit; e=fastComprPatternEsc 192 | # \\x22 gets a '"' char into the ASCII charset; parsecfg unescapes one '\' while 193 | # cligen/abbrev.parseAbbrev translates \x22 -> '"' via cligen/textUt.unescaped. 194 | Style = "C1 = \"-m-1,,,*,?[](){} '\\x22;!$#^`~\"" 195 | Style = "C2 = \"-m-2,,,*,?[](){} '\\x22;!$#^`~\"" 196 | Style = "C3 = \"-m-3,,,*,?[](){} '\\x22;!$#^`~\"" 197 | Style = "C4 = \"-m-4,,,*,?[](){} '\\x22;!$#^`~\"" 198 | Style = "C5 = \"-m-5,,,*,?[](){} '\\x22;!$#^`~\"" 199 | Style = "C6 = \"-m-6,,,*,?[](){} '\\x22;!$#^`~\"" 200 | Style = "c4 = \"-Fm-4,,,*,?[](){} '\\x22;!$#^`~\"" 201 | Style = "c5 = \"-Fm-5,,,*,?[](){} '\\x22;!$#^`~\"" 202 | Style = "c6 = \"-Fm-6,,,*,?[](){} '\\x22;!$#^`~\"" 203 | Style = "e = \"-ma,,,*,?[](){} '\\x22;!$#^`~\"" 204 | 205 | # Almost exactly GNU ls -lA --no-color; Perhaps more "demonstration" than useful 206 | Style = "gls = \"-tp1g -> \" --ageFmt,= --ageFmt,= \"-a-15778476@%b %e %Y\" \"-a-0@%b %e %H:%M\" -of \"-f%l%p%Q %n %U %G %S %m %f%r\"" 207 | 208 | glyph = "➤ " 209 | order = 0134eN #Default sort order: kind-order0,1; fmtKindNum0,1; longExt,Nm 210 | format = "%I%f" 211 | 212 | hyperlink = true 213 | -------------------------------------------------------------------------------- /mpd: -------------------------------------------------------------------------------- 1 | music_directory "/mnt/media/Music/" 2 | db_file "~/.local/share/mpd/database" 3 | log_file "/tmp/mpd.log" 4 | pid_file "/tmp/mpd.pid" 5 | state_file "~/.local/share/mpd/state" 6 | sticker_file "~/.local/share/mpd/sticker.sql" 7 | playlist_directory "~/.local/share/mpd/playlists" 8 | log_level "default" 9 | default_permissions "read,add,control,player,admin" 10 | bind_to_address "127.0.0.1" 11 | bind_to_address "/tmp/mpd.socket" 12 | auto_update "yes" 13 | # replaygain "album" 14 | # replaygain_preamp "0" 15 | # volume_normalization "no" 16 | # audio_buffer_size "2048" 17 | # buffer_before_play "10%" 18 | # connection_timeout "60" 19 | # max_connections "10" 20 | # max_playlist_length "16384" 21 | # max_command_list_size "2048" 22 | # max_output_buffer_size "8192" 23 | filesystem_charset "UTF-8" 24 | # id3v1_encoding "ISO-8859-1" 25 | 26 | input { 27 | plugin "tidal" 28 | enabled "no" 29 | } 30 | 31 | audio_output { 32 | type "pipewire" 33 | name "pipewire" 34 | } 35 | 36 | audio_output { 37 | type "fifo" 38 | name "fifo" 39 | path "/tmp/mpd.fifo" 40 | format "48000:16:2" 41 | } 42 | 43 | audio_output { 44 | type "httpd" 45 | name "soryegeton" 46 | encoder "opus" 47 | port "8000" 48 | quality "0" 49 | format "48000:16:2" 50 | } 51 | -------------------------------------------------------------------------------- /mpv/input.conf: -------------------------------------------------------------------------------- 1 | V vf toggle format=yuv420p,vapoursynth=~~/filters/mvtools.vpy:4:4 2 | alt+i cycle interpolation 3 | ctrl+r cycle_values video-rotate "90" "180" "270" "0" 4 | ctrl+t script-binding pickshader 5 | 6 | ctrl+alt+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Moderate_VL.glsl"; show-text "Anime4K: Modern 1080p (HQ)" 7 | ctrl+alt+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Light_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_L.glsl"; show-text "Anime4K: Modern 720p->1080p (HQ)" 8 | ctrl+alt+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_Moderate_M.glsl"; show-text "Anime4K: Modern SD->1080p (HQ)" 9 | ctrl+alt+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Light_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_L.glsl:~~/shaders/Anime4K_Restore_CNN_Moderate_M.glsl"; show-text "Anime4K: Old SD->1080p (HQ)" 10 | 11 | ctrl+alt+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared" 12 | 13 | MBTN_MID script-binding uosc/menu-blurred 14 | 15 | WHEEL_UP add volume 2; script-binding uosc/flash-volume 16 | WHEEL_DOWN add volume -2; script-binding uosc/flash-volume 17 | 18 | RIGHT seek 5; script-binding uosc/flash-timeline 19 | LEFT seek -5; script-binding uosc/flash-timeline 20 | UP seek 60; script-binding uosc/flash-timeline 21 | DOWN seek -60; script-binding uosc/flash-timeline 22 | -------------------------------------------------------------------------------- /mpv/mpv.conf: -------------------------------------------------------------------------------- 1 | term-osd-bar 2 | msg-module 3 | msg-color 4 | 5 | osd-bar=no 6 | border=no 7 | 8 | autofit-larger=100%x100% 9 | autofit-smaller=40%x40% 10 | 11 | # Video 12 | vo=gpu-next 13 | gpu-api=vulkan 14 | 15 | scale=ewa_lanczossharp 16 | cscale=ewa_lanczossharp 17 | dscale=ewa_lanczossharp 18 | 19 | video-sync=display-resample 20 | interpolation=no 21 | tscale=box 22 | tscale-window=sphinx 23 | tscale-radius=1.0 24 | tscale-clamp=0.0 25 | 26 | vo-kitty-use-shm=yes 27 | 28 | # Audio 29 | alang=en,eng,English 30 | 31 | # Subtitles 32 | slang=eng,en,English 33 | demuxer-mkv-subtitle-preroll=yes 34 | 35 | # Screenshot 36 | screenshot-format=png 37 | screenshot-png-compression=9 38 | screenshot-high-bit-depth=no 39 | screenshot-template="~/pic/mpv/%F%#04n%p[%tY%tm%td_%tH]" 40 | 41 | # OSD 42 | osd-font="Iosevka" 43 | 44 | # Playlist 45 | autocreate-playlist=filter 46 | directory-filter-types=video,image,audio 47 | directory-mode=ignore 48 | video-exts=3g2,3gp,avi,flv,m2ts,m4v,mj2,mkv,mov,mp4,mpeg,mpg,ogv,rmvb,ts,webm,wmv,y4m 49 | image-exts=avif,bmp,gif,j2k,jp2,jpeg,jpg,jxl,png,svg,tga,tif,tiff,webp 50 | audio-exts=aiff,ape,au,flac,m4a,mka,mp3,oga,ogg,ogm,opus,wav,wma 51 | 52 | # Profiles 53 | [image-pause] 54 | profile-desc=Pause images 55 | profile-cond=get("estimated-frame-count", math.huge) == 1 56 | pause 57 | 58 | [loop-short] 59 | profile-desc=Loop short files 60 | profile-restore=copy-equal 61 | profile-cond=duration < 60 62 | loop-file=inf 63 | 64 | [wallpaper] 65 | profile-desc=Wallpaper settings 66 | load-auto-profiles=no 67 | no-audio 68 | loop-file=inf 69 | 70 | [twitch] 71 | profile-desc=Twitch chat 72 | profile-cond=get("path", ""):find("^https://www.twitch.tv/") ~= nil 73 | profile-restore=copy-equal 74 | sub-font-size=10 75 | sub-align-x=right 76 | sub-align-y=top 77 | -------------------------------------------------------------------------------- /mpv/script-opts/mpv-twitch-chat.conf: -------------------------------------------------------------------------------- 1 | show_name = true 2 | -------------------------------------------------------------------------------- /mpv/script-opts/thumbfast.conf: -------------------------------------------------------------------------------- 1 | # Socket path (leave empty for auto) 2 | socket= 3 | 4 | # Thumbnail path (leave empty for auto) 5 | thumbnail= 6 | 7 | # Maximum thumbnail size in pixels (scaled down to fit) 8 | # Values are scaled when hidpi is enabled 9 | max_height=200 10 | max_width=200 11 | 12 | # Apply tone-mapping, no to disable 13 | tone_mapping=auto 14 | 15 | # Overlay id 16 | overlay_id=42 17 | 18 | # Spawn thumbnailer on file load for faster initial thumbnails 19 | spawn_first=no 20 | 21 | # Close thumbnailer process after an inactivity period in seconds, 0 to disable 22 | quit_after_inactivity=0 23 | 24 | # Enable on network playback 25 | network=no 26 | 27 | # Enable on audio playback 28 | audio=no 29 | 30 | # Enable hardware decoding 31 | hwdec=no 32 | 33 | # Custom path to the mpv executable 34 | mpv_path=mpv 35 | -------------------------------------------------------------------------------- /mpv/script-opts/uosc.conf: -------------------------------------------------------------------------------- 1 | # Display style of current position. available: line, bar 2 | timeline_style=bar 3 | # Line display style config 4 | timeline_line_width=2 5 | # Timeline size when fully expanded, in pixels, 0 to disable 6 | timeline_size=40 7 | # Comma separated states when element should always be fully visible. 8 | # Available: paused, audio, image, video, idle, windowed, fullscreen 9 | timeline_persistency= 10 | # Top border of background color to help visually separate timeline from video 11 | timeline_border=1 12 | # When scrolling above timeline, wheel will seek by this amount of seconds 13 | timeline_step=5 14 | # Render cache indicators for streaming content 15 | timeline_cache=yes 16 | 17 | # When to display an always visible progress bar (minimized timeline). Can be: windowed, fullscreen, always, never 18 | # Can also be toggled on demand with `toggle-progress` command. 19 | progress=windowed 20 | progress_size=2 21 | progress_line_width=20 22 | 23 | # A comma delimited list of controls above the timeline. Set to `never` to disable. 24 | # Parameter spec: enclosed in `{}` means value, enclosed in `[]` means optional 25 | # Full item syntax: `[<[!]{disposition1}[,[!]{dispositionN}]>]{element}[:{paramN}][#{badge}[>{limit}]][?{tooltip}]` 26 | # Common properties: 27 | # `{icon}` - parameter used to specify an icon name (example: `face`) 28 | # - pick here: https://fonts.google.com/icons?icon.platform=web&icon.set=Material+Icons&icon.style=Rounded 29 | # `{element}`s and their parameters: 30 | # `{shorthand}` - preconfigured shorthands: 31 | # `play-pause`, `menu`, `subtitles`, `audio`, `video`, `playlist`, 32 | # `chapters`, `editions`, `stream-quality`, `open-file`, `items`, 33 | # `next`, `prev`, `first`, `last`, `audio-device`, `fullscreen`, 34 | # `loop-playlist`, `loop-file`, `shuffle` 35 | # `speed[:{scale}]` - display speed slider, [{scale}] - factor of controls_size, default: 1.3 36 | # `command:{icon}:{command}` - button that executes a {command} when pressed 37 | # `toggle:{icon}:{prop}[@{owner}]` - button that toggles mpv property 38 | # `cycle:{default_icon}:{prop}[@{owner}]:{value1}[={icon1}][!]/{valueN}[={iconN}][!]` 39 | # - button that cycles mpv property between values, each optionally having different icon and active flag 40 | # - presence of `!` at the end will style the button as active 41 | # - `{owner}` is the name of a script that manages this property if any 42 | # `gap[:{scale}]` - display an empty gap 43 | # {scale} - factor of controls_size, default: 0.3 44 | # `space` - fills all available space between previous and next item, useful to align items to the right 45 | # - multiple spaces divide the available space among themselves, which can be used for centering 46 | # Item visibility control: 47 | # `<[!]{disposition1}[,[!]{dispositionN}]>` - optional prefix to control element's visibility 48 | # - `{disposition}` can be one of: 49 | # - `idle` - true if mpv is in idle mode (no file loaded) 50 | # - `image` - true if current file is a single image 51 | # - `audio` - true for audio only files 52 | # - `video` - true for files with a video track 53 | # - `has_many_video` - true for files with more than one video track 54 | # - `has_image` - true for files with a cover or other image track 55 | # - `has_audio` - true for files with an audio track 56 | # - `has_many_audio` - true for files with more than one audio track 57 | # - `has_sub` - true for files with an subtitle track 58 | # - `has_many_sub` - true for files with more than one subtitle track 59 | # - `has_many_edition` - true for files with more than one edition 60 | # - `has_chapter` - true for files with chapter list 61 | # - `stream` - true if current file is read from a stream 62 | # - `has_playlist` - true if current playlist has 2 or more items in it 63 | # - prefix with `!` to negate the required disposition 64 | # Examples: 65 | # - `stream-quality` - show stream quality button only for streams 66 | # - `audio` - show audio tracks button for all files that have 67 | # an audio track, but are not exclusively audio only files 68 | # Place `#{badge}[>{limit}]` after the element params to give it a badge. Available badges: 69 | # `sub`, `audio`, `video` - track type counters 70 | # `{mpv_prop}` - any mpv prop that makes sense to you: https://mpv.io/manual/master/#property-list 71 | # - if prop value is an array it'll display its size 72 | # `>{limit}` will display the badge only if it's numerical value is above this threshold. 73 | # Example: `#audio>1` 74 | # Place `?{tooltip}` after the element config to give it a tooltip. 75 | # Example implementations: 76 | # menu = command:menu:script-binding uosc/menu-blurred?Menu 77 | # subtitles = command:subtitles:script-binding uosc/subtitles#sub?Subtitles 78 | # fullscreen = cycle:crop_free:fullscreen:no/yes=fullscreen_exit!?Fullscreen 79 | # loop-playlist = cycle:repeat:loop-playlist:no/inf!?Loop playlist 80 | # toggle:{icon}:{prop} = cycle:{icon}:{prop}:no/yes! 81 | controls=menu,gap,subtitles,audio,video,editions,stream-quality,gap,space,speed,space,shuffle,loop-playlist,loop-file,gap,prev,items,next,gap,fullscreen 82 | controls_size=32 83 | controls_margin=8 84 | controls_spacing=2 85 | controls_persistency= 86 | 87 | # Where to display volume controls: none, left, right 88 | volume=right 89 | volume_size=40 90 | volume_border=1 91 | volume_step=1 92 | volume_persistency= 93 | 94 | # Playback speed widget: mouse drag or wheel to change, click to reset 95 | speed_step=0.1 96 | speed_step_is_factor=no 97 | speed_persistency= 98 | 99 | # Controls all menus, such as context menu, subtitle loader/selector, etc 100 | menu_item_height=36 101 | menu_min_width=260 102 | menu_padding=4 103 | # Determines if `/` or `ctrl+f` is required to activate the search, or if typing 104 | # any text is sufficient. 105 | # When enabled, you can no longer toggle a menu off with the same key that opened it, if the key is a unicode character. 106 | menu_type_to_search=yes 107 | 108 | # Top bar with window controls and media title 109 | # Can be: never, no-border, always 110 | top_bar=no-border 111 | top_bar_size=40 112 | top_bar_controls=yes 113 | # Can be: `no` (hide), `yes` (inherit title from mpv.conf), or a custom template string 114 | top_bar_title=yes 115 | # Template string to enable alternative top bar title. If alt title matches main title, 116 | # it'll be hidden. Tip: use `${media-title}` for main, and `${filename}` for alt title. 117 | top_bar_alt_title= 118 | # Can be: 119 | # `below` => display alt title below the main one 120 | # `toggle` => toggle the top bar title text between main and alt by clicking 121 | # the top bar, or calling `toggle-title` binding 122 | top_bar_alt_title_place=below 123 | # Flash top bar when any of these file types is loaded. Available: audio,image,video 124 | top_bar_flash_on=video,audio 125 | top_bar_persistency= 126 | 127 | # Window border drawn in no-border mode 128 | window_border_size=1 129 | 130 | # If there's no playlist and file ends, load next file in the directory 131 | # Requires `keep-open=yes` in `mpv.conf`. 132 | autoload=no 133 | # What types to accept as next item when autoloading or requesting to play next file 134 | # Can be: video, audio, image, subtitle 135 | autoload_types=video,audio,image 136 | # Enable uosc's playlist/directory shuffle mode 137 | # This simply makes the next selected playlist or directory item be random, just 138 | # like any other player in the world. It also has an easily togglable control button. 139 | shuffle=no 140 | 141 | # Scale the interface by this factor 142 | scale=1 143 | # Scale in fullscreen 144 | scale_fullscreen=1.3 145 | # Adjust the text scaling to fit your font 146 | font_scale=1 147 | # Border of text and icons when drawn directly on top of video 148 | text_border=1.2 149 | # Border radius of buttons, menus, and all other rectangles 150 | border_radius=4 151 | # A comma delimited list of color overrides in RGB HEX format. Defaults: 152 | # foreground=ffffff,foreground_text=000000,background=000000,background_text=ffffff,curtain=111111,success=a5e075,error=ff616e 153 | color= 154 | # A comma delimited list of opacity overrides for various UI element backgrounds and shapes. 155 | # This does not affect any text, which is always rendered fully opaque. Defaults: 156 | # timeline=0.9,position=1,chapters=0.8,slider=0.9,slider_gauge=1,controls=0,speed=0.6,menu=1,submenu=0.4,border=1,title=1,tooltip=1,thumbnail=1,curtain=0.8,idle_indicator=0.8,audio_indicator=0.5,buffering_indicator=0.3,playlist_position=0.8 157 | opacity= 158 | # Duration of animations in milliseconds 159 | animation_duration=100 160 | # Execute command for background clicks shorter than this number of milliseconds, 0 to disable 161 | # Execution always waits for `input-doubleclick-time` to filter out double-clicks 162 | click_threshold=0 163 | click_command=cycle pause; script-binding uosc/flash-pause-indicator 164 | # Flash duration in milliseconds used by `flash-{element}` commands 165 | flash_duration=1000 166 | # Distances in pixels below which elements are fully faded in/out 167 | proximity_in=40 168 | proximity_out=120 169 | # Use only bold font weight throughout the whole UI 170 | font_bold=no 171 | # One of `total`, `playtime-remaining` (scaled by the current speed), `time-remaining` (remaining length of file) 172 | destination_time=playtime-remaining 173 | # Display sub second fraction in timestamps up to this precision 174 | time_precision=0 175 | # Display stream's buffered time in timeline if it's lower than this amount of seconds, 0 to disable 176 | buffered_time_threshold=60 177 | # Hide UI when mpv autohides the cursor. Timing is controlled by `cursor-autohide` in `mpv.conf` (in milliseconds). 178 | autohide=no 179 | # Can be: flash, static, manual (controlled by flash-pause-indicator and decide-pause-indicator commands) 180 | pause_indicator=flash 181 | # Sizes to list in stream quality menu 182 | stream_quality_options=4320,2160,1440,1080,720,480,360,240,144 183 | # Types to identify media files 184 | video_types=3g2,3gp,asf,avi,f4v,flv,h264,h265,m2ts,m4v,mkv,mov,mp4,mp4v,mpeg,mpg,ogm,ogv,rm,rmvb,ts,vob,webm,wmv,y4m 185 | audio_types=aac,ac3,aiff,ape,au,cue,dsf,dts,flac,m4a,mid,midi,mka,mp3,mp4a,oga,ogg,opus,spx,tak,tta,wav,weba,wma,wv 186 | image_types=apng,avif,bmp,gif,j2k,jp2,jfif,jpeg,jpg,jxl,mj2,png,svg,tga,tif,tiff,webp 187 | subtitle_types=aqt,ass,gsub,idx,jss,lrc,mks,pgs,pjs,psb,rt,sbv,slt,smi,sub,sup,srt,ssa,ssf,ttxt,txt,usf,vt,vtt 188 | # Default open-file menu directory 189 | default_directory=~/ 190 | # List hidden files when reading directories. Due to environment limitations, this currently only hides 191 | # files starting with a dot. Doesn't hide hidden files on windows (we have no way to tell they're hidden). 192 | show_hidden_files=no 193 | # Move files to trash (recycle bin) when deleting files. Dependencies: 194 | # - Linux: `sudo apt install trash-cli` 195 | # - MacOS: `brew install trash` 196 | use_trash=no 197 | # Adjusted osd margins based on the visibility of UI elements 198 | adjust_osd_margins=yes 199 | 200 | # Adds chapter range indicators to some common chapter types. 201 | # Additionally to displaying the start of the chapter as a diamond icon on top of the timeline, 202 | # the portion of the timeline of that chapter range is also colored based on the config below. 203 | # 204 | # The syntax is a comma-delimited list of `{type}:{color}` pairs, where: 205 | # `{type}` => range type. Currently supported ones are: 206 | # - `openings`, `endings` => anime openings/endings 207 | # - `intros`, `outros` => video intros/outros 208 | # - `ads` => segments created by sponsor-block software like https://github.com/po5/mpv_sponsorblock 209 | # `{color}` => an RGB(A) HEX color code (`rrggbb`, or `rrggbbaa`) 210 | # 211 | # To exclude marking any of the range types, simply remove them from the list. 212 | chapter_ranges=openings:30abf964,endings:30abf964,ads:c54e4e80 213 | # Add alternative lua patterns to identify beginnings of simple chapter ranges (except for `ads`) 214 | # Syntax: `{type}:{pattern}[,{patternN}][;{type}:{pattern}[,{patternN}]]` 215 | chapter_range_patterns=openings:オープニング;endings:エンディング 216 | 217 | # Localization language priority from highest to lowest. 218 | # Also controls what languages are fetched by `download-subtitles` menu. 219 | # Built in languages can be found in `uosc/intl`. 220 | # `slang` is a keyword to inherit values from `--slang` mpv config. 221 | # Supports paths to custom json files: `languages=~~/custom.json,slang,en` 222 | languages=slang,en 223 | 224 | # A comma separated list of element IDs to disable. Available IDs: 225 | # window_border, top_bar, timeline, controls, volume, 226 | # idle_indicator, audio_indicator, buffering_indicator, pause_indicator 227 | disable_elements= 228 | -------------------------------------------------------------------------------- /mpv/script-opts/visualizer.conf: -------------------------------------------------------------------------------- 1 | quality=high 2 | -------------------------------------------------------------------------------- /mpv/script-opts/webm.conf: -------------------------------------------------------------------------------- 1 | keybind=W 2 | # If empty, saves on the same directory of the playing video. 3 | # A starting "~" will be replaced by the home dir. 4 | # This field is delimited by double-square-brackets - [[ and ]] - instead of 5 | # quotes, because Windows users might run into a issue when using 6 | # backslashes as a path separator. Examples of valid inputs for this field 7 | # would be: [[]] (the default, empty value), [[C:\Users\John]] (on Windows), 8 | # and [[/home/john]] (on Unix-like systems eg. Linux). 9 | # The [[]] delimiter is not needed when using from a configuration file 10 | # in the script-opts folder. 11 | output_directory=~/vid/clips/ 12 | run_detached=no 13 | # Template string for the output file 14 | # %f - Filename, with extension 15 | # %F - Filename, without extension 16 | # %T - Media title, if it exists, or filename, with extension (useful for some streams, such as YouTube). 17 | # %s, %e - Start and end time, with milliseconds 18 | # %S, %E - Start and end time, without milliseconds 19 | # %M - "-audio", if audio is enabled, empty otherwise 20 | # %R - "-(height)p", where height is the video's height, or scale_height, if it's enabled. 21 | # More specifiers are supported, see https://mpv.io/manual/master/#options-screenshot-template 22 | # Property expansion is supported (with %{} at top level, ${} when nested), see https://mpv.io/manual/master/#property-expansion 23 | output_template=%F-[%s-%e]%M 24 | scale_height=-1 25 | fps=-1 26 | target_filesize=7500 27 | # If true, will use stricter flags to ensure the resulting file doesn't 28 | # overshoot the target filesize. Not recommended, as constrained quality 29 | # mode should work well, unless you're really having trouble hitting 30 | # the target size. 31 | strict_filesize_constraint=no 32 | strict_bitrate_multiplier=0.95 33 | # In kilobits. 34 | strict_audio_bitrate=64 35 | # Sets the output format, from a few predefined ones. 36 | # Currently we have: 37 | # av1 38 | # hevc 39 | # webm-vp9 (libvpx-vp9/libopus) 40 | # avc (h264/AAC) 41 | # avc-nvenc (h264-NVENC/AAC) 42 | # webm-vp8 (libvpx/libvorbis) 43 | # gif 44 | # mp3 (libmp3lame) 45 | # and raw (rawvideo/pcm_s16le). 46 | output_format=hevc 47 | twopass=yes 48 | apply_current_filters=yes 49 | # If set, writes the video's filename to the "Title" field on the metadata. 50 | write_filename_on_metadata=no 51 | threads=8 52 | additional_flags= 53 | # Constant Rate Factor (CRF). The value meaning and limits may change, 54 | # from codec to codec. Set to -1 to disable. 55 | crf=10 56 | # Useful for flags that may impact output filesize, such as qmin, qmax etc 57 | # Won't be applied when strict_filesize_constraint is on. 58 | non_strict_additional_flags= 59 | display_progress=auto 60 | font_size=28 61 | margin=10 62 | message_duration=5 63 | # gif dither mode, 0-5 for bayer w/ bayer_scale 0-5, 6 for paletteuse default (sierra2_4a) 64 | gif_dither=2 65 | force_square_pixels=no 66 | -------------------------------------------------------------------------------- /ncmpcpp: -------------------------------------------------------------------------------- 1 | # MPD 2 | mpd_host = "127.0.0.1" 3 | mpd_port = "6600" 4 | mpd_connection_timeout = "5" 5 | ;mpd_crossfade_time = "5" 6 | 7 | # Directories 8 | mpd_music_dir = "/mnt/media/Music" 9 | ncmpcpp_directory = "~/.local/etc/ncmpcpp" 10 | lyrics_directory = "~/.local/cache/lyrics" 11 | 12 | # General 13 | mouse_list_scroll_whole_page = "no" 14 | lines_scrolled = "1" 15 | message_delay_time = "2" 16 | default_find_mode = "wrapped" 17 | autocenter_mode = "yes" 18 | centered_cursor = "yes" 19 | follow_now_playing_lyrics = "yes" 20 | locked_screen_width_part = "60" 21 | external_editor = "kak" 22 | use_console_editor = "yes" 23 | ask_before_clearing_playlists = "no" 24 | show_duplicate_tags = "no" 25 | incremental_seeking = "yes" 26 | seek_time = "1" 27 | volume_change_step = "2" 28 | execute_on_song_change = "" 29 | execute_on_player_state_change = "" 30 | 31 | # Window 32 | user_interface = "alternative" 33 | enable_window_title = "no" 34 | song_window_title_format = "{%a - }{%t}|{%f}" 35 | current_item_prefix = "$(yellow)$r" 36 | current_item_suffix = "$/r$(end)" 37 | current_item_inactive_column_prefix = "$(white)$r" 38 | current_item_inactive_column_suffix = "$/r$(end)" 39 | selected_item_prefix = "$6" 40 | selected_item_suffix = "$9" 41 | discard_colors_if_item_is_selected = "yes" 42 | modified_item_prefix = "$3> $9" 43 | 44 | # Header 45 | display_bitrate = "no" 46 | display_remaining_time = "no" 47 | alternative_header_first_line_format = "$b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b" 48 | alternative_header_second_line_format = "{{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}" 49 | header_visibility = "no" 50 | 51 | # Playlist 52 | playlist_display_mode = "classic" 53 | song_columns_list_format = "(25)[cyan]{a} (40)[]{t} (30)[red]{b} (7f)[green]{l}" 54 | song_list_format = "{%a - }{%t}|{$8%f$9}$R{$3%l$9}" 55 | now_playing_prefix = "$b$2▶ " 56 | now_playing_suffix = "$2$/b$2" 57 | playlist_show_remaining_time = "no" 58 | playlist_shorten_total_times = "yes" 59 | playlist_separate_albums = "yes" 60 | playlist_disable_highlight_delay = "3" 61 | playlist_show_mpd_host = "no" 62 | 63 | # Browser 64 | browser_display_mode = "columns" 65 | browser_sort_mode = "format" 66 | browser_sort_format = {%n }{%a - }{%t}|{%f} {(%l)} 67 | browser_playlist_prefix = "$2playlist$9 " 68 | 69 | # Library 70 | song_library_format = "{%n - }{%t}|{%f}" 71 | 72 | # Leftout 73 | song_status_format = {{%a{ "%b"{ (-- %y --)}} - }{%t}}|{%f} 74 | ;song_status_format = " $2%a $4⟫$3⟫ $8%t $4⟫$3⟫ $5%b " 75 | search_engine_display_mode = "columns" 76 | playlist_editor_display_mode = "columns" 77 | ;tag_editor_album_format = "{(%y) }%b" 78 | 79 | # Colors 80 | main_window_color = "white" 81 | header_window_color = "cyan" 82 | volume_color = "red" 83 | alternative_ui_separator_color = "yellow" 84 | state_line_color = "yellow" 85 | state_flags_color = "red" 86 | progressbar_color = "yellow" 87 | progressbar_elapsed_color = "white" 88 | statusbar_color = "red" 89 | visualizer_color = "blue, cyan, green, yellow, magenta, red" 90 | ;visualizer_color = "41, 83, 119, 155, 185, 215, 209, 203, 197, 161" 91 | 92 | # Visibility 93 | statusbar_visibility = "yes" 94 | titles_visibility = "yes" 95 | 96 | # Progressbar 97 | #progressbar_look = "─╼─" 98 | #progressbar_look = "=>" 99 | #progressbar_look = "─- " 100 | #progressbar_look = "▒▒░" 101 | #progressbar_look = "┅┅┄" 102 | #progressbar_look = "─⊙┄" 103 | #progressbar_look = "─➞─" 104 | #progressbar_look = "─┅─" 105 | #progressbar_look = "▪▪▪" 106 | #progressbar_look = "▪▪▫" 107 | #progressbar_look = "───" 108 | #progressbar_look = "▁▁▁" 109 | #progressbar_look = "‒‒‒" 110 | #progressbar_look = "■◣ " 111 | progressbar_look = "◈◆◇" 112 | 113 | # Visualizer 114 | visualizer_in_stereo = "yes" 115 | visualizer_data_source = "/tmp/mpd.fifo" 116 | visualizer_output_name = "my_fifo" 117 | visualizer_type = "spectrum" 118 | visualizer_look = "◆▋" 119 | 120 | ## %l - length 121 | ## %f - filename 122 | ## %D - directory 123 | ## %a - artist 124 | ## %A - album artist 125 | ## %t - title 126 | ## %b - album 127 | ## %y - year 128 | ## %n - track number (01/12 -> 01) 129 | ## %N - full track info (01/12 -> 01/12) 130 | ## %g - genre 131 | ## %c - composer 132 | ## %p - performer 133 | ## %d - disc 134 | ## %C - comment 135 | ## $R - begin right alignment 136 | ## $var - set, $/var - unset 137 | ## b - bold text 138 | ## u - underline text 139 | ## r - reverse colors 140 | ## a - use alternative character set 141 | ## 0 - default window color (discards all other colors) 142 | ## 1 - black 143 | ## 2 - red 144 | ## 3 - green 145 | ## 4 - yellow 146 | ## 5 - blue 147 | ## 6 - magenta 148 | ## 7 - cyan 149 | ## 8 - white 150 | ## 9 - end of current color 151 | -------------------------------------------------------------------------------- /nim.nim: -------------------------------------------------------------------------------- 1 | from macros import error 2 | import os 3 | 4 | type Compiler = enum gcc = "gcc", clang = "clang" 5 | 6 | var cross = block: 7 | const cross {.booldefine.} = false 8 | cross 9 | 10 | const strip {.booldefine.} = true 11 | 12 | proc setCompiler(s: string, compiler = gcc, cpu = "", os = "", cpp = false) {.used.} = 13 | let c = findExe s 14 | if c.len == 0: 15 | error s & " binary wasn't found in $PATH." 16 | let 17 | cpu = (if cpu.len > 0: cpu & '.' else: "") 18 | os = (if os.len > 0: os & '.' else: "") 19 | cpp = (if cpp: ".cpp" else: "") 20 | switch cpu & os & $compiler & cpp & ".exe", c 21 | switch cpu & os & $compiler & cpp & ".linkerexe", c 22 | 23 | if defined(musl): 24 | setCompiler "x86_64-linux-musl-gcc" 25 | 26 | elif defined(x86): 27 | cross = true 28 | setCompiler "i686-pc-linux-gnu-gcc" 29 | switch "cpu", "i386" 30 | switch "passL", "--sysroot=/usr/i686-pc-linux-gnu/" 31 | 32 | elif defined(arm): 33 | cross = true 34 | switch "cpu", "arm" 35 | switch "passL", "--sysroot=/usr/arm-linux-gnueabihf/" 36 | 37 | elif defined(wasm): 38 | cross = true 39 | let linkerOptions = "-nostdlib -Wl,--no-entry,--allow-undefined,--gc-sections,--strip-all" 40 | switch "o", projectName() & ".wasm" 41 | switch "cpu", "i386" 42 | switch "cc", "clang" 43 | switch "d", "danger" 44 | switch "opt", "size" 45 | switch "stackTrace", "off" 46 | switch "nomain" 47 | switch "d", "nimNoLibc" 48 | switch "d", "noSignalHandler" 49 | switch "passC", "--target=wasm32-unknown-unknown-wasm" 50 | switch "passC", "-mexception-handling" 51 | switch "passC", "-nostdlib" 52 | switch "passL", "--target=wasm32-unknown-unknown-wasm" 53 | switch "clang.options.linker", linkerOptions 54 | switch "clang.cpp.options.linker", linkerOptions 55 | 56 | elif defined(libriscv): 57 | cross = true 58 | setCompiler "riscv64-elf-gcc", cpu = "riscv64", os = "linux" 59 | # setCompiler "riscv64-unknown-elf-gcc", cpu = "riscv64", os = "linux" 60 | switch "cpu", "riscv64" 61 | switch "os", "any" 62 | switch "threads", "off" 63 | 64 | if defined(release) or defined(danger): 65 | if not cross: 66 | switch "passC", "-march=native" 67 | switch "passC", "-floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block" 68 | switch "passC", "-ftree-vectorize" 69 | switch "passC", "-flto=auto" 70 | switch "passL", "-flto=auto" 71 | switch "passL", "-fuse-linker-plugin" 72 | if strip: 73 | switch "passL", "-s" 74 | else: 75 | switch "d", "stacktraceHyperlinks" 76 | 77 | if defined(libbacktrace): 78 | switch "stacktrace", "off" 79 | switch "d", "nimStackTraceOverride" 80 | switch "import", "libbacktrace" 81 | 82 | if defined(danger): 83 | switch "panics", "on" 84 | 85 | if defined(hotcodereloading): 86 | switch "nimcache", "nimcache" 87 | elif defined(danger): 88 | switch "nimcache", getTempDir() / "nim" / projectName() & "_d" 89 | elif defined(release): 90 | switch "nimcache", getTempDir() / "nim" / projectName() & "_r" 91 | else: 92 | switch "nimcache", getTempDir() / "nim" / projectName() 93 | 94 | when defined(nimHasHyperlinks): 95 | switch "hyperlink" 96 | switch "spellsuggest" 97 | switch "styleCheck", "usages" 98 | switch "hint", "Dependency:on" 99 | switch "hint", "MsgOrigin:off" 100 | switch "processing", "filenames" 101 | 102 | switch "passC", "-fdiagnostics-urls=always" 103 | switch "passL", "-fdiagnostics-urls=always" 104 | 105 | # Way of Nim 106 | # --experimental:strictEffects 107 | --experimental:unicodeOperators 108 | --define:nimPreviewDotLikeOps 109 | --define:nimPreviewFloatRoundtrip 110 | --define:nimStrictDelete 111 | -------------------------------------------------------------------------------- /ntr/contexts/allomancer: -------------------------------------------------------------------------------- 1 | meta 2 | name*: allomancer 3 | author: Nequo 4 | source: https://github.com/Nequo/vim-allomancer 5 | 6 | color 7 | bg: #282c34 8 | fg: #abb2bf 9 | cursor: #abb2bf 10 | 11 | color0: #282c34 12 | color8: #55606d 13 | 14 | color1: #e06c75 15 | color9: #af5f5f 16 | 17 | color2: #87af87 18 | color10: #87af87 19 | 20 | color3: #d7afaf 21 | color11: #ff875f 22 | 23 | color4: #6e88a6 24 | color12: #6e88a6 25 | 26 | color5: #d18ec2 27 | color13: #875faf 28 | 29 | color6: #5fafaf 30 | color14: #5fafaf 31 | 32 | color7: #abb2bf 33 | color15: #eceff4 34 | -------------------------------------------------------------------------------- /ntr/contexts/anderson: -------------------------------------------------------------------------------- 1 | meta 2 | name*: anderson 3 | author: tlhr 4 | source: https://github.com/tlhr/anderson.vim 5 | 6 | color 7 | bg: #363432 8 | fg: #c5beba 9 | cursor: #d0d0d0 10 | 11 | color0: #363432 12 | color8: #645d59 13 | 14 | color1: #be503e 15 | color9: #f0a4af 16 | 17 | color2: #7bb292 18 | color10: #9ad1bc 19 | 20 | color3: #d7ae38 21 | color11: #c4c18b 22 | 23 | color4: #628b97 24 | color12: #bad4f5 25 | 26 | color5: #c7a095 27 | color13: #e7c6be 28 | 29 | color6: #88a2a4 30 | color14: #a8c1c5 31 | 32 | color7: #837d7a 33 | color15: #c5beba 34 | -------------------------------------------------------------------------------- /ntr/contexts/apprentice: -------------------------------------------------------------------------------- 1 | meta 2 | name*: apprentice 3 | author: romainl 4 | source: https://github.com/romainl/Apprentice 5 | 6 | color 7 | bg: #262626 8 | fg: #BCBCBC 9 | cursor: #6C6C6C 10 | 11 | color0: #1C1C1C 12 | color8: #444444 13 | 14 | color1: #AF5F5F 15 | color9: #FF8700 16 | 17 | color2: #5F875F 18 | color10: #87AF87 19 | 20 | color3: #87875F 21 | color11: #FFFFAF 22 | 23 | color4: #5F87AF 24 | color12: #8FAFD7 25 | 26 | color5: #5F5F87 27 | color13: #8787AF 28 | 29 | color6: #5F8787 30 | color14: #5FAFAF 31 | 32 | color7: #6C6C6C 33 | color15: #FFFFFF 34 | -------------------------------------------------------------------------------- /ntr/contexts/assuka: -------------------------------------------------------------------------------- 1 | meta 2 | name*: assuka 3 | author: solitude 4 | source: pywal 5 | 6 | color 7 | bg: #161414 8 | fg: #ff8080 9 | cursor: #ff8080 10 | 11 | color0: #161414 12 | color8: #2b2727 13 | 14 | color1: #9d3333 15 | color9: #d93434 16 | 17 | color2: #05833e 18 | color10: #01af50 19 | 20 | color3: #b4802f 21 | color11: #f8a92e 22 | 23 | color4: #b74949 24 | color12: #fe4e4e 25 | 26 | color5: #b86262 27 | color13: #ff6d6d 28 | 29 | color6: #a97021 30 | color14: #e8931d 31 | 32 | color7: #b65959 33 | color15: #ff8080 34 | 35 | wallpaper*: <{$HOME}>/assuka.png 36 | -------------------------------------------------------------------------------- /ntr/contexts/blaquemagick: -------------------------------------------------------------------------------- 1 | meta 2 | name*: blaquemagick 3 | author: xero 4 | source: https://github.com/xero/dotfiles/blob/master/urxvt/blaquemagick.Xcolors 5 | 6 | color 7 | bg: #222222 8 | fg: #c2c2b0 9 | cursor: #c2c2b0 10 | 11 | color0: #222222 12 | color8: #222222 13 | 14 | color1: #5F8787 15 | color9: #5F8787 16 | 17 | color2: #666666 18 | color10: #666666 19 | 20 | color3: #87875f 21 | color11: #87875f 22 | 23 | color4: #888888 24 | color12: #888888 25 | 26 | color5: #8181a6 27 | color13: #8181a6 28 | 29 | color6: #777777 30 | color14: #777777 31 | 32 | color7: #c1c1c1 33 | color15: #c1c1c1 34 | -------------------------------------------------------------------------------- /ntr/contexts/causal_scheme: -------------------------------------------------------------------------------- 1 | meta 2 | name*: scheme 3 | author: causal agent 4 | source: https://causal.agency/bin/scheme.html 5 | 6 | color 7 | bg: #14130E 8 | fg: #B7A980 9 | cursor: #72694F 10 | 11 | color0: #161510 12 | color8: #4C4635 13 | 14 | color1: #A32810 15 | color9: #CC3214 16 | 17 | color2: #727A18 18 | color10: #8E991E 19 | 20 | color3: #A37720 21 | color11: #CC9528 22 | 23 | color4: #3D6266 24 | color12: #4C7B7F 25 | 26 | color5: #7A4955 27 | color13: #995B6B 28 | 29 | color6: #557A55 30 | color14: #6B996B 31 | 32 | color7: #8E8463 33 | color15: #CCBC8E 34 | -------------------------------------------------------------------------------- /ntr/contexts/coco: -------------------------------------------------------------------------------- 1 | meta 2 | name*: coco 3 | author: dkeg 4 | source: https://github.com/dkeg/crayolo 5 | 6 | color 7 | bg: #1f1d1d 8 | fg: #ccbaad 9 | cursor: #ccbaad 10 | 11 | color0: #201e1e 12 | color8: #201e1e 13 | 14 | color1: #6b4747 15 | color9: #6b4747 16 | 17 | color2: #8d7138 18 | color10: #8d7138 19 | 20 | color3: #856237 21 | color11: #856237 22 | 23 | color4: #3c3c49 24 | color12: #3c3c49 25 | 26 | color5: #3c342e 27 | color13: #3c342e 28 | 29 | color6: #5d5a4b 30 | color14: #5d5a4b 31 | 32 | color7: #ccbaad 33 | color15: #eae2dc 34 | -------------------------------------------------------------------------------- /ntr/contexts/cosmic_latte: -------------------------------------------------------------------------------- 1 | meta 2 | name*: cosmic_latte 3 | author: nightsense 4 | source: https://github.com/nightsense/cosmic_latte 5 | 6 | color 7 | bg: #202a31 8 | fg: #abb0c0 9 | cursor: #c5cbdb 10 | 11 | color0: #202a31 12 | color8: #898f9e 13 | 14 | color1: #c17b8d 15 | color9: #c17b8d 16 | 17 | color2: #7d9761 18 | color10: #7d9761 19 | 20 | color3: #b28761 21 | color11: #b28761 22 | 23 | color4: #5496bd 24 | color12: #5496bd 25 | 26 | color5: #9b85bb 27 | color13: #9b85bb 28 | 29 | color6: #459d90 30 | color14: #459d90 31 | 32 | color7: #abb0c0 33 | color15: #c5cbdb 34 | -------------------------------------------------------------------------------- /ntr/contexts/dracula: -------------------------------------------------------------------------------- 1 | meta 2 | name*: dracula 3 | source: https://github.com/dracula/xresources 4 | 5 | color 6 | bg: #282A36 7 | fg: #F8F8F2 8 | cursor: #BBBBBB 9 | 10 | color0: #000000 11 | color8: #4D4D4D 12 | 13 | color1: #FF5555 14 | color9: #FF6E67 15 | 16 | color2: #50FA7B 17 | color10: #5AF78E 18 | 19 | color3: #F1FA8C 20 | color11: #F4F99D 21 | 22 | color4: #BD93F9 23 | color12: #CAA9FA 24 | 25 | color5: #FF79C6 26 | color13: #FF92D0 27 | 28 | color6: #8BE9FD 29 | color14: #9AEDFE 30 | 31 | color7: #BFBFBF 32 | color15: #E6E6E6 33 | -------------------------------------------------------------------------------- /ntr/contexts/fahrenheit: -------------------------------------------------------------------------------- 1 | meta 2 | name*: fahrenheit 3 | author: fcpg 4 | source: https://github.com/fcpg/vim-fahrenheit 5 | 6 | color 7 | bg: #000000 8 | fg: #ffaf5f 9 | cursor: #d75f00 10 | 11 | color0: #000000 12 | color8: #262626 13 | 14 | color1: #d75f00 15 | color9: #d7875f 16 | 17 | color2: #af875f 18 | color10: #d7af87 19 | 20 | color3: #ffd787 21 | color11: #ffd75f 22 | 23 | color4: #5f87af 24 | color12: #87afd7 25 | 26 | color5: #875f5f 27 | color13: #af87af 28 | 29 | color6: #ffd7af 30 | color14: #ffffd7 31 | 32 | color7: #a8a8a8 33 | color15: #ffffff 34 | -------------------------------------------------------------------------------- /ntr/contexts/falcon: -------------------------------------------------------------------------------- 1 | meta 2 | name*: falcon 3 | author: fenetikm 4 | source: https://github.com/fenetikm/falcon 5 | 6 | color 7 | bg: #020221 8 | fg: #b4b4b9 9 | sel_bg: #ddcfbf 10 | sel_fg: #36363a 11 | cursor: #ffe8c0 12 | 13 | color0: #000004 14 | color8: #020221 15 | 16 | color1: #ff3600 17 | color9: #ff8e78 18 | 19 | color2: #718e3f 20 | color10: #b1bf75 21 | 22 | color3: #ffc552 23 | color11: #ffd392 24 | 25 | color4: #635196 26 | color12: #99a4bc 27 | 28 | color5: #ff761a 29 | color13: #ffb07b 30 | 31 | color6: #34bfa4 32 | color14: #8bccbf 33 | 34 | color7: #b4b4b9 35 | color15: #f8f8ff 36 | -------------------------------------------------------------------------------- /ntr/contexts/gruvbox: -------------------------------------------------------------------------------- 1 | meta 2 | name*: gruvbox 3 | 4 | color 5 | bg: #282828 6 | fg: #ebdbb2 7 | cursor: #fe8019 8 | 9 | color0: #282828 10 | color8: #928374 11 | 12 | color1: #cc241d 13 | color9: #fb4934 14 | 15 | color2: #98971a 16 | color10: #b8bb26 17 | 18 | color3: #d79921 19 | color11: #fabd2f 20 | 21 | color4: #458588 22 | color12: #83a598 23 | 24 | color5: #b16286 25 | color13: #d3869b 26 | 27 | color6: #689d6a 28 | color14: #8ec07c 29 | 30 | color7: #a89984 31 | color15: #ebdbb2 32 | -------------------------------------------------------------------------------- /ntr/contexts/iceberg: -------------------------------------------------------------------------------- 1 | meta 2 | name*: iceberg 3 | author: gagbo 4 | source: https://gist.github.com/cocopon/1d481941907d12db7a0df2f8806cfd41 5 | 6 | color 7 | bg: #161821 8 | fg: #d2d4de 9 | cursor: #d2d4de 10 | 11 | color0: #161821 12 | color8: #6b7089 13 | 14 | color1: #e27878 15 | color9: #e98989 16 | 17 | color2: #b4be82 18 | color10: #c0ca8e 19 | 20 | color3: #e2a478 21 | color11: #e9b189 22 | 23 | color4: #84a0c6 24 | color12: #91acd1 25 | 26 | color5: #a093c7 27 | color13: #ada0d3 28 | 29 | color6: #89b8c2 30 | color14: #95c4ce 31 | 32 | color7: #c6c8d1 33 | color15: #d2d4de 34 | -------------------------------------------------------------------------------- /ntr/contexts/iosvkem: -------------------------------------------------------------------------------- 1 | meta 2 | name*: iosvkem modified 3 | author: neutaaaaan + solitudesf 4 | source: https://github.com/neutaaaaan/iosvkem 5 | 6 | color 7 | bg: #1b1d1e 8 | fg: #dddddd 9 | cursor: #dddddd 10 | 11 | color0: #1b1d1e 12 | color8: #808080 13 | 14 | color1: #d01b61 15 | color9: #a3154c 16 | 17 | color2: #60aa00 18 | color10: #437700 19 | 20 | color3: #d08928 21 | color11: #a56d20 22 | 23 | color4: #6c9ef8 24 | color12: #3b7ef6 25 | 26 | color5: #b77fdb 27 | color13: #a157d0 28 | 29 | color6: #00aa80 30 | color14: #00775a 31 | 32 | color7: #dddddd 33 | color15: #aaaaaa 34 | -------------------------------------------------------------------------------- /ntr/contexts/miasma: -------------------------------------------------------------------------------- 1 | meta 2 | name*: miasma 3 | author: xero 4 | source: https://github.com/xero/dotfiles/blob/master/urxvt/miasma.Xcolors 5 | 6 | color 7 | bg: #222222 8 | fg: #c2c2b0 9 | cursor: #918f6e 10 | 11 | color0: #222222 12 | color8: #666666 13 | 14 | color1: #685742 15 | color9: #685742 16 | 17 | color2: #5f875f 18 | color10: #5f875f 19 | 20 | color3: #B36D43 21 | color11: #B36D43 22 | 23 | color4: #78824b 24 | color12: #78824b 25 | 26 | color5: #bb7744 27 | color13: #bb7744 28 | 29 | color6: #C9A554 30 | color14: #C9A554 31 | 32 | color7: #D7C483 33 | color15: #D7C483 34 | -------------------------------------------------------------------------------- /ntr/contexts/moonfly: -------------------------------------------------------------------------------- 1 | meta 2 | name*: moonfly 3 | author: bluz71 4 | source: https://github.com/bluz71/vim-moonfly-colors 5 | 6 | color 7 | bg: #080808 8 | fg: #b2b2b2 9 | cursor: #b2b2b2 10 | 11 | color0: #373c40 12 | color8: #f09479 13 | 14 | color1: #ff5454 15 | color9: #f74782 16 | 17 | color2: #8cc85f 18 | color10: #42cf89 19 | 20 | color3: #e3c78a 21 | color11: #cfcfb0 22 | 23 | color4: #80a0ff 24 | color12: #78c2ff 25 | 26 | color5: #ce76e8 27 | color13: #ae81ff 28 | 29 | color6: #7ee0ce 30 | color14: #85dc85 31 | 32 | color7: #de935f 33 | color15: #e2637f 34 | -------------------------------------------------------------------------------- /ntr/contexts/mysticaltutor: -------------------------------------------------------------------------------- 1 | meta 2 | name*: mysticaltutor 3 | author: caksoylar 4 | source: https://github.com/caksoylar/vim-mysticaltutor 5 | 6 | color 7 | fg: #d9d9d9 8 | bg: #1e2227 9 | cursor: #d9d9d9 10 | 11 | color0: #1e2227 12 | color8: #30343c 13 | 14 | color1: #e07093 15 | color9: #dfb4c9 16 | 17 | color2: #8bbe67 18 | color10: #b1c6ac 19 | 20 | color3: #bb8e67 21 | color11: #c3b470 22 | 23 | color4: #5c8ec7 24 | color12: #a0b4cf 25 | 26 | color5: #8b5fc7 27 | color13: #b1a3df 28 | 29 | color6: #5cbe97 30 | color14: #a0c4bd 31 | 32 | color7: #d9d9d9 33 | color15: #ffffff 34 | -------------------------------------------------------------------------------- /ntr/contexts/nature-suede: -------------------------------------------------------------------------------- 1 | meta 2 | name*: Nature Suede 3 | author: Gslob 4 | source: http://terminal.sexy/#Fw8NdGxIOSklmHJMkI8yqpZMe4VOa1ZEXFFCyLVbVEsur2Uvw8E9yLVbcKFsmHJMd4cl5NyM 5 | 6 | color 7 | bg: #170f0d 8 | fg: #746c48 9 | cursor: #746c48 10 | 11 | color0: #392925 12 | color8: #544b2e 13 | 14 | color1: #98724c 15 | color9: #af652f 16 | 17 | color2: #908f32 18 | color10: #c3c13d 19 | 20 | color3: #aa964c 21 | color11: #c8b55b 22 | 23 | color4: #7b854e 24 | color12: #70a16c 25 | 26 | color5: #6b5644 27 | color13: #98724c 28 | 29 | color6: #5c5142 30 | color14: #778725 31 | 32 | color7: #c8b55b 33 | color15: #e4dc8c 34 | -------------------------------------------------------------------------------- /ntr/contexts/nord: -------------------------------------------------------------------------------- 1 | meta 2 | name*: nord 3 | 4 | color 5 | bg: #2E3440 6 | fg: #D8DEE9 7 | cursor: #D8DEE9 8 | 9 | color0: #3B4252 10 | color8: #4C566A 11 | 12 | color1: #BF616A 13 | color9: #BF616A 14 | 15 | color2: #A3BE8C 16 | color10: #A3BE8C 17 | 18 | color3: #EBCB8B 19 | color11: #EBCB8B 20 | 21 | color4: #81A1C1 22 | color12: #81A1C1 23 | 24 | color5: #B48EAD 25 | color13: #B48EAD 26 | 27 | color6: #88C0D0 28 | color14: #8FBCBB 29 | 30 | color7: #E5E9F0 31 | color15: #ECEFF4 32 | -------------------------------------------------------------------------------- /ntr/contexts/nova: -------------------------------------------------------------------------------- 1 | meta 2 | name*: nova 3 | author: trevordmiller 4 | source: https://trevordmiller.com/projects/nova 5 | 6 | color 7 | bg: #3c4c55 8 | fg: #c5d4dd 9 | cursor: #c5d4dd 10 | 11 | color0: #3c4c55 12 | color8: #899ba6 13 | 14 | color1: #df8c8c 15 | color9: #f2c38f 16 | 17 | color2: #a8ce93 18 | color10: #a8ce93 19 | 20 | color3: #dada93 21 | color11: #dada93 22 | 23 | color4: #83afe5 24 | color12: #83afe5 25 | 26 | color5: #9a93e1 27 | color13: #d18ec2 28 | 29 | color6: #7fc1ca 30 | color14: #7fc1ca 31 | 32 | color7: #c5d4dd 33 | color15: #e6eef3 34 | -------------------------------------------------------------------------------- /ntr/contexts/onedark: -------------------------------------------------------------------------------- 1 | meta 2 | name*: onedark 3 | source: https://github.com/joshdick/onedark.vim 4 | 5 | color 6 | bg: #282C34 7 | fg: #ABB2BF 8 | cursor: #ABB2BF 9 | 10 | color0: #282C34 11 | color8: #3E4452 12 | 13 | color1: #E06C75 14 | color9: #BE5046 15 | 16 | color2: #98C379 17 | color10: #98C379 18 | 19 | color3: #E5C07B 20 | color11: #D19A66 21 | 22 | color4: #61AFEF 23 | color12: #61AFEF 24 | 25 | color5: #C678DD 26 | color13: #C678DD 27 | 28 | color6: #56B6C2 29 | color14: #56B6C2 30 | 31 | color7: #ABB2BF 32 | color15: #5C6370 33 | -------------------------------------------------------------------------------- /ntr/contexts/paints: -------------------------------------------------------------------------------- 1 | meta 2 | name*: paints 3 | author: dkeg 4 | source: https://github.com/dkeg/crayolo#paints 5 | 6 | color 7 | bg: #2f2a2a 8 | fg: #c9c8c8 9 | cursor: #c9c8c8 10 | 11 | color0: #332e2e 12 | color8: #332e2e 13 | 14 | color1: #854340 15 | color9: #854340 16 | 17 | color2: #668c71 18 | color10: #668c71 19 | 20 | color3: #b2885d 21 | color11: #b2885d 22 | 23 | color4: #41647b 24 | color12: #41647b 25 | 26 | color5: #915556 27 | color13: #915556 28 | 29 | color6: #477578 30 | color14: #477578 31 | 32 | color7: #c9c8c8 33 | color15: #c9c8c8 34 | -------------------------------------------------------------------------------- /ntr/contexts/petal: -------------------------------------------------------------------------------- 1 | meta 2 | name*: petal 3 | author: dkeg 4 | source: https://github.com/dkeg/crayolo#petal 5 | 6 | color 7 | bg: #22211f 8 | fg: #b4b399 9 | cursor: #b4b399 10 | 11 | color0: #252422 12 | color8: #4a4843 13 | 14 | color1: #785326 15 | color9: #785326 16 | 17 | color2: #516941 18 | color10: #516941 19 | 20 | color3: #827834 21 | color11: #827834 22 | 23 | color4: #42514f 24 | color12: #42514f 25 | 26 | color5: #6a5632 27 | color13: #6a5632 28 | 29 | color6: #4e5d4d 30 | color14: #4e5d4d 31 | 32 | color7: #b4b399 33 | color15: #c9c9b6 34 | -------------------------------------------------------------------------------- /ntr/contexts/rusticated: -------------------------------------------------------------------------------- 1 | meta 2 | name*: rusticated 3 | author: nightsense 4 | source: https://github.com/nightsense/rusticated 5 | 6 | color 7 | bg: #463f32 8 | fg: #d3d0cc 9 | cursor: #d3d0cc 10 | 11 | color00: #d3d0cc 12 | color08: #c4c1bb 13 | 14 | color01: #874749 15 | color09: #874749 16 | 17 | color02: #35633a 18 | color10: #35633a 19 | 20 | color03: #6b5729 21 | color11: #6b5729 22 | 23 | color04: #325c89 24 | color12: #325c89 25 | 26 | color05: #744b78 27 | color13: #744b78 28 | 29 | color06: #00646a 30 | color14: #00646a 31 | 32 | color07: #463f32 33 | color15: #322c20 34 | -------------------------------------------------------------------------------- /ntr/contexts/seoul256: -------------------------------------------------------------------------------- 1 | meta 2 | name*: seoul256 3 | author: junegunn 4 | source: https://github.com/junegunn/seoul256.vim 5 | 6 | color 7 | bg: #3a3a3a 8 | fg: #d0d0d0 9 | cursor: #d0d0d0 10 | 11 | color0: #4e4e4e 12 | color8: #626262 13 | 14 | color1: #d68787 15 | color9: #d75f87 16 | 17 | color2: #5f865f 18 | color10: #87af87 19 | 20 | color3: #d8af5f 21 | color11: #ffd787 22 | 23 | color4: #85add4 24 | color12: #add4fb 25 | 26 | color5: #d7afaf 27 | color13: #ffafaf 28 | 29 | color6: #87afaf 30 | color14: #87d7d7 31 | 32 | color7: #d0d0d0 33 | color15: #e4e4e4 34 | -------------------------------------------------------------------------------- /ntr/contexts/smyck: -------------------------------------------------------------------------------- 1 | meta 2 | name*: Smyck 3 | author: hukl 4 | source: http://color.smyck.org/ 5 | 6 | color 7 | bg: #1d1f21 8 | fg: #c5c8c6 9 | cursor: #c5c8c6 10 | 11 | color0: #282a2e 12 | color8: #373b41 13 | 14 | color1: #a54242 15 | color9: #cc6666 16 | 17 | color2: #8c9440 18 | color10: #b5bd68 19 | 20 | color3: #de935f 21 | color11: #f0c674 22 | 23 | color4: #5f819d 24 | color12: #81a2be 25 | 26 | color5: #85678f 27 | color13: #b294bb 28 | 29 | color6: #5e8d87 30 | color14: #8abeb7 31 | 32 | color7: #707880 33 | color15: #c5c8c6 34 | -------------------------------------------------------------------------------- /ntr/contexts/snow: -------------------------------------------------------------------------------- 1 | meta 2 | name*: snow 3 | author: nightsense 4 | source: https://github.com/nightsense/snow 5 | 6 | color 7 | bg: #2c2d30 8 | fg: #afb7c0 9 | cursor: #cbd2d9 10 | 11 | color0: #2c2d30 12 | color8: #363a3e 13 | 14 | color1: #be868c 15 | color9: #be868c 16 | 17 | color2: #7f9d77 18 | color10: #7f9d77 19 | 20 | color3: #ab916d 21 | color11: #ab916d 22 | 23 | color4: #759abd 24 | color12: #759abd 25 | 26 | color5: #a88cb3 27 | color13: #a88cb3 28 | 29 | color6: #5da19f 30 | color14: #5da19f 31 | 32 | color7: #afb7c0 33 | color15: #cbd2d9 34 | -------------------------------------------------------------------------------- /ntr/contexts/sourcerer: -------------------------------------------------------------------------------- 1 | meta 2 | name*: sourcerer 3 | author: xero 4 | source: https://github.com/xero/sourcerer 5 | 6 | color 7 | bg: #222222 8 | fg: #c2c2b0 9 | cursor: #c2c2b0 10 | 11 | color0: #111111 12 | color8: #181818 13 | 14 | color1: #aa4450 15 | color9: #ff6a6a 16 | 17 | color2: #719611 18 | color10: #b1d631 19 | 20 | color3: #ff9800 21 | color11: #87875f 22 | 23 | color4: #6688aa 24 | color12: #90b0d1 25 | 26 | color5: #8f6f8f 27 | color13: #8181a6 28 | 29 | color6: #528b8b 30 | color14: #87ceeb 31 | 32 | color7: #d3d3d3 33 | color15: #c1cdc1 34 | -------------------------------------------------------------------------------- /ntr/contexts/srcery: -------------------------------------------------------------------------------- 1 | meta 2 | name*: srcery 3 | author: roosta 4 | source: https://github.com/srcery-colors/srcery-terminal 5 | 6 | color 7 | bg: #1c1b19 8 | fg: #fce8c3 9 | cursor: #fce8c3 10 | 11 | color0: #1c1b19 12 | color8: #2D2C29 13 | 14 | color1: #ef2f27 15 | color9: #f75341 16 | 17 | color2: #519f50 18 | color10: #98bc37 19 | 20 | color3: #fbb829 21 | color11: #fed06e 22 | 23 | color4: #2c78bf 24 | color12: #68A8E4 25 | 26 | color5: #e02c6d 27 | color13: #ff5c8f 28 | 29 | color6: #0aaeb3 30 | color14: #53fde9 31 | 32 | color7: #918175 33 | color15: #fce8c3 34 | -------------------------------------------------------------------------------- /ntr/contexts/stellarized: -------------------------------------------------------------------------------- 1 | meta 2 | name*: stellarized 3 | author: nightsense 4 | source: https://github.com/nightsense/stellarized 5 | 6 | color 7 | bg: #222532 8 | fg: #bead9d 9 | cursor: #ecdac9 10 | 11 | color0: #222532 12 | color8: #2d3243 13 | 14 | color1: #ca7375 15 | color9: #ca7375 16 | 17 | color2: #5c9a61 18 | color10: #5c9a61 19 | 20 | color3: #a58949 21 | color11: #a58949 22 | 23 | color4: #578fcc 24 | color12: #578fcc 25 | 26 | color5: #b178b5 27 | color13: #b178b5 28 | 29 | color6: #009ba2 30 | color14: #009ba2 31 | 32 | color7: #bead9d 33 | color15: #ecdac9 34 | -------------------------------------------------------------------------------- /ntr/contexts/sweetlove: -------------------------------------------------------------------------------- 1 | meta 2 | name*: sweetlove 3 | author: boroshlawa 4 | 5 | color 6 | bg: #1f1f1f 7 | fg: #c0b18b 8 | cursor: #c0b18b 9 | 10 | color0: #4a3637 11 | color8: #402e2e 12 | 13 | color1: #d17b49 14 | color9: #ac5d2f 15 | 16 | color2: #7b8748 17 | color10: #647035 18 | 19 | color3: #af865a 20 | color11: #8f6840 21 | 22 | color4: #535c5c 23 | color12: #444b4b 24 | 25 | color5: #775759 26 | color13: #614445 27 | 28 | color6: #6d715e 29 | color14: #585c49 30 | 31 | color7: #c0b18b 32 | color15: #978965 33 | -------------------------------------------------------------------------------- /ntr/contexts/twilight: -------------------------------------------------------------------------------- 1 | meta 2 | name*: twilight 3 | author: Chris Kempson 4 | source: http://terminal.sexy/#Hh4ep6enHh4ez2pMj51q-e6YdYemm4Wdr8Tbp6enX1pgz2pMj51q-e6YdYemm4Wdr8Tb____ 5 | 6 | color 7 | bg: #1e1e1e 8 | fg: #a7a7a7 9 | cursor: #a7a7a7 10 | 11 | color0: #1e1e1e 12 | color8: #5f5a60 13 | 14 | color1: #cf6a4c 15 | color9: #cf6a4c 16 | 17 | color2: #8f9d6a 18 | color10: #8f9d6a 19 | 20 | color3: #f9ee98 21 | color11: #f9ee98 22 | 23 | color4: #7587a6 24 | color12: #7587a6 25 | 26 | color5: #9b859d 27 | color13: #9b859d 28 | 29 | color6: #afc4db 30 | color14: #afc4db 31 | 32 | color7: #a7a7a7 33 | color15: #ffffff 34 | -------------------------------------------------------------------------------- /ntr/contexts/vice: -------------------------------------------------------------------------------- 1 | meta 2 | name*: vice 3 | author: bcicen 4 | source: https://github.com/bcicen/vim-vice 5 | 6 | color 7 | bg: #303030 8 | fg: #fdfdfd 9 | cursor: #fdfdfd 10 | 11 | color0: #303030 12 | color8: #878787 13 | 14 | color1: #ff00ff 15 | color9: #ff87d7 16 | 17 | color2: #a3d4a3 18 | color10: #afffd7 19 | 20 | color3: #ffffaf 21 | color11: #ffffaf 22 | 23 | color4: #87ffff 24 | color12: #afffff 25 | 26 | color5: #afafd7 27 | color13: #ffafdf 28 | 29 | color6: #87ffff 30 | color14: #afffff 31 | 32 | color7: #878787 33 | color15: #ffffff 34 | -------------------------------------------------------------------------------- /ntr/finishers/Xresources: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | xrdb -merge "$HOME/.Xresources" 3 | -------------------------------------------------------------------------------- /ntr/finishers/default: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ -n "$NTR_wallpaper" ] && wlp "$NTR_wallpaper" || exit 0 3 | -------------------------------------------------------------------------------- /ntr/finishers/dunst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | pgrep dunst && dunstctl reload 3 | notify-send "ntr - ${NTR_name}" "dunst reloaded" 4 | -------------------------------------------------------------------------------- /ntr/finishers/kitty-colors: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | kitty @ set-colors -a -c "$XDG_CONFIG_HOME/kitty/colors.conf" 3 | -------------------------------------------------------------------------------- /ntr/finishers/polybar: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | for i in $(pgrep polybar) 3 | do 4 | [ "$(readlink -e "/proc/$i/exe")" = "/usr/bin/polybar" ] && kill -USR1 "$i" 5 | done 6 | exit 0 7 | -------------------------------------------------------------------------------- /ntr/finishers/terminal_colors: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | for term in /dev/pts/[0-9]*; do 3 | cat "$XDG_CACHE_HOME/terminal_colors" > "$term" 4 | done 5 | -------------------------------------------------------------------------------- /ntr/profiles/default: -------------------------------------------------------------------------------- 1 | Xresources: <{$HOME}>/.Xresources 2 | kitty-colors: <{$XDG_CONFIG_HOME}>/kitty/colors.conf 3 | kitty-colors-diff: <{$XDG_CONFIG_HOME}>/kitty/colors-diff.conf 4 | dunst: <{$XDG_CONFIG_HOME}>/dunst/dunstrc 5 | zathura: <{$XDG_CONFIG_HOME}>/zathura/zathurarc 6 | polybar: <{$XDG_CONFIG_HOME}>/polybar/color 7 | rofi-theme: <{$XDG_CONFIG_HOME}>/rofi/theme.rasi 8 | homepage.css: <{$HOME}>/.mozilla/firefox/homepage.css 9 | colorscheme.kak: <{$XDG_CONFIG_HOME}>/kak/colors/ntr.kak 10 | -------------------------------------------------------------------------------- /ntr/templates/Xresources: -------------------------------------------------------------------------------- 1 | *.foreground: <{color.fg}> 2 | *.background: <{color.bg}> 3 | *.cursorColor: <{color.cursor}> 4 | *.color0: <{color0}> 5 | *.color1: <{color1}> 6 | *.color2: <{color2}> 7 | *.color3: <{color3}> 8 | *.color4: <{color4}> 9 | *.color5: <{color5}> 10 | *.color6: <{color6}> 11 | *.color7: <{color7}> 12 | *.color8: <{color8}> 13 | *.color9: <{color9}> 14 | *.color10: <{color10}> 15 | *.color11: <{color11}> 16 | *.color12: <{color12}> 17 | *.color13: <{color13}> 18 | *.color14: <{color14}> 19 | *.color15: <{color15}> 20 | 21 | -------------------------------------------------------------------------------- /ntr/templates/colorscheme.kak: -------------------------------------------------------------------------------- 1 | declare-option str slate "rgb:637777" 2 | declare-option str peach "rgb:f78c6c" 3 | declare-option str gold "rgb:ecc48d" 4 | declare-option str pink "rgb:c792ea" 5 | declare-option str paleblue "rgb:7fdbca" 6 | declare-option str grey2 "rgb:222222" 7 | declare-option str grey4 "rgb:444444" 8 | declare-option str grey7 "rgb:777777" 9 | declare-option str greyE "rgb:eeeeee" 10 | 11 | # builtin 12 | face global Default default,default 13 | face global PrimarySelection default,rgba:<{strip:<{darken:<{color4}>:0.2}>:#}>80+g 14 | face global SecondarySelection default,rgba:<{strip:<{darken:<{color4}>:0.3}>:#}>80+g 15 | face global PrimaryCursor black,white+fg 16 | face global SecondaryCursor black,rgb:<{strip:<{darken:<{color7}>:0.2}>:#}>+fg 17 | face global PrimaryCursorEol black,cyan+fg 18 | face global SecondaryCursorEol black,cyan+fg 19 | face global LineNumbers default,default 20 | face global LineNumberCursor default,default+r 21 | face global MenuForeground yellow,blue 22 | face global MenuBackground white,black 23 | face global MenuInfo cyan 24 | face global Information yellow,default 25 | face global Error black,red 26 | face global DiagnosticError red 27 | face global DiagnosticWarning yellow 28 | face global StatusLine cyan,default 29 | face global StatusLineMode yellow,default 30 | face global StatusLineInfo blue,default 31 | face global StatusLineValue green,default 32 | face global StatusCursor black,cyan 33 | face global Prompt yellow,default 34 | face global MatchingChar default,default+b 35 | face global Whitespace default,default+fd 36 | face global BufferPadding blue,default 37 | 38 | # code 39 | face global value red 40 | face global type yellow 41 | face global variable green 42 | face global module green 43 | face global function cyan 44 | face global string magenta 45 | face global keyword blue 46 | face global operator yellow 47 | face global attribute green 48 | face global comment cyan 49 | face global documentation comment 50 | face global meta magenta 51 | face global builtin default+b 52 | 53 | # markup 54 | face global title blue 55 | face global header cyan 56 | face global mono green 57 | face global block magenta 58 | face global link cyan 59 | face global bullet cyan 60 | face global list yellow 61 | 62 | # lsp 63 | face global InfoMono "%opt{gold}" 64 | face global InfoBlock "green" 65 | face global InfoLink "magenta+u" 66 | face global InfoBullet "magenta" 67 | face global InfoDiagnosticError "red" 68 | face global InfoDiagnosticWarning "%opt{peach}" 69 | face global InfoDiagnosticHint "%opt{paleblue}" 70 | face global InfoDiagnosticInfo "blue" 71 | 72 | # inlay hints 73 | 74 | face global InlayDiagnosticError "red+i" 75 | face global InlayDiagnosticWarning "%opt{peach}+i" 76 | face global InlayDiagnosticHint "%opt{paleblue}+i" 77 | face global InlayDiagnosticInfo "blue+i" 78 | 79 | # tree-sitter 80 | face global ts_attribute "%opt{paleblue}" 81 | face global ts_comment "%opt{slate}+i" 82 | face global ts_conceal "magenta+i" 83 | face global ts_constant "%opt{paleblue}" 84 | face global ts_constant_character_escape "%opt{peach}" 85 | face global ts_constant "blue" 86 | face global ts_diff_plus "green" 87 | face global ts_diff_minus "red" 88 | face global ts_diff_delta "blue" 89 | face global ts_diff_delta_moved "blue+i" 90 | face global ts_error "red+b" 91 | face global ts_function "blue+i" 92 | face global ts_function_macro "%opt{peach}" 93 | face global ts_function_special "magenta" 94 | face global ts_info "blue+b" 95 | face global ts_hint "%opt{paleblue}+b" 96 | face global ts_keyword "magenta" 97 | face global ts_keyword_control_import "green+i" 98 | face global ts_keyword_control_return "magenta+i" 99 | face global ts_keyword_control_exception "red" 100 | face global ts_label "default" 101 | face global ts_markup_heading "blue+b" 102 | face global ts_markup_heading_marker "%opt{grey4}+d" 103 | face global ts_markup_heading_1 "blue+b" 104 | face global ts_markup_heading_2 "%opt{paleblue}+b" 105 | face global ts_markup_heading_3 "green+b" 106 | face global ts_markup_heading_4 "magenta+b" 107 | face global ts_markup_heading_5 "%opt{peach}+b" 108 | face global ts_markup_heading_6 "%opt{slate}+b" 109 | face global ts_markup_list "magenta" 110 | face global ts_markup_bold "default+b" 111 | face global ts_markup_italic "default+i" 112 | face global ts_markup_strikethrough "default+s" 113 | face global ts_markup_link "magenta+u" 114 | face global ts_markup_link_url "%opt{slate}+u" 115 | face global ts_markup_quote "green+i" 116 | face global ts_markup_raw "%opt{gold}" 117 | face global ts_namespace "%opt{peach}" 118 | face global ts_operator "magenta" 119 | face global ts_property "magenta" 120 | face global ts_punctuation "default" 121 | face global ts_punctuation_special "magenta" 122 | face global ts_special "%opt{greyE}" 123 | face global ts_spell "blue" 124 | face global ts_string "%opt{gold}" 125 | face global ts_string_regexp "green" 126 | face global ts_string_special_path "%opt{gold}+u" 127 | face global ts_text "default" 128 | face global ts_type "green" 129 | face global ts_variable "green" 130 | face global ts_variable_parameter "green+i" 131 | face global ts_variable_builtin "green+b" 132 | face global ts_warning "%opt{peach}+b" 133 | -------------------------------------------------------------------------------- /ntr/templates/dunst: -------------------------------------------------------------------------------- 1 | [global] 2 | ### Display ### 3 | 4 | monitor = 0 5 | follow = mouse 6 | geometry = "300x5-3+32" 7 | indicate_hidden = yes 8 | shrink = no 9 | transparency = 0 10 | notification_height = 0 11 | separator_height = 2 12 | padding = 8 13 | horizontal_padding = 8 14 | frame_width = 2 15 | frame_color = "<{color.fg}>" 16 | separator_color = frame 17 | sort = yes 18 | idle_threshold = 120 19 | 20 | ### Text ### 21 | 22 | font = Sarasa UI J 9 23 | line_height = 0 24 | markup = full 25 | 26 | # The format of the message. Possible variables are: 27 | # %a appname 28 | # %s summary 29 | # %b body 30 | # %i iconname (including its path) 31 | # %I iconname (without its path) 32 | # %p progress value if set ([ 0%] to [100%]) or nothing 33 | # %n progress value if set without any extra characters 34 | # Markup is allowed 35 | format = "%s\n%b" 36 | alignment = left 37 | show_age_threshold = 60 38 | word_wrap = yes 39 | ignore_newline = no 40 | stack_duplicates = true 41 | hide_duplicate_count = false 42 | show_indicators = yes 43 | 44 | ### Icons ### 45 | 46 | icon_position = left 47 | min_icon_size = 32 48 | max_icon_size = 64 49 | icon_path = <{$HOME}>/.icons/Paper/ 50 | 51 | ### History ### 52 | 53 | sticky_history = yes 54 | history_length = 20 55 | 56 | ### Misc/Advanced ### 57 | 58 | dmenu = /usr/bin/rofi -dmenu -p dunst: 59 | browser = /usr/bin/firefox 60 | always_run_script = true 61 | title = Dunst 62 | class = Dunst 63 | startup_notification = false 64 | 65 | ### Legacy 66 | 67 | force_xinerama = false 68 | 69 | ### Mouse 70 | 71 | mouse_left_click = do_action 72 | mouse_middle_click = close_all 73 | mouse_right_click = close_current 74 | 75 | [experimental] 76 | per_monitor_dpi = false 77 | 78 | [urgency_low] 79 | background = "<{color.bg}>" 80 | foreground = "<{color.fg}>" 81 | timeout = 10 82 | #icon = /path/to/icon 83 | 84 | [urgency_normal] 85 | background = "<{color.bg}>" 86 | foreground = "<{color.fg}>" 87 | timeout = 10 88 | #icon = /path/to/icon 89 | 90 | [urgency_critical] 91 | background = "" 92 | foreground = "<{color.fg}>" 93 | frame_color = "<{color.fg}>" 94 | timeout = 0 95 | #icon = /path/to/icon 96 | 97 | # Every section that isn't one of the above is interpreted as a rules to 98 | # override settings for certain messages. 99 | # Messages can be matched by "appname", "summary", "body", "icon", "category", 100 | # "msg_urgency" and you can override the "timeout", "urgency", "foreground", 101 | # "background", "new_icon" and "format". 102 | # Shell-like globbing will get expanded. 103 | # 104 | # SCRIPTING 105 | # You can specify a script that gets run when the rule matches by 106 | # setting the "script" option. 107 | # The script will be called as follows: 108 | # script appname summary body icon urgency 109 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 110 | # 111 | # NOTE: if you don't want a notification to be displayed, set the format 112 | # to "". 113 | # NOTE: It might be helpful to run dunst -print in a terminal in order 114 | # to find fitting options for rules. 115 | 116 | #[espeak] 117 | # summary = "*" 118 | # script = dunst_espeak.sh 119 | 120 | #[script-test] 121 | # summary = "*script*" 122 | # script = dunst_test.sh 123 | 124 | #[ignore] 125 | # # This notification will not be displayed 126 | # summary = "foobar" 127 | # format = "" 128 | 129 | #[history-ignore] 130 | # # This notification will not be saved in history 131 | # summary = "foobar" 132 | # history_ignore = yes 133 | -------------------------------------------------------------------------------- /ntr/templates/homepage.css: -------------------------------------------------------------------------------- 1 | body { 2 | height: 100%; 3 | background: <{color.bg}>; 4 | color: <{color.fg}>; 5 | font-family: monospace; 6 | } 7 | 8 | main { 9 | display: flex; 10 | flex-direction: row; 11 | width: 100%; 12 | margin-top: 10%; 13 | justify-content: center; 14 | } 15 | 16 | section { 17 | display: flex; 18 | flex-direction: column; 19 | width: 20%; 20 | margin: 2%; 21 | padding: 2%; 22 | } 23 | 24 | header { 25 | color: <{color4}>; 26 | font-size: 2rem; 27 | font-weight: bold; 28 | margin-bottom: 5%; 29 | } 30 | 31 | .item:hover { 32 | background: <{color.fg}>; 33 | } 34 | 35 | .item:hover a { 36 | color: <{color.bg}>; 37 | } 38 | 39 | a:link { 40 | display: block; 41 | text-decoration: none; 42 | color: <{color.fg}>; 43 | font-size: 1.5rem; 44 | } 45 | 46 | a:visited { 47 | color: <{color.fg}>; 48 | } 49 | -------------------------------------------------------------------------------- /ntr/templates/kitty-colors: -------------------------------------------------------------------------------- 1 | foreground <{color.fg}> 2 | background <{color.bg}> 3 | cursor <{color.cursor}> 4 | cursor_text_color <{color.bg}> 5 | 6 | color0 <{color0}> 7 | color1 <{color1}> 8 | color2 <{color2}> 9 | color3 <{color3}> 10 | color4 <{color4}> 11 | color5 <{color5}> 12 | color6 <{color6}> 13 | color7 <{color7}> 14 | color8 <{color8}> 15 | color9 <{color9}> 16 | color10 <{color10}> 17 | color11 <{color11}> 18 | color12 <{color12}> 19 | color13 <{color13}> 20 | color14 <{color14}> 21 | color15 <{color15}> 22 | 23 | mark1_foreground <{color.bg}> 24 | mark1_background <{color1}> 25 | mark2_foreground <{color.bg}> 26 | mark2_background <{color4}> 27 | mark3_foreground <{color.bg}> 28 | mark3_background <{color5}> 29 | 30 | selection_foreground <{color.bg}> 31 | selection_background <{color.fg}> 32 | 33 | active_tab_foreground #000 34 | active_tab_background #eee 35 | 36 | inactive_tab_foreground #444 37 | inactive_tab_background #999 38 | 39 | url_color #0087BD 40 | active_border_color #30302f 41 | inactive_border_color #30302f 42 | bell_border_color <{color1}> 43 | -------------------------------------------------------------------------------- /ntr/templates/kitty-colors-diff: -------------------------------------------------------------------------------- 1 | foreground <{color.fg}> 2 | background <{color.bg}> 3 | title_fg <{color.fg}> 4 | title_bg <{color.bg}> 5 | margin_bg <{darken:<{color.bg}>:0.04}> 6 | margin_fg <{color.fg}> 7 | removed_bg <{desaturate:<{color1}>:0.5}> 8 | highlight_removed_bg <{saturate:<{color1}>:0.3}> 9 | removed_margin_bg <{color1}> 10 | added_bg <{desaturate:<{color2}>:0.5}> 11 | highlight_added_bg <{saturate:<{color2}>:0.3}> 12 | added_margin_bg <{color2}> 13 | filler_bg <{desaturate:<{color.bg}>:0.3}> 14 | hunk_margin_bg <{darken:<{color.bg}>:0.04}> 15 | hunk_bg <{lighten:<{color.bg}>:0.2}> 16 | search_bg <{color.bg}> 17 | search_fg <{color.fg}> 18 | select_bg <{color.fg}> 19 | select_fg <{color.bg}> 20 | -------------------------------------------------------------------------------- /ntr/templates/polybar: -------------------------------------------------------------------------------- 1 | [color] 2 | background = #c9<{strip:<{color.bg}>:#}> 3 | foreground = <{color.fg}> 4 | red = <{color5}> 5 | green = <{color2}> 6 | fg-bright = <{darken:<{color.fg}>:0.3}> 7 | -------------------------------------------------------------------------------- /ntr/templates/pygments: -------------------------------------------------------------------------------- 1 | from pygments.style import Style 2 | from pygments.token import ( 3 | Comment, 4 | Error, 5 | Keyword, 6 | Literal, 7 | Name, 8 | Number, 9 | Operator, 10 | String, 11 | Text, 12 | ) 13 | 14 | 15 | class NTRStyle(Style): 16 | base00 = "<{color0}>" 17 | base01 = "<{color1}>" 18 | base02 = "<{color2}>" 19 | base03 = "<{color3}>" 20 | base04 = "<{color4}>" 21 | base05 = "<{color5}>" 22 | base06 = "<{color6}>" 23 | base07 = "<{color7}>" 24 | base08 = "<{color8}>" 25 | base09 = "<{color9}>" 26 | base0a = "<{color10}>" 27 | base0b = "<{color11}>" 28 | base0c = "<{color12}>" 29 | base0d = "<{color13}>" 30 | base0e = "<{color14}>" 31 | base0f = "<{color15}>" 32 | 33 | default_style = "" 34 | 35 | background_color = base00 36 | highlight_color = base02 37 | 38 | styles = { 39 | Text: base05, 40 | Error: base08, # .err 41 | Comment: base03, # .c 42 | Comment.Preproc: base0f, # .cp 43 | Comment.PreprocFile: base0b, # .cpf 44 | Keyword: base0e, # .k 45 | Keyword.Type: base08, # .kt 46 | Name.Attribute: base0d, # .na 47 | Name.Builtin: base0d, # .nb 48 | Name.Builtin.Pseudo: base08, # .bp 49 | Name.Class: base0d, # .nc 50 | Name.Constant: base09, # .no 51 | Name.Decorator: base09, # .nd 52 | Name.Function: base0d, # .nf 53 | Name.Namespace: base0d, # .nn 54 | Name.Tag: base0e, # .nt 55 | Name.Variable: base0d, # .nv 56 | Name.Variable.Instance: base08, # .vi 57 | Number: base09, # .m 58 | Operator: base0c, # .o 59 | Operator.Word: base0e, # .ow 60 | Literal: base0b, # .l 61 | String: base0b, # .s 62 | String.Interpol: base0f, # .si 63 | String.Regex: base0c, # .sr 64 | String.Symbol: base09, # .ss 65 | } 66 | 67 | 68 | NTRStyle.__name__ = "NTRStyle" 69 | globals()[NTRStyle.__name__] = globals()["NTRStyle"] 70 | del globals()["NTRStyle"] 71 | -------------------------------------------------------------------------------- /ntr/templates/rofi-theme: -------------------------------------------------------------------------------- 1 | * { 2 | text-color: <{color.fg}>; 3 | foreground: <{color.fg}>; 4 | background: <{color.bg}>; 5 | lightfg: <{lighten:<{color.fg}>:0.015}>; 6 | lightbg: <{lighten:<{color.bg}>:0.015}>; 7 | red: <{color1}>; 8 | blue: <{color12}>; 9 | background-color: @background; 10 | normal-foreground: @foreground; 11 | normal-background: @background; 12 | alternate-normal-foreground: @foreground; 13 | alternate-normal-background: @lightbg; 14 | selected-normal-foreground: @lightbg; 15 | selected-normal-background: @lightfg; 16 | active-foreground: @blue; 17 | active-background: @background; 18 | alternate-active-foreground: @blue; 19 | alternate-active-background: @lightbg; 20 | selected-active-foreground: @background; 21 | selected-active-background: @blue; 22 | urgent-foreground: @red; 23 | urgent-background: @background; 24 | alternate-urgent-foreground: @red; 25 | alternate-urgent-background: @lightbg; 26 | selected-urgent-foreground: @background; 27 | selected-urgent-background: @red; 28 | separatorcolor: @foreground; 29 | border-color: @foreground; 30 | spacing: 2; 31 | } 32 | window { 33 | background-color: @background; 34 | width: 1024px; 35 | border: 1; 36 | padding: 5; 37 | } 38 | mainbox { 39 | border: 0; 40 | padding: 0; 41 | } 42 | message { 43 | border: 1px dash 0px 0px; 44 | border-color: @separatorcolor; 45 | padding: 1px; 46 | } 47 | textbox { 48 | text-color: @foreground; 49 | } 50 | listview { 51 | columns: 2; 52 | lines: 25; 53 | fixed-height: 0; 54 | border: 1px 0px 0px; 55 | border-color: @separatorcolor; 56 | spacing: 1px; 57 | scrollbar: true; 58 | padding: 1px 0px 0px; 59 | } 60 | element { 61 | border: 0; 62 | padding: 1px; 63 | } 64 | element.normal.normal { 65 | background-color: @normal-background; 66 | text-color: @normal-foreground; 67 | } 68 | element.normal.urgent { 69 | background-color: @urgent-background; 70 | text-color: @urgent-foreground; 71 | } 72 | element.normal.active { 73 | background-color: @active-background; 74 | text-color: @active-foreground; 75 | } 76 | element.selected.normal { 77 | background-color: @selected-normal-background; 78 | text-color: @selected-normal-foreground; 79 | } 80 | element.selected.urgent { 81 | background-color: @selected-urgent-background; 82 | text-color: @selected-urgent-foreground; 83 | } 84 | element.selected.active { 85 | background-color: @selected-active-background; 86 | text-color: @selected-active-foreground; 87 | } 88 | element.alternate.normal { 89 | background-color: @alternate-normal-background; 90 | text-color: @alternate-normal-foreground; 91 | } 92 | element.alternate.urgent { 93 | background-color: @alternate-urgent-background; 94 | text-color: @alternate-urgent-foreground; 95 | } 96 | element.alternate.active { 97 | background-color: @alternate-active-background; 98 | text-color: @alternate-active-foreground; 99 | } 100 | scrollbar { 101 | width: 0px; 102 | border: 0; 103 | handle-color: @normal-foreground; 104 | handle-width: 2px; 105 | padding: 0; 106 | } 107 | sidebar { 108 | border: 1px dash 0px 0px; 109 | border-color: @separatorcolor; 110 | } 111 | button { 112 | spacing: 0; 113 | text-color: @normal-foreground; 114 | } 115 | button.selected { 116 | background-color: @selected-normal-background; 117 | text-color: @selected-normal-foreground; 118 | } 119 | inputbar { 120 | spacing: 0; 121 | text-color: @normal-foreground; 122 | padding: 1px; 123 | children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; 124 | } 125 | case-indicator { 126 | spacing: 0; 127 | text-color: @normal-foreground; 128 | } 129 | entry { 130 | spacing: 0; 131 | text-color: @normal-foreground; 132 | } 133 | prompt { 134 | spacing: 0; 135 | text-color: @normal-foreground; 136 | } 137 | textbox-prompt-colon { 138 | expand: false; 139 | str: ""; 140 | margin: 0px 0.3000em 0.0000em 0.0000em; 141 | text-color: inherit; 142 | } 143 | element-icon { 144 | size: 2.0ch ; 145 | } 146 | -------------------------------------------------------------------------------- /ntr/templates/terminal_colors: -------------------------------------------------------------------------------- 1 | ]4;0;<{color0}>\]4;1;<{color1}>\]4;2;<{color2}>\]4;3;<{color3}>\]4;4;<{color4}>\]4;5;<{color5}>\]4;6;<{color6}>\]4;7;<{color7}>\]4;8;<{color8}>\]4;9;<{color9}>\]4;10;<{color10}>\]4;11;<{color11}>\]4;12;<{color12}>\]4;13;<{color13}>\]4;14;<{color14}>\]4;15;<{color15}>\]10;<{color.fg}>\]11;<{color.bg}>\]12;<{color.fg}>\]13;<{color.fg}>\]17;<{color.fg}>\]19;<{color.bg}>\]708;<{color.bg}>\]13;<{color.cursor}>\ 2 | -------------------------------------------------------------------------------- /ntr/templates/zathura: -------------------------------------------------------------------------------- 1 | set window-title-home-tilde true 2 | set statusbar-basename true 3 | set selection-clipboard clipboard 4 | 5 | set recolor-keephue 6 | set recolor true 7 | 8 | set completion-bg "<{color.bg}>" 9 | set completion-fg "<{color.fg}>" 10 | set completion-group-bg "<{color.bg}>" 11 | set completion-group-fg "<{color2}>" 12 | set completion-highlight-bg "<{color.fg}>" 13 | set completion-highlight-fg "<{color.bg}>" 14 | set recolor-lightcolor "<{color.bg}>" 15 | set recolor-darkcolor "<{color.fg}>" 16 | set default-bg "<{color.bg}>" 17 | set inputbar-bg "<{color.bg}>" 18 | set inputbar-fg "<{color.fg}>" 19 | set notification-bg "<{color.bg}>" 20 | set notification-fg "<{color.fg}>" 21 | set notification-error-bg "<{color1}>" 22 | set notification-error-fg "<{color.fg}>" 23 | set notification-warning-bg "<{color1}>" 24 | set notification-warning-fg "<{color.fg}>" 25 | set statusbar-bg "<{color.bg}>" 26 | set statusbar-fg "<{color.fg}>" 27 | set index-bg "<{color.bg}>" 28 | set index-fg "<{color.fg}>" 29 | set index-active-bg "<{color.fg}>" 30 | set index-active-fg "<{color.bg}>" 31 | set render-loading-bg "<{color.bg}>" 32 | set render-loading-fg "<{color.fg}>" 33 | -------------------------------------------------------------------------------- /polybar.ini: -------------------------------------------------------------------------------- 1 | include-file = color 2 | 3 | [settings] 4 | screenchange-reload = true 5 | 6 | [global/wm] 7 | margin-top = 0 8 | margin-bottom = 0 9 | 10 | [bar/main] 11 | monitor = DisplayPort-1 12 | width = 2554 13 | height = 24 14 | offset-x = 3 15 | offset-y = 3 16 | padding-right = 1 17 | module-margin = 1 18 | modules-left = bspwm xwindow 19 | modules-center = 20 | modules-right = net memory cpu tempCPU date tray 21 | font-0 = Sarasa UI J:size=10;3 22 | font-1 = Symbols Nerd Font Mono:size=10;4 23 | background = ${color.background} 24 | foreground = ${color.foreground} 25 | border-size = 1 26 | border-color = ${color.fg-bright} 27 | wm-restack = bspwm 28 | scroll-up = bspwm-desknext 29 | scroll-down = bspwm-deskprev 30 | 31 | [bar/secondary] 32 | monitor = HDMI-A-0 33 | width = 1914 34 | height = 24 35 | offset-x = 3 36 | offset-y = 3 37 | padding-right = 1 38 | module-margin = 1 39 | modules-left = bspwm 40 | modules-center = mpd 41 | modules-right = net memory cpu tempGPU date 42 | font-0 = Sarasa UI J:size=10;3 43 | font-1 = Symbols Nerd Font Mono:size=10;4 44 | background = ${color.background} 45 | foreground = ${color.foreground} 46 | border-size = 1 47 | border-color = ${color.fg-bright} 48 | wm-restack = bspwm 49 | scroll-up = bspwm-desknext 50 | scroll-down = bspwm-deskprev 51 | 52 | [module/bspwm] 53 | type = internal/bspwm 54 | ws-icon-0 = 0;一 55 | ws-icon-1 = 1;二 56 | ws-icon-2 = 2;三 57 | ws-icon-3 = 3;四 58 | ws-icon-4 = 4;五 59 | ws-icon-5 = 5;六 60 | ws-icon-6 = 6;七 61 | ws-icon-7 = 7;八 62 | ws-icon-8 = 8;九 63 | ws-icon-9 = 9;十 64 | ws-icon-10 = 10;一 65 | ws-icon-11 = 11;二 66 | ws-icon-12 = 12;三 67 | ws-icon-13 = 13;四 68 | ws-icon-14 = 14;五 69 | ws-icon-15 = 15;六 70 | ws-icon-16 = 16;七 71 | ws-icon-17 = 17;八 72 | ws-icon-18 = 18;九 73 | ws-icon-19 = 19;十 74 | format = 75 | label-focused = %icon% 76 | label-focused-background = #444 77 | label-focused-padding = 2 78 | label-occupied = %icon% 79 | label-occupied-padding = 2 80 | label-marked = %icon%+ 81 | label-marked-background = ${color.blue} 82 | label-makred-padding = 2 83 | label-urgent = %icon%! 84 | label-urgent-background = ${color.green} 85 | label-urgent-padding = 2 86 | label-empty = 87 | 88 | [module/xwindow] 89 | type = internal/xwindow 90 | label = %title:0:150:…% 91 | 92 | [module/tray] 93 | type = internal/tray 94 | format = 95 | tray-padding = 1 96 | 97 | [module/mpd] 98 | type = internal/mpd 99 | icon-prev =  100 | icon-play =  101 | icon-pause =  102 | icon-next =  103 | label-song-maxlen = 45 104 | label-song-ellipsis = true 105 | format-online = 106 | 107 | [module/net] 108 | type = internal/network 109 | interface-type = wired 110 | format-connected = 111 | format-connected-prefix = "󰱦 " 112 | format-connected-prefix-foreground = ${color.fg-bright} 113 | label-connected = %netspeed% 114 | format-disconnected = 115 | 116 | [module/memory] 117 | type = internal/memory 118 | interval = 2 119 | format-prefix = "󰍛 " 120 | format-prefix-foreground = ${color.fg-bright} 121 | label = %percentage_used%% 122 | 123 | [module/cpu] 124 | type = internal/cpu 125 | interval = 2 126 | format-prefix = " " 127 | format-prefix-foreground = ${color.fg-bright} 128 | label = %percentage%% 129 | 130 | [module/tempCPU] 131 | type = internal/temperature 132 | interval = 2 133 | hwmon-path = /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp1_input 134 | base-temperature = 20 135 | warn-temperature = 85 136 | format =

: "Π" 33 | : "Σ" 34 | : "Φ" 35 | : "Ψ" 36 | : "Ω" 37 | 38 | # Bold 39 | : "𝔸" 40 | : "𝔹" 41 | : "ℂ" 42 | : "𝔻" 43 | : "𝔼" 44 | : "𝔽" 45 | : "𝔾" 46 | : "ℍ" 47 | : "𝕀" 48 | : "𝕁" 49 | : "𝕂" 50 | : "𝕃" 51 | : "𝕄" 52 | : "ℕ" 53 | : "𝕆" 54 |