diff options
| author | krolxon <krolyxon@tutanota.com> | 2025-08-16 20:49:05 +0530 |
|---|---|---|
| committer | krolxon <krolyxon@tutanota.com> | 2025-08-16 20:49:05 +0530 |
| commit | f3bdd21020b8e618433a06c1efc1cc665cb6839d (patch) | |
| tree | 32427d47c079637b670a20b62e0339df0e248641 /.config | |
first commit using stow
Diffstat (limited to '.config')
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 |
