From 1382e8a21398086ed821249aba8110a98993182d Mon Sep 17 00:00:00 2001 From: voidarc Date: Tue, 12 May 2026 10:38:35 +0100 Subject: [PATCH] initial --- animations.conf | 19 ++++++ binds.conf | 58 ++++++++++++++++++ cat.png | Bin 0 -> 3596 bytes hyprland.conf | 8 +++ hyprlock.conf | 109 ++++++++++++++++++++++++++++++++++ input.conf | 38 ++++++++++++ mocha.conf | 78 ++++++++++++++++++++++++ rules.conf | 155 ++++++++++++++++++++++++++++++++++++++++++++++++ startup.conf | 15 +++++ style.conf | 93 +++++++++++++++++++++++++++++ windows.conf | 1 + 11 files changed, 574 insertions(+) create mode 100644 animations.conf create mode 100644 binds.conf create mode 100644 cat.png create mode 100644 hyprland.conf create mode 100644 hyprlock.conf create mode 100644 input.conf create mode 100644 mocha.conf create mode 100644 rules.conf create mode 100644 startup.conf create mode 100644 style.conf create mode 100644 windows.conf diff --git a/animations.conf b/animations.conf new file mode 100644 index 0000000..cdc05bd --- /dev/null +++ b/animations.conf @@ -0,0 +1,19 @@ +animations { + enabled = true + + bezier = heavyOvershoot, 0.53, 0.51, 0.3, 1.22 + bezier = lightOvershoot, 0.33, 0.61, 0.63, 1.19 + bezier = smoothSnap, 0.32, 0.51, 0.44, 1 + bezier = smoothIn, 0.25, 1, 0.5, 1 + bezier = smoothOutOvershoot, 0.46, -0.25, 0.81, 0.51 + + animation = workspaces, 1, 2.5, heavyOvershoot, slidefade 30% + animation = specialWorkspace, 1, 2, smoothIn, slidefadevert -80% + animation = specialWorkspaceOut, 1, 1.7, smoothOutOvershoot, slidefadevert -80% + + animation = windows, 1, 2, smoothIn, slide right + animation = windowsMove, 1, 2, smoothSnap + animation = windowsOut, 1, 4, heavyOvershoot, popin 30% + + animation = fade, 1, 2, smoothIn +} diff --git a/binds.conf b/binds.conf new file mode 100644 index 0000000..dc3c9c2 --- /dev/null +++ b/binds.conf @@ -0,0 +1,58 @@ +# Script Path +$scrPath = ~/.config/scripts + +# Assign apps +$term = kitty +$file = nemo +$browser = firefox +$launcher = $scrPath/otter-launch.sh + +# Window/Session actions +bind = $mainMod, backspace, exec, $scrPath/dontkillsteam.sh # close focused window +bind = $mainMod, d, exec, $launcher + +# Super key to drag windows +binds { + drag_threshold = 10 + scroll_event_delay = 0 +} +bindm = $submod, mouse:272, movewindow +bindr = $submod, mouse:272, layoutmsg, promote +bindc = $submod, mouse:272, togglefloating + +# Resize floating window with scrollwheels +bind = $submod, mouse_down, resizeactive, 0 -30 +bind = $submod, mouse_up, resizeactive, 0 30 +bind = $submod, mouse_left, resizeactive, 30 0 +bind = $submod, mouse_right, resizeactive, -30 0 +bind = $submod, space, togglefloating, # toggle the window between focus and float + +# Screenshot/Screencapture +bind = Super+SHIFT, S, exec, grimblast copy area + +# Move/Change window focus +bind = $mainMod, h, layoutmsg, focus l +bind = $mainMod, l, layoutmsg, focus r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + +# Resize floating windows with keyboard +bind = $submod ctrl, h, resizeactive, -50 0 +bind = $submod ctrl, l, resizeactive, 50 0 +bind = $submod ctrl, k, resizeactive, 0 50 +bind = $submod ctrl, j, resizeactive, 0 -50 + +# Change window positions with keyboard +bind = $mainMod SHIFT, H, swapwindow, l +bind = $mainMod SHIFT, L, swapwindow, r +bind = $mainMod SHIFT, K, swapwindow, u +bind = $mainMod SHIFT, J, swapwindow, d + +# Move/Switch to special workspace (scratchpad) +bind = $mainMod, MINUS, togglespecialworkspace, scratch +bind = $mainMod SHIFT, MINUS, movetoworkspacesilent, special:scratch + +# Music workspace +bind = $mainMod, m, togglespecialworkspace, music + +source = ~/.config/hypr/binds-local.conf diff --git a/cat.png b/cat.png new file mode 100644 index 0000000000000000000000000000000000000000..deb6a0416b73e2a1168f3456f0970eb1e3b1053e GIT binary patch literal 3596 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󰌾 Logged in as $USER + hide_input = false + check_color = $accent + fail_color = $red + fail_text = $FAIL ($ATTEMPTS) + capslock_color = $yellow + position = 0, -47 + halign = center + valign = center +} diff --git a/input.conf b/input.conf new file mode 100644 index 0000000..6a18fbe --- /dev/null +++ b/input.conf @@ -0,0 +1,38 @@ +input { + kb_layout = gb + follow_mouse = 1 + + touchpad { + natural_scroll = true + disable_while_typing = true + } + + sensitivity = -0.3 + force_no_accel = false + tablet { + left_handed = true + output = current + } +} + +cursor { + inactive_timeout = 2 + warp_on_change_workspace = 1 + hide_on_key_press = true + warp_on_toggle_special = 1 +} + +device { + name = 2.4g-wireless-optical-mouse--mouse + sensitivity = -0.65 + accel_profile = adaptive +} + +device { + name = wacom-bamboo-16fg-4x5-finger + flip_x = true + flip_y = true + natural_scroll = false + sensitivity = 0.3 + accel_profile = adaptive +} diff --git a/mocha.conf b/mocha.conf new file mode 100644 index 0000000..8ccb56a --- /dev/null +++ b/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/rules.conf b/rules.conf new file mode 100644 index 0000000..80dfb52 --- /dev/null +++ b/rules.conf @@ -0,0 +1,155 @@ +windowrule { + name = nodim-youtube + no_dim = on + opaque = on + match:class = ^(firefox|Firefox)$ + match:title = ^(.*YouTube.*)$ +} + +windowrule { + name = nodim-delfin + no_dim = on + opaque = on + match:class = ^(cafe.avery.Delfin)$ +} + +windowrule { + name = float-firefoxDialogue + float = on + match:title = ^(About Mozilla Firefox)$ +} + +windowrule { + name = file-browser + float = on + size = 800 500 + animation = popin + match:class = ^(xdg-desktop-portal-gtk)$ +} + +windowrule { + name = firefox-pip + float = on + match:class = ^(firefox)$ + match:title = ^(Picture-in-Picture)$ +} + +windowrule { + name = float-history + float = on + match:class = ^(firefox)$ + match:title = ^(Library)$ +} + +windowrule { + name = nwg-look + float = on + match:class = ^(nwg-look)$ +} + +windowrule { + name = volume-control + float = on + match:class = ^(org.pulseaudio.pavucontrol)$ +} + +windowrule { + name = blueman-size + float = on + size = 600 400 + animation = popin + match:class = ^(.blueman-manager-wrapped)$ +} + +windowrule { + name = float-nm + float = on + match:class = ^(nm-applet)$ +} + +windowrule { + name = float-nm + float = on + match:class = ^(nm-connection-editor)$ +} + +windowrule { + name = float-auth-agent + float = on + match:class = ^(org.kde.polkit-kde-authentication-agent-1)$ +} + +windowrule { + name = firefox-popups + size = 800 500 + animation = popin + match:class = ^(firefox)$ + match:title = ^(.*Save.*) +} + +windowrule { + name = otter-launcher-initial + size = 425 220 + float = on + opaque = on + animation = popin 50% + match:class = ^(otter)$ +} + +windowrule { + name = jellyfin tui + animation = slide top + match:class = ^(jf-tui)$ +} + +windowrule { + name = nodim-fullscreen + match:fullscreen = 1 + no_dim = on +} + +windowrule { + name = nodim-kitty + match:class = ^(kitty)$ + opaque = on + xray = on +} + +layerrule { + name = layerrule-1 + blur = on + ignore_alpha = 0 + match:namespace = notifications +} + +layerrule { + name = something to do with wlogout + blur = on + match:namespace = logout_dialog +} + +layerrule { + name = layerrule-3 + blur = on + ignore_alpha = 0 + match:namespace = waybar +} + +layerrule { + name = layerrule-4 + ignore_alpha = 0 + blur = on + animation = popin 70% + match:namespace = otter-panel +} + +layerrule { + name = layerrule-5 + animation = slide right + blur = on + ignore_alpha = 0 + match:namespace = swaync-control-center +} + +workspace = special:music, gapsout:5 400 400 400 +workspace = special:scratch, gapsout:20 20 20 20 diff --git a/startup.conf b/startup.conf new file mode 100644 index 0000000..c9ac52d --- /dev/null +++ b/startup.conf @@ -0,0 +1,15 @@ +exec-once = $scrPath/resetxdgportal.sh # reset XDPH for screenshare +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH +exec-once = dbus-update-activation-environment --systemd --all # for XDPH +exec-once = dconf write /org/gnome/desktop/interface/color-scheme '"prefer-dark"' +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH +exec-once = $scrPath/polkitkdeauth.sh # authentication dialogue for GUI apps +exec-once = waybar # System bar +exec-once = sleep 10 && curl -X POST -H "Content-Type: application/json" -d "{\"ref\":\"$(git -C ~/.dotfiles rev-parse HEAD)\", \"status\":\"$(git -C ~/.dotfiles diff --quiet && echo "clean" || echo "dirty")\"}" https://n8n.voidarc.co.uk/webhook/config-checker # check if config is up to date +exec-once = elephant # Data for Walker +exec-once = walker --gapplication-service # make walker faster +exec-once = dunst # Notifications +exec-once = ~/.config/scripts/.venv/bin/python ~/.config/scripts/notify.py # Android notification forwarding +exec-once = wayvnc 0.0.0.0 --output=DP-1 # runs vnc server on all interfaces +exec-once = syncthing -home=/home/user01/.config/syncthing -no-browser # starts syncthing in background +exec-once = gotify-desktop # gotify daemon for service notifications diff --git a/style.conf b/style.conf new file mode 100644 index 0000000..4d2d7d1 --- /dev/null +++ b/style.conf @@ -0,0 +1,93 @@ +# Environment +env = PATH,$PATH:$scrPath +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland +env = QT_QPA_PLATFORM,wayland;xcb +env = QT_QPA_PLATFORMTHEME,qt6ct +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +env = MOZ_ENABLE_WAYLAND,1 +env = GDK_SCALE,1 + +# Misc +misc { + vrr = 0 + animate_manual_resizes = true + disable_hyprland_logo = true + disable_splash_rendering = true + force_default_wallpaper = 0 +} + +xwayland { + force_zero_scaling = false +} + +# Layout +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 + permanent_direction_override = true +} + +scrolling { + column_width = 0.8 + follow_min_visible = 0.1 + focus_fit_method = 1 +} + +# GTK shennanigans +exec = gsettings set org.gnome.desktop.interface icon-theme 'BeautyDream' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Mocha' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +# Make things look nice +general { + gaps_in = 3 + gaps_out = 5, 6, 6, 6 + border_size = 3 + col.active_border = rgba(ca9ee6cc) rgba(f38ba8cc) 45deg + col.inactive_border = rgba(45475aaa) rgba(b4befeaa) 45deg + layout = scrolling + resize_on_border = true +} + +ecosystem { + no_update_news = true + no_donation_nag = true +} + +group { + col.border_active = rgba(ca9ee6cc) rgba(f2d5cfcc) 45deg + col.border_inactive = rgba(bac2decc) rgba(bac2decc) 45deg + col.border_locked_active = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg + col.border_locked_inactive = rgba(b4befecc) rgba(6c7086cc) 45deg +} + +decoration { + rounding = 10 + + active_opacity = 1.0 + inactive_opacity = 0.8 + + dim_inactive = true + dim_strength = 0.2 + + blur { + enabled = true + size = 2 + passes = 3 + vibrancy = 0.5 + } +} + +# Fonts and Cursors +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 +exec = gsettings set org.gnome.desktop.interface font-name 'FiraMono Nerd Font' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' +env XCURSOR_SIZE = 20 diff --git a/windows.conf b/windows.conf new file mode 100644 index 0000000..ddc927d --- /dev/null +++ b/windows.conf @@ -0,0 +1 @@ +monitor = , preferred, auto, 1.2