aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/fastfetch/config.jsonc39
-rw-r--r--.config/fontconfig/fonts.conf40
-rw-r--r--.config/foot/foot.ini211
-rw-r--r--.config/hypr/hypridle.conf20
-rw-r--r--.config/hypr/hyprland.conf145
-rw-r--r--.config/hypr/hyprlock.conf83
-rw-r--r--.config/hypr/hyprpaper.conf7
-rwxr-xr-x.config/hypr/portalstart8
-rwxr-xr-x.config/hypr/start (renamed from .config/hypr/start.sh)3
-rw-r--r--.config/kitty/gruvbox.conf55
-rw-r--r--.config/kitty/kitty.conf9
-rwxr-xr-x.config/lf/cleaner2
-rwxr-xr-x.config/lf/kitty_scope29
-rwxr-xr-x.config/lf/scope28
-rw-r--r--.config/mpd/mpd.conf19
-rw-r--r--.config/shell/profile12
-rw-r--r--.config/waybar/config164
-rwxr-xr-x.config/waybar/scripts/album_art.sh9
-rwxr-xr-x.config/waybar/scripts/doppler1
-rwxr-xr-x.config/waybar/scripts/hyprdoppler1
-rwxr-xr-x.config/waybar/scripts/hyprweather1
-rwxr-xr-x.config/waybar/scripts/onclick-weather2
-rwxr-xr-x.config/waybar/scripts/pacpackages2
-rwxr-xr-x.config/waybar/scripts/pacupdate4
-rwxr-xr-x.config/waybar/scripts/vpn-toggle8
-rwxr-xr-x.config/waybar/scripts/weather3
-rw-r--r--.config/waybar/style.css53
-rw-r--r--.config/waybar/theme.css26
-rw-r--r--.config/zsh/.zcompdump1804
-rw-r--r--.config/zsh/.zshrc39
-rwxr-xr-x.local/bin/statusbar/sb-clock21
-rwxr-xr-x.local/bin/statusbar/sb-doppler19
-rwxr-xr-x.local/bin/statusbar/sb-forecast52
-rwxr-xr-x.local/bin/statusbar/sb-internet27
-rwxr-xr-x.local/bin/statusbar/sb-memory15
-rwxr-xr-x.local/bin/statusbar/sb-microphone24
-rwxr-xr-x.local/bin/statusbar/sb-nettraf22
-rwxr-xr-x.local/bin/statusbar/sb-volume26
-rw-r--r--dependencies.txt21
-rwxr-xr-xrice.sh34
40 files changed, 2324 insertions, 764 deletions
diff --git a/.config/fastfetch/config.jsonc b/.config/fastfetch/config.jsonc
deleted file mode 100644
index c543457..0000000
--- a/.config/fastfetch/config.jsonc
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
- "logo": {
- "type": "small"
- },
- "modules": [
- {
- "type": "os",
- "key": "os",
- "keyColor": "red"
- },
- {
- "type": "kernel",
- "key": "kernel",
- "keyColor": "yellow"
- },
- {
- "type": "shell",
- "key": "shell",
- "keyColor": "green"
- },
- {
- "type": "packages",
- "key": "packages",
- "keyColor": "cyan"
- },
- {
- "type": "wm",
- "key": "wm",
- "keyColor": "blue"
- },
- {
- "type": "memory",
- "key": "memory",
- "keyColor": "magenta"
- },
- "break"
- ]
-}
diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf
deleted file mode 100644
index 761ae00..0000000
--- a/.config/fontconfig/fonts.conf
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-<fontconfig>
- <alias>
- <family>serif</family>
- <prefer>
- <family>Libertinus Serif</family>
- <family>Joy Pixels</family>
- <family>Noto Color Emoji</family>
- <family>FontAwesome</family>
- </prefer>
- </alias>
- <alias>
- <family>sans-serif</family>
- <prefer>
- <family>Libertinus Sans</family>
- <family>Joy Pixels</family>
- <family>Noto Color Emoji</family>
- <family>FontAwesome</family>
- </prefer>
- </alias>
- <alias>
- <family>sans</family>
- <prefer>
- <family>Libertinus Sans</family>
- <family>Joy Pixels</family>
- <family>Noto Color Emoji</family>
- <family>FontAwesome</family>
- </prefer>
- </alias>
- <alias>
- <family>monospace</family>
- <prefer>
- <family>Noto Sans Mono</family>
- <family>Libertinus Mono</family>
- <family>FontAwesome</family>
- <family>Braille</family>
- </prefer>
- </alias>
-</fontconfig>
diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini
deleted file mode 100644
index 6c35f1c..0000000
--- a/.config/foot/foot.ini
+++ /dev/null
@@ -1,211 +0,0 @@
-# -*- conf -*-
-
-# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
-# term=foot (or xterm-256color if built with -Dterminfo=disabled)
-# login-shell=no
-
-# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
-# title=foot
-# locked-title=no
-
-font=mono:size=14
-# font-bold=<bold variant of regular font>
-# font-italic=<italic variant of regular font>
-# font-bold-italic=<bold+italic variant of regular font>
-# font-size-adjustment=0.5
-# line-height=<font metrics>
-# letter-spacing=0
-# horizontal-letter-offset=0
-# vertical-letter-offset=0
-# underline-offset=<font metrics>
-# underline-thickness=<font underline thickness>
-# box-drawings-uses-font-glyphs=no
-# dpi-aware=no
-
-# initial-window-size-pixels=700x500 # Or,
-# initial-window-size-chars=<COLSxROWS>
-# initial-window-mode=windowed
-pad=10x10 # optionally append 'center'
-# resize-by-cells=yes
-# resize-delay-ms=100
-
-# bold-text-in-bright=no
-# word-delimiters=,│`|:"'()[]{}<>
-# selection-target=primary
-# workers=<number of logical CPUs>
-# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
-# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
-
-[environment]
-# name=value
-
-[bell]
-# urgent=no
-# notify=no
-# visual=no
-# command=
-# command-focused=no
-
-[desktop-notifications]
-# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
-# command-action-argument=--action ${action-name}=${action-label}
-# close=""
-# inhibit-when-focused=yes
-
-
-[scrollback]
-# lines=1000
-# multiplier=3.0
-# indicator-position=relative
-# indicator-format=""
-
-[url]
-# launch=xdg-open ${url}
-# label-letters=sadfjklewcmpgh
-# osc8-underline=url-mode
-# protocols=http, https, ftp, ftps, file, gemini, gopher
-# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
-
-[cursor]
-# style=block
-# color=<inverse foreground/background>
-# blink=no
-# blink-rate=500
-# beam-thickness=1.5
-# underline-thickness=<font underline thickness>
-
-[mouse]
-# hide-when-typing=no
-# alternate-scroll-mode=yes
-
-[touch]
-# long-press-delay=400
-
-[colors]
-alpha=0.9
-background=282828
-foreground=ebdbb2
-regular0=282828
-regular1=cc241d
-regular2=98971a
-regular3=d79921
-regular4=458588
-regular5=b16286
-regular6=689d6a
-regular7=a89984
-bright0=928374
-bright1=fb4934
-bright2=b8bb26
-bright3=fabd2f
-bright4=83a598
-bright5=d3869b
-bright6=8ec07c
-bright7=ebdbb2
-
-[csd]
-# preferred=server
-# size=26
-# font=<primary font>
-# color=<foreground color>
-# hide-when-maximized=no
-# double-click-to-maximize=yes
-# border-width=0
-# border-color=<csd.color>
-# button-width=26
-# button-color=<background color>
-# button-minimize-color=<regular4>
-# button-maximize-color=<regular2>
-# button-close-color=<regular1>
-
-[key-bindings]
-# scrollback-up-page=Shift+Page_Up
-# scrollback-up-half-page=none
-# scrollback-up-line=none
-# scrollback-down-page=Shift+Page_Down
-# scrollback-down-half-page=none
-# scrollback-down-line=none
-# scrollback-home=none
-# scrollback-end=none
-# clipboard-copy=Control+Shift+c XF86Copy
-# clipboard-paste=Control+Shift+v XF86Paste
-# primary-paste=Shift+Insert
-# search-start=Control+Shift+r
-# font-increase=Control+plus Control+equal Control+KP_Add
-# font-decrease=Control+minus Control+KP_Subtract
-# font-reset=Control+0 Control+KP_0
-# spawn-terminal=Control+Shift+n
-# minimize=none
-# maximize=none
-# fullscreen=none
-# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
-# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
-# pipe-selected=[xargs -r firefox] none
-# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
-# show-urls-launch=Control+Shift+o
-# show-urls-copy=none
-# show-urls-persistent=none
-# prompt-prev=Control+Shift+z
-# prompt-next=Control+Shift+x
-# unicode-input=Control+Shift+u
-# noop=none
-
-[search-bindings]
-# cancel=Control+g Control+c Escape
-# commit=Return
-# find-prev=Control+r
-# find-next=Control+s
-# cursor-left=Left Control+b
-# cursor-left-word=Control+Left Mod1+b
-# cursor-right=Right Control+f
-# cursor-right-word=Control+Right Mod1+f
-# cursor-home=Home Control+a
-# cursor-end=End Control+e
-# delete-prev=BackSpace
-# delete-prev-word=Mod1+BackSpace Control+BackSpace
-# delete-next=Delete
-# delete-next-word=Mod1+d Control+Delete
-# extend-char=Shift+Right
-# extend-to-word-boundary=Control+w Control+Shift+Right
-# extend-to-next-whitespace=Control+Shift+w
-# extend-line-down=Shift+Down
-# extend-backward-char=Shift+Left
-# extend-backward-to-word-boundary=Control+Shift+Left
-# extend-backward-to-next-whitespace=none
-# extend-line-up=Shift+Up
-# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
-# primary-paste=Shift+Insert
-# unicode-input=none
-# quit=none
-# scrollback-up-page=Shift+Page_Up
-# scrollback-up-half-page=none
-# scrollback-up-line=none
-# scrollback-down-page=Shift+Page_Down
-# scrollback-down-half-page=none
-# scrollback-down-line=none
-# scrollback-home=none
-# scrollback-end=none
-
-[url-bindings]
-# cancel=Control+g Control+c Control+d Escape
-# toggle-url-visible=t
-
-[text-bindings]
-# \x03=Mod4+c # Map Super+c -> Ctrl+c
-
-[mouse-bindings]
-# scrollback-up-mouse=BTN_WHEEL_BACK
-# scrollback-down-mouse=BTN_WHEEL_FORWARD
-# font-increase=Control+BTN_WHEEL_BACK
-# font-decrease=Control+BTN_WHEEL_FORWARD
-# selection-override-modifiers=Shift
-# primary-paste=BTN_MIDDLE
-# select-begin=BTN_LEFT
-# select-begin-block=Control+BTN_LEFT
-# select-extend=BTN_RIGHT
-# select-extend-character-wise=Control+BTN_RIGHT
-# select-word=BTN_LEFT-2
-# select-word-whitespace=Control+BTN_LEFT-2
-# select-quote = BTN_LEFT-3
-# select-row=BTN_LEFT-4
-
-# vim: ft=dosini
diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf
deleted file mode 100644
index c867ff1..0000000
--- a/.config/hypr/hypridle.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-general {
- lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
- unlock_cmd = notify-send "unlock!" # same as above, but unlock
- before_sleep_cmd = notify-send "Zzz" # command ran before sleep
- after_sleep_cmd = notify-send "Awake!" # command ran after sleep
- ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
- ignore_systemd_inhibit = false # whether to ignore systemd-inhibit --what=idle inhibitors
-}
-
-listener {
- timeout = 300 # 5min
- on-timeout = hyprlock # command to run when timeout has passed
- on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired.
-}
-
-listener {
- timeout = 320 # in seconds
- on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed
- on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired.
-}
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
index e03c3f1..9d47e7d 100644
--- a/.config/hypr/hyprland.conf
+++ b/.config/hypr/hyprland.conf
@@ -1,58 +1,37 @@
-################
-### MONITORS ###
-################
+monitor = DP-2, 2560x1440@165, 0x0, 1
+monitor = DP-3, 2560x1440@240, 2560x0,1
-monitor=,preferred,auto,auto
-monitor=DP-3,2560x1440@240,2560x0,1
-monitor=DP-2,2560x1440@165,0x0,1
-
-###################
-### MY PROGRAMS ###
-###################
-
-$terminal = foot
-$fileManager = dolphin
+$terminal = kitty
+$browser = firefox
+$fileManager = kitty lf
$menu = wofi --show drun
-$browser = firefox
-
-#################
-### AUTOSTART ###
-#################
-exec-once=pipewire & pipewire-pulse & wireplumber
-exec-once=hyprpaper & waybar & mako
-exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
-exec-once=/home/awy/.config/hypr/portalstart
-exec-once = hypridle
+exec-once = pipewire & pipewire-pulse & wireplumber
+exec-once = start-portal
+exec-once = hyprpaper & waybar
-#############################
-### ENVIRONMENT VARIABLES ###
-#############################
-
-env = XCURSOR_THEME,Adwaita-old
+env = QT_SCREEN_SCALE_FACTORS,1;1
env = XCURSOR_SIZE,24
-env = HYPRCURSOR_THEME,Adwaita-old
env = HYPRCURSOR_SIZE,24
env = LIBVA_DRIVER_NAME,nvidia
-env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
-env = EDITOR,nvim
-env = ELECTRON_OZONE_PLATFORM_HINT,auto
-env = SUDO,doas
-
-#####################
-### LOOK AND FEEL ###
-#####################
+env = QT_QPA_PLATFORM,wayland
+env = QT_QPA_PLATFORMTHEME,qt6ct
+env = CLUTTER_BACKEND,wayland
+env = SDL_VIDEODRIVER,wayland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_DESKTOP,Hyprland
general {
gaps_in = 5
- gaps_out = 10
+ gaps_out = 20
border_size = 2
- col.active_border = rgba(fbf1c7ee)
- col.inactive_border = rgba(3c3836ee)
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.inactive_border = rgba(595959aa)
resize_on_border = false
@@ -62,69 +41,64 @@ general {
}
decoration {
- rounding = 0
+ rounding = 10
active_opacity = 1.0
inactive_opacity = 1.0
- drop_shadow = false
- shadow_range = 32
- shadow_render_power = 4
+ drop_shadow = true
+ shadow_range = 4
+ shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
blur {
- enabled = false
- size = 2
- passes = 4
- xray = false
- ignore_opacity = true
+ enabled = true
+ size = 3
+ passes = 1
+
vibrancy = 0.1696
- popups = true
}
}
animations {
- enabled = yes
+ enabled = true
- bezier = quart, 0.25, 1, 0.5, 1
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
- animation = windows, 1, 5, quart, slide
- animation = border, 1, 5, quart
- animation = borderangle, 1, 5, quart
- animation = fade, 1, 5, quart
- animation = workspaces, 1, 5, quart, slidevert
+ animation = windows, 1, 7, myBezier
+ animation = windowsOut, 1, 7, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 6, default
}
-
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
- no_gaps_when_only = 0
}
-misc {
- force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
- disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
- disable_splash_rendering = true
- enable_swallow = 1
- swallow_regex = ^(foot)$
+master {
+ new_status = master
}
-#############
-### INPUT ###
-#############
+misc {
+ force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
+}
input {
kb_layout = us,ru
kb_variant =
kb_model =
- kb_options = grp:alt_shift_toggle
+ kb_options = grp:alt_shift_toogle
kb_rules =
+ force_no_accel = 1
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
- force_no_accel = 1
+
touchpad {
natural_scroll = false
}
@@ -134,28 +108,23 @@ gestures {
workspace_swipe = false
}
-####################
-### KEYBINDINGS ###
-####################
-
$mainMod = SUPER # Sets "Windows" key as main modifier
bind = $mainMod, Return, exec, $terminal
-bind = $mainMod SHIFT, Q, killactive,
+bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit,
-bind = $mainMod, E, exec, $fileManager
-bind = $mainMod SHIFT, B, exec, $browser
+bind = $mainMod, W, exec, $browser
+bind = $mainMod, R, exec, $fileManager
bind = $mainMod, V, togglefloating,
-bind = $mainMod, Space, exec, $menu
+bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod SHIFT, J, togglesplit, # dwindle
bind = $mainMod, F, fullscreen,
bind = $mainMod SHIFT, Return, swapnext
-bind = $mainMod SHIFT, S, exec, grim -g "$(slurp -d)" - | wl-copy
bind =,XF86AudioPlay, exec, playerctl play-pause
bind =,XF86AudioPrev, exec, playerctl previous
bind =,XF86AudioNext, exec, playerctl next
-bind =,mouse:276, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bind =,mouse:276, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && pkill -RTMIN+8 waybar
bind = $mainMod SHIFT, L, resizeactive, 100 0
bind = $mainMod SHIFT, H, resizeactive, -100 0
@@ -188,6 +157,7 @@ bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
@@ -195,19 +165,4 @@ bind = $mainMod, mouse_up, workspace, e-1
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
-##############################
-### WINDOWS AND WORKSPACES ###
-##############################
-
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
-
-workspace=1,monitor:DP-2, persistent:true
-workspace=2,monitor:DP-2, persistent:true
-workspace=3,monitor:DP-3, persistent:true
-workspace=4,monitor:DP-3, persistent:true
-
-layerrule = blur, notifications
-layerrule = ignorezero, notifications
-layerrule = blur, waybar
-#layerrule = xray 1, waybar
-
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
deleted file mode 100644
index 41f134a..0000000
--- a/.config/hypr/hyprlock.conf
+++ /dev/null
@@ -1,83 +0,0 @@
-general {
- ignore_empty_input = true
-}
-
-background {
- monitor =
- #path = ~/.local/share/papes/wallhaven-kxg8xm_3840x2160.png
- color = rgba(1e1e2ee0)
-
- # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
- blur_passes = 4
- blur_size = 6
- noise = 0.05
- contrast = 1.0
- brightness = 0.8
- vibrancy = 0.15
- vibrancy_darkness = 1.0
-}
-
-label {
- monitor =
- text = $TIME
- text_align = center # center/right or any value for default left. multi-line text alignment inside label container
- color = rgb(255, 255, 255)
- font_size = 128
- font_family = JetBrainsMonoNerdFontMono Bold
- rotate = 0 # degrees, counter-clockwise
-
- position = 0, 360
- halign = center
- valign = center
-}
-label {
- monitor =
- text = Welcome back, $USER!
- text_align = center # center/right or any value for default left. multi-line text alignment inside label container
- color = rgb(255, 255, 255)
- font_size = 32
- font_family = JetBrainsMonoNerdFontMono Bold
- rotate = 0 # degrees, counter-clockwise
-
- position = 0, 100
- halign = center
- valign = center
-}
-
-input-field {
- monitor =
-
- shadow_passes = 4
- shadow_size = 6
- shadow_color = rgb(74c7ec)
- shadow_boost = 1.0
-
- size = 120, 40
- outline_thickness = 4
- dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
- dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
- dots_center = true
- dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
- outer_color = rgb(74c7ec)
- inner_color = rgba(1e1e2ef0)
- font_color = rgb(cdd6f4)
- fade_on_empty = false
- fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
- placeholder_text = <i></i> # Text rendered in the input box when it's empty.
- hide_input = false
- rounding = -1 # -1 means complete rounding (circle/oval)
- check_color = rgb(f9e2af)
- fail_color = rgb(f38ba8) # if authentication failed, changes outer_color and fail message color
- # fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
- fail_text = <i></i>
- fail_transition = 300 # transition time in ms between normal outer_color and fail_color
- capslock_color = -1
- numlock_color = -1
- bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
- invert_numlock = false # change color if numlock is off
- swap_font_color = false # see below
-
- position = 0, -20
- halign = center
- valign = center
-}
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
index ff3d4cc..8054ae1 100644
--- a/.config/hypr/hyprpaper.conf
+++ b/.config/hypr/hyprpaper.conf
@@ -1,4 +1,7 @@
ipc = on
-preload = /mnt/ssd/papes/thiemeyer_road_to_samarkand.jpg
-wallpaper = , /mnt/ssd/papes/thiemeyer_road_to_samarkand.jpg
+preload = /mnt/ssd/papes/wallhaven-0j7k1q_2560x1440.png
+#preload = "/mnt/ssd/papes/wallhaven-wegw36_2560x1440.png"
+
+wallpaper = , /mnt/ssd/papes/wallhaven-0j7k1q_2560x1440.png
splash = false
+#wallpaper = DP-3,/mnt/ssd/papes/wallhaven-wegw36_2560x1440.png
diff --git a/.config/hypr/portalstart b/.config/hypr/portalstart
deleted file mode 100755
index 8f692bf..0000000
--- a/.config/hypr/portalstart
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-sleep 1
-killall xdg-desktop-portal-hyprland
-killall xdg-desktop-portal-wlr
-killall xdg-desktop-portal
-/usr/lib/xdg-desktop-portal-hyprland &
-sleep 2
-/usr/lib/xdg-desktop-portal &
diff --git a/.config/hypr/start.sh b/.config/hypr/start
index 75123a3..f52cc13 100755
--- a/.config/hypr/start.sh
+++ b/.config/hypr/start
@@ -1,4 +1,5 @@
-cd ~
+#!/bin/dash
+
export XDG_RUNTIME_DIR="/tmp/hyprland"
mkdir -p $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
diff --git a/.config/kitty/gruvbox.conf b/.config/kitty/gruvbox.conf
new file mode 100644
index 0000000..9d938d2
--- /dev/null
+++ b/.config/kitty/gruvbox.conf
@@ -0,0 +1,55 @@
+# Based on https://github.com/morhetz/gruvbox by morhetz <morhetz@gmail.com>
+# Adapted to kitty by wdomitrz <witekdomitrz@gmail.com>
+
+cursor #928374
+cursor_text_color background
+
+url_color #83a598
+
+visual_bell_color #8ec07c
+bell_border_color #8ec07c
+
+active_border_color #d3869b
+inactive_border_color #665c54
+
+foreground #ebdbb2
+background #282828
+selection_foreground #928374
+selection_background #ebdbb2
+
+active_tab_foreground #fbf1c7
+active_tab_background #665c54
+inactive_tab_foreground #a89984
+inactive_tab_background #3c3836
+
+# black (bg3/bg4)
+color0 #665c54
+color8 #7c6f64
+
+# red
+color1 #cc241d
+color9 #fb4934
+
+#: green
+color2 #98971a
+color10 #b8bb26
+
+# yellow
+color3 #d79921
+color11 #fabd2f
+
+# blue
+color4 #458588
+color12 #83a598
+
+# purple
+color5 #b16286
+color13 #d3869b
+
+# aqua
+color6 #689d6a
+color14 #8ec07c
+
+# white (fg4/fg3)
+color7 #a89984
+color15 #bdae93
diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf
new file mode 100644
index 0000000..634410a
--- /dev/null
+++ b/.config/kitty/kitty.conf
@@ -0,0 +1,9 @@
+include gruvbox.conf
+font_size 16.0
+font_family JetBrainsMono Nerd Font Mono
+bold_font auto
+italic_font auto
+bold_italic_font auto
+
+window_padding_width 10
+background_opacity 0.8
diff --git a/.config/lf/cleaner b/.config/lf/cleaner
index 9b48783..1227249 100755
--- a/.config/lf/cleaner
+++ b/.config/lf/cleaner
@@ -1,4 +1,4 @@
#!/bin/sh
#rm ~/.cache/lf/* -f
-#exec kitty +kitten icat --clear --stdin no --silent --transfer-mode file </dev/null >/dev/tty
+exec kitty +kitten icat --clear --stdin no --silent --transfer-mode file </dev/null >/dev/tty
diff --git a/.config/lf/kitty_scope b/.config/lf/kitty_scope
deleted file mode 100755
index a7d0bc1..0000000
--- a/.config/lf/kitty_scope
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-draw() {
- kitty +kitten icat --silent --stdin no --transfer-mode file --place "${w}x${h}@${x}x${y}" "$1" </dev/null >/dev/tty
- exit 1
-}
-
-file="$1"
-w="$2"
-h="$3"
-x="$4"
-y="$5"
-
-case "$(file -Lb --mime-type "$file")" in
- image/*)
- draw "$file"
- ;;
- audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;;
- video/*)
- # vidthumb is from here:
- # https://raw.githubusercontent.com/duganchen/kitty-pistol-previewer/main/vidthumb
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
- [ ! -f "$CACHE" ] && ffmpegthumbnailer -i "$1" -o "$CACHE" -s 0
- draw "$CACHE"
- #draw "$(vidthumb "$file")"
- ;;
- text/* | */xml | application/json | application/x-ndjson) bat -p --theme ansi --terminal-width "$(($4-2))" -f "$1" ;;
-esac
-
-#pistol "$file"lace "${2}x${3}@${4}x${5}" "$1"
diff --git a/.config/lf/scope b/.config/lf/scope
index b79c4b6..a7d0bc1 100755
--- a/.config/lf/scope
+++ b/.config/lf/scope
@@ -1,13 +1,29 @@
#!/bin/sh
-case "$(file -Lb --mime-type -- "$1")" in
+draw() {
+ kitty +kitten icat --silent --stdin no --transfer-mode file --place "${w}x${h}@${x}x${y}" "$1" </dev/null >/dev/tty
+ exit 1
+}
+
+file="$1"
+w="$2"
+h="$3"
+x="$4"
+y="$5"
+
+case "$(file -Lb --mime-type "$file")" in
image/*)
- chafa -f sixel -s "$2x$3" --animate off --polite on "$1"
- exit 1
+ draw "$file"
;;
- text/* | */xml | application/json | application/x-ndjson) bat -p --theme ansi --terminal-width "$(($4-2))" -f "$1" ;;
- audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;;
+ audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;;
video/*)
+ # vidthumb is from here:
+ # https://raw.githubusercontent.com/duganchen/kitty-pistol-previewer/main/vidthumb
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
[ ! -f "$CACHE" ] && ffmpegthumbnailer -i "$1" -o "$CACHE" -s 0
- chafa -f sixel -s "$2x$3" --animate off --polite on "$CACHE"
+ draw "$CACHE"
+ #draw "$(vidthumb "$file")"
+ ;;
+ text/* | */xml | application/json | application/x-ndjson) bat -p --theme ansi --terminal-width "$(($4-2))" -f "$1" ;;
esac
+
+#pistol "$file"lace "${2}x${3}@${4}x${5}" "$1"
diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf
deleted file mode 100644
index ab02f44..0000000
--- a/.config/mpd/mpd.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-db_file "~/.config/mpd/mpd.db"
-log_file "~/.config/mpd/mpd.log"
-pid_file "~/.config/mpd/mpd.pid"
-state_file "~/.config/mpd/mpdstate"
-
-music_directory "/mnt/ssd/music"
-
-auto_update "yes"
-bind_to_address "0.0.0.0"
-port "6600"
-#restore_paused "yes"
-#max_output_buffer_size "16384"
-
-audio_output {
- type "pipewire"
- name "PipeWire Sound Server"
-}
-
-
diff --git a/.config/shell/profile b/.config/shell/profile
index 1391f75..4388c6d 100644
--- a/.config/shell/profile
+++ b/.config/shell/profile
@@ -1,2 +1,12 @@
+export PATH="$PATH:$(find ~/.local/bin -type d | paste -sd ':' -)"
export ZDOTDIR="$HOME/.config/zsh"
-[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Hyprland >/dev/null 2>&1 && exec "/home/awy/.config/hypr/start.sh"
+export BROWSER="firefox"
+export EDITOR="nvim"
+
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_DATA_HOME="$HOME/.local/share"
+export XDG_CACHE_HOME="$HOME/.cache"
+export XDG_DOWNLOAD_DIR="$HOME/downloads"
+
+[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Hyprland >/dev/null 2>&1 && exec "$XDG_CONFIG_HOME/hypr/start"
+
diff --git a/.config/waybar/config b/.config/waybar/config
index 6ab4771..96c66c5 100644
--- a/.config/waybar/config
+++ b/.config/waybar/config
@@ -5,7 +5,7 @@
"reload_style_on_change": true,
"modules-left": ["hyprland/workspaces", "hyprland/window"],
"modules-center": [],
- "modules-right": ["network", "custom/weather","memory", "pulseaudio","wireplumber", "clock","tray"],
+ "modules-right": ["custom/memory","custom/doppler","custom/forecast","custom/nettraf","custom/microphone","custom/volume","custom/clock","custom/internet"],
"hyprland/window": {
"format": "{}",
@@ -18,105 +18,85 @@
"all-outputs": true,
"on-click": "activate",
"format": "{name}",
- "format-icons": {
- "1": "",
- "2": "",
- "3": "",
- "4": "",
- "5": "",
- "default": ""
- },
},
- "network": {
- "interface": "wg0",
- "tooltip": false,
- "format": "VPN",
- "format-disconnected": "VPN",
- "on-click": "~/.config/waybar/scripts/vpn-toggle",
- },
- "tray": {
- "spacing": 10
- },
- "clock": {
- "interval": 60,
- "format": "{:%Y %b %d (%a) 🕙 %H:%M}",
- "tooltip-format": "{:%a %d %b}"
- },
- "mpris": {
- "tooltip": false,
- "format": "{player_icon} {artist} - {title}",
- "format-paused": "{status_icon} <b>{artist} - {title}</b>",
- "player-icons": {
- "default": "▶",
- "spotify_player": "",
- },
- "status-icons": {
- "paused": "󰏤",
- "stopped": "",
- },
- "ignored-players": ["firefox"]
- },
- "cpu": {
- "interval": 10,
- "format": " {usage}%",
- "tooltip": false,
- "spacing": 0
- },
- "memory": {
- "tooltip": false,
- "format": " {used:0.01f}Gb",
- "interval": 10,
- },
- "temperature": {
- "tooltip": false,
- "thermal-zone": 2,
- "format": " {temperatureC}°C",
- "interval": 10,
+
+ "custom/memory" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 14,
+ "exec" : "sb-memory",
+ "interval": 10,
+ "on-click": "sb-memory 1",
+ "on-click-right": "sb-memory 3",
+ "on-click-middle": "sb-memory 2"
},
- "image":{
- "exec":"~/.config/waybar/scripts/album_art.sh",
- //"path": "/tmp/cover.jpeg",
- "size": 32,
- "interval": 5,
+
+ "custom/doppler" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 13,
+ "exec" : "sb-doppler",
+ "on-click": "sb-doppler 1",
+ "on-click-right": "sb-doppler 3",
+ "on-click-middle": "pkill -RTMIN+13 waybar"
},
- "wireplumber": {
- "format": "{icon} {volume}%",
- "format-muted": "󰝟",
- "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
- "format-icons": [" ", " ", " "]
+
+ "custom/forecast" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 5,
+ "exec" : "sb-forecast",
+ "interval" : 1800,
+ "on-click": "sb-forecast 1",
+ "on-click-right": "sb-forecast 3",
+ "on-click-middle": "pkill -RTMIN+5 waybar"
},
- "pulseaudio": {
- "tooltip" : false,
- "format": "{format_source}",
- "format-source": " {volume}%",
- "format-source-muted": " ",
- "on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
+
+ "custom/nettraf" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 16,
+ "exec" : "sb-nettraf",
+ "interval" : 1,
+ "on-click": "",
},
- "custom/weather" : {
- "tooltip" : false,
- "signal": 9,
- "format" : "{}",
- "interval" : 300,
- "exec" : "~/.config/waybar/scripts/weather",
- "on-click": "~/.config/waybar/scripts/hyprweather",
- "on-click-right": "pkill -RTMIN+9 waybar"
+
+ "custom/microphone" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 8,
+ "exec" : "sb-microphone",
+ "on-click": "wpctl set-mute @DEFAULT_SOURCE@ toggle; pkill -RTMIN+8 waybar",
+ "on-scroll-up": "wpctl set-volume @DEFAULT_SOURCE@ 0.01+; pkill -RTMIN+8 waybar",
+ "on-scroll-down": "wpctl set-volume @DEFAULT_SOURCE@ 0.01-; pkill -RTMIN+8 waybar",
},
- "custom/pacman" : {
- "tooltip" : false,
- "signal": 8,
- "format" : "{}",
- "interval" : 18000,
- "exec" : "~/.config/waybar/scripts/pacpackages",
- "on-click" : "~/.config/waybar/scripts/pacupdate",
- "on-click-right" : "pkill -RTMIN+8 waybar"
+ "custom/volume" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 10,
+ "exec" : "sb-volume",
+ "on-click": "wpctl set-mute @DEFAULT_SINK@ toggle; pkill -RTMIN+10 waybar",
+ "on-scroll-up": "wpctl set-volume @DEFAULT_SINK@ 0.01+; pkill -RTMIN+10 waybar",
+ "on-scroll-down": "wpctl set-volume @DEFAULT_SINK@ 0.01-; pkill -RTMIN+10 waybar",
},
- "custom/separator" : {
- "format" : " | ",
+
+ "custom/clock" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 1,
+ "exec" : "sb-clock",
+ "interval" : 60,
+ "on-click": "",
},
- "custom/doppler" : {
- "format": "🌅 ",
- "on-click": "~/.config/waybar/scripts/hyprdoppler",
+
+ "custom/internet" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 4,
+ "exec" : "sb-internet",
+ "on-click": "sb-internet 1; pkill -RTMIN+4 waybar",
+ "on-click-right": "sb-internet 3; pkill -RTMIN+4 waybar",
+ "on-click-middle": "pkill -RTMIN+4 waybar"
}
}
-
diff --git a/.config/waybar/scripts/album_art.sh b/.config/waybar/scripts/album_art.sh
deleted file mode 100755
index 5a8cdab..0000000
--- a/.config/waybar/scripts/album_art.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-album_art=$(playerctl -p spotify_player metadata mpris:artUrl)
-if [[ -z $album_art ]]
-then
- # spotify is dead, we should die too.
- exit
-fi
-curl -s "${album_art}" --output "/tmp/cover.jpeg"
-echo "/tmp/cover.jpeg"
diff --git a/.config/waybar/scripts/doppler b/.config/waybar/scripts/doppler
deleted file mode 100755
index 3d1b7dc..0000000
--- a/.config/waybar/scripts/doppler
+++ /dev/null
@@ -1 +0,0 @@
-curl -s "https://meteoinfo.ru/hmc-output/rmap/phenomena.gif" | imv - -H 1200 -W 1200
diff --git a/.config/waybar/scripts/hyprdoppler b/.config/waybar/scripts/hyprdoppler
deleted file mode 100755
index d383b32..0000000
--- a/.config/waybar/scripts/hyprdoppler
+++ /dev/null
@@ -1 +0,0 @@
-hyprctl dispatch exec "[float; size 1200 1200;]" '/home/awy/.config/waybar/scripts/doppler'
diff --git a/.config/waybar/scripts/hyprweather b/.config/waybar/scripts/hyprweather
deleted file mode 100755
index 6a1e698..0000000
--- a/.config/waybar/scripts/hyprweather
+++ /dev/null
@@ -1 +0,0 @@
-hyprctl dispatch exec "[float; size 1430 1100;]" 'foot "/home/awy/.config/waybar/scripts/onclick-weather"'
diff --git a/.config/waybar/scripts/onclick-weather b/.config/waybar/scripts/onclick-weather
deleted file mode 100755
index 9592932..0000000
--- a/.config/waybar/scripts/onclick-weather
+++ /dev/null
@@ -1,2 +0,0 @@
-curl wttr.in
-read -p "Press Enter to continue..."
diff --git a/.config/waybar/scripts/pacpackages b/.config/waybar/scripts/pacpackages
deleted file mode 100755
index e362ee2..0000000
--- a/.config/waybar/scripts/pacpackages
+++ /dev/null
@@ -1,2 +0,0 @@
-doas pacman -Sy > /dev/null 2>&1
-pacman -Qu | grep -Fcv "[ignored]" | sed "s/^/📦 /;s/^📦 0$//g"
diff --git a/.config/waybar/scripts/pacupdate b/.config/waybar/scripts/pacupdate
deleted file mode 100755
index 0bdf32e..0000000
--- a/.config/waybar/scripts/pacupdate
+++ /dev/null
@@ -1,4 +0,0 @@
-doas pacman -Syu --noconfirm
-sleep 5
-hyprctl notify 5 10000 "rgb(ff1ea3)" " Packages have been upgraded"
-pkill -RTMIN+8 waybar
diff --git a/.config/waybar/scripts/vpn-toggle b/.config/waybar/scripts/vpn-toggle
deleted file mode 100755
index 4b48203..0000000
--- a/.config/waybar/scripts/vpn-toggle
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-if [ -d /sys/class/net/wg0 ]; then
- doas wg-quick down wg0
- hyprctl notify 5 5000 "rgb(ff0000)" " VPN is disabled"
-else
- doas wg-quick up wg0
- hyprctl notify 5 5000 "rgb(008000)" " VPN is enabled"
-fi
diff --git a/.config/waybar/scripts/weather b/.config/waybar/scripts/weather
deleted file mode 100755
index 1e87ac8..0000000
--- a/.config/waybar/scripts/weather
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-#curl -s "wttr.in/?format=3" | awk '{print $3, $4}'
-curl -s "wttr.in/Moscow?format='%c%t'" | sed "s/'//g" | sed 's/ / /g'
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
index 64d425a..ac0dc89 100644
--- a/.config/waybar/style.css
+++ b/.config/waybar/style.css
@@ -1,14 +1,14 @@
-@import "theme.css";
* {
border: none;
border-radius: 0;
- font-family: monospace;
+ font-family: JetBrainsMono Nerd Font Propo;
font-weight: normal;
font-size: 14px;
min-height: 0;
}
#waybar {
+ color: #EBDBB2;
background: #282828;
}
@@ -34,51 +34,14 @@ tooltip {
margin-left: 15px;
}
-#mpris {
- color: @mauve;
-}
-
-#network {
- color: #b8bb26;
-}
-
-#network.disconnected {
- color: #fb4934;
-}
-
-#custom-weather {
- color: #EBDBB2;
-}
-
-#custom-pacman {
- color: #EBDBB2;
-}
-
-#pulseaudio {
- color: #EBDBB2;
-}
-
-#wireplumber {
- color: #EBDBB2;
+#custom-nettraf {
+ min-width: 120px;
}
-#cpu {
- color: @yellow;
-}
-
-#memory {
- color: #EBDBB2;
-}
-
-#temperature {
- color: #EBDBB2;
-}
-
-#clock {
- color: #EBDBB2;
- margin-right: 10px;
+#custom-volume {
+ min-width: 60px;
}
-#tray {
- color: @red;
+#custom-internet {
+ margin-right: 15px;
}
diff --git a/.config/waybar/theme.css b/.config/waybar/theme.css
deleted file mode 100644
index 0eb6a82..0000000
--- a/.config/waybar/theme.css
+++ /dev/null
@@ -1,26 +0,0 @@
-@define-color rosewater #f5e0dc;
-@define-color flamingo #f2cdcd;
-@define-color pink #f5c2e7;
-@define-color mauve #cba6f7;
-@define-color red #f38ba8;
-@define-color maroon #eba0ac;
-@define-color peach #fab387;
-@define-color yellow #f9e2af;
-@define-color green #a6e3a1;
-@define-color teal #94e2d5;
-@define-color sky #89dceb;
-@define-color sapphire #74c7ec;
-@define-color blue #89b4fa;
-@define-color lavender #b4befe;
-@define-color text #cdd6f4;
-@define-color subtext1 #bac2de;
-@define-color subtext0 #a6adc8;
-@define-color overlay2 #9399b2;
-@define-color overlay1 #7f849c;
-@define-color overlay0 #6c7086;
-@define-color surface2 #585b70;
-@define-color surface1 #45475a;
-@define-color surface0 #313244;
-@define-color base #1e1e2e;
-@define-color mantle #181825;
-@define-color crust #11111b;
diff --git a/.config/zsh/.zcompdump b/.config/zsh/.zcompdump
new file mode 100644
index 0000000..3864698
--- /dev/null
+++ b/.config/zsh/.zcompdump
@@ -0,0 +1,1804 @@
+#files: 793 version: 5.9
+
+_comps=(
+'-' '_precommand'
+'.' '_source'
+'5g' '_go'
+'5l' '_go'
+'6g' '_go'
+'6l' '_go'
+'8g' '_go'
+'8l' '_go'
+'a2ps' '_a2ps'
+'aaaa' '_hosts'
+'aap' '_aap'
+'abcde' '_abcde'
+'ack' '_ack'
+'ack2' '_ack'
+'ack-grep' '_ack'
+'ack-standalone' '_ack'
+'acpi' '_acpi'
+'acpitool' '_acpitool'
+'acroread' '_acroread'
+'adb' '_adb'
+'add-zle-hook-widget' '_add-zle-hook-widget'
+'add-zsh-hook' '_add-zsh-hook'
+'admin' '_sccs'
+'ali' '_mh'
+'alias' '_alias'
+'amaya' '_webbrowser'
+'analyseplugin' '_analyseplugin'
+'animate' '_imagemagick'
+'anno' '_mh'
+'ansible' '_ansible'
+'ansible-config' '_ansible'
+'ansible-console' '_ansible'
+'ansible-doc' '_ansible'
+'ansible-galaxy' '_ansible'
+'ansible-inventory' '_ansible'
+'ansible-playbook' '_ansible'
+'ansible-pull' '_ansible'
+'ansible-vault' '_ansible'
+'ant' '_ant'
+'antiword' '_antiword'
+'aodh' '_openstack'
+'aoss' '_precommand'
+'apache2ctl' '_apachectl'
+'apachectl' '_apachectl'
+'aplay' '_alsa-utils'
+'apm' '_apm'
+'appletviewer' '_java'
+'apropos' '_man'
+'apvlv' '_pdf'
+'arduino-ctags' '_ctags'
+'arecord' '_alsa-utils'
+'arena' '_webbrowser'
+'_arguments' '__arguments'
+'arp' '_arp'
+'arping' '_arping'
+'-array-value-' '_value'
+'asciidoctor' '_asciidoctor'
+'asciinema' '_asciinema'
+'ash' '_sh'
+'-assign-parameter-' '_assign'
+'at' '_at'
+'atq' '_at'
+'atrm' '_at'
+'attr' '_attr'
+'augtool' '_augeas'
+'autoload' '_typeset'
+'avahi-browse' '_avahi'
+'avahi-browse-domains' '_avahi'
+'avahi-resolve' '_avahi'
+'avahi-resolve-address' '_avahi'
+'avahi-resolve-host-name' '_avahi'
+'awk' '_awk'
+'b2sum' '_md5sum'
+'barbican' '_openstack'
+'base32' '_base64'
+'base64' '_base64'
+'basename' '_basename'
+'basenc' '_basenc'
+'bash' '_bash'
+'bat' '_bat'
+'batch' '_at'
+'baz' '_baz'
+'beep' '_beep'
+'bg' '_jobs_bg'
+'bibtex' '_bibtex'
+'bindkey' '_bindkey'
+'bison' '_bison'
+'bmake' '_make'
+'bogofilter' '_bogofilter'
+'bogotune' '_bogofilter'
+'bogoutil' '_bogofilter'
+'bpython' '_bpython'
+'bpython2' '_bpython'
+'bpython2-gtk' '_bpython'
+'bpython2-urwid' '_bpython'
+'bpython3' '_bpython'
+'bpython3-gtk' '_bpython'
+'bpython3-urwid' '_bpython'
+'bpython-gtk' '_bpython'
+'bpython-urwid' '_bpython'
+'-brace-parameter-' '_brace_parameter'
+'brctl' '_brctl'
+'bsdgrep' '_grep'
+'bsdtar' '_tar'
+'btdownloadcurses' '_bittorrent'
+'btdownloadgui' '_bittorrent'
+'btdownloadheadless' '_bittorrent'
+'btlaunchmany' '_bittorrent'
+'btlaunchmanycurses' '_bittorrent'
+'btmakemetafile' '_bittorrent'
+'btreannounce' '_bittorrent'
+'btrename' '_bittorrent'
+'btrfs' '_btrfs'
+'btshowmetainfo' '_bittorrent'
+'bttrack' '_bittorrent'
+'buildhash' '_ispell'
+'builtin' '_builtin'
+'bunzip2' '_bzip2'
+'burst' '_mh'
+'busctl' '_busctl'
+'bzcat' '_bzip2'
+'bzegrep' '_grep'
+'bzfgrep' '_grep'
+'bzgrep' '_grep'
+'bzip2' '_bzip2'
+'bzip2recover' '_bzip2'
+'bzr' '_bzr'
+'c++' '_gcc'
+'cabal' '_cabal'
+'cal' '_cal'
+'calendar' '_calendar'
+'cargo' '_cargo'
+'cat' '_cat'
+'catchsegv' '_precommand'
+'cc' '_gcc'
+'ccal' '_ccal'
+'cd' '_cd'
+'cdc' '_sccs'
+'cdcd' '_cdcd'
+'cdr' '_cdr'
+'cdrdao' '_cdrdao'
+'cdrecord' '_cdrecord'
+'ceilometer' '_openstack'
+'certtool' '_gnutls'
+'cftp' '_twisted'
+'chafa' '_chafa'
+'chage' '_users'
+'chattr' '_chattr'
+'chcon' '_chcon'
+'chdir' '_cd'
+'chfn' '_users'
+'chgrp' '_chown'
+'chimera' '_webbrowser'
+'chkconfig' '_chkconfig'
+'chkstow' '_stow'
+'chmod' '_chmod'
+'choom' '_choom'
+'chown' '_chown'
+'chpass' '_chsh'
+'chroot' '_chroot'
+'chrt' '_chrt'
+'chsh' '_chsh'
+'ci' '_rcs'
+'cifsiostat' '_sysstat'
+'cinder' '_openstack'
+'ckeygen' '_twisted'
+'cksum' '_cksum'
+'clang' '_gcc'
+'clang++' '_gcc'
+'clay' '_clay'
+'clear' '_nothing'
+'cloudkitty' '_openstack'
+'clusterdb' '_postgresql'
+'cmp' '_cmp'
+'co' '_rcs'
+'code' '_code'
+'column' '_column'
+'comb' '_sccs'
+'combine' '_imagemagick'
+'combinediff' '_patchutils'
+'comm' '_comm'
+'-command-' '_autocd'
+'command' '_command'
+'-command-line-' '_normal'
+'comp' '_mh'
+'compadd' '_compadd'
+'compdef' '_compdef'
+'composer' '_composer'
+'composer.phar' '_composer'
+'composite' '_imagemagick'
+'compress' '_compress'
+'conch' '_twisted'
+'-condition-' '_condition'
+'config.status' '_configure'
+'configure' '_configure'
+'convert' '_imagemagick'
+'cowsay' '_cowsay'
+'cowthink' '_cowsay'
+'cp' '_cp'
+'cpio' '_cpio'
+'cplay' '_cplay'
+'cpupower' '_cpupower'
+'createdb' '_postgresql'
+'createuser' '_postgresql'
+'crontab' '_crontab'
+'crsh' '_cssh'
+'cryptsetup' '_cryptsetup'
+'cscope' '_cscope'
+'csh' '_sh'
+'csplit' '_csplit'
+'cssh' '_cssh'
+'ctags' '_ctags'
+'ctags-exuberant' '_ctags'
+'ctags-universal' '_ctags'
+'curl' '_curl'
+'cut' '_cut'
+'cvs' '_cvs'
+'darcs' '_darcs'
+'dash' '_sh'
+'date' '_date'
+'dbus-launch' '_dbus'
+'dbus-monitor' '_dbus'
+'dbus-send' '_dbus'
+'dconf' '_dconf'
+'dcop' '_dcop'
+'dcopclient' '_dcop'
+'dcopfind' '_dcop'
+'dcopobject' '_dcop'
+'dcopref' '_dcop'
+'dcopstart' '_dcop'
+'dd' '_dd'
+'declare' '_typeset'
+'-default-' '_default'
+'delta' '_sccs'
+'designate' '_openstack'
+'devtodo' '_devtodo'
+'df' '_df'
+'dhclient' '_dhclient'
+'dhclient3' '_dhclient'
+'dict' '_dict'
+'diff' '_diff'
+'diff3' '_diff3'
+'diffstat' '_diffstat'
+'dig' '_dig'
+'dillo' '_webbrowser'
+'dircmp' '_directories'
+'dirs' '_dirs'
+'disable' '_disable'
+'disown' '_jobs_fg'
+'display' '_imagemagick'
+'dist' '_mh'
+'django-admin' '_django'
+'django-admin.py' '_django'
+'dkms' '_dkms'
+'dmake' '_make'
+'dmesg' '_dmesg'
+'dmidecode' '_dmidecode'
+'doas' '_doas'
+'domainname' '_yp'
+'dos2unix' '_dos2unix'
+'drill' '_drill'
+'dropbox' '_dropbox'
+'dropdb' '_postgresql'
+'dropuser' '_postgresql'
+'dsh' '_dsh'
+'dtruss' '_dtruss'
+'du' '_du'
+'dvibook' '_dvi'
+'dviconcat' '_dvi'
+'dvicopy' '_dvi'
+'dvidvi' '_dvi'
+'dvipdf' '_dvi'
+'dvips' '_dvi'
+'dviselect' '_dvi'
+'dvitodvi' '_dvi'
+'dvitype' '_dvi'
+'dwb' '_webbrowser'
+'e2label' '_e2label'
+'eatmydata' '_precommand'
+'ecasound' '_ecasound'
+'echotc' '_echotc'
+'echoti' '_echoti'
+'ed' '_ed'
+'egrep' '_grep'
+'elfdump' '_elfdump'
+'elinks' '_elinks'
+'emulate' '_emulate'
+'enable' '_enable'
+'enscript' '_enscript'
+'entr' '_entr'
+'env' '_env'
+'eog' '_eog'
+'epdfview' '_pdf'
+'epsffit' '_psutils'
+'-equal-' '_equal'
+'erb' '_ruby'
+'espeak' '_espeak'
+'etags' '_etags'
+'ethtool' '_ethtool'
+'eu-nm' '_nm'
+'eu-objdump' '_objdump'
+'eu-readelf' '_readelf'
+'eu-strings' '_strings'
+'eval' '_precommand'
+'eview' '_vim'
+'evim' '_vim'
+'evince' '_evince'
+'ex' '_vi'
+'exec' '_exec'
+'expand' '_unexpand'
+'export' '_typeset'
+'express' '_webbrowser'
+'extcheck' '_java'
+'extractres' '_psutils'
+'fakeroot' '_fakeroot'
+'false' '_nothing'
+'fc' '_fc'
+'fc-list' '_xft_fonts'
+'fc-match' '_xft_fonts'
+'feh' '_feh'
+'fetchmail' '_fetchmail'
+'ffmpeg' '_ffmpeg'
+'fg' '_jobs_fg'
+'fgrep' '_grep'
+'figlet' '_figlet'
+'filterdiff' '_patchutils'
+'find' '_find'
+'findaffix' '_ispell'
+'findmnt' '_findmnt'
+'finger' '_finger'
+'firefox' '_mozilla'
+'-first-' '_first'
+'fixdlsrps' '_psutils'
+'fixfmps' '_psutils'
+'fixmacps' '_psutils'
+'fixpsditps' '_psutils'
+'fixpspps' '_psutils'
+'fixscribeps' '_psutils'
+'fixtpps' '_psutils'
+'fixwfwps' '_psutils'
+'fixwpps' '_psutils'
+'fixwwps' '_psutils'
+'flac' '_flac'
+'flex' '_flex'
+'flex++' '_flex'
+'flipdiff' '_patchutils'
+'flist' '_mh'
+'flists' '_mh'
+'float' '_typeset'
+'fmt' '_fmt'
+'fmttest' '_mh'
+'fned' '_zed'
+'fnext' '_mh'
+'fold' '_fold'
+'folder' '_mh'
+'folders' '_mh'
+'foot' '_foot'
+'footclient' '_footclient'
+'fortune' '_fortune'
+'forw' '_mh'
+'fprev' '_mh'
+'free' '_free'
+'freebsd-make' '_make'
+'freezer' '_openstack'
+'fsh' '_fsh'
+'ftp' '_hosts'
+'functions' '_typeset'
+'fuser' '_fuser'
+'fusermount' '_fusermount'
+'fwhois' '_whois'
+'g++' '_gcc'
+'galeon' '_webbrowser'
+'gawk' '_awk'
+'gb2sum' '_md5sum'
+'gbase32' '_base64'
+'gbase64' '_base64'
+'gbasename' '_basename'
+'gcat' '_cat'
+'gcc' '_gcc'
+'gccgo' '_go'
+'gchgrp' '_chown'
+'gchmod' '_chmod'
+'gchown' '_chown'
+'gchroot' '_chroot'
+'gcksum' '_cksum'
+'gcmp' '_cmp'
+'gcomm' '_comm'
+'gcore' '_gcore'
+'gcp' '_cp'
+'gcut' '_cut'
+'gdate' '_date'
+'gdb' '_gdb'
+'gdd' '_dd'
+'gdf' '_df'
+'gdiff' '_diff'
+'gdu' '_du'
+'geany' '_geany'
+'gegrep' '_grep'
+'gem' '_gem'
+'genisoimage' '_genisoimage'
+'genv' '_env'
+'get' '_sccs'
+'getafm' '_psutils'
+'getconf' '_getconf'
+'getent' '_getent'
+'getfacl' '_getfacl'
+'getfacl.exe' '_getfacl'
+'getfattr' '_attr'
+'getmail' '_getmail'
+'getopt' '_getopt'
+'getopts' '_vars'
+'gex' '_vim'
+'gexpand' '_unexpand'
+'gfgrep' '_grep'
+'gfind' '_find'
+'gfmt' '_fmt'
+'gfold' '_fold'
+'ggetopt' '_getopt'
+'ggrep' '_grep'
+'ggv' '_gnome-gv'
+'ghead' '_head'
+'ghostscript' '_ghostscript'
+'ghostview' '_pspdf'
+'gid' '_id'
+'ginstall' '_install'
+'git' '_git'
+'git-cvsserver' '_git'
+'gitk' '_git'
+'git-receive-pack' '_git'
+'git-shell' '_git'
+'git-upload-archive' '_git'
+'git-upload-pack' '_git'
+'gjoin' '_join'
+'glance' '_openstack'
+'gln' '_ln'
+'global' '_global'
+'glocate' '_locate'
+'gls' '_ls'
+'gm' '_graphicsmagick'
+'gmake' '_make'
+'gmd5sum' '_md5sum'
+'gmkdir' '_mkdir'
+'gmkfifo' '_mkfifo'
+'gmknod' '_mknod'
+'gmktemp' '_mktemp'
+'gmplayer' '_mplayer'
+'gmv' '_mv'
+'gnl' '_nl'
+'gnocchi' '_openstack'
+'gnome-gv' '_gnome-gv'
+'gnumfmt' '_numfmt'
+'gnupod_addsong' '_gnupod'
+'gnupod_addsong.pl' '_gnupod'
+'gnupod_check' '_gnupod'
+'gnupod_check.pl' '_gnupod'
+'gnupod_INIT' '_gnupod'
+'gnupod_INIT.pl' '_gnupod'
+'gnupod_search' '_gnupod'
+'gnupod_search.pl' '_gnupod'
+'gnutls-cli' '_gnutls'
+'gnutls-cli-debug' '_gnutls'
+'gnutls-serv' '_gnutls'
+'god' '_od'
+'gofmt' '_go'
+'gpasswd' '_gpasswd'
+'gpaste' '_paste'
+'gpatch' '_patch'
+'gpg' '_gpg'
+'gpg2' '_gpg'
+'gpgv' '_gpg'
+'gpg-zip' '_gpg'
+'gphoto2' '_gphoto2'
+'gprintenv' '_printenv'
+'gprof' '_gprof'
+'gqview' '_gqview'
+'gradle' '_gradle'
+'gradlew' '_gradle'
+'grail' '_webbrowser'
+'greadlink' '_readlink'
+'grep' '_grep'
+'grepdiff' '_patchutils'
+'grm' '_rm'
+'grmdir' '_rmdir'
+'groff' '_groff'
+'groupadd' '_user_admin'
+'groupdel' '_groups'
+'groupmod' '_user_admin'
+'groups' '_users'
+'growisofs' '_growisofs'
+'gs' '_ghostscript'
+'gsbj' '_pspdf'
+'gsdj' '_pspdf'
+'gsdj500' '_pspdf'
+'gsed' '_sed'
+'gseq' '_seq'
+'gsettings' '_gsettings'
+'gsha1sum' '_md5sum'
+'gsha224sum' '_md5sum'
+'gsha256sum' '_md5sum'
+'gsha384sum' '_md5sum'
+'gsha512sum' '_md5sum'
+'gshred' '_shred'
+'gshuf' '_shuf'
+'gslj' '_pspdf'
+'gslp' '_pspdf'
+'gsnd' '_pspdf'
+'gsort' '_sort'
+'gsplit' '_split'
+'gstat' '_stat'
+'gstdbuf' '_stdbuf'
+'gstrings' '_strings'
+'gstty' '_stty'
+'gsum' '_cksum'
+'gtac' '_tac'
+'gtail' '_tail'
+'gtar' '_tar'
+'gtee' '_tee'
+'gtimeout' '_timeout'
+'gtouch' '_touch'
+'gtr' '_tr'
+'gtty' '_tty'
+'guilt' '_guilt'
+'guilt-add' '_guilt'
+'guilt-applied' '_guilt'
+'guilt-delete' '_guilt'
+'guilt-files' '_guilt'
+'guilt-fold' '_guilt'
+'guilt-fork' '_guilt'
+'guilt-header' '_guilt'
+'guilt-help' '_guilt'
+'guilt-import' '_guilt'
+'guilt-import-commit' '_guilt'
+'guilt-init' '_guilt'
+'guilt-new' '_guilt'
+'guilt-next' '_guilt'
+'guilt-patchbomb' '_guilt'
+'guilt-pop' '_guilt'
+'guilt-prev' '_guilt'
+'guilt-push' '_guilt'
+'guilt-rebase' '_guilt'
+'guilt-refresh' '_guilt'
+'guilt-rm' '_guilt'
+'guilt-series' '_guilt'
+'guilt-status' '_guilt'
+'guilt-top' '_guilt'
+'guilt-unapplied' '_guilt'
+'guname' '_uname'
+'gunexpand' '_unexpand'
+'guniq' '_uniq'
+'gunzip' '_gzip'
+'guptime' '_uptime'
+'gv' '_gv'
+'gview' '_vim'
+'gvim' '_vim'
+'gvimdiff' '_vim'
+'gwc' '_wc'
+'gwho' '_who'
+'gxargs' '_xargs'
+'gzcat' '_gzip'
+'gzegrep' '_grep'
+'gzfgrep' '_grep'
+'gzgrep' '_grep'
+'gzilla' '_webbrowser'
+'gzip' '_gzip'
+'hash' '_hash'
+'hd' '_hexdump'
+'head' '_head'
+'heat' '_openstack'
+'help' '_sccs'
+'hexdump' '_hexdump'
+'hilite' '_precommand'
+'histed' '_zed'
+'history' '_fc'
+'host' '_host'
+'hostname' '_hostname'
+'hotjava' '_webbrowser'
+'htop' '_htop'
+'hyprctl' '_hyprctl'
+'hyprpm' '_hyprpm'
+'iceweasel' '_mozilla'
+'icombine' '_ispell'
+'iconv' '_iconv'
+'iconvconfig' '_iconvconfig'
+'id' '_id'
+'identify' '_imagemagick'
+'ifconfig' '_ifconfig'
+'ifdown' '_net_interfaces'
+'iftop' '_iftop'
+'ifup' '_net_interfaces'
+'ijoin' '_ispell'
+'img2sixel' '_img2sixel'
+'import' '_imagemagick'
+'inc' '_mh'
+'includeres' '_psutils'
+'info' '_texinfo'
+'infocmp' '_terminals'
+'initctl' '_initctl'
+'initdb' '_postgresql'
+'insmod' '_modutils'
+'install' '_install'
+'install-info' '_texinfo'
+'integer' '_typeset'
+'interdiff' '_patchutils'
+'ionice' '_ionice'
+'iostat' '_iostat'
+'ip' '_ip'
+'ip6tables' '_iptables'
+'ip6tables-restore' '_iptables'
+'ip6tables-save' '_iptables'
+'ipkg' '_opkg'
+'ipsec' '_ipsec'
+'ipset' '_ipset'
+'iptables' '_iptables'
+'iptables-restore' '_iptables'
+'iptables-save' '_iptables'
+'irb' '_ruby'
+'ironic' '_openstack'
+'irssi' '_irssi'
+'isag' '_sysstat'
+'ispell' '_ispell'
+'iwconfig' '_iwconfig'
+'jadetex' '_tex'
+'jar' '_java'
+'jarsigner' '_java'
+'java' '_java'
+'javac' '_java'
+'javadoc' '_java'
+'javah' '_java'
+'javap' '_java'
+'jdb' '_java'
+'jobs' '_jobs_builtin'
+'joe' '_joe'
+'join' '_join'
+'jq' '_jq'
+'kdeconnect-cli' '_kdeconnect'
+'keystone' '_openstack'
+'keytool' '_java'
+'kfmclient' '_kfmclient'
+'kill' '_kill'
+'killall' '_killall'
+'killall5' '_killall'
+'kioclient' '_kfmclient'
+'kitty' '_kitty'
+'knock' '_knock'
+'konqueror' '_webbrowser'
+'kpartx' '_kpartx'
+'kpdf' '_pdf'
+'ksh' '_sh'
+'ksh88' '_sh'
+'ksh93' '_sh'
+'kvno' '_kvno'
+'last' '_last'
+'lastb' '_last'
+'latex' '_tex'
+'latexmk' '_tex'
+'ldconfig' '_ldconfig'
+'ldconfig.real' '_ldconfig'
+'ldd' '_ldd'
+'less' '_less'
+'let' '_math'
+'lf' '_lf'
+'lfcd' '_lf'
+'lftp' '_ncftp'
+'lha' '_lha'
+'libinput' '_libinput'
+'light' '_webbrowser'
+'limit' '_limit'
+'links' '_links'
+'links2' '_links'
+'linux' '_uml'
+'lldb' '_lldb'
+'llvm-g++' '_gcc'
+'llvm-gcc' '_gcc'
+'llvm-objdump' '_objdump'
+'ln' '_ln'
+'loadkeys' '_loadkeys'
+'local' '_typeset'
+'locale' '_locale'
+'localedef' '_localedef'
+'locate' '_locate'
+'log' '_nothing'
+'logger' '_logger'
+'loginctl' '_loginctl'
+'logname' '_nothing'
+'look' '_look'
+'losetup' '_losetup'
+'lp' '_lp'
+'lpadmin' '_lp'
+'lpinfo' '_lp'
+'lpoptions' '_lp'
+'lpq' '_lp'
+'lpr' '_lp'
+'lprm' '_lp'
+'lpstat' '_lp'
+'ls' '_ls'
+'lsattr' '_lsattr'
+'lsblk' '_lsblk'
+'lsdiff' '_patchutils'
+'lsmod' '_modutils'
+'lsns' '_lsns'
+'lsof' '_lsof'
+'lsusb' '_lsusb'
+'ltrace' '_ltrace'
+'lua' '_lua'
+'luarocks' '_luarocks'
+'lynx' '_lynx'
+'lz4' '_lz4'
+'lz4c' '_lz4'
+'lz4c32' '_lz4'
+'lz4cat' '_lz4'
+'lzcat' '_xz'
+'lzma' '_xz'
+'lzop' '_lzop'
+'mac2unix' '_dos2unix'
+'magnum' '_openstack'
+'mail' '_mail'
+'Mail' '_mail'
+'mailx' '_mail'
+'make' '_make'
+'makeinfo' '_texinfo'
+'makepkg' '_pacman'
+'mako' '_mako'
+'makoctl' '_makoctl'
+'man' '_man'
+'manage.py' '_django'
+'manila' '_openstack'
+'mark' '_mh'
+'mat' '_mat'
+'mat2' '_mat2'
+'-math-' '_math'
+'matlab' '_matlab'
+'mattrib' '_mtools'
+'mcd' '_mtools'
+'mcopy' '_mtools'
+'md2' '_cksum'
+'md4' '_cksum'
+'md5' '_cksum'
+'md5sum' '_md5sum'
+'mdadm' '_mdadm'
+'mdel' '_mtools'
+'mdeltree' '_mtools'
+'mdir' '_mtools'
+'mdu' '_mtools'
+'mencal' '_mencal'
+'mere' '_mere'
+'merge' '_rcs'
+'metaflac' '_flac'
+'mformat' '_mtools'
+'mgv' '_pspdf'
+'mhfixmsg' '_mh'
+'mhlist' '_mh'
+'mhmail' '_mh'
+'mhn' '_mh'
+'mhparam' '_mh'
+'mhpath' '_mh'
+'mhshow' '_mh'
+'mhstore' '_mh'
+'mii-tool' '_mii-tool'
+'mistral' '_openstack'
+'mkdir' '_mkdir'
+'mkfifo' '_mkfifo'
+'mkisofs' '_growisofs'
+'mknod' '_mknod'
+'mksh' '_sh'
+'mktemp' '_mktemp'
+'mktunes' '_gnupod'
+'mktunes.pl' '_gnupod'
+'mlabel' '_mtools'
+'mlocate' '_locate'
+'mmd' '_mtools'
+'mmm' '_webbrowser'
+'mmount' '_mtools'
+'mmove' '_mtools'
+'modinfo' '_modutils'
+'modprobe' '_modutils'
+'module' '_module'
+'mogrify' '_imagemagick'
+'monasca' '_openstack'
+'mondoarchive' '_mondo'
+'montage' '_imagemagick'
+'moosic' '_moosic'
+'Mosaic' '_webbrowser'
+'mosh' '_mosh'
+'mount' '_mount'
+'mozilla' '_mozilla'
+'mozilla-firefox' '_mozilla'
+'mozilla-xremote-client' '_mozilla'
+'mpc' '_mpc'
+'mplayer' '_mplayer'
+'mpstat' '_sysstat'
+'mpv' '_mpv'
+'mr' '_myrepos'
+'mrd' '_mtools'
+'mread' '_mtools'
+'mren' '_mtools'
+'msgchk' '_mh'
+'mt' '_mt'
+'mtn' '_monotone'
+'mtoolstest' '_mtools'
+'mtr' '_mtr'
+'mtype' '_mtools'
+'munchlist' '_ispell'
+'mupdf' '_mupdf'
+'murano' '_openstack'
+'mush' '_mail'
+'mutt' '_mutt'
+'mv' '_mv'
+'mvim' '_vim'
+'mx' '_hosts'
+'mysql' '_mysql_utils'
+'mysqladmin' '_mysql_utils'
+'mysqldiff' '_mysqldiff'
+'mysqldump' '_mysql_utils'
+'mysqlimport' '_mysql_utils'
+'mysqlshow' '_mysql_utils'
+'nail' '_mail'
+'native2ascii' '_java'
+'nautilus' '_nautilus'
+'nawk' '_awk'
+'nc' '_netcat'
+'ncal' '_cal'
+'ncftp' '_ncftp'
+'ncl' '_nedit'
+'nedit' '_nedit'
+'nedit-nc' '_nedit'
+'netcat' '_netcat'
+'netrik' '_webbrowser'
+'netscape' '_netscape'
+'netstat' '_netstat'
+'neutron' '_openstack'
+'new' '_mh'
+'newgrp' '_groups'
+'next' '_mh'
+'nginx' '_nginx'
+'ngrep' '_ngrep'
+'nice' '_nice'
+'nkf' '_nkf'
+'nl' '_nl'
+'nm' '_nm'
+'nmap' '_nmap'
+'nmblookup' '_samba'
+'nmcli' '_networkmanager'
+'nocorrect' '_precommand'
+'noglob' '_precommand'
+'nohup' '_precommand'
+'nova' '_openstack'
+'npm' '_npm'
+'ns' '_hosts'
+'nsenter' '_nsenter'
+'nslookup' '_nslookup'
+'ntalk' '_other_accounts'
+'numfmt' '_numfmt'
+'nvim' '_vim'
+'objdump' '_objdump'
+'od' '_od'
+'ogg123' '_vorbis'
+'oggdec' '_vorbis'
+'oggenc' '_vorbis'
+'ogginfo' '_vorbis'
+'oksh' '_sh'
+'okular' '_okular'
+'openrc' '_openrc'
+'openstack' '_openstack'
+'opera' '_webbrowser'
+'opera-next' '_webbrowser'
+'opkg' '_opkg'
+'opusdec' '_opustools'
+'opusenc' '_opustools'
+'opusinfo' '_opustools'
+'p4' '_perforce'
+'p4d' '_perforce'
+'pacat' '_pulseaudio'
+'pack' '_pack'
+'packf' '_mh'
+'pacman' '_pacman'
+'pacman-conf' '_pacman'
+'pacman-key' '_pacman'
+'pacman.static' '_pacman'
+'pacmd' '_pulseaudio'
+'pactl' '_pulseaudio'
+'padsp' '_pulseaudio'
+'pandoc' '_pandoc'
+'paplay' '_pulseaudio'
+'-parameter-' '_parameter'
+'parec' '_pulseaudio'
+'parecord' '_pulseaudio'
+'passwd' '_users'
+'paste' '_paste'
+'pasuspender' '_pulseaudio'
+'patch' '_patch'
+'pax' '_pax'
+'pcat' '_pack'
+'pcp-htop' '_htop'
+'pcred' '_pids'
+'pdf2dsc' '_pdf'
+'pdf2ps' '_pdf'
+'pdffonts' '_pdf'
+'pdfimages' '_pdf'
+'pdfinfo' '_pdf'
+'pdfjadetex' '_tex'
+'pdflatex' '_tex'
+'pdfopt' '_pdf'
+'pdftex' '_tex'
+'pdftexi2dvi' '_texinfo'
+'pdftk' '_pdftk'
+'pdftopbm' '_pdf'
+'pdftops' '_pdf'
+'pdftotext' '_pdf'
+'pdksh' '_sh'
+'perf' '_perf'
+'perl' '_perl'
+'perldoc' '_perldoc'
+'pfiles' '_pids'
+'pflags' '_pids'
+'pg_config' '_postgresql'
+'pg_ctl' '_postgresql'
+'pg_dump' '_postgresql'
+'pg_dumpall' '_postgresql'
+'pg_isready' '_postgresql'
+'pgrep' '_pgrep'
+'pg_restore' '_postgresql'
+'pg_upgrade' '_postgresql'
+'php' '_php'
+'pick' '_mh'
+'picocom' '_picocom'
+'pidof' '_pidof'
+'pidstat' '_sysstat'
+'pigz' '_gzip'
+'pine' '_pine'
+'pinef' '_pine'
+'pinfo' '_texinfo'
+'ping' '_ping'
+'ping6' '_ping'
+'pkgadd' '_pkgadd'
+'pkg-config' '_pkg-config'
+'pkginfo' '_pkginfo'
+'pkgrm' '_pkgrm'
+'pkill' '_pgrep'
+'pldd' '_pids'
+'pmake' '_make'
+'pman' '_perl_modules'
+'pmap' '_pmap'
+'pmcat' '_perl_modules'
+'pmdesc' '_perl_modules'
+'pmeth' '_perl_modules'
+'pmexp' '_perl_modules'
+'pmfunc' '_perl_modules'
+'pmload' '_perl_modules'
+'pmls' '_perl_modules'
+'pmpath' '_perl_modules'
+'pmvers' '_perl_modules'
+'podgrep' '_perl_modules'
+'podpath' '_perl_modules'
+'podtoc' '_perl_modules'
+'poff' '_pon'
+'policytool' '_java'
+'pon' '_pon'
+'popd' '_directory_stack'
+'postconf' '_postfix'
+'postgres' '_postgresql'
+'postmaster' '_postgresql'
+'postqueue' '_postfix'
+'postsuper' '_postfix'
+'pr' '_pr'
+'prev' '_mh'
+'print' '_print'
+'printenv' '_printenv'
+'printf' '_print'
+'prompt' '_prompt'
+'prove' '_prove'
+'prs' '_sccs'
+'prt' '_sccs'
+'prun' '_pids'
+'ps' '_ps'
+'ps2ascii' '_pspdf'
+'ps2epsi' '_postscript'
+'ps2pdf' '_postscript'
+'ps2pdf12' '_postscript'
+'ps2pdf13' '_postscript'
+'ps2pdf14' '_postscript'
+'ps2pdfwr' '_postscript'
+'ps2ps' '_postscript'
+'psbook' '_psutils'
+'psed' '_sed'
+'psig' '_pids'
+'psmerge' '_psutils'
+'psmulti' '_postscript'
+'psnup' '_psutils'
+'psql' '_postgresql'
+'psresize' '_psutils'
+'psselect' '_psutils'
+'pstack' '_pids'
+'pstoedit' '_pspdf'
+'pstop' '_pids'
+'pstops' '_psutils'
+'pstotgif' '_pspdf'
+'pswrap' '_postscript'
+'ptx' '_ptx'
+'pulseaudio' '_pulseaudio'
+'pump' '_pump'
+'pushd' '_cd'
+'pv' '_pv'
+'pwait' '_pids'
+'pwdx' '_pids'
+'pwgen' '_pwgen'
+'pyhtmlizer' '_twisted'
+'qdbus' '_qdbus'
+'qiv' '_qiv'
+'quilt' '_quilt'
+'r' '_fc'
+'rake' '_rake'
+'ranlib' '_ranlib'
+'rar' '_rar'
+'rc' '_sh'
+'rclone' '_rclone'
+'rcp' '_rlogin'
+'rcs' '_rcs'
+'rcsdiff' '_rcs'
+'rc-service' '_rc-service'
+'rc-status' '_rc-status'
+'rc-update' '_rc-update'
+'rdesktop' '_rdesktop'
+'read' '_read'
+'readelf' '_readelf'
+'readlink' '_readlink'
+'readonly' '_typeset'
+'-redirect-' '_redirect'
+'-redirect-,<,bunzip2' '_bzip2'
+'-redirect-,<,bzip2' '_bzip2'
+'-redirect-,>,bzip2' '_bzip2'
+'-redirect-,<,compress' '_compress'
+'-redirect-,>,compress' '_compress'
+'-redirect-,-default-,-default-' '_files'
+'-redirect-,<,gunzip' '_gzip'
+'-redirect-,<,gzip' '_gzip'
+'-redirect-,>,gzip' '_gzip'
+'-redirect-,<,uncompress' '_compress'
+'-redirect-,<,unxz' '_xz'
+'-redirect-,<,xz' '_xz'
+'-redirect-,>,xz' '_xz'
+'refile' '_mh'
+'rehash' '_hash'
+'reindexdb' '_postgresql'
+'reload' '_initctl'
+'remsh' '_rlogin'
+'renice' '_renice'
+'repl' '_mh'
+'restart' '_initctl'
+'retawq' '_webbrowser'
+'rgrep' '_grep'
+'rgview' '_vim'
+'rgvim' '_vim'
+'ri' '_ri'
+'rlogin' '_rlogin'
+'rm' '_rm'
+'rmd160' '_cksum'
+'rmdel' '_sccs'
+'rmdir' '_rmdir'
+'rmf' '_mh'
+'rmic' '_java'
+'rmid' '_java'
+'rmiregistry' '_java'
+'rmm' '_mh'
+'rmmod' '_modutils'
+'route' '_route'
+'rrdtool' '_rrdtool'
+'rsh' '_rlogin'
+'rsync' '_rsync'
+'rtin' '_tin'
+'rubber' '_rubber'
+'rubber-info' '_rubber'
+'rubber-pipe' '_rubber'
+'ruby' '_ruby'
+'ruby-mri' '_ruby'
+'run-help' '_run-help'
+'rup' '_hosts'
+'rusage' '_precommand'
+'rview' '_vim'
+'rvim' '_vim'
+'rwho' '_hosts'
+'rxvt' '_urxvt'
+'s2p' '_sed'
+'sact' '_sccs'
+'sadf' '_sysstat'
+'sahara' '_openstack'
+'sar' '_sysstat'
+'scan' '_mh'
+'sccs' '_sccs'
+'sccsdiff' '_sccs'
+'sched' '_sched'
+'schedtool' '_schedtool'
+'scons' '_scons'
+'scp' '_ssh'
+'screen' '_screen'
+'script' '_script'
+'scriptreplay' '_script'
+'seaf-cli' '_seafile'
+'sed' '_sed'
+'senlin' '_openstack'
+'seq' '_seq'
+'serialver' '_java'
+'service' '_service'
+'set' '_set'
+'setfacl' '_setfacl'
+'setfacl.exe' '_setfacl'
+'setfattr' '_attr'
+'setopt' '_setopt'
+'setpriv' '_setpriv'
+'setsid' '_setsid'
+'setxkbmap' '_setxkbmap'
+'sftp' '_ssh'
+'sh' '_sh'
+'sha1' '_cksum'
+'sha1sum' '_md5sum'
+'sha224sum' '_md5sum'
+'sha256' '_cksum'
+'sha256sum' '_md5sum'
+'sha384' '_cksum'
+'sha384sum' '_md5sum'
+'sha512' '_cksum'
+'sha512sum' '_md5sum'
+'sha512t256' '_cksum'
+'shasum' '_shasum'
+'shift' '_arrays'
+'show' '_mh'
+'showchar' '_psutils'
+'showmount' '_showmount'
+'shred' '_shred'
+'shuf' '_shuf'
+'shutdown' '_shutdown'
+'sisu' '_sisu'
+'skein1024' '_cksum'
+'skein256' '_cksum'
+'skein512' '_cksum'
+'skipstone' '_webbrowser'
+'slabtop' '_slabtop'
+'slitex' '_tex'
+'slocate' '_locate'
+'slogin' '_ssh'
+'slrn' '_slrn'
+'smartctl' '_smartmontools'
+'smbclient' '_samba'
+'smbcontrol' '_samba'
+'smbstatus' '_samba'
+'soa' '_hosts'
+'socket' '_socket'
+'sort' '_sort'
+'sortm' '_mh'
+'source' '_source'
+'spamassassin' '_spamassassin'
+'split' '_split'
+'splitdiff' '_patchutils'
+'sqlite' '_sqlite'
+'sqlite3' '_sqlite'
+'sqsh' '_sqsh'
+'sr' '_surfraw'
+'srptool' '_gnutls'
+'ss' '_ss'
+'ssh' '_ssh'
+'ssh-add' '_ssh'
+'ssh-agent' '_ssh'
+'ssh-copy-id' '_ssh'
+'sshfs' '_sshfs'
+'ssh-keygen' '_ssh'
+'ssh-keyscan' '_ssh'
+'star' '_tar'
+'start' '_initctl'
+'stat' '_stat'
+'status' '_initctl'
+'stdbuf' '_stdbuf'
+'stg' '_stgit'
+'stop' '_initctl'
+'stow' '_stow'
+'strace' '_strace'
+'strace64' '_strace'
+'strftime' '_strftime'
+'strings' '_strings'
+'strip' '_strip'
+'strongswan' '_ipsec'
+'stty' '_stty'
+'su' '_su'
+'subl' '_sublimetext'
+'-subscript-' '_subscript'
+'sudo' '_sudo'
+'sudoedit' '_sudo'
+'sum' '_cksum'
+'surfraw' '_surfraw'
+'sv' '_runit'
+'svn' '_subversion'
+'svnadmin' '_subversion'
+'svnadmin-static' '_subversion'
+'svnlite' '_subversion'
+'svnliteadmin' '_subversion'
+'swaks' '_swaks'
+'swanctl' '_swanctl'
+'swift' '_swift'
+'swiftc' '_swift'
+'sync' '_nothing'
+'sysctl' '_sysctl'
+'tac' '_tac'
+'tacker' '_openstack'
+'tail' '_tail'
+'talk' '_other_accounts'
+'tar' '_tar'
+'tardy' '_tardy'
+'tcpdump' '_tcpdump'
+'tcp_open' '_tcpsys'
+'tcptraceroute' '_tcptraceroute'
+'tcsh' '_sh'
+'tda' '_devtodo'
+'tdd' '_devtodo'
+'tde' '_devtodo'
+'tdr' '_devtodo'
+'tee' '_tee'
+'telnet' '_telnet'
+'tex' '_tex'
+'texi2any' '_texinfo'
+'texi2dvi' '_texinfo'
+'texi2pdf' '_texinfo'
+'texindex' '_texinfo'
+'tg' '_topgit'
+'tidy' '_tidy'
+'tig' '_git'
+'-tilde-' '_tilde'
+'time' '_precommand'
+'timeout' '_timeout'
+'times' '_nothing'
+'tin' '_tin'
+'tkconch' '_twisted'
+'tkinfo' '_texinfo'
+'tla' '_tla'
+'tload' '_tload'
+'tmux' '_tmux'
+'todo' '_devtodo'
+'todo.sh' '_todo.sh'
+'toilet' '_toilet'
+'top' '_top'
+'totdconfig' '_totd'
+'touch' '_touch'
+'tpb' '_tpb'
+'tput' '_tput'
+'tr' '_tr'
+'tracepath' '_tracepath'
+'tracepath6' '_tracepath'
+'traceroute' '_hosts'
+'transmission-remote' '_transmission'
+'trap' '_trap'
+'tree' '_tree'
+'trial' '_twisted'
+'trove' '_openstack'
+'true' '_nothing'
+'truncate' '_truncate'
+'truss' '_truss'
+'tryaffix' '_ispell'
+'tty' '_tty'
+'ttyctl' '_ttyctl'
+'tunctl' '_uml'
+'tune2fs' '_tune2fs'
+'tunes2pod' '_gnupod'
+'tunes2pod.pl' '_gnupod'
+'twidge' '_twidge'
+'twist' '_twisted'
+'twistd' '_twisted'
+'txt' '_hosts'
+'type' '_which'
+'typeset' '_typeset'
+'udevadm' '_udevadm'
+'ulimit' '_ulimit'
+'uml_mconsole' '_uml'
+'uml_moo' '_uml'
+'uml_switch' '_uml'
+'umount' '_mount'
+'unace' '_unace'
+'unalias' '_aliases'
+'uname' '_uname'
+'uncompress' '_compress'
+'unexpand' '_unexpand'
+'unfunction' '_functions'
+'unget' '_sccs'
+'unhash' '_unhash'
+'uniq' '_uniq'
+'unison' '_unison'
+'units' '_units'
+'unix2dos' '_dos2unix'
+'unix2mac' '_dos2unix'
+'unlimit' '_limits'
+'unlz4' '_lz4'
+'unlzma' '_xz'
+'unpack' '_pack'
+'unpigz' '_gzip'
+'unrar' '_rar'
+'unset' '_vars'
+'unsetopt' '_setopt'
+'unshare' '_unshare'
+'unwrapdiff' '_patchutils'
+'unxz' '_xz'
+'unzip' '_zip'
+'uptime' '_uptime'
+'urxvt' '_urxvt'
+'urxvt256c' '_urxvt'
+'urxvt256cc' '_urxvt'
+'urxvt256c-ml' '_urxvt'
+'urxvt256c-mlc' '_urxvt'
+'urxvtc' '_urxvt'
+'useradd' '_user_admin'
+'userdel' '_users'
+'usermod' '_user_admin'
+'vacuumdb' '_postgresql'
+'val' '_sccs'
+'valgrind' '_valgrind'
+'-value-' '_value'
+'-value-,ADB_TRACE,-default-' '_adb'
+'-value-,ANDROID_LOG_TAGS,-default-' '_adb'
+'-value-,ANDROID_SERIAL,-default-' '_adb'
+'-value-,ANSIBLE_INVENTORY_ENABLED,-default-' '_ansible'
+'-value-,ANSIBLE_STDOUT_CALLBACK,-default-' '_ansible'
+'-value-,ANT_ARGS,-default-' '_ant'
+'-value-,CFLAGS,-default-' '_gcc'
+'-value-,CPPFLAGS,-default-' '_gcc'
+'-value-,CXXFLAGS,-default-' '_gcc'
+'-value-,-default-,-command-' '_zargs'
+'-value-,-default-,-default-' '_value'
+'-value-,DISPLAY,-default-' '_x_display'
+'-value-,GREP_OPTIONS,-default-' '_grep'
+'-value-,GZIP,-default-' '_gzip'
+'-value-,LANG,-default-' '_locales'
+'-value-,LANGUAGE,-default-' '_locales'
+'-value-,LD_DEBUG,-default-' '_ld_debug'
+'-value-,LDFLAGS,-default-' '_gcc'
+'-value-,LESSCHARSET,-default-' '_less'
+'-value-,LESS,-default-' '_less'
+'-value-,LOOPDEV_DEBUG,-default-' '_losetup'
+'-value-,LPDEST,-default-' '_printers'
+'-value-,MPD_HOST,-default' '_mpc'
+'-value-,P4CLIENT,-default-' '_perforce'
+'-value-,P4MERGE,-default-' '_perforce'
+'-value-,P4PORT,-default-' '_perforce'
+'-value-,P4USER,-default-' '_perforce'
+'-value-,PERLDOC,-default-' '_perldoc'
+'-value-,PRINTER,-default-' '_printers'
+'-value-,PROMPT2,-default-' '_ps1234'
+'-value-,PROMPT3,-default-' '_ps1234'
+'-value-,PROMPT4,-default-' '_ps1234'
+'-value-,PROMPT,-default-' '_ps1234'
+'-value-,PS1,-default-' '_ps1234'
+'-value-,PS2,-default-' '_ps1234'
+'-value-,PS3,-default-' '_ps1234'
+'-value-,PS4,-default-' '_ps1234'
+'-value-,RPROMPT2,-default-' '_ps1234'
+'-value-,RPROMPT,-default-' '_ps1234'
+'-value-,RPS1,-default-' '_ps1234'
+'-value-,RPS2,-default-' '_ps1234'
+'-value-,SPROMPT,-default-' '_ps1234'
+'-value-,TERM,-default-' '_terminals'
+'-value-,TERMINFO_DIRS,-default-' '_dir_list'
+'-value-,TZ,-default-' '_time_zone'
+'-value-,VALGRIND_OPTS,-default-' '_valgrind'
+'-value-,WWW_HOME,-default-' '_urls'
+'-value-,XML_CATALOG_FILES,-default-' '_xmlsoft'
+'-value-,XZ_DEFAULTS,-default-' '_xz'
+'-value-,XZ_OPT,-default-' '_xz'
+'-vared-' '_in_vared'
+'vared' '_vared'
+'vcs_info_hookadd' '_vcs_info'
+'vcs_info_hookdel' '_vcs_info'
+'vi' '_vi'
+'view' '_vi'
+'vim' '_vim'
+'vimdiff' '_vim'
+'virsh' '_libvirt'
+'virt-admin' '_libvirt'
+'virt-host-validate' '_libvirt'
+'virt-pki-validate' '_libvirt'
+'virt-xml-validate' '_libvirt'
+'visudo' '_visudo'
+'vitrage' '_openstack'
+'vmstat' '_vmstat'
+'vncserver' '_vnc'
+'vncviewer' '_vnc'
+'vorbiscomment' '_vorbis'
+'vpnc' '_vpnc'
+'vpnc-connect' '_vpnc'
+'vserver' '_vserver'
+'w' '_w'
+'w3m' '_w3m'
+'wait' '_wait'
+'watch' '_watch'
+'watcher' '_openstack'
+'wc' '_wc'
+'wget' '_wget'
+'what' '_sccs'
+'whatis' '_man'
+'whence' '_which'
+'where' '_which'
+'whereis' '_whereis'
+'which' '_which'
+'who' '_who'
+'whoami' '_nothing'
+'whois' '_whois'
+'whom' '_mh'
+'wiggle' '_wiggle'
+'wipefs' '_wipefs'
+'wl-copy' '_wl-copy'
+'wl-paste' '_wl-paste'
+'wodim' '_cdrecord'
+'wpa_cli' '_wpa_cli'
+'wpctl' '_wpctl'
+'write' '_users_on'
+'www' '_webbrowser'
+'xargs' '_xargs'
+'xattr' '_attr'
+'xauth' '_xauth'
+'xautolock' '_xautolock'
+'xclip' '_xclip'
+'xdpyinfo' '_x_utils'
+'xdvi' '_xdvi'
+'xelatex' '_tex'
+'xetex' '_tex'
+'xev' '_x_utils'
+'xfd' '_x_utils'
+'xfig' '_xfig'
+'xfontsel' '_x_utils'
+'xfreerdp' '_rdesktop'
+'xhost' '_x_utils'
+'xinput' '_xinput'
+'xkill' '_x_utils'
+'xli' '_xloadimage'
+'xloadimage' '_xloadimage'
+'xlsatoms' '_x_utils'
+'xlsclients' '_x_utils'
+'xml' '_xmlstarlet'
+'xmllint' '_xmlsoft'
+'xmlstarlet' '_xmlstarlet'
+'xmms2' '_xmms2'
+'xmodmap' '_xmodmap'
+'xmosaic' '_webbrowser'
+'xon' '_x_utils'
+'xournal' '_xournal'
+'xpdf' '_xpdf'
+'xping' '_hosts'
+'xprop' '_x_utils'
+'xrandr' '_xrandr'
+'xrdb' '_x_utils'
+'xscreensaver-command' '_xscreensaver'
+'xset' '_xset'
+'xsetbg' '_xloadimage'
+'xsetroot' '_x_utils'
+'xsltproc' '_xmlsoft'
+'xterm' '_xterm'
+'xtightvncviewer' '_vnc'
+'xtp' '_imagemagick'
+'xv' '_xv'
+'xview' '_xloadimage'
+'xvnc4viewer' '_vnc'
+'xvncviewer' '_vnc'
+'xwd' '_x_utils'
+'xwininfo' '_x_utils'
+'xwit' '_xwit'
+'xwud' '_x_utils'
+'xxd' '_xxd'
+'xz' '_xz'
+'xzcat' '_xz'
+'yafc' '_yafc'
+'yash' '_sh'
+'yay' '_yay'
+'ypbind' '_yp'
+'ypcat' '_yp'
+'ypmatch' '_yp'
+'yppasswd' '_yp'
+'yppoll' '_yp'
+'yppush' '_yp'
+'ypserv' '_yp'
+'ypset' '_yp'
+'ypwhich' '_yp'
+'ypxfr' '_yp'
+'ytalk' '_other_accounts'
+'yt-dlp' '_yt-dlp'
+'zargs' '_zargs'
+'zcalc' '_zcalc'
+'-zcalc-line-' '_zcalc_line'
+'zcat' '_zcat'
+'zcompile' '_zcompile'
+'zcp' '_zmv'
+'zdb' '_zfs'
+'zdelattr' '_zattr'
+'zdump' '_zdump'
+'zeal' '_zeal'
+'zed' '_zed'
+'zegrep' '_grep'
+'zen' '_webbrowser'
+'zf_chgrp' '_chown'
+'zf_chmod' '_chmod'
+'zf_chown' '_chown'
+'zfgrep' '_grep'
+'zf_ln' '_ln'
+'zf_mkdir' '_mkdir'
+'zf_mv' '_mv'
+'zf_rm' '_rm'
+'zf_rmdir' '_rmdir'
+'zfs' '_zfs'
+'zgetattr' '_zattr'
+'zgrep' '_grep'
+'zip' '_zip'
+'zipinfo' '_zip'
+'zle' '_zle'
+'zlistattr' '_zattr'
+'zln' '_zmv'
+'zmail' '_mail'
+'zmodload' '_zmodload'
+'zmv' '_zmv'
+'zone' '_hosts'
+'zparseopts' '_zparseopts'
+'zpool' '_zfs'
+'zpty' '_zpty'
+'zsetattr' '_zattr'
+'zsh' '_zsh'
+'zsh-mime-handler' '_zsh-mime-handler'
+'zsocket' '_zsocket'
+'zstat' '_stat'
+'zstyle' '_zstyle'
+'ztodo' '_ztodo'
+'zun' '_openstack'
+'zxpdf' '_xpdf'
+)
+
+_services=(
+'bzcat' 'bunzip2'
+'gchgrp' 'chgrp'
+'gchown' 'chown'
+'gnupod_addsong.pl' 'gnupod_addsong'
+'gnupod_check.pl' 'gnupod_check'
+'gnupod_INIT.pl' 'gnupod_INIT'
+'gnupod_search.pl' 'gnupod_search'
+'gpg2' 'gpg'
+'gzcat' 'gunzip'
+'iceweasel' 'firefox'
+'lzcat' 'unxz'
+'lzma' 'xz'
+'Mail' 'mail'
+'mailx' 'mail'
+'mktunes.pl' 'mktunes'
+'nail' 'mail'
+'ncl' 'nc'
+'nedit-nc' 'nc'
+'pacman.static' 'pacman'
+'pcat' 'unpack'
+'-redirect-,<,bunzip2' 'bunzip2'
+'-redirect-,<,bzip2' 'bzip2'
+'-redirect-,>,bzip2' 'bunzip2'
+'-redirect-,<,compress' 'compress'
+'-redirect-,>,compress' 'uncompress'
+'-redirect-,<,gunzip' 'gunzip'
+'-redirect-,<,gzip' 'gzip'
+'-redirect-,>,gzip' 'gunzip'
+'-redirect-,<,uncompress' 'uncompress'
+'-redirect-,<,unxz' 'unxz'
+'-redirect-,<,xz' 'xz'
+'-redirect-,>,xz' 'unxz'
+'remsh' 'rsh'
+'slogin' 'ssh'
+'svnadmin-static' 'svnadmin'
+'svnlite' 'svn'
+'svnliteadmin' 'svnadmin'
+'tunes2pod.pl' 'tunes2pod'
+'unlzma' 'unxz'
+'xelatex' 'latex'
+'xetex' 'tex'
+'xzcat' 'unxz'
+'zf_chgrp' 'chgrp'
+'zf_chown' 'chown'
+)
+
+_patcomps=(
+'*/(init|rc[0-9S]#).d/*' '_init_d'
+)
+
+_postpatcomps=(
+'_*' '_compadd'
+'c++-*' '_gcc'
+'g++-*' '_gcc'
+'gcc-*' '_gcc'
+'gem[0-9.]#' '_gem'
+'lua[0-9.-]##' '_lua'
+'(p[bgpn]m*|*top[bgpn]m)' '_pbm'
+'php[0-9.-]' '_php'
+'pip[0-9.]#' '_pip'
+'pydoc[0-9.]#' '_pydoc'
+'python[0-9.]#' '_python'
+'qemu(|-system-*)' '_qemu'
+'(ruby|[ei]rb)[0-9.]#' '_ruby'
+'shasum(|5).*' '_shasum'
+'(texi(2*|ndex))' '_texi'
+'(tiff*|*2tiff|pal2rgb)' '_tiff'
+'-value-,(ftp|http(|s))_proxy,-default-' '_urls'
+'-value-,LC_*,-default-' '_locales'
+'-value-,*path,-default-' '_directories'
+'-value-,*PATH,-default-' '_dir_list'
+'-value-,RUBY(LIB|OPT|PATH),-default-' '_ruby'
+'*/X11(|R<4->)/*' '_x_arguments'
+'yodl(|2*)' '_yodl'
+'zf*' '_zftp'
+)
+
+_compautos=(
+'_call_program' '+X'
+)
+
+zle -C _bash_complete-word .complete-word _bash_completions
+zle -C _bash_list-choices .list-choices _bash_completions
+zle -C _complete_debug .complete-word _complete_debug
+zle -C _complete_help .complete-word _complete_help
+zle -C _complete_tag .complete-word _complete_tag
+zle -C _correct_filename .complete-word _correct_filename
+zle -C _correct_word .complete-word _correct_word
+zle -C _expand_alias .complete-word _expand_alias
+zle -C _expand_word .complete-word _expand_word
+zle -C _history-complete-newer .complete-word _history_complete_word
+zle -C _history-complete-older .complete-word _history_complete_word
+zle -C _list_expansions .list-choices _expand_word
+zle -C _most_recent_file .complete-word _most_recent_file
+zle -C _next_tags .list-choices _next_tags
+zle -C _read_comp .complete-word _read_comp
+bindkey '^X^R' _read_comp
+bindkey '^X?' _complete_debug
+bindkey '^XC' _correct_filename
+bindkey '^Xa' _expand_alias
+bindkey '^Xc' _correct_word
+bindkey '^Xd' _list_expansions
+bindkey '^Xe' _expand_word
+bindkey '^Xh' _complete_help
+bindkey '^Xm' _most_recent_file
+bindkey '^Xn' _next_tags
+bindkey '^Xt' _complete_tag
+bindkey '^X~' _bash_list-choices
+bindkey '^[,' _history-complete-newer
+bindkey '^[/' _history-complete-older
+bindkey '^[~' _bash_complete-word
+
+autoload -Uz _bat _busctl _cargo _chafa _curl \
+ _foot _footclient _hyprctl _hyprpm _img2sixel \
+ _kitty _lf _libinput _loginctl _mako \
+ _makoctl _mpv _openrc _pacman _pulseaudio \
+ _rc-service _rc-status _rc-update _udevadm _wl-copy \
+ _wl-paste _wpctl _yay _yt-dlp _cdr \
+ _all_labels _all_matches _alternative _approximate _arg_compile \
+ _arguments _bash_completions _cache_invalid _call_function _combination \
+ _complete _complete_debug _complete_help _complete_help_generic _complete_tag \
+ _comp_locale _correct _correct_filename _correct_word _describe \
+ _description _dispatch _expand _expand_alias _expand_word \
+ _extensions _external_pwds _generic _guard _history \
+ _history_complete_word _ignored _list _main_complete _match \
+ _menu _message _most_recent_file _multi_parts _next_label \
+ _next_tags _normal _nothing _numbers _oldlist \
+ _pick_variant _prefix _read_comp _regex_arguments _regex_words \
+ _requested _retrieve_cache _sep_parts _sequence _set_command \
+ _setup _store_cache _sub_commands _tags _user_expand \
+ _values _wanted _acpi _acpitool _alsa-utils \
+ _analyseplugin _basenc _brctl _btrfs _capabilities \
+ _chattr _chcon _choom _chrt _cpupower \
+ _cryptsetup _dkms _e2label _ethtool _findmnt \
+ _free _fuse_arguments _fusermount _fuse_values _gpasswd \
+ _htop _iconvconfig _ionice _ipset _iptables \
+ _iwconfig _kpartx _losetup _lsattr _lsblk \
+ _lsns _lsusb _ltrace _mat _mat2 \
+ _mdadm _mii-tool _modutils _mondo _networkmanager \
+ _nsenter _opkg _perf _pidof _pmap \
+ _qdbus _schedtool _selinux_contexts _selinux_roles _selinux_types \
+ _selinux_users _setpriv _setsid _slabtop _ss \
+ _sshfs _strace _sysstat _tload _tpb \
+ _tracepath _tune2fs _uml _unshare _valgrind \
+ _vserver _wakeup_capable_devices _wipefs _wpa_cli _a2ps \
+ _aap _abcde _absolute_command_paths _ack _adb \
+ _ansible _ant _antiword _apachectl _apm \
+ _arch_archives _arch_namespace _arp _arping _asciidoctor \
+ _asciinema _at _attr _augeas _avahi \
+ _awk _base64 _basename _bash _baudrates \
+ _baz _beep _bibtex _bind_addresses _bison \
+ _bittorrent _bogofilter _bpf_filters _bpython _bzip2 \
+ _bzr _cabal _cal _calendar _canonical_paths \
+ _cat _ccal _cdcd _cdrdao _cdrecord \
+ _chkconfig _chmod _chown _chroot _chsh \
+ _cksum _clay _cmdambivalent _cmdstring _cmp \
+ _column _comm _composer _compress _configure \
+ _cowsay _cp _cpio _cplay _crontab \
+ _cscope _csplit _cssh _ctags _ctags_tags \
+ _curl _cut _cvs _darcs _date \
+ _date_formats _dates _dbus _dconf _dd \
+ _devtodo _df _dhclient _dict _dict_words \
+ _diff _diff3 _diff_options _diffstat _dig \
+ _directories _dir_list _django _dmesg _dmidecode \
+ _dns_types _doas _domains _dos2unix _drill \
+ _dropbox _dsh _dtruss _du _dvi \
+ _ecasound _ed _elfdump _elinks _email_addresses \
+ _enscript _entr _env _espeak _etags \
+ _fakeroot _feh _fetchmail _ffmpeg _figlet \
+ _file_modes _files _file_systems _find _find_net_interfaces \
+ _finger _flac _flex _fmt _fold \
+ _fortune _fsh _fuser _gcc _gcore \
+ _gdb _gem _genisoimage _getconf _getent \
+ _getfacl _getmail _getopt _ghostscript _git \
+ _global _global_tags _gnu_generic _gnupod _gnutls \
+ _go _gpg _gphoto2 _gprof _gradle \
+ _graphicsmagick _grep _groff _groups _growisofs \
+ _gsettings _guilt _gzip _have_glob_qual _head \
+ _hexdump _host _hostname _hosts _iconv \
+ _id _ifconfig _iftop _imagemagick _initctl \
+ _init_d _install _iostat _ip _ipsec \
+ _irssi _ispell _java _java_class _joe \
+ _join _jq _killall _knock _kvno \
+ _last _ldconfig _ldd _ld_debug _less \
+ _lha _libvirt _links _list_files _lldb \
+ _ln _loadkeys _locale _localedef _locales \
+ _locate _logger _look _lp _ls \
+ _lsof _lua _luarocks _lynx _lz4 \
+ _lzop _mail _mailboxes _make _man \
+ _md5sum _mencal _mh _mime_types _mkdir \
+ _mkfifo _mknod _mktemp _module _monotone \
+ _moosic _mosh _mount _mpc _mt \
+ _mtools _mtr _mutt _mv _my_accounts \
+ _myrepos _mysqldiff _mysql_utils _ncftp _netcat \
+ _net_interfaces _netstat _newsgroups _nginx _ngrep \
+ _nice _nkf _nl _nm _nmap \
+ _npm _nslookup _numfmt _objdump _object_files \
+ _od _openstack _opustools _other_accounts _pack \
+ _pandoc _paste _patch _patchutils _path_commands \
+ _path_files _pax _pbm _pdf _perforce \
+ _perl _perl_basepods _perldoc _perl_modules _pgids \
+ _pgrep _php _picocom _pids _pine \
+ _ping _pip _pkgadd _pkg-config _pkginfo \
+ _pkg_instance _pkgrm _pon _ports _postfix \
+ _postgresql _postscript _pr _printenv _printers \
+ _process_names _prove _ps _pspdf _psutils \
+ _ptx _pump _pv _pwgen _pydoc \
+ _python _python_modules _qemu _quilt _rake \
+ _ranlib _rar _rclone _rcs _readelf \
+ _readlink _remote_files _renice _ri _rlogin \
+ _rm _rmdir _route _rrdtool _rsync \
+ _rubber _ruby _runit _samba _sccs \
+ _scons _screen _script _seafile _sed \
+ _seq _service _services _setfacl _sh \
+ _shasum _showmount _shred _shuf _shutdown \
+ _signals _sisu _slrn _smartmontools _socket \
+ _sort _spamassassin _split _sqlite _sqsh \
+ _ssh _ssh_hosts _stat _stdbuf _stgit \
+ _stow _strings _strip _stty _su \
+ _subversion _sudo _surfraw _swaks _swanctl \
+ _swift _sys_calls _sysctl _tac _tail \
+ _tar _tar_archive _tardy _tcpdump _tcptraceroute \
+ _tee _telnet _terminals _tex _texi \
+ _texinfo _tidy _tiff _tilde_files _timeout \
+ _time_zone _tin _tla _tmux _todo.sh \
+ _toilet _top _topgit _totd _touch \
+ _tput _tr _transmission _tree _truncate \
+ _truss _tty _ttys _twidge _twisted \
+ _umountable _unace _uname _unexpand _uniq \
+ _unison _units _uptime _urls _user_admin \
+ _user_at_host _users _users_on _vi _vim \
+ _visudo _vmstat _vorbis _vpnc _w \
+ _w3m _watch _wc _webbrowser _wget \
+ _whereis _who _whois _wiggle _xargs \
+ _xmlsoft _xmlstarlet _xmms2 _xxd _xz \
+ _yafc _yodl _yp _zcat _zdump \
+ _zfs _zfs_dataset _zfs_pool _zip _zsh \
+ _acroread _code _dcop _eog _evince \
+ _geany _gnome-gv _gqview _gv _kdeconnect \
+ _kfmclient _matlab _mozilla _mplayer _mupdf \
+ _nautilus _nedit _netscape _okular _pdftk \
+ _qiv _rdesktop _setxkbmap _sublimetext _urxvt \
+ _vnc _x_arguments _xauth _xautolock _x_borderwidth \
+ _xclip _x_color _x_colormapid _x_cursor _x_display \
+ _xdvi _x_extension _xfig _x_font _xft_fonts \
+ _x_geometry _xinput _x_keysym _xloadimage _x_locale \
+ _x_modifier _xmodmap _x_name _xournal _xpdf \
+ _xrandr _x_resource _xscreensaver _x_selection_timeout _xset \
+ _xt_arguments _xterm _x_title _xt_session_id _x_utils \
+ _xv _x_visual _x_window _xwit _zeal \
+ _add-zle-hook-widget _add-zsh-hook _alias _aliases __arguments \
+ _arrays _assign _autocd _bindkey _brace_parameter \
+ _builtin _cd _command _command_names _compadd \
+ _compdef _completers _condition _default _delimiters \
+ _directory_stack _dirs _disable _dynamic_directory_name _echotc \
+ _echoti _emulate _enable _equal _exec \
+ _fc _file_descriptors _first _functions _globflags \
+ _globqual_delims _globquals _hash _history_modifiers _in_vared \
+ _jobs _jobs_bg _jobs_builtin _jobs_fg _kill \
+ _limit _limits _math _math_params _mere \
+ _module_math_func _options _options_set _options_unset _parameter \
+ _parameters _precommand _print _prompt _ps1234 \
+ _read _redirect _run-help _sched _set \
+ _setopt _source _strftime _subscript _suffix_alias_files \
+ _tcpsys _tilde _trap _ttyctl _typeset \
+ _ulimit _unhash _user_math_func _value _vared \
+ _vars _vcs_info _vcs_info_hooks _wait _which \
+ _widgets _zargs _zattr _zcalc _zcalc_line \
+ _zcompile _zed _zftp _zle _zmodload \
+ _zmv _zparseopts _zpty _zsh-mime-handler _zsocket \
+ _zstyle _ztodo
+autoload -Uz +X _call_program
+
+typeset -gUa _comp_assocs
+_comp_assocs=( '' )
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 6bb4380..94813e6 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -1,6 +1,45 @@
# Enable colors and change prompt:
+
autoload -U colors && colors # Load colors
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
setopt autocd # Automatically cd into typed directory.
stty stop undef # Disable ctrl-s to freeze terminal.
setopt interactive_comments
+
+HISTSIZE=10000000
+SAVEHIST=10000000
+HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history"
+setopt append_history
+setopt inc_append_history
+setopt share_history
+setopt hist_ignore_dups
+setopt hist_ignore_all_dups
+setopt hist_expire_dups_first
+setopt hist_find_no_dups
+setopt hist_save_no_dups
+setopt hist_reduce_blanks
+setopt hist_verify
+
+autoload -U compinit
+zstyle ':completion:*' menu select
+zmodload zsh/complist
+compinit
+_comp_options+=(globdots) # Include hidden files.
+
+source "/usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
+
+lfcd () {
+ tmp="$(mktemp -uq)"
+ trap 'rm -f $tmp >/dev/null 2>&1 && trap - HUP INT QUIT TERM PWR EXIT' HUP INT QUIT TERM PWR EXIT
+ lf -last-dir-path="$tmp" "$@"
+ if [ -f "$tmp" ]; then
+ dir="$(cat "$tmp")"
+ [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
+ fi
+}
+bindkey -s '^o' '^ulfcd\n'
+
+export GPG_TTY=$(tty)
+
+# Load syntax highlighting; should be last.
+source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null
diff --git a/.local/bin/statusbar/sb-clock b/.local/bin/statusbar/sb-clock
new file mode 100755
index 0000000..bdf3590
--- /dev/null
+++ b/.local/bin/statusbar/sb-clock
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+clock=$(date '+%I')
+
+case "$clock" in
+ "00") icon="🕛" ;;
+ "01") icon="🕐" ;;
+ "02") icon="🕑" ;;
+ "03") icon="🕒" ;;
+ "04") icon="🕓" ;;
+ "05") icon="🕔" ;;
+ "06") icon="🕕" ;;
+ "07") icon="🕖" ;;
+ "08") icon="🕗" ;;
+ "09") icon="🕘" ;;
+ "10") icon="🕙" ;;
+ "11") icon="🕚" ;;
+ "12") icon="🕛" ;;
+esac
+
+date "+%b %d (%a) $icon %H:%M"
diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler
new file mode 100755
index 0000000..4567e30
--- /dev/null
+++ b/.local/bin/statusbar/sb-doppler
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+showdoppler() {
+ hyprctl dispatch exec "[float; size 800 800;]" 'curl -s https://meteoinfo.ru/hmc-output/rmap/phenomena.gif | imv - -H 1200 -W 1200'
+}
+
+sendnotif() {
+ notify-send "🌦️ Doppler RADAR" "Left click for full forecast."
+}
+if [ ! -n "$1" ]; then
+ echo 🌅
+else
+ if [ "$1" -eq 1 ]; then
+ showdoppler
+ elif [ "$1" -eq 3 ]; then
+ sendnotif
+ fi
+fi
+
diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast
new file mode 100755
index 0000000..42442cf
--- /dev/null
+++ b/.local/bin/statusbar/sb-forecast
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# Displays today's precipication chance (☔), and daily low (🥶) and high (🌞).
+# Usually intended for the statusbar.
+LOCATION="Moscow"
+url="${WTTRURL:-wttr.in}"
+weatherreport="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport"
+
+# Get a weather report from 'wttr.in' and save it locally.
+getforecast() { timeout --signal=1 2s curl -sf "$url/$LOCATION" > "$weatherreport" || exit 1; }
+
+getprecipchance() {
+ echo "$weatherdata" | sed '16q;d' | # Extract line 16 from file
+ grep -wo "[0-9]*%" | # Find a sequence of digits followed by '%'
+ sort -rn | # Sort in descending order
+ head -1q # Extract first line
+}
+
+getdailyhighlow() {
+ echo "$weatherdata" | sed '13q;d' | # Extract line 13 from file
+ grep -o "m\\([-+]\\)*[0-9]\\+" | # Find temperatures in the format "m<signed number>"
+ sed 's/[+m]//g' | # Remove '+' and 'm'
+ sort -g | # Sort in ascending order
+ sed -e 1b -e '$!d' # Extract the first and last lines
+}
+
+readfile() { weatherdata="$(cat "$weatherreport")" ;}
+
+showweather() {
+ readfile
+ printf "☔%s 🥶%s° 🌞%s°\n" "$(getprecipchance)" $(getdailyhighlow)
+}
+
+openterm() {
+ hyprctl dispatch exec "[float; size 1800 1300;]" 'kitty -e sh -c "curl wttr.in; read _"'
+}
+
+sendnotif() {
+ notify-send "🌈 Weather module" "Left click for full forecast."
+}
+
+if [ ! -n "$1" ]; then
+ getforecast
+ showweather
+else
+ if [ "$1" -eq 1 ]; then
+ openterm
+ elif [ "$1" -eq 3 ]; then
+ sendnotif
+ fi
+fi
+
diff --git a/.local/bin/statusbar/sb-internet b/.local/bin/statusbar/sb-internet
new file mode 100755
index 0000000..0cbf877
--- /dev/null
+++ b/.local/bin/statusbar/sb-internet
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# Show wifi 📶 and percent strength or 📡 if none.
+# Show 🌐 if connected to ethernet or ❎ if none.
+# Show 🔒 if a vpn connection is active
+
+printconnection() {
+ [ "$(cat /sys/class/net/eth0/operstate 2>/dev/null)" = 'up' ] && ethericon="🌐" || ethericon="❎"
+ [ -n "$(cat /sys/class/net/wg0/operstate 2>/dev/null)" ] && tunicon=" 🔒"
+ printf "%s%s%s\n" "$wifiicon" "$ethericon" "$tunicon"
+}
+
+if [ ! -n "$1" ]; then
+ printconnection
+else
+ if [ "$1" -eq 1 ]; then
+ if [ ! -n "$(cat /sys/class/net/wg0/operstate 2>/dev/null)" ];then
+ doas wg-quick up wg0
+ notify-send "🔒 Internet module" "Connected to VPN"
+ else
+ doas wg-quick down wg0
+ notify-send "🔒 Internet module" "Disconnected from VPN"
+ fi
+ elif [ "$1" -eq 3 ]; then
+ notify-send "🌐 Internet module" "\- Click to connect to vpn"
+ fi
+fi
diff --git a/.local/bin/statusbar/sb-memory b/.local/bin/statusbar/sb-memory
new file mode 100755
index 0000000..cf661a6
--- /dev/null
+++ b/.local/bin/statusbar/sb-memory
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if [ ! -n "$1" ]; then
+ free --mebi | sed -n '2{p;q}' | awk '{printf ("🧠%2.2fGiB/%2.2fGiB\n", ( $3 / 1024), ($2 / 1024))}'
+else
+ if [ "$1" -eq 1 ]; then
+ notify-send "🧠 Memory hogs" "$(ps axch -o cmd:15,%mem --sort=-%mem | head)"
+ elif [ "$1" -eq 2 ]; then
+ hyprctl dispatch exec "[float; size 1800 1300;]" 'kitty -e sh -c "btop"'
+ elif [ "$1" -eq 3 ]; then
+ notify-send "🧠 Memory module" "\- Shows Memory Used/Total."
+ fi
+fi
+
+
diff --git a/.local/bin/statusbar/sb-microphone b/.local/bin/statusbar/sb-microphone
new file mode 100755
index 0000000..e07e0de
--- /dev/null
+++ b/.local/bin/statusbar/sb-microphone
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+mic="$(wpctl get-volume @DEFAULT_SOURCE@)"
+
+# If muted, print 🔇 and exit.
+[ "$mic" != "${mic%\[MUTED\]}" ] && echo  && exit
+
+mic="${mic#Volume: }"
+
+split() {
+ # For ommiting the . without calling and external program.
+ IFS=$2
+ set -- $1
+ printf '%s' "$@"
+}
+
+mic="$(printf "%.0f" "$(split "$mic" ".")")"
+
+case 1 in
+ $((mic >= 1)) ) icon="🎙️" ;;
+ * ) echo  && exit ;;
+esac
+
+echo "$icon $mic%"
diff --git a/.local/bin/statusbar/sb-nettraf b/.local/bin/statusbar/sb-nettraf
new file mode 100755
index 0000000..88df9bd
--- /dev/null
+++ b/.local/bin/statusbar/sb-nettraf
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Module showing network traffic. Shows how much data has been received (RX) or
+# transmitted (TX) since the previous time this script ran. So if run every
+# second, gives network traffic per second.
+
+update() {
+ sum=0
+ for arg; do
+ read -r i < "$arg"
+ sum=$(( sum + i ))
+ done
+ cache=/tmp/${1##*/}
+ [ -f "$cache" ] && read -r old < "$cache" || old=0
+ printf %d\\n "$sum" > "$cache"
+ printf %d\\n $(( sum - old ))
+}
+
+rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes)
+tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes)
+
+printf "🔻%4sB 🔺%4sB\\n" $(numfmt --to=iec $rx $tx)
diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume
new file mode 100755
index 0000000..e3501d1
--- /dev/null
+++ b/.local/bin/statusbar/sb-volume
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+vol="$(wpctl get-volume @DEFAULT_SINK@)"
+
+# If muted, print 🔇 and exit.
+[ "$vol" != "${vol%\[MUTED\]}" ] && echo 🔇 && exit
+
+vol="${vol#Volume: }"
+
+split() {
+ # For ommiting the . without calling and external program.
+ IFS=$2
+ set -- $1
+ printf '%s' "$@"
+}
+
+vol="$(printf "%.0f" "$(split "$vol" ".")")"
+
+case 1 in
+ $((vol >= 70)) ) icon="🔊" ;;
+ $((vol >= 30)) ) icon="🔉" ;;
+ $((vol >= 1)) ) icon="🔈" ;;
+ * ) echo 🔇 && exit ;;
+esac
+
+echo "$icon $vol%"
diff --git a/dependencies.txt b/dependencies.txt
index 8e9d738..68a891a 100644
--- a/dependencies.txt
+++ b/dependencies.txt
@@ -1,35 +1,31 @@
-#hyprland
+# Hyprland deps
hyprland
xdg-desktop-portal-hyprland
hyprpaper
-hyprlock
-hypridle
-#sound
+# sound
pipewire
pipewire-pulse
pipewire-alsa
wireplumber
-#fonts
+# fonts
libertinus-font
noto-fonts
noto-fonts-emoji
fontconfig
-#apps
+# apps
+kitty
firefox
wl-clipboard
-wofi
-foot
-waybar
neovim
grim
slurp
zsh
+zsh-autosuggestions
mpv
yt-dlp
-fastfetch
mako
unzip
imv
@@ -40,3 +36,8 @@ mediainfo
bat
chafa
+# utilities
+gnupg
+openssh-openrc
+fakeroot
+btop
diff --git a/rice.sh b/rice.sh
index d00146e..aa41bc0 100755
--- a/rice.sh
+++ b/rice.sh
@@ -14,13 +14,11 @@ pacman -S $DEPLIST --noconfirm
usermod -aG seat,input,audio,video $PERMUSER
doas -u $PERMUSER cp -r $WORKDIRECTORY/.config /home/$PERMUSER
+doas -u $PERMUSER cp -r $WORKDIRECTORY/.local /home/$PERMUSER
doas -u $PERMUSER cp -a $WORKDIRECTORY/.zprofile /home/$PERMUSER
-doas -u $PERMUSER touch /home/$PERMUSER/.config/mpd/mpd.db
-doas -u $PERMUSER touch /home/$PERMUSER/.config/mpd/mpd.log
-doas -u $PERMUSER touch /home/$PERMUSER/.config/mpd/mpd.pid
-doas -u $PERMUSER touch /home/$PERMUSER/.config/mpd/mpdstate
doas -u $PERMUSER mkdir -p /home/$PERMUSER/.cache/lf
+doas -u $PERMUSER mkdir -p /home/$PERMUSER/.cache/zsh
doas -u $PERMUSER mkdir -p /home/$PERMUSER/.local/share/themes
doas -u $PERMUSER mkdir -p /home/$PERMUSER/.local/share/icons
doas -u $PERMUSER mkdir -p /home/$PERMUSER/.local/share/papes
@@ -37,6 +35,32 @@ doas -u $PERMUSER dbus-launch gsettings set org.gnome.desktop.wm.preferences but
#doas -u $PERMUSER dbus-launch gsettings set org.gnome.desktop.interface font-name "Libertinus Serif 12"
cd $WORKDIRECTORY
+doas -u $PERMUSER git clone https://github.com/zdharma-continuum/fast-syntax-highlighting
+mkdir -p /usr/share/zsh/plugins
+cp -rf fast-syntax-highlighting /usr/share/zsh/plugins
cd ..
-rm -rf hyprdots
+rm -rf hyprdots
+
+doas -u $PERMUSER mkdir -p /home/$PERMUSER/.ssh
+doas -u $PERMUSER mkdir -p /home/$PERMUSER/.gnupg
+doas -u $PERMUSER touch /home/$PERMUSER/.ssh/config
+doas -u $PERMUSER touch /home/$PERMUSER/.gnupg/gpg-agent.conf
+echo 'Match host * exec "gpg-connect-agent UPDATESTARTUPTTY /bye"' > /home/$PERMUSER/.ssh/config
+echo 'enable-ssh-support' > /home/$PERMUSER/.gnupg/gpg-agent.conf
+rc-update add sshd default
+rc-service sshd start
+
+chsh -s /bin/zsh $PERMUSER
+
+mkdir -p /root/.config/nvim
+cat <<EOL >> /root/.config/nvim/init.vim
+set title
+set clipboard+=unnamedplus
+set relativenumber
+colorscheme vim
+EOL
+
+sed -i -e "/^#"Color"/s/^#//" /etc/pacman.conf
+sed -i -e '/Color/a\ILoveCandy' /etc/pacman.conf
+
echo "Your linux is riced!"