aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/alacritty/alacritty.toml666
-rw-r--r--.config/gtk-2.0/gtkfilechooser.ini11
-rw-r--r--.config/gtk-2.0/gtkrc-2.018
-rw-r--r--.config/gtk-3.0/settings.ini15
-rw-r--r--.config/hypr/hypridle.conf27
-rw-r--r--.config/hypr/hyprland.conf307
-rw-r--r--.config/hypr/hyprlock.conf100
-rw-r--r--.config/hypr/hyprpaper.conf2
-rw-r--r--.config/hypr/mocha.conf78
-rw-r--r--.config/kanshi/config22
-rw-r--r--.config/mimeapps.list38
-rw-r--r--.config/mpd/mpd.conf25
-rw-r--r--.config/mpv/input.conf9
-rw-r--r--.config/mpv/mpv.conf62
-rw-r--r--.config/ncmpcpp/bindings475
-rw-r--r--.config/ncmpcpp/config65
-rw-r--r--.config/newsboat/config46
-rw-r--r--.config/newsboat/urls17
-rw-r--r--.config/npm/npmrc2
-rw-r--r--.config/python/pythonrc2
-rw-r--r--.config/rofi/config.rasi209
-rw-r--r--.config/shell/aliasrc61
-rw-r--r--.config/shell/profile59
-rw-r--r--.config/swaync/style.css324
-rw-r--r--.config/tmux/tmux.conf47
-rw-r--r--.config/user-dirs.dirs15
-rw-r--r--.config/waybar/config.jsonc157
-rwxr-xr-x.config/waybar/scripts/envyswitch.sh17
-rwxr-xr-x.config/waybar/scripts/gpu_mode.sh19
-rw-r--r--.config/waybar/style.css272
-rw-r--r--.config/wget/wgetrc1
-rw-r--r--.config/zathura/zathurarc53
-rw-r--r--.config/zsh/.zshrc57
33 files changed, 3278 insertions, 0 deletions
diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
new file mode 100644
index 0000000..bb81e82
--- /dev/null
+++ b/.config/alacritty/alacritty.toml
@@ -0,0 +1,666 @@
+
+[env]
+TERM = "xterm-256color"
+
+[colors]
+draw_bold_text_with_bright_colors = true
+
+[colors.primary]
+background = '#1E1E2E' # base
+foreground = '#CDD6F4' # text
+# Bright and dim foreground colors
+dim_foreground = '#CDD6F4' # text
+bright_foreground = '#CDD6F4' # text
+
+# Cursor colors
+[colors.cursor]
+text = '#1E1E2E' # base
+cursor = '#F5E0DC' # rosewater
+
+[colors.vi_mode_cursor]
+text = '#1E1E2E' # base
+cursor = '#B4BEFE' # lavender
+
+# Search colors
+[colors.search.matches]
+foreground = '#1E1E2E' # base
+background = '#A6ADC8' # subtext0
+
+[colors.search.focused_match]
+foreground = '#1E1E2E' # base
+background = '#A6E3A1' # green
+
+[colors.footer_bar]
+foreground = '#1E1E2E' # base
+background = '#A6ADC8' # subtext0
+
+# Keyboard regex hints
+[colors.hints.start]
+foreground = '#1E1E2E' # base
+background = '#F9E2AF' # yellow
+
+[colors.hints.end]
+foreground = '#1E1E2E' # base
+background = '#A6ADC8' # subtext0
+
+# Selection colors
+[colors.selection]
+text = '#1E1E2E' # base
+background = '#F5E0DC' # rosewater
+
+# Normal colors
+[colors.normal]
+black = '#45475A' # surface1
+red = '#F38BA8' # red
+green = '#A6E3A1' # green
+yellow = '#F9E2AF' # yellow
+blue = '#89B4FA' # blue
+magenta = '#F5C2E7' # pink
+cyan = '#94E2D5' # teal
+white = '#BAC2DE' # subtext1
+
+# Bright colors
+[colors.bright]
+black = '#585B70' # surface2
+red = '#F38BA8' # red
+green = '#A6E3A1' # green
+yellow = '#F9E2AF' # yellow
+blue = '#89B4FA' # blue
+magenta = '#F5C2E7' # pink
+cyan = '#94E2D5' # teal
+white = '#A6ADC8' # subtext0
+
+# Dim colors
+[colors.dim]
+black = '#45475A' # surface1
+red = '#F38BA8' # red
+green = '#A6E3A1' # green
+yellow = '#F9E2AF' # yellow
+blue = '#89B4FA' # blue
+magenta = '#F5C2E7' # pink
+cyan = '#94E2D5' # teal
+white = '#BAC2DE' # subtext1
+[cursor]
+style = "Block"
+unfocused_hollow = true
+
+[debug]
+persistent_logging = false
+render_timer = false
+
+[font]
+size = 12
+
+[font.bold]
+family = "Fira Code"
+style = "Bold"
+
+[font.glyph_offset]
+x = 0
+y = 0
+
+[font.italic]
+family = "Fira Code"
+style = "Italic"
+
+[font.normal]
+family = "Fira Code"
+style = "Regular"
+
+[font.offset]
+x = 0
+y = 0
+
+[[keyboard.bindings]]
+action = "Paste"
+key = "V"
+mods = "Control|Shift"
+
+[[keyboard.bindings]]
+action = "Copy"
+key = "C"
+mods = "Control|Shift"
+
+[[keyboard.bindings]]
+action = "Paste"
+key = "Paste"
+
+[[keyboard.bindings]]
+action = "Copy"
+key = "Copy"
+
+[[keyboard.bindings]]
+action = "Quit"
+key = "W"
+mods = "Command"
+
+[[keyboard.bindings]]
+action = "PasteSelection"
+key = "Insert"
+mods = "Shift"
+
+[[keyboard.bindings]]
+action = "ResetFontSize"
+key = "Key0"
+mods = "Control"
+
+[[keyboard.bindings]]
+action = "IncreaseFontSize"
+key = "Equals"
+mods = "Control"
+
+[[keyboard.bindings]]
+action = "DecreaseFontSize"
+key = "NumpadSubtract"
+mods = "Control"
+
+[[keyboard.bindings]]
+action = "DecreaseFontSize"
+key = "Minus"
+mods = "Control"
+
+[[keyboard.bindings]]
+action = "ClearLogNotice"
+key = "L"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\f"
+key = "L"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001BOH"
+key = "Home"
+mode = "AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001B[H"
+key = "Home"
+mode = "~AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001BOF"
+key = "End"
+mode = "AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001B[F"
+key = "End"
+mode = "~AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001B[5;2~"
+key = "PageUp"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[5;5~"
+key = "PageUp"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[5~"
+key = "PageUp"
+
+[[keyboard.bindings]]
+chars = "\u001B[6;2~"
+key = "PageDown"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[6;5~"
+key = "PageDown"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[6~"
+key = "PageDown"
+
+[[keyboard.bindings]]
+chars = "\u001B[Z"
+key = "Tab"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u007F"
+key = "Back"
+
+[[keyboard.bindings]]
+chars = "\u001B\u007F"
+key = "Back"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[2~"
+key = "Insert"
+
+[[keyboard.bindings]]
+chars = "\u001B[3~"
+key = "Delete"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2D"
+key = "Left"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5D"
+key = "Left"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3D"
+key = "Left"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[D"
+key = "Left"
+mode = "~AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001BOD"
+key = "Left"
+mode = "AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2C"
+key = "Right"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5C"
+key = "Right"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3C"
+key = "Right"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[C"
+key = "Right"
+mode = "~AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001BOC"
+key = "Right"
+mode = "AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2A"
+key = "Up"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5A"
+key = "Up"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3A"
+key = "Up"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[A"
+key = "Up"
+mode = "~AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001BOA"
+key = "Up"
+mode = "AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2B"
+key = "Down"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5B"
+key = "Down"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3B"
+key = "Down"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[B"
+key = "Down"
+mode = "~AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001BOB"
+key = "Down"
+mode = "AppCursor"
+
+[[keyboard.bindings]]
+chars = "\u001BOP"
+key = "F1"
+
+[[keyboard.bindings]]
+chars = "\u001BOQ"
+key = "F2"
+
+[[keyboard.bindings]]
+chars = "\u001BOR"
+key = "F3"
+
+[[keyboard.bindings]]
+chars = "\u001BOS"
+key = "F4"
+
+[[keyboard.bindings]]
+chars = "\u001B[15~"
+key = "F5"
+
+[[keyboard.bindings]]
+chars = "\u001B[17~"
+key = "F6"
+
+[[keyboard.bindings]]
+chars = "\u001B[18~"
+key = "F7"
+
+[[keyboard.bindings]]
+chars = "\u001B[19~"
+key = "F8"
+
+[[keyboard.bindings]]
+chars = "\u001B[20~"
+key = "F9"
+
+[[keyboard.bindings]]
+chars = "\u001B[21~"
+key = "F10"
+
+[[keyboard.bindings]]
+chars = "\u001B[23~"
+key = "F11"
+
+[[keyboard.bindings]]
+chars = "\u001B[24~"
+key = "F12"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2P"
+key = "F1"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2Q"
+key = "F2"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2R"
+key = "F3"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;2S"
+key = "F4"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[15;2~"
+key = "F5"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[17;2~"
+key = "F6"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[18;2~"
+key = "F7"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[19;2~"
+key = "F8"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[20;2~"
+key = "F9"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[21;2~"
+key = "F10"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[23;2~"
+key = "F11"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[24;2~"
+key = "F12"
+mods = "Shift"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5P"
+key = "F1"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5Q"
+key = "F2"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5R"
+key = "F3"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;5S"
+key = "F4"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[15;5~"
+key = "F5"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[17;5~"
+key = "F6"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[18;5~"
+key = "F7"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[19;5~"
+key = "F8"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[20;5~"
+key = "F9"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[21;5~"
+key = "F10"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[23;5~"
+key = "F11"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[24;5~"
+key = "F12"
+mods = "Control"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;6P"
+key = "F1"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;6Q"
+key = "F2"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;6R"
+key = "F3"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;6S"
+key = "F4"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[15;6~"
+key = "F5"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[17;6~"
+key = "F6"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[18;6~"
+key = "F7"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[19;6~"
+key = "F8"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[20;6~"
+key = "F9"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[21;6~"
+key = "F10"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[23;6~"
+key = "F11"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[24;6~"
+key = "F12"
+mods = "Alt"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3P"
+key = "F1"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3Q"
+key = "F2"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3R"
+key = "F3"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[1;3S"
+key = "F4"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[15;3~"
+key = "F5"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[17;3~"
+key = "F6"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[18;3~"
+key = "F7"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[19;3~"
+key = "F8"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[20;3~"
+key = "F9"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[21;3~"
+key = "F10"
+mods = "Super"
+
+[[keyboard.bindings]]
+chars = "\u001B[23;3~"
+key = "F11"
+mods = "Super"
+
+# [mouse]
+# hide_when_typing = false
+#
+# [[mouse.bindings]]
+# action = "PasteSelection"
+# mouse = "Middle"
+#
+# [mouse.double_click]
+# threshold = 300
+#
+# [mouse.hints]
+# launcher = "xdg-open"
+# modifiers = "Control"
+#
+# [mouse.triple_click]
+# threshold = 300
+#
+[scrolling]
+history = 100000
+multiplier = 3
+
+[selection]
+save_to_clipboard = false
+semantic_escape_chars = ",│`|:\"' ()[]{}<>"
+
+[window]
+decorations = "none"
+dynamic_padding = false
+opacity = 0.9
+startup_mode = "Maximized"
+
+[window.dimensions]
+columns = 0
+lines = 0
+
+[window.padding]
+x = 5
+y = 5
+
+[general]
+
+live_config_reload = true
diff --git a/.config/gtk-2.0/gtkfilechooser.ini b/.config/gtk-2.0/gtkfilechooser.ini
new file mode 100644
index 0000000..7ea7bf8
--- /dev/null
+++ b/.config/gtk-2.0/gtkfilechooser.ini
@@ -0,0 +1,11 @@
+[Filechooser Settings]
+LocationMode=path-bar
+ShowHidden=false
+ShowSizeColumn=true
+GeometryX=1068
+GeometryY=0
+GeometryWidth=840
+GeometryHeight=630
+SortColumn=name
+SortOrder=ascending
+StartupMode=recent
diff --git a/.config/gtk-2.0/gtkrc-2.0 b/.config/gtk-2.0/gtkrc-2.0
new file mode 100644
index 0000000..9461332
--- /dev/null
+++ b/.config/gtk-2.0/gtkrc-2.0
@@ -0,0 +1,18 @@
+# DO NOT EDIT! This file will be overwritten by LXAppearance.
+# Any customization should be done in ~/.gtkrc-2.0.mine instead.
+
+include "/home/krolyxon/.gtkrc-2.0.mine"
+gtk-theme-name="Arc-Dark"
+gtk-icon-theme-name="Papirus-Dark"
+gtk-font-name="Fira Code 11"
+gtk-cursor-theme-name="Adwaita"
+gtk-cursor-theme-size=0
+gtk-toolbar-style=GTK_TOOLBAR_BOTH
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=1
+gtk-menu-images=1
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=1
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle="hintfull"
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..f088000
--- /dev/null
+++ b/.config/gtk-3.0/settings.ini
@@ -0,0 +1,15 @@
+[Settings]
+gtk-theme-name=Arc-Dark
+gtk-icon-theme-name=Papirus-Dark
+gtk-font-name=JetBrainsMonoNL Nerd Font Thin 11
+gtk-cursor-theme-name=WhiteSur-cursors
+gtk-cursor-theme-size=0
+gtk-toolbar-style=GTK_TOOLBAR_BOTH
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=1
+gtk-menu-images=1
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=1
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle=hintfull
diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf
new file mode 100644
index 0000000..ccdeca1
--- /dev/null
+++ b/.config/hypr/hypridle.conf
@@ -0,0 +1,27 @@
+general {
+ lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
+ before_sleep_cmd = loginctl lock-session # lock before suspend.
+ after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
+}
+
+listener {
+ timeout = 150 # 2.5min.
+ on-timeout = brightnessctl -s set 5 # set monitor backlight to minimum, avoid 0 on OLED monitor.
+ on-resume = brightnessctl -r # monitor backlight restore.
+}
+
+listener {
+ timeout = 600 # 10min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+listener {
+ timeout = 330 # 5.5min
+ on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
+ on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
+}
+
+# listener {
+# timeout = 1800 # 30min
+# on-timeout = systemctl suspend # suspend pc
+# }
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..ec76c76
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,307 @@
+autogenerated = 0
+
+###################
+### MY PROGRAMS ###
+###################
+$terminal = footclient
+$menu = rofi -show run
+$browser = zen-browser
+
+
+#################
+### AUTOSTART ###
+#################
+exec-once = (hyprpm reload -n & kanshi & waybar & swaync & gammastep & hypridle & foot --server)
+exec-once = ~/.local/bin/setwall
+exec-once = systemctl --user start hyprpolkitagent
+
+plugin {
+ hyprsplit {
+ num_workspaces = 10
+ persistent_workspaces = true
+ }
+}
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+# See https://wiki.hypr.land/Configuring/Environment-variables/
+env = HYPRSHOT_DIR,/home/krolyxon/pix/ss/
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+env = GTK_THEME,Arc-Dark
+
+# XDG Specifications
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+
+# Toolkit
+env = GDK_BACKEND,wayland,x11,* # GTK: Use Wayland if available; if not, try X11 and then any other GDK backend.
+env = QT_QPA_PLATFORM,wayland;xcb # Qt: Use Wayland if available, fall back to X11 if not
+env = SDL_VIDEODRIVER,Wayland # Run SDL2 applications on Wayland. Remove or set to x11 if games that provide older versions of SDL cause compatibility issues
+env = CLUTTER_BACKEND,wayland # Clutter applications to try and use the Wayland backend
+
+# Nvidia
+# env = GBM_BACKEND,nvidia-drm
+# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+# env = LIBVA_DRIVER_NAME,nvidia
+
+#######################
+### PLUGIN SETTINGS ###
+#######################
+plugin {
+ split-monitor-workspaces {
+ count = 10
+ keep_focused = 1
+ enable_notifications = 0
+ enable_persistent_workspaces = 1
+ }
+}
+
+
+
+###################
+### PERMISSIONS ###
+###################
+ecosystem {
+ enforce_permissions = 1
+}
+
+permission = /usr/(bin|local/bin)/grim, screencopy, allow
+permission = /usr/(bin|local/bin)/hyprlock, screencopy, allow
+permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
+permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
+permission = ${lib.escapeRegex (lib.getExe config.programs.hyprlock.package)}, screencopy, allow
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+general {
+ gaps_in = 5
+ gaps_out = 5
+ border_size = 2
+ resize_on_border = false
+ allow_tearing = false
+ # col.active_border = rgba(7da6ffee)
+ # col.inactive_border = rgba(888e8eaa)
+ col.active_border = rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg
+ col.inactive_border = rgb(24273A) rgb(24273A) rgb(24273A) rgb(27273A) 45deg
+ layout = master
+}
+
+decoration {
+ rounding = 8
+
+
+ # blur {
+ # enabled = false
+ # size = 3
+ # passes = 1
+ # }
+
+
+ # blur {
+ # enabled = true
+ # size = 3
+ # passes = 3
+ # new_optimizations = true
+ # vibrancy = 0.1696
+ # ignore_opacity = true
+ # }
+}
+
+animations {
+ enabled = yes
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+ 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
+}
+
+# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
+# "Smart gaps" / "No gaps when only"
+# uncomment all if you wish to use that.
+# workspace = w[tv1], gapsout:0, gapsin:0
+# workspace = f[1], gapsout:0, gapsin:0
+# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
+# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
+# windowrule = bordersize 0, floating:0, onworkspace:f[1]
+# windowrule = rounding 0, floating:0, onworkspace:f[1]
+
+# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
+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
+}
+
+# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
+master {
+ new_status = master
+ new_on_top = true
+
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = -1 # 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
+
+ mouse_move_enables_dpms = true
+ key_press_enables_dpms = true
+
+ vrr = 0 # Disable adaptive sync
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hypr.land/Configuring/Variables/#input
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ touchpad {
+ natural_scroll = false
+ }
+
+ repeat_delay = 300
+ repeat_rate = 50
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#gestures
+gestures {
+ workspace_swipe = false
+}
+
+# Example per-device config
+# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
+device {
+ name = epic-mouse-v1
+ sensitivity = -0.5
+}
+
+
+###################
+### KEYBINDINGS ###
+###################
+
+# See https://wiki.hypr.land/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
+bind = $mainMod, Return, exec, $terminal
+bind = $mainMod SHIFT, X, killactive,
+bind = $mainMod SHIFT, Q, exit,
+bind = $mainMod, F, Fullscreen
+bind = $mainMod SHIFT, R, togglefloating,
+bind = $mainMod, R, exec, $menu
+bind = $mainMod SHIFT, P, pseudo, # dwindle
+bind = $mainMod, J, togglesplit, # dwindle
+binde = $mainMod, tab, cyclenext, prev
+bind = $mainMod, b, exec, killall waybar || waybar
+bind = $mainMod, grave, exec, rofiunicode
+bind = $mainMod, escape, exec, sysact
+
+# Applications
+bind = $mainMod, W, exec, $browser
+
+# Music Controls
+bind = $mainMod, m, exec, $terminal -e "ncmpcpp"
+bind = $mainMod, p, exec, mpc toggle
+binde = $mainMod, comma, exec, mpc seek -10
+binde = $mainMod, period, exec, mpc seek +10
+
+# Swap current focused window with master
+bind = $mainMod, space, layoutmsg, swapwithmaster
+
+# Resize windows with h/j/k/l
+binde = $mainMod, h, resizeactive, -30 0
+binde = $mainMod, l, resizeactive, 30 0
+binde = $mainMod, k, resizeactive, 0 -30
+binde = $mainMod, j, resizeactive, 0 30
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mainMod, 1, split-workspace, 1
+bind = $mainMod, 2, split-workspace, 2
+bind = $mainMod, 3, split-workspace, 3
+bind = $mainMod, 4, split-workspace, 4
+bind = $mainMod, 5, split-workspace, 5
+bind = $mainMod, 6, split-workspace, 6
+bind = $mainMod, 7, split-workspace, 7
+bind = $mainMod, 8, split-workspace, 8
+bind = $mainMod, 9, split-workspace, 9
+bind = $mainMod, 0, split-workspace, 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1
+bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2
+bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3
+bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4
+bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5
+bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6
+bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7
+bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8
+bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9
+bind = $mainMod SHIFT, 0, split-movetoworkspacesilent, 10
+
+# Example special workspace (scratchpad)
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# Have scratchpad like DWM which opens alacritty in special workspace
+workspace = special:h, on-created-empty: alacritty
+bind = $mainMod SHIFT, Return, togglespecialworkspace, h
+
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Laptop multimedia keys for volume and LCD brightness
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
+
+# Requires playerctl
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
+# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule
+# windowrule = float,class:^(kitty)$,title:^(kitty)$
+
+# Ignore maximize requests from apps. You'll probably like this.
+windowrule = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..e9874d0
--- /dev/null
+++ b/.config/hypr/hyprlock.conf
@@ -0,0 +1,100 @@
+source = $HOME/.config/hypr/mocha.conf
+
+$accent = $mauve
+$accentAlpha = $mauveAlpha
+$font = JetBrainsMono Nerd Font
+
+# GENERAL
+general {
+ hide_cursor = true
+}
+
+# BACKGROUND
+background {
+ monitor =
+ path = $HOME/.config/background
+ blur_passes = 0
+ color = $base
+}
+
+# LAYOUT
+label {
+ monitor =
+ text = Layout: $LAYOUT
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = 30, -30
+ halign = left
+ valign = top
+}
+
+# TIME
+label {
+ monitor =
+ text = $TIME
+ color = $text
+ font_size = 90
+ font_family = $font
+ position = -30, 0
+ halign = right
+ valign = top
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:43200000] date +"%A, %d %B %Y"
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = -30, -150
+ halign = right
+ valign = top
+}
+
+# FINGERPRINT
+{
+ monitor = "";
+ text = "$FPRINTPROMPT";
+ color = "$text";
+ font_size = 14;
+ font_family = $font;
+ position = "0, -107";
+ halign = "center";
+ valign = "center";
+}
+
+# USER AVATAR
+image {
+ monitor =
+ path = $HOME/.face
+ size = 100
+ border_color = $accent
+ position = 0, 75
+ halign = center
+ valign = center
+}
+
+# INPUT FIELD
+input-field {
+ monitor =
+ size = 300, 60
+ outline_thickness = 4
+ dots_size = 0.2
+ dots_spacing = 0.2
+ dots_center = true
+ outer_color = $accent
+ inner_color = $surface0
+ font_color = $text
+ fade_on_empty = false
+ placeholder_text = <span foreground="##$textAlpha"><i>󰌾 Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
+ hide_input = false
+ check_color = $accent
+ fail_color = $red
+ fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
+ capslock_color = $yellow
+ position = 0, -47
+ halign = center
+ valign = center
+}
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..a9c8b8b
--- /dev/null
+++ b/.config/hypr/hyprpaper.conf
@@ -0,0 +1,2 @@
+preload = /home/krolyxon/pix/wallpapers/onedarkwallpapers/19.png
+wallpaper = ,/home/krolyxon/pix/wallpapers/onedarkwallpapers/19.png
diff --git a/.config/hypr/mocha.conf b/.config/hypr/mocha.conf
new file mode 100644
index 0000000..8ccb56a
--- /dev/null
+++ b/.config/hypr/mocha.conf
@@ -0,0 +1,78 @@
+
+$rosewater = rgb(f5e0dc)
+$rosewaterAlpha = f5e0dc
+
+$flamingo = rgb(f2cdcd)
+$flamingoAlpha = f2cdcd
+
+$pink = rgb(f5c2e7)
+$pinkAlpha = f5c2e7
+
+$mauve = rgb(cba6f7)
+$mauveAlpha = cba6f7
+
+$red = rgb(f38ba8)
+$redAlpha = f38ba8
+
+$maroon = rgb(eba0ac)
+$maroonAlpha = eba0ac
+
+$peach = rgb(fab387)
+$peachAlpha = fab387
+
+$yellow = rgb(f9e2af)
+$yellowAlpha = f9e2af
+
+$green = rgb(a6e3a1)
+$greenAlpha = a6e3a1
+
+$teal = rgb(94e2d5)
+$tealAlpha = 94e2d5
+
+$sky = rgb(89dceb)
+$skyAlpha = 89dceb
+
+$sapphire = rgb(74c7ec)
+$sapphireAlpha = 74c7ec
+
+$blue = rgb(89b4fa)
+$blueAlpha = 89b4fa
+
+$lavender = rgb(b4befe)
+$lavenderAlpha = b4befe
+
+$text = rgb(cdd6f4)
+$textAlpha = cdd6f4
+
+$subtext1 = rgb(bac2de)
+$subtext1Alpha = bac2de
+
+$subtext0 = rgb(a6adc8)
+$subtext0Alpha = a6adc8
+
+$overlay2 = rgb(9399b2)
+$overlay2Alpha = 9399b2
+
+$overlay1 = rgb(7f849c)
+$overlay1Alpha = 7f849c
+
+$overlay0 = rgb(6c7086)
+$overlay0Alpha = 6c7086
+
+$surface2 = rgb(585b70)
+$surface2Alpha = 585b70
+
+$surface1 = rgb(45475a)
+$surface1Alpha = 45475a
+
+$surface0 = rgb(313244)
+$surface0Alpha = 313244
+
+$base = rgb(1e1e2e)
+$baseAlpha = 1e1e2e
+
+$mantle = rgb(181825)
+$mantleAlpha = 181825
+
+$crust = rgb(11111b)
+$crustAlpha = 11111b
diff --git a/.config/kanshi/config b/.config/kanshi/config
new file mode 100644
index 0000000..e6aabe2
--- /dev/null
+++ b/.config/kanshi/config
@@ -0,0 +1,22 @@
+profile laptop-only {
+ output eDP-1 {
+ enable
+ mode 1920x1080
+ scale 1
+ position 0,0
+ }
+}
+
+profile docked {
+ output eDP-1 {
+ mode 1920x1080
+ scale 1
+ position 0,0
+ }
+
+ output HDMI-A-1 {
+ mode 1920x1080
+ scale 1
+ position 1920,0
+ }
+}
diff --git a/.config/mimeapps.list b/.config/mimeapps.list
new file mode 100644
index 0000000..c5186b9
--- /dev/null
+++ b/.config/mimeapps.list
@@ -0,0 +1,38 @@
+[Default Applications]
+text/x-shellscript=text.desktop;
+x-scheme-handler/magnet=torrent.desktop;
+application/x-bittorrent=torrent.desktop;
+text/plain=nvim.desktop
+application/postscript=pdf.desktop;
+application/pdf=pdf.desktop;
+image/png=img.desktop;
+image/jpeg=img.desktop;
+image/gif=img.desktop;
+application/rss+xml=rss.desktop
+video/x-matroska=video.desktop
+x-scheme-handler/lbry=lbry.desktop
+inode/directory=file.desktop
+x-scheme-handler/tonsite=org.telegram.desktop.desktop
+x-scheme-handler/http=zen.desktop
+x-scheme-handler/https=zen.desktop
+x-scheme-handler/chrome=zen.desktop
+text/html=zen.desktop
+application/x-extension-htm=zen.desktop
+application/x-extension-html=zen.desktop
+application/x-extension-shtml=zen.desktop
+application/xhtml+xml=zen.desktop
+application/x-extension-xhtml=zen.desktop
+application/x-extension-xht=zen.desktop
+
+[Added Associations]
+x-scheme-handler/tonsite=org.telegram.desktop.desktop;
+x-scheme-handler/http=zen.desktop;
+x-scheme-handler/https=zen.desktop;
+x-scheme-handler/chrome=zen.desktop;
+text/html=zen.desktop;
+application/x-extension-htm=zen.desktop;
+application/x-extension-html=zen.desktop;
+application/x-extension-shtml=zen.desktop;
+application/xhtml+xml=zen.desktop;
+application/x-extension-xhtml=zen.desktop;
+application/x-extension-xht=zen.desktop;
diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf
new file mode 100644
index 0000000..3729240
--- /dev/null
+++ b/.config/mpd/mpd.conf
@@ -0,0 +1,25 @@
+db_file "~/.config/mpd/database"
+music_directory "~/music"
+playlist_directory "~/.config/mpd/playlists"
+
+auto_update "yes"
+bind_to_address "127.0.0.1"
+port "6600"
+restore_paused "yes"
+max_output_buffer_size "16384"
+
+audio_output {
+ # type "pulse"
+ # name "pulse"
+ #type "alsa"
+ #name "ALSA"
+ type "pipewire"
+ name "PipeWire Sound Server"
+}
+
+audio_output {
+ type "fifo"
+ name "Visualizer feed"
+ path "/tmp/mpd.fifo"
+ format "44100:16:2"
+}
diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf
new file mode 100644
index 0000000..20851f4
--- /dev/null
+++ b/.config/mpv/input.conf
@@ -0,0 +1,9 @@
+# Normalize audio.
+F1 af toggle "dynaudnorm=g=5:f=250:r=0.9:p=0.5"
+
+# seek commands
+l seek 5
+h seek -5
+j seek -60
+k seek 60
+S cycle sub
diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf
new file mode 100644
index 0000000..ecc566c
--- /dev/null
+++ b/.config/mpv/mpv.conf
@@ -0,0 +1,62 @@
+# PLAYER
+# ---
+# Use GPU-accelerated video output by default.
+vo=gpu
+# Enable best HW decoder, turn off software decoding.
+hwdec=auto
+# Keep the player open when a file's end is reached.
+keep-open=yes
+# Color log messages on the terminal.
+msg-color=yes
+# Prepend module name to log messages.
+msg-module=yes
+# Display progress bar on the terminal.
+term-osd-bar=yes
+# Autohide cursor after 1s.
+cursor-autohide=1000
+# Use large seekable RAM cache even for local input.
+#cache=yes
+#cache-secs=300
+# Use extra large RAM cache, needs "cache=yes" to make it useful.
+#demuxer-max-bytes=1800M
+#demuxer-max-back-bytes=1200M
+# Disabling of decoder framedrop during hr-seek.
+hr-seek-framedrop=no
+
+# AUDIO
+# ---
+volume=100
+volume-max=200
+
+# SCREENSHOT
+screenshot-format=png
+# screenshot-directory="~/pix/ss/mpv" # Output directory
+screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n"
+
+# SUBTITLES
+# ---
+# Detect all subtitles.
+sub-auto=all
+# External subs don't have to match file name exactly to autoload.
+sub-auto=fuzzy
+# Blend subtitles directly onto upscaled video frames.
+blend-subtitles=yes
+# Try to correctly show embedded subs when seeking.
+demuxer-mkv-subtitle-preroll=yes
+# Use embedded fonts for SSA/ASS subs.
+embeddedfonts=yes
+# Backward compatibility for vsfilter fansubs.
+sub-ass-use-video-data=all
+# Search for external subs in these relative subdirectories.
+sub-file-paths-append=ass
+sub-file-paths-append=srt
+sub-file-paths-append=sub
+sub-file-paths-append=subs
+sub-file-paths-append=subtitles
+
+# FILE-TYPE PROFILES
+# ---
+[extension.gif]
+cache=no
+loop-file=yes
+no-pause
diff --git a/.config/ncmpcpp/bindings b/.config/ncmpcpp/bindings
new file mode 100644
index 0000000..b2c40bb
--- /dev/null
+++ b/.config/ncmpcpp/bindings
@@ -0,0 +1,475 @@
+##############################################################
+## This is the example bindings file. Copy it to ##
+## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ##
+## and set up your preferences ##
+##############################################################
+#
+#def_key "mouse"
+# mouse_event
+#
+#def_key "up"
+# scroll_up
+#
+#def_key "shift-up"
+# select_item
+# scroll_up
+#
+#def_key "down"
+# scroll_down
+#
+#def_key "shift-down"
+# select_item
+# scroll_down
+#
+#def_key "["
+# scroll_up_album
+#
+#def_key "]"
+# scroll_down_album
+#
+#def_key "{"
+# scroll_up_artist
+#
+#def_key "}"
+# scroll_down_artist
+#
+#def_key "page_up"
+# page_up
+#
+#def_key "page_down"
+# page_down
+#
+#def_key "home"
+# move_home
+#
+#def_key "end"
+# move_end
+#
+#def_key "insert"
+# select_item
+#
+#def_key "enter"
+# enter_directory
+#
+#def_key "enter"
+# toggle_output
+#
+#def_key "enter"
+# run_action
+#
+#def_key "enter"
+# play_item
+#
+#def_key "space"
+# add_item_to_playlist
+#
+#def_key "space"
+# toggle_lyrics_update_on_song_change
+#
+#def_key "space"
+# toggle_visualization_type
+#
+#def_key "delete"
+# delete_playlist_items
+#
+#def_key "delete"
+# delete_browser_items
+#
+#def_key "delete"
+# delete_stored_playlist
+#
+#def_key "right"
+# next_column
+#
+#def_key "right"
+# slave_screen
+#
+#def_key "right"
+# volume_up
+#
+#def_key "+"
+# volume_up
+#
+#def_key "left"
+# previous_column
+#
+#def_key "left"
+# master_screen
+#
+#def_key "left"
+# volume_down
+#
+#def_key "-"
+# volume_down
+#
+#def_key ":"
+# execute_command
+#
+#def_key "tab"
+# next_screen
+#
+#def_key "shift-tab"
+# previous_screen
+#
+#def_key "f1"
+# show_help
+#
+#def_key "1"
+# show_playlist
+#
+#def_key "2"
+# show_browser
+#
+#def_key "2"
+# change_browse_mode
+#
+#def_key "3"
+# show_search_engine
+#
+#def_key "3"
+# reset_search_engine
+#
+#def_key "4"
+# show_media_library
+#
+#def_key "4"
+# toggle_media_library_columns_mode
+#
+#def_key "5"
+# show_playlist_editor
+#
+#def_key "6"
+# show_tag_editor
+#
+#def_key "7"
+# show_outputs
+#
+#def_key "8"
+# show_visualizer
+#
+#def_key "="
+# show_clock
+#
+#def_key "@"
+# show_server_info
+#
+#def_key "s"
+# stop
+#
+#def_key "p"
+# pause
+#
+#def_key ">"
+# next
+#
+#def_key "<"
+# previous
+#
+#def_key "ctrl-h"
+# jump_to_parent_directory
+#
+#def_key "ctrl-h"
+# replay_song
+#
+#def_key "backspace"
+# jump_to_parent_directory
+#
+#def_key "backspace"
+# replay_song
+#
+#def_key "f"
+# seek_forward
+#
+#def_key "b"
+# seek_backward
+#
+#def_key "r"
+# toggle_repeat
+#
+#def_key "z"
+# toggle_random
+#
+#def_key "y"
+# save_tag_changes
+#
+#def_key "y"
+# start_searching
+#
+#def_key "y"
+# toggle_single
+#
+#def_key "R"
+# toggle_consume
+#
+#def_key "Y"
+# toggle_replay_gain_mode
+#
+#def_key "T"
+# toggle_add_mode
+#
+#def_key "|"
+# toggle_mouse
+#
+#def_key "#"
+# toggle_bitrate_visibility
+#
+#def_key "Z"
+# shuffle
+#
+#def_key "x"
+# toggle_crossfade
+#
+#def_key "X"
+# set_crossfade
+#
+#def_key "u"
+# update_database
+#
+#def_key "ctrl-s"
+# sort_playlist
+#
+#def_key "ctrl-s"
+# toggle_browser_sort_mode
+#
+#def_key "ctrl-s"
+# toggle_media_library_sort_mode
+#
+#def_key "ctrl-r"
+# reverse_playlist
+#
+#def_key "ctrl-f"
+# apply_filter
+#
+#def_key "ctrl-_"
+# select_found_items
+#
+#def_key "/"
+# find
+#
+#def_key "/"
+# find_item_forward
+#
+#def_key "?"
+# find
+#
+#def_key "?"
+# find_item_backward
+#
+#def_key "."
+# next_found_item
+#
+#def_key ","
+# previous_found_item
+#
+#def_key "w"
+# toggle_find_mode
+#
+#def_key "e"
+# edit_song
+#
+#def_key "e"
+# edit_library_tag
+#
+#def_key "e"
+# edit_library_album
+#
+#def_key "e"
+# edit_directory_name
+#
+#def_key "e"
+# edit_playlist_name
+#
+#def_key "e"
+# edit_lyrics
+#
+#def_key "i"
+# show_song_info
+#
+#def_key "I"
+# show_artist_info
+#
+#def_key "g"
+# jump_to_position_in_song
+#
+#def_key "l"
+# show_lyrics
+#
+#def_key "ctrl-v"
+# select_range
+#
+#def_key "v"
+# reverse_selection
+#
+#def_key "V"
+# remove_selection
+#
+#def_key "B"
+# select_album
+#
+#def_key "a"
+# add_selected_items
+#
+#def_key "c"
+# clear_playlist
+#
+#def_key "c"
+# clear_main_playlist
+#
+#def_key "C"
+# crop_playlist
+#
+#def_key "C"
+# crop_main_playlist
+#
+#def_key "m"
+# move_sort_order_up
+#
+#def_key "m"
+# move_selected_items_up
+#
+#def_key "n"
+# move_sort_order_down
+#
+#def_key "n"
+# move_selected_items_down
+#
+#def_key "M"
+# move_selected_items_to
+#
+#def_key "A"
+# add
+#
+#def_key "S"
+# save_playlist
+#
+#def_key "o"
+# jump_to_playing_song
+#
+#def_key "G"
+# jump_to_browser
+#
+#def_key "G"
+# jump_to_playlist_editor
+#
+#def_key "~"
+# jump_to_media_library
+#
+#def_key "E"
+# jump_to_tag_editor
+#
+#def_key "U"
+# toggle_playing_song_centering
+#
+#def_key "P"
+# toggle_display_mode
+#
+#def_key "\\"
+# toggle_interface
+#
+#def_key "!"
+# toggle_separators_between_albums
+#
+#def_key "L"
+# toggle_lyrics_fetcher
+#
+#def_key "F"
+# fetch_lyrics_in_background
+#
+#def_key "alt-l"
+# toggle_fetching_lyrics_in_background
+#
+#def_key "ctrl-l"
+# toggle_screen_lock
+#
+#def_key "`"
+# toggle_library_tag_type
+#
+#def_key "`"
+# refetch_lyrics
+#
+#def_key "`"
+# add_random_items
+#
+#def_key "ctrl-p"
+# set_selected_items_priority
+#
+#def_key "q"
+# quit
+#
+#
+#def_key "f"
+# find
+#def_key "f"
+# find_item_forward
+
+def_key "+"
+ show_clock
+def_key "="
+ volume_up
+
+def_key "j"
+ scroll_down
+def_key "k"
+ scroll_up
+
+def_key "ctrl-u"
+ page_up
+#push_characters "kkkkkkkkkkkkkkk"
+def_key "ctrl-d"
+ page_down
+#push_characters "jjjjjjjjjjjjjjj"
+def_key "u"
+ page_up
+#push_characters "kkkkkkkkkkkkkkk"
+def_key "d"
+ page_down
+#push_characters "jjjjjjjjjjjjjjj"
+def_key "h"
+ previous_column
+def_key "l"
+ next_column
+
+def_key "."
+ show_lyrics
+
+def_key "n"
+ next_found_item
+def_key "N"
+ previous_found_item
+
+# not used but bound
+def_key "J"
+ move_sort_order_down
+def_key "K"
+ move_sort_order_up
+def_key "h"
+ jump_to_parent_directory
+def_key "l"
+ enter_directory
+def_key "l"
+ run_action
+def_key "l"
+ play_item
+def_key "m"
+ show_media_library
+def_key "m"
+ toggle_media_library_columns_mode
+def_key "t"
+ show_tag_editor
+def_key "v"
+ show_visualizer
+def_key "G"
+ move_end
+def_key "g"
+ move_home
+#jump_to_position_in_song
+def_key "U"
+ update_database
+def_key "s"
+ reset_search_engine
+def_key "s"
+ show_search_engine
+def_key "x"
+ delete_playlist_items
+def_key "P"
+ show_playlist
diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config
new file mode 100644
index 0000000..e25656c
--- /dev/null
+++ b/.config/ncmpcpp/config
@@ -0,0 +1,65 @@
+ncmpcpp_directory = "~/.config/ncmpcpp"
+lyrics_directory = "~/.local/share/lyrics"
+lyrics_fetchers = tekstowo, justsomelyrics, internet, musixmatch, genius, sing365, metrolyrics, jahlyrics, plyrics, zeneszoveg
+message_delay_time = "1"
+visualizer_type = "spectrum"
+song_list_format = {$4%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
+song_status_format = $b{{$8"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$8%f}
+song_library_format = {%n - }{%t}|{%f}
+current_item_prefix = $(cyan)$r$b
+current_item_suffix = $/r$(end)$/b
+current_item_inactive_column_prefix = $(magenta)$r
+current_item_inactive_column_suffix = $/r$(end)
+browser_display_mode = columns
+media_library_primary_tag = album_artist
+media_library_albums_split_by_date = no
+startup_screen = "media_library"
+jump_to_now_playing_song_at_start = "yes"
+display_volume_level = yes
+ignore_leading_the = yes
+external_editor = nvim
+use_console_editor = yes
+
+## Playlist ##
+playlist_display_mode = columns
+ask_before_clearing_playlists = no
+
+## Progress bar ##
+progressbar_look = "▂▂▂"
+progressbar_color = black:b
+progressbar_elapsed_color = blue:b
+
+## Colors ##
+colors_enabled = "yes"
+empty_tag_color = magenta
+main_window_color = white
+statusbar_color = red
+volume_color = "green"
+statusbar_time_color = cyan:b
+execute_on_song_change="pkill -RTMIN+11 dwmblocks"
+
+## Selected tracks ##
+selected_item_prefix = "* "
+
+## Seeking ##
+incremental_seeking = "yes"
+seek_time = "1"
+
+## Alternative Interface ##
+# user_interface = "alternative"
+alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
+alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
+
+## Visibility ##
+header_visibility = "yes"
+statusbar_visibility = "yes"
+titles_visibility = "yes"
+
+## Now Playing ##
+now_playing_prefix = "> "
+centered_cursor = "yes"
+
+# Misc
+display_bitrate = "yes"
+enable_window_title = "yes"
+empty_tag_marker = ""
diff --git a/.config/newsboat/config b/.config/newsboat/config
new file mode 100644
index 0000000..3998b72
--- /dev/null
+++ b/.config/newsboat/config
@@ -0,0 +1,46 @@
+auto-reload yes
+
+unbind-key j
+unbind-key k
+unbind-key h
+unbind-key H
+unbind-key L
+unbind-key c
+unbind-key ,
+browser "brave -incognito %u"
+
+# Feed settings
+prepopulate-query-feeds yes
+refresh-on-startup yes
+
+macro w set browser "mpv %u" ; open-in-browser ; set browser "librewolf %u"
+
+# bind keys
+bind-key ; macro-prefix
+bind-key h quit
+bind-key BACKSPACE quit
+bind-key j down
+bind-key k up
+bind-key l open
+bind-key H prev-feed
+bind-key L next-feed
+bind-key c toggle-show-read-feeds
+
+color listnormal color15 default
+color listnormal_unread color2 default
+color listfocus_unread color2 color0
+color listfocus default color0
+color background default default
+color article default default
+color end-of-text-marker color8 default
+color info color4 color8
+color hint-separator default color8
+color hint-description default color8
+color title color14 color8
+
+highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold
+highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold
+
+highlight article "\\((link|image|video)\\)" color8 default
+highlight article "https?://[^ ]+" color4 default
+highlight article "\[[0-9]+\]" color6 default bold
diff --git a/.config/newsboat/urls b/.config/newsboat/urls
new file mode 100644
index 0000000..e37f992
--- /dev/null
+++ b/.config/newsboat/urls
@@ -0,0 +1,17 @@
+"---NEWS---"
+https://news.ycombinator.com/rss
+https://blog.rust-lang.org/feed.xml "programming"
+https://www.archlinux.org/feeds/news/ "tech"
+https://artixlinux.org/feed.php "tech"
+
+
+https://matklad.github.io/feed.xml "programming"
+https://fasterthanli.me/index.xml "programming"
+https://thesquareplanet.com/feed.xml
+https://gnulinuxindia.org/index.xml
+https://cedaei.com/index.xml
+https://krolyxon.xyz/rss.xml
+https://lukesmith.xyz/rss.xml
+https://landchad.net/rss
+https://togglebit.io/atom.xml
+https://ben.page/rss
diff --git a/.config/npm/npmrc b/.config/npm/npmrc
new file mode 100644
index 0000000..553e418
--- /dev/null
+++ b/.config/npm/npmrc
@@ -0,0 +1,2 @@
+cache=~/.cache/npm
+prefix=$~/.local/share/npm
diff --git a/.config/python/pythonrc b/.config/python/pythonrc
new file mode 100644
index 0000000..b32e6b6
--- /dev/null
+++ b/.config/python/pythonrc
@@ -0,0 +1,2 @@
+import readline
+readline.write_history_file = lambda *args: None
diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi
new file mode 100644
index 0000000..adb14f1
--- /dev/null
+++ b/.config/rofi/config.rasi
@@ -0,0 +1,209 @@
+configuration {
+ modi: "run,drun,window";
+ matching: "fuzzy";
+ terminal: "foot";
+ sort: true;
+ case-sensitive: false;
+ disable-history: true;
+ font: "Fira Code 11";
+ window-format: "{w} · {c} · {t}";
+}
+
+* {
+ rosewater: #f5e0dc;
+ flamingo: #f2cdcd;
+ pink: #f5c2e7;
+ mauve: #cba6f7;
+ red: #f38ba8;
+ maroon: #eba0ac;
+ peach: #fab387;
+ yellow: #f9e2af;
+ green: #a6e3a1;
+ teal: #94e2d5;
+ sky: #89dceb;
+ sapphire: #74c7ec;
+ blue: #89b4fa;
+ lavender: #b4befe;
+ text: #cdd6f4;
+ subtext1: #bac2de;
+ subtext0: #a6adc8;
+ overlay2: #9399b2;
+ overlay1: #7f849c;
+ overlay0: #6c7086;
+ surface2: #585b70;
+ surface1: #45475a;
+ surface0: #313244;
+ base: #1e1e2e;
+ mantle: #181825;
+ crust: #11111b;
+}
+
+* {
+ selected-active-foreground: @background;
+ lightfg: @text;
+ separatorcolor: @foreground;
+ urgent-foreground: @red;
+ alternate-urgent-background: @lightbg;
+ lightbg: @mantle;
+ background-color: transparent;
+ border-color: @foreground;
+ normal-background: @background;
+ selected-urgent-background: @red;
+ alternate-active-background: @lightbg;
+ spacing: 2;
+ alternate-normal-foreground: @foreground;
+ urgent-background: @background;
+ selected-normal-foreground: @lightbg;
+ active-foreground: @blue;
+ background: @base;
+ selected-active-background: @blue;
+ active-background: @background;
+ selected-normal-background: @lightfg;
+ alternate-normal-background: @lightbg;
+ foreground: @text;
+ selected-urgent-foreground: @background;
+ normal-foreground: @foreground;
+ alternate-urgent-foreground: @red;
+ alternate-active-foreground: @blue;
+
+}
+element {
+ cursor: pointer;
+ spacing: 5px ;
+ border: 0;
+}
+element normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+}
+element normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+element normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+}
+element selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+}
+element selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
+}
+element selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
+}
+element alternate.normal {
+ background-color: @alternate-normal-background;
+ text-color: @alternate-normal-foreground;
+}
+element alternate.urgent {
+ background-color: @alternate-urgent-background;
+ text-color: @alternate-urgent-foreground;
+}
+element alternate.active {
+ background-color: @alternate-active-background;
+ text-color: @alternate-active-foreground;
+}
+element-text {
+ background-color: transparent;
+ cursor: inherit;
+ highlight: inherit;
+ text-color: inherit;
+}
+element-icon {
+ background-color: transparent;
+ size: 1.0000em ;
+ cursor: inherit;
+ text-color: inherit;
+}
+window {
+ padding: 5;
+ background-color: @background;
+ border: 1;
+ // width: 100%;
+}
+mainbox {
+ padding: 0;
+ border: 0;
+}
+message {
+ padding: 1px ;
+ border-color: @separatorcolor;
+ border: 2px dash 0px 0px ;
+}
+textbox {
+ text-color: @foreground;
+}
+listview {
+ padding: 2px 0px 0px ;
+ scrollbar: true;
+ border-color: @separatorcolor;
+ spacing: 2px ;
+ fixed-height: 0;
+ border: 2px dash 0px 0px ;
+}
+scrollbar {
+ width: 4px ;
+ padding: 0;
+ handle-width: 8px ;
+ border: 0;
+ handle-color: @normal-foreground;
+}
+sidebar {
+ border-color: @separatorcolor;
+ border: 2px dash 0px 0px ;
+}
+button {
+ cursor: pointer;
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+button selected {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+}
+num-filtered-rows {
+ expand: false;
+ text-color: Gray;
+}
+num-rows {
+ expand: false;
+ text-color: Gray;
+}
+textbox-num-sep {
+ expand: false;
+ str: "/";
+ text-color: Gray;
+}
+inputbar {
+ padding: 1px ;
+ spacing: 0px ;
+ text-color: @normal-foreground;
+ children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
+}
+case-indicator {
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+entry {
+ text-color: @normal-foreground;
+ cursor: text;
+ spacing: 0;
+ placeholder-color: Gray;
+ placeholder: "Type to filter";
+}
+prompt {
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+textbox-prompt-colon {
+ margin: 0px 0.3000em 0.0000em 0.0000em ;
+ expand: false;
+ str: ":";
+ text-color: inherit;
+}
+
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
new file mode 100644
index 0000000..dd22538
--- /dev/null
+++ b/.config/shell/aliasrc
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Use neovim for vim if present
+[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d"
+
+alias \
+ ls='ls -hN --group-directories-first --color=auto' \
+ lsa='ls -lAhN --group-directories-first --color=auto' \
+ dots='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' \
+ lf="yazi" \
+ nb="newsboat" \
+ sxiv="nsxiv" \
+ hst="history 1 -1 | cut -c 8- | sort | uniq | fzf | tr -d '\n' | wl-copy" \
+
+# Verbosity and settings that you pretty much just always are going to want.
+alias \
+ cp="cp -iv" \
+ mv="mv -iv" \
+ rm="rm -vI" \
+ yt="yt-dlp --embed-metadata -i -o '%(title)s.%(ext)s'" \
+ yta="yt -x -f bestaudio/best" \
+ ytbdl="yt-dlp -f bestvideo+bestaudio -o '%(title)s.%(ext)s' --external-downloader=aria2c" \
+ ytdl="yt-dlp -f best -o '%(title)s.%(ext)s' --external-downloader=aria2c" \
+ tsm="transmission-remote" \
+ tsmd="transmission-daemon"
+
+ # yt="yt-dlp --embed-metadata -i -o '%(title)s.%(ext)s' --external-downloader=aria2c" \
+
+alias on="tmux new-session -s notes -c ~/dox/brain 'nvim .'"
+alias todo="nvim ~/dox/brain/Todo.md"
+
+# Colorize commands when possible.
+alias \
+ grep="grep --color=auto" \
+ diff="diff --color=auto" \
+ ip="ip -color=auto"
+
+
+# git aliases
+alias \
+ ga='git add' \
+ gc='git commit' \
+ gp='git push' \
+ gC='git clone'
+
+ec() {find ~/.config -type f | fzf | xargs -r $EDITOR ;}
+es() { cd ~/.local/bin; $EDITOR $(fzf) ;}
+ef() {fzf | xargs -r -I % $EDITOR % ;}
+of() {fzf | xargs -r -I % xdg-open % ; }
+colors() {
+ for COLOR in {1..255}; do
+ echo -en "\e[38;5;${COLOR}m"
+ echo -n "${COLOR} "
+ done
+ echo
+}
+# movie() {
+# filename="$(find ~/movies/ -type f -regex ".*\.\(mkv\|mp4\|mpeg\|avi\|mov\|webm\)" -printf "%f\n" | fzf)"
+# filepath="$(find ~/movies/ -type f -regex ".*\.\(mkv\|mp4\|mpeg\|avi\|mov\|webm\)")"
+# mpv "$(grep "$filename" <<< "$filepath")"
+# }
diff --git a/.config/shell/profile b/.config/shell/profile
new file mode 100644
index 0000000..a2a6071
--- /dev/null
+++ b/.config/shell/profile
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+export EDITOR="nvim"
+export TERMINAL="alacritty"
+export TERMINAL_PROG="alacritty"
+export BROWSER="zen-browser"
+
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_DATA_HOME="$HOME/.local/share"
+export XDG_STATE_HOME="$HOME/.local/state"
+export XDG_CACHE_HOME="$HOME/.cache"
+
+export XAUTHORITY=/tmp/Xauthority # This causes other window managers to break, who cares anyways?
+export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
+export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
+export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc"
+# export GNUPGHOME="$XDG_DATA_HOME/gnupg"
+export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store"
+export KODI_DATA="$XDG_DATA_HOME/kodi"
+export CARGO_HOME="$XDG_DATA_HOME/cargo"
+export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
+export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0"
+#export LESSHISTFILE="-"
+export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc"
+export MANPAGER='nvim +Man!'
+# export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme.
+export __GL_SHADER_DISK_CACHE_PATH=~/.cache/
+export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
+export PYTHON_HISTORY="$XDG_STATE_HOME/python_history"
+export JUPYTER_PLATFORM_DIRS="$XDG_CONFIG_HOME/jupyter"
+export MYSQL_HISTFILE="$XDG_CACHE_HOME/.mariadb_history"
+export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
+
+# Other program settings
+export SUDO_ASKPASS="$HOME/.local/bin/rofipass"
+export FZF_DEFAULT_OPTS="--layout=reverse --height 40%"
+export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android"
+export ANDROID_HOME="$HOME/Android/Sdk/"
+export PATH=$PATH:$ANDROID_HOME/tools
+export PATH=$PATH:$ANDROID_HOME/platform-tools
+export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm
+export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads.
+export NPM_CONFIG_USERCONFIG="$HOME/.config/npm/npmrc"
+export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
+
+# Adds `~/.local/bin` to $PATH
+export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}"
+# export PATH=$PATH:$HOME/.local/bin
+export PATH=$PATH:$HOME/.local/pbin # private bin
+export PATH="$PATH:$XDG_DATA_HOME/cargo/bin"
+
+export MPD_HOST="localhost"
+export MPD_PORT="6600"
+
+# Mpd daemon start
+[ ! -s ~/.config/mpd/pid ] && mpd
+
+# Start graphical server on user's current tty if not already running.
+[ "$(tty)" = "/dev/tty1" ] && ! pidof -s hyprland >/dev/null 2>&1 && exec hyprland
diff --git a/.config/swaync/style.css b/.config/swaync/style.css
new file mode 100644
index 0000000..bbe5dc8
--- /dev/null
+++ b/.config/swaync/style.css
@@ -0,0 +1,324 @@
+* {
+ all: unset;
+ font-size: 14px;
+ font-family: "Ubuntu Nerd Font";
+ transition: 200ms;
+}
+
+trough highlight {
+ background: #cdd6f4;
+}
+
+scale {
+ margin: 0 7px;
+}
+
+scale trough {
+ margin: 0rem 1rem;
+ min-height: 8px;
+ min-width: 70px;
+ border-radius: 12.6px;
+}
+
+trough slider {
+ margin: -10px;
+ border-radius: 12.6px;
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
+ transition: all 0.2s ease;
+ background-color: #89b4fa;
+}
+
+trough slider:hover {
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.8), 0 0 8px #89b4fa;
+}
+
+trough {
+ background-color: #313244;
+}
+
+/* notifications */
+.notification-background {
+ box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #45475a;
+ border-radius: 12.6px;
+ margin: 18px;
+ background: #181825;
+ color: #cdd6f4;
+ padding: 0;
+}
+
+.notification-background .notification {
+ padding: 7px;
+ border-radius: 12.6px;
+}
+
+.notification-background .notification.critical {
+ box-shadow: inset 0 0 7px 0 #f38ba8;
+}
+
+.notification .notification-content {
+ margin: 7px;
+}
+
+.notification .notification-content overlay {
+ /* icons */
+ margin: 4px;
+}
+
+.notification-content .summary {
+ color: #cdd6f4;
+}
+
+.notification-content .time {
+ color: #a6adc8;
+}
+
+.notification-content .body {
+ color: #bac2de;
+}
+
+.notification > *:last-child > * {
+ min-height: 3.4em;
+}
+
+.notification-background .close-button {
+ margin: 7px;
+ padding: 2px;
+ border-radius: 6.3px;
+ color: #1e1e2e;
+ background-color: #f38ba8;
+}
+
+.notification-background .close-button:hover {
+ background-color: #eba0ac;
+}
+
+.notification-background .close-button:active {
+ background-color: #f5c2e7;
+}
+
+.notification .notification-action {
+ border-radius: 7px;
+ color: #cdd6f4;
+ box-shadow: inset 0 0 0 1px #45475a;
+ margin: 4px;
+ padding: 8px;
+ font-size: 0.2rem; /* controls the button size not text size*/
+}
+
+.notification .notification-action {
+ background-color: #313244;
+}
+
+.notification .notification-action:hover {
+ background-color: #45475a;
+}
+
+.notification .notification-action:active {
+ background-color: #585b70;
+}
+
+.notification.critical progress {
+ background-color: #f38ba8;
+}
+
+.notification.low progress,
+.notification.normal progress {
+ background-color: #89b4fa;
+}
+
+.notification progress,
+.notification trough,
+.notification progressbar {
+ border-radius: 12.6px;
+ padding: 3px 0;
+}
+
+/* control center */
+.control-center {
+ box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244;
+ border-radius: 12.6px;
+ background-color: #1e1e2e;
+ color: #cdd6f4;
+ padding: 14px;
+}
+
+.control-center .notification-background {
+ border-radius: 7px;
+ box-shadow: inset 0 0 0 1px #45475a;
+ margin: 4px 10px;
+}
+
+.control-center .notification-background .notification {
+ border-radius: 7px;
+}
+
+.control-center .notification-background .notification.low {
+ opacity: 0.8;
+}
+
+.control-center .widget-title > label {
+ color: #cdd6f4;
+ font-size: 1.3em;
+}
+
+.control-center .widget-title button {
+ border-radius: 7px;
+ color: #cdd6f4;
+ background-color: #313244;
+ box-shadow: inset 0 0 0 1px #45475a;
+ padding: 8px;
+}
+
+.control-center .widget-title button:hover {
+ background-color: #45475a;
+}
+
+.control-center .widget-title button:active {
+ background-color: #585b70;
+}
+
+.control-center .notification-group {
+ margin-top: 10px;
+}
+
+scrollbar slider {
+ margin: -3px;
+ opacity: 0.8;
+}
+
+scrollbar trough {
+ margin: 2px 0;
+}
+
+/* dnd */
+.widget-dnd {
+ margin-top: 5px;
+ border-radius: 8px;
+ font-size: 1.1rem;
+}
+
+.widget-dnd > switch {
+ font-size: initial;
+ border-radius: 8px;
+ background: #313244;
+ box-shadow: none;
+}
+
+.widget-dnd > switch:checked {
+ background: #89b4fa;
+}
+
+.widget-dnd > switch slider {
+ background: #45475a;
+ border-radius: 8px;
+}
+
+/* mpris */
+.widget-mpris-player {
+ background: #313244;
+ border-radius: 12.6px;
+ color: #cdd6f4;
+}
+
+.mpris-overlay {
+ background-color: #313244;
+ opacity: 0.9;
+ padding: 15px 10px;
+}
+
+.widget-mpris-album-art {
+ -gtk-icon-size: 100px;
+ border-radius: 12.6px;
+ margin: 0 10px;
+}
+
+.widget-mpris-title {
+ font-size: 1.2rem;
+ color: #cdd6f4;
+}
+
+.widget-mpris-subtitle {
+ font-size: 1rem;
+ color: #bac2de;
+}
+
+.widget-mpris button {
+ border-radius: 12.6px;
+ color: #cdd6f4;
+ margin: 0 5px;
+ padding: 2px;
+}
+
+.widget-mpris button image {
+ -gtk-icon-size: 1.8rem;
+}
+
+.widget-mpris button:hover {
+ background-color: #313244;
+}
+
+.widget-mpris button:active {
+ background-color: #45475a;
+}
+
+.widget-mpris button:disabled {
+ opacity: 0.5;
+}
+
+.widget-menubar > box > .menu-button-bar > button > label {
+ font-size: 3rem;
+ padding: 0.5rem 2rem;
+}
+
+.widget-menubar > box > .menu-button-bar > :last-child {
+ color: #f38ba8;
+}
+
+.power-buttons button:hover,
+.powermode-buttons button:hover,
+.screenshot-buttons button:hover {
+ background: #313244;
+}
+
+.control-center .widget-label > label {
+ color: #cdd6f4;
+ font-size: 2rem;
+}
+
+.widget-buttons-grid {
+ padding-top: 1rem;
+}
+
+.widget-buttons-grid > flowbox > flowboxchild > button label {
+ font-size: 2.5rem;
+}
+
+.widget-volume {
+ padding: 1rem 0;
+}
+
+.widget-volume label {
+ color: #74c7ec;
+ padding: 0 1rem;
+}
+
+.widget-volume trough highlight {
+ background: #74c7ec;
+}
+
+.widget-backlight trough highlight {
+ background: #f9e2af;
+}
+
+.widget-backlight label {
+ font-size: 1.5rem;
+ color: #f9e2af;
+}
+
+.widget-backlight .KB {
+ padding-bottom: 1rem;
+}
+
+.image {
+ padding-right: 0.5rem;
+}
diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf
new file mode 100644
index 0000000..37119fc
--- /dev/null
+++ b/.config/tmux/tmux.conf
@@ -0,0 +1,47 @@
+# True color settings
+set -g default-terminal "$TERM"
+set -ag terminal-overrides ",$TERM:Tc"
+set -s escape-time 0
+
+set -g prefix2 C-s
+unbind C-b
+set -g prefix2 C-Space
+
+set -g status-style 'bg=#16161E fg=#ffffff'
+set-option -g history-limit 5000
+
+# Numbering Windows and panes
+set -g base-index 1
+setw -g pane-base-index 1
+set -g renumber-windows on
+
+bind r source-file ~/.config/tmux/tmux.conf;
+
+# vim keys
+# setw -g mode-keys vi
+set-window-option -g mode-keys vi
+bind -T copy-mode-vi v send-keys -X begin-selection
+bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
+
+# # Remapping movement keys
+bind h select-pane -L # Move focus to pane on the left
+bind j select-pane -D # Move focus to pane above the current one
+bind k select-pane -U # Move focus to pane below the current one
+bind l select-pane -R # Move focus to pane on the right
+bind Space last-window # Toggle between previously focused window
+
+bind c new-window -c "#{pane_current_path}" # Keep current path
+
+bind-key -r i run-shell "tmux neww tms"
+
+# Resizing panes (notes that is using the uppercase here and resize by 5 chars)
+bind -r C-h resize-pane -L 5
+bind -r C-j resize-pane -D 5
+bind -r C-k resize-pane -U 5
+bind -r C-l resize-pane -R 5
+
+# TPM
+## Setup: git clone https://github.com/tmux-plugins/tpm plugins/tpm
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'fabioluciano/tmux-tokyo-night'
+run '~/.config/tmux/plugins/tpm/tpm'
diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs
new file mode 100644
index 0000000..d400faa
--- /dev/null
+++ b/.config/user-dirs.dirs
@@ -0,0 +1,15 @@
+# This file is written by xdg-user-dirs-update
+# If you want to change or add directories, just edit the line you're
+# interested in. All local changes will be retained on the next run.
+# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
+# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
+# absolute path. No other format is supported.
+#
+XDG_DESKTOP_DIR="$HOME/"
+XDG_DOWNLOAD_DIR="$HOME/dl"
+XDG_TEMPLATES_DIR="$HOME/"
+XDG_PUBLICSHARE_DIR="$HOME/"
+XDG_DOCUMENTS_DIR="$HOME/dox"
+XDG_MUSIC_DIR="$HOME/music"
+XDG_PICTURES_DIR="$HOME/pix"
+XDG_VIDEOS_DIR="$HOME/vids"
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
new file mode 100644
index 0000000..f4f7f07
--- /dev/null
+++ b/.config/waybar/config.jsonc
@@ -0,0 +1,157 @@
+{
+ // "layer": "top", // Waybar at top layer
+ "position": "top", // Waybar position (top|bottom|left|right)
+ "height": 0, // Waybar height (to be removed for auto height)
+ "width": 0, // Waybar width (0 == auto)
+ "spacing": 0, // Gaps between modules
+ // "output": ["HDMI-A-1", "DP-2", "eDP-1"],
+ // Choose the order of the modules
+ "modules-left": [
+ "hyprland/workspaces"
+ // "hyprland/window",
+ ],
+ "modules-center" : [
+ "hyprland/window"
+ ],
+ "modules-right": [
+ "custom/gpumode",
+ "tray",
+ "pulseaudio",
+ "battery",
+ "backlight",
+ "cpu",
+ "memory",
+ // "network",
+ "custom/date",
+ "clock",
+ ],
+ // Modules configuration
+ "hyprland/workspaces": {
+ "format": "{icon}",
+ "format-icons": {
+ "1": "",
+ "2": "",
+ "3": "",
+ "4": "",
+ "5": "",
+ "6": "",
+ "7": "",
+ "8": "",
+ "9": "",
+ "10": "",
+ "11": "",
+ "12": "",
+ "13": "",
+ "14": "",
+ "15": "",
+ "16": "",
+ "17": "",
+ "18": "",
+ "19": "",
+ "20": "",
+ "urgent": "",
+ // "active": "", // focused workspace on current monitor
+ // "visible": "", // focused workspace on other monitors
+ // "default": "",
+ // "default": "", // focused workspace on current monitor
+ // "empty": "" // persistent
+ },
+ "on-scroll-up": "hyprctl dispatch workspace r-1",
+ "on-scroll-down": "hyprctl dispatch workspace r+1",
+ "all-outputs": false,
+ "show-special": false
+ },
+ "hyprland/window": {
+ "format": "󰣇 {}",
+ "max-length": 50
+ },
+ "tray": {
+ "icon-size": 13,
+ "spacing": 10
+ },
+ "clock": {
+ "timezone": "Asia/Kolkata",
+ "tooltip-format": "<tt><big>{calendar}</big></tt>",
+ "format": "󰥔 {:%H:%M}",
+ "interval": 5
+ },
+ "custom/date": {
+ "timezone": "Asia/Kolkata",
+ "exec": "date +'%a %d %b %Y'",
+ "format": "󰃭 {}",
+ "interval": 1,
+ "tooltip": false
+ },
+ "custom/gpumode": {
+ "exec": "~/.config/waybar/scripts/gpu_mode.sh",
+ "format": "{}",
+ "interval": "once",
+ "on-click": "~/.config/waybar/scripts/envyswitch.sh",
+ },
+ "cpu": {
+ "format": " {usage:2}%",
+ "interval": 1,
+ "on-click": "$TERMINAL -e htop",
+ },
+ "memory": {
+ "format": " {used:0.1f}G",
+ "interval": 1,
+ "on-click": "$TERMINAL -e htop",
+ },
+ "network": {
+ "interval": 5,
+ "format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi
+ "format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
+ "format-disconnected": "⚠ Disconnected",
+ "tooltip-format": "{ifname}: {ipaddr}"
+ },
+ "battery": {
+ "states": {
+ "good": 90,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon} {capacity:3}%",
+ "format-charging": "󰂄 {capacity:3}%",
+ "format-plugged": " {capacity:3}%",
+ "format-alt": "{icon} ",
+ "format-good": "{icon} {capacity:3}%",
+ "format-full": "{icon} {capacity:3}%",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "backlight": {
+ // "device": "intel_backlight",
+ "format": "{icon} {percent}%",
+ "format-icons": ["󰃞", "󰃟", "󰃠"],
+ "on-scroll-up": "brightnessctl set 1%+",
+ "on-scroll-down": "brightnessctl set 1%-",
+ "min-length": 6
+ },
+ "pulseaudio": {
+ "scroll-step": 1, // %, can be a float
+ "format": "{volume:2}% {icon} {format_source}",
+ "format-muted": "{volume:2}% 󰝟 {format_source}",
+ "format-bluetooth": "{volume:2}% {icon}  {format_source}",
+ "format-source": "",
+ "format-source-muted": "",
+ "format-icons": {
+ "analog": "",
+ "hdmi": "󰓃",
+ "headphone": "",
+ "headset": "󰋎",
+ "default": [
+ "", // 0 - 25
+ "", // 25 - 50
+ "", // 50 - 75
+ "" // 75 - 100
+ ]
+ },
+ "on-click": "pavucontrol",
+ },
+}
diff --git a/.config/waybar/scripts/envyswitch.sh b/.config/waybar/scripts/envyswitch.sh
new file mode 100755
index 0000000..60c09a4
--- /dev/null
+++ b/.config/waybar/scripts/envyswitch.sh
@@ -0,0 +1,17 @@
+#!/bin/env bash
+
+mode="$(printf "Integrated\nHybrid\nNvidia" | rofi -dmenu -case-smart -matching "fuzzy" -p "Select the graphics mode:")"
+
+# Exit if no selection was made
+[ -z "$mode" ] && exit 1
+
+notify-send "Switching to $mode mode..."
+
+# Map mode to envycontrol argument
+arg=$(echo "$mode" | tr '[:upper:]' '[:lower:]')
+
+if sudo -A envycontrol -s "$arg"; then
+ notify-send "Graphics mode set to $mode"
+else
+ notify-send "Failed to set graphics mode to $mode"
+fi
diff --git a/.config/waybar/scripts/gpu_mode.sh b/.config/waybar/scripts/gpu_mode.sh
new file mode 100755
index 0000000..365e6be
--- /dev/null
+++ b/.config/waybar/scripts/gpu_mode.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+mode=$(envycontrol -q | awk '{print $NF}')
+
+case "$mode" in
+ integrated)
+ icon=""
+ ;;
+ hybrid)
+ icon=""
+ ;;
+ nvidia)
+ icon=""
+ ;;
+ *)
+ icon=""
+ ;;
+esac
+
+echo "$icon $mode"
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..1e0c6bf
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,272 @@
+/*
+*
+* Catppuccin Mocha palette
+* Maintainer: rubyowo
+*
+*/
+@define-color base #1e1e2e;
+@define-color mantle #181825;
+@define-color crust #11111b;
+
+@define-color text #cdd6f4;
+@define-color subtext0 #a6adc8;
+@define-color subtext1 #bac2de;
+
+@define-color surface0 #313244;
+@define-color surface1 #45475a;
+@define-color surface2 #585b70;
+
+@define-color overlay0 #6c7086;
+@define-color overlay1 #7f849c;
+@define-color overlay2 #9399b2;
+
+@define-color blue #89b4fa;
+@define-color lavender #b4befe;
+@define-color sapphire #74c7ec;
+@define-color sky #89dceb;
+@define-color teal #94e2d5;
+@define-color green #a6e3a1;
+@define-color yellow #f9e2af;
+@define-color peach #fab387;
+@define-color maroon #eba0ac;
+@define-color red #f38ba8;
+@define-color mauve #cba6f7;
+@define-color pink #f5c2e7;
+@define-color flamingo #f2cdcd;
+@define-color rosewater #f5e0dc;
+
+* {
+font-family: "Fira Code", "FontAwesome";
+font-weight: bold;
+min-height: 0;
+/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+font-size: 97%;
+font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+padding: 0.03125rem;
+}
+
+window#waybar {
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ background: transparent;
+ /*border: 2px solid @overlay0;*/
+ /*background: @theme_base_color;*/
+ border-radius: 10px;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+#waybar.empty #window {
+ background: none;
+}
+
+
+/**************/
+/* Workspaces */
+/**************/
+
+#workspaces {
+ /* border-radius: 8px; */
+ padding: 0 3px 0 8px;
+ margin: 5px 5px 5px 0;
+ transition: all 0.2s ease;
+}
+
+/* non-empty workspaces */
+#workspaces button {
+ background-color: @base;
+
+ border: none;
+ border-radius: 0;
+
+ color: @text;
+ transition: all 0.2s ease;
+ text-shadow: none;
+
+ /* center the icon, no clue why this is necessary */
+ padding-left: 5px;
+ padding-right: 10px;
+ padding-top: 1px;
+
+ box-shadow: inset 0 -1px #e3e3e3;
+}
+
+/* the first and last buttons should be rounded */
+#workspaces button:first-child {
+ border-top-left-radius: 8px;
+ border-bottom-left-radius: 8px;
+}
+#workspaces button:last-child {
+ border-top-right-radius: 8px;
+ border-bottom-right-radius: 8px;
+}
+
+/* empty persistent workspaces */
+#workspaces button.empty {
+ background-color: @base;
+ box-shadow: none;
+}
+
+#workspaces button:hover {
+ /* transition-duration: .3s; */
+ color: @base;
+ background-color: #7da6ff;
+ box-shadow: inset 0 -1px #ffffff;
+ /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+ text-shadow: inherit;
+}
+
+/* non-empty persistent workspaces */
+#workspaces button.persistent {
+ background-color: #4c566a;
+}
+
+
+
+/* active or visible workspaces */
+#workspaces button.active,
+#workspaces button.visible {
+ /* background-color: #4c566a; */
+ color: @surface0;
+ background-color: #7da6ff;
+ /* box-shadow: inset 0 -4px #eceff4; */
+}
+
+#workspaces button.urgent {
+ color: #bf616a;
+}
+
+/**************/
+
+#mode {
+ background-color: #64727D;
+ border-bottom: 3px solid #ffffff;
+}
+
+#clock,
+#custom-date,
+#custom-gpumode,
+#battery,
+#backlight,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#network,
+#pulseaudio,
+#wireplumber,
+#mpris,
+#custom-media,
+#tray,
+#window,
+#custom-notification,
+#mpd {
+ background-color: @base;
+ border-radius: 8px;
+ padding: 0 12px 0 12px;
+ margin: 5px 5px 5px 0;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left>widget:first-child>#workspaces {
+ margin-left: 0;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right>widget:last-child>#workspaces {
+ margin-right: 0;
+}
+
+#window {
+ color: @text
+}
+
+#clock {
+ color: #eceff4;
+}
+
+#custom-date {
+ color: #b48ead;
+}
+
+#battery {
+ color: #ebcb8b;
+}
+
+#backlight {
+ color: @teal
+}
+
+@keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: black;
+ }
+}
+
+#battery.critical:not(.charging) {
+ background-color: #bf616a;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+label:focus {
+ background-color: black;
+}
+
+#cpu {
+ color: #bf616a;
+}
+
+#memory {
+ color: #a3be8c;
+}
+
+/* #disk {
+ background-color: #964B00;
+} */
+
+#network {
+ color: #5e81ac;
+}
+
+#network.disconnected {
+ color: #81a1c1;
+}
+
+#network.linked {
+ color: #bf616a;
+}
+
+#pulseaudio {
+ color: @text;
+}
+
+
+#temperature {
+ color: #d08770;
+}
+
+#temperature.critical {
+ color: #bf616a;
+}
+
+#tray {
+ color: @subtext0;
+
+}
+
+#tray>.passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray>.needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #bf616a;
+}
diff --git a/.config/wget/wgetrc b/.config/wget/wgetrc
new file mode 100644
index 0000000..4fd7999
--- /dev/null
+++ b/.config/wget/wgetrc
@@ -0,0 +1 @@
+hsts-file=~/.cache/wget-hsts
diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc
new file mode 100644
index 0000000..50680df
--- /dev/null
+++ b/.config/zathura/zathurarc
@@ -0,0 +1,53 @@
+set sandbox none
+set statusbar-h-padding 0
+set statusbar-v-padding 0
+set page-padding 1
+set selection-clipboard clipboard
+map u scroll half-up
+map d scroll half-down
+map D toggle_page_mode
+map r reload
+map R rotate
+map K zoom in
+map J zoom out
+map i recolor
+map p print
+map b toggle_statusbar
+
+set default-fg rgba(205,214,244,1)
+set default-bg rgba(30,30,46,1)
+
+set completion-bg rgba(49,50,68,1)
+set completion-fg rgba(205,214,244,1)
+set completion-highlight-bg rgba(203,166,247,1)
+set completion-highlight-fg rgba(30,30,46,1)
+set completion-group-bg rgba(24,24,37,1)
+set completion-group-fg rgba(205,214,244,1)
+
+set statusbar-fg rgba(205,214,244,1)
+set statusbar-bg rgba(17,17,27,1)
+set inputbar-fg rgba(205,214,244,1)
+set inputbar-bg rgba(30,30,46,1)
+
+set notification-bg rgba(30,30,46,1)
+set notification-fg rgba(205,214,244,1)
+set notification-error-bg rgba(30,30,46,1)
+set notification-error-fg rgba(243,139,168,1)
+set notification-warning-bg rgba(30,30,46,1)
+set notification-warning-fg rgba(249,226,175,1)
+
+# set recolor "true"
+set recolor-lightcolor rgba(30,30,46,1)
+set recolor-darkcolor rgba(205,214,244,1)
+
+set index-fg rgba(205,214,244,1)
+set index-bg rgba(30,30,46,1)
+set index-active-fg rgba(205,214,244,1)
+set index-active-bg rgba(49,50,68,1)
+
+set render-loading-bg rgba(30,30,46,1)
+set render-loading-fg rgba(205,214,244,1)
+
+set highlight-color rgba(147,153,178,0.3)
+set highlight-fg rgba(205,214,244,1)
+set highlight-active-color rgba(203,166,247,0.3)
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
new file mode 100644
index 0000000..d992aec
--- /dev/null
+++ b/.config/zsh/.zshrc
@@ -0,0 +1,57 @@
+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.
+
+# History in cache directory:
+HISTSIZE=10000
+SAVEHIST=10000
+HISTFILE=~/.cache/history
+
+# Load aliases if existent.
+[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
+
+# Basic auto/tab complete:
+autoload -U compinit
+zstyle ':completion:*' menu select
+zmodload zsh/complist
+compinit
+_comp_options+=(globdots) # Include hidden files.
+
+# vi mode
+bindkey -v
+export KEYTIMEOUT=1
+
+# Use vim keys in tab complete menu:
+bindkey -M menuselect 'h' vi-backward-char
+bindkey -M menuselect 'k' vi-up-line-or-history
+bindkey -M menuselect 'l' vi-forward-char
+bindkey -M menuselect 'j' vi-down-line-or-history
+bindkey -v '^?' backward-delete-char
+
+# Change cursor shape for different vi modes.
+function zle-keymap-select () {
+ case $KEYMAP in
+ vicmd) echo -ne '\e[1 q';; # block
+ viins|main) echo -ne '\e[5 q';; # beam
+ esac
+}
+zle -N zle-keymap-select
+zle-line-init() {
+ zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
+ echo -ne "\e[5 q"
+}
+zle -N zle-line-init
+echo -ne '\e[5 q' # Use beam shape cursor on startup.
+preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
+
+# Edit line in vim with ctrl-e:
+autoload edit-command-line; zle -N edit-command-line
+bindkey '^e' edit-command-line
+
+# Enable searching through history
+bindkey '^R' history-incremental-pattern-search-backward
+
+#loeading syntax highlighter and autosgguestions plugin. should be last.
+source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null
+source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh