diff options
Diffstat (limited to 'dotfiles/hyprland/.config/hypr/hyprland.conf')
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 91 |
1 files changed, 66 insertions, 25 deletions
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index 1883423..67604c0 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -10,17 +10,29 @@ monitor=,preferred,auto,auto # ============================================================================ # Startup Applications # ============================================================================ +# Portal and D-Bus setup FIRST (other apps depend on these) +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = systemctl --user start xdg-desktop-portal-hyprland xdg-desktop-portal + +# Core services exec-once = hyprpm reload && sleep 1 && hyprctl dismissnotify -1 -exec-once = waybar +exec-once = /usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh +exec-once = dunst > ~/.local/var/log/dunst-$(date +%Y-%m-%d-%H%M%S).log 2>&1 + +# Desktop appearance (after portal is ready) exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/trondheim-norway.jpg -exec-once = dunst -exec-once = hypridle +exec-once = waybar > ~/.local/var/log/waybar-$(date +%Y-%m-%d-%H%M%S).log 2>&1 +exec-once = set-theme "$(cat ~/.config/current-theme 2>/dev/null || echo hudson)" + +# Background services +exec-once = hypridle > ~/.local/var/log/hypridle-$(date +%Y-%m-%d-%H%M%S).log 2>&1 exec-once = /usr/lib/geoclue-2.0/demos/agent -exec-once = gammastep +exec-once = gammastep > ~/.local/var/log/gammastep-$(date +%Y-%m-%d-%H%M%S).log 2>&1 exec-once = blueman-applet -exec-once = /usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh -exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = easyeffects --gapplication-service exec-once = mpd + +# Apps that can start later exec-once = signal-desktop --start-in-tray --ozone-platform=wayland exec-once = protonmail-bridge --no-window exec-once = insync start @@ -29,7 +41,7 @@ exec-once = insync start # Environment Variables # ============================================================================ env = XCURSOR_SIZE,24 -env = XCURSOR_THEME,capitaine-cursors-light +env = XCURSOR_THEME,Bibata-Modern-Ice env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland @@ -63,18 +75,18 @@ decoration { animations { enabled = true bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - animation = windows, 1, 3, myBezier - animation = windowsOut, 1, 3, default, popin 80% - animation = fade, 1, 3, default - animation = workspaces, 1, 3, default - animation = specialWorkspace, 1, 3, default, slidevert + animation = windows, 1, 2, myBezier + animation = windowsOut, 1, 2, default, popin 80% + animation = fade, 1, 2, default + animation = workspaces, 1, 2, default + animation = specialWorkspace, 1, 2, default, slidevert } # ============================================================================ # Layout (master-stack like DWM tile) # ============================================================================ master { - new_status = slave + new_status = master mfact = 0.55 } @@ -101,6 +113,14 @@ input { misc { force_default_wallpaper = 0 disable_hyprland_logo = true + focus_on_activate = true +} + +# ============================================================================ +# Debug (temporary - disable when stable) +# ============================================================================ +debug { + disable_logs = false } # ============================================================================ @@ -111,6 +131,27 @@ xwayland { } # ============================================================================ +# Plugins +# ============================================================================ +plugin { + hy3 { + tabs { + col.active = rgba(444444ff) + col.active.text = rgba(bbbbbbff) + col.active.border = rgba(daa520ff) + col.focused = rgba(444444ff) + col.focused.text = rgba(bbbbbbff) + col.focused.border = rgba(daa520ff) + col.inactive = rgba(333333ff) + col.inactive.text = rgba(888888ff) + col.inactive.border = rgba(333333ff) + col.urgent = rgba(cc6666ff) + col.locked = rgba(8abeb7ff) + } + } +} + +# ============================================================================ # Window Rules (Hyprland 0.53+ syntax: match:CONDITION, RULE) # ============================================================================ # Floating windows (from DWM rules) @@ -131,12 +172,12 @@ bind = $mod, T, exec, foot bind = $mod, E, exec, emacsclient -c -a "" || emacs bind = $mod, W, exec, $BROWSER bind = $mod, P, exec, fuzzel +bind = $mod, F, exec, nautilus # From sxhkdrc bind = $mod, SPACE, exec, fuzzel bind = $mod SHIFT, W, exec, $ALTBROWSER bind = CTRL ALT, W, exec, tor-browser -bind = CTRL ALT, F, exec, nautilus bind = $mod, V, exec, virtualbox bind = $mod SHIFT, L, exec, calibre bind = $mod SHIFT, R, exec, shortwave @@ -174,7 +215,7 @@ bind = $mod, D, layoutmsg, removemaster # Focus mode (xtra-dispatchers plugin) # O = "Only this window" / "bring back Others" / "close Others" bind = $mod, O, exec, hyprctl dispatch plugin:xtd:throwunfocused 10 -bind = $mod SHIFT, O, exec, hyprctl dispatch plugin:xtd:bringallfrom 10 +bind = $mod SHIFT, O, exec, focus-restore bind = $mod CTRL, O, exec, hyprctl dispatch plugin:xtd:closeunfocused # Gaps (from DWM) @@ -230,17 +271,17 @@ workspace = special:term, on-created-empty:foot --app-id foot-term tmux workspace = special:audio, on-created-empty:foot --app-id foot-audio pulsemixer workspace = special:monitor, on-created-empty:foot --app-id foot-monitor gotop workspace = special:music, on-created-empty:foot --app-id foot-music ncmpcpp -workspace = special:files, on-created-empty:foot --app-id foot-files ranger workspace = special:htop, on-created-empty:foot --app-id foot-htop htop workspace = special:network, on-created-empty:foot --app-id foot-network nmtui +workspace = special:effects, on-created-empty:easyeffects # Keybindings (single bind per scratchpad - just toggle visibility) bind = $mod SHIFT, RETURN, togglespecialworkspace, term bind = $mod, A, togglespecialworkspace, audio bind = $mod, M, togglespecialworkspace, monitor bind = $mod, SLASH, togglespecialworkspace, music -bind = $mod, F, togglespecialworkspace, files bind = $mod SHIFT, H, togglespecialworkspace, htop +bind = $mod SHIFT, A, togglespecialworkspace, effects # Window rules (using app-id/class matching, Hyprland 0.53+ syntax) # Terminal scratchpad @@ -263,11 +304,6 @@ windowrule = match:class ^(foot-music)$, float on windowrule = match:class ^(foot-music)$, size (monitor_w*0.6) (monitor_h*0.6) windowrule = match:class ^(foot-music)$, center on -# File manager -windowrule = match:class ^(foot-files)$, float on -windowrule = match:class ^(foot-files)$, size (monitor_w*0.6) (monitor_h*0.6) -windowrule = match:class ^(foot-files)$, center on - # Htop windowrule = match:class ^(foot-htop)$, float on windowrule = match:class ^(foot-htop)$, size (monitor_w*0.6) (monitor_h*0.6) @@ -278,6 +314,11 @@ windowrule = match:class ^(foot-network)$, float on windowrule = match:class ^(foot-network)$, size (monitor_w*0.6) (monitor_h*0.6) windowrule = match:class ^(foot-network)$, center on +# EasyEffects +windowrule = match:class ^(Easy Effects)$, float on +windowrule = match:class ^(Easy Effects)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(Easy Effects)$, center on + # Calculator (not a scratchpad, just launches app) bind = $mod, X, exec, qalculate-gtk bind = $mod, C, exec, hyprpicker -a @@ -295,9 +336,9 @@ bind = CTRL ALT, SPACE, exec, amixer set Capture toggle && amixer get Capture | # Bluetooth (from DWM and sxhkdrc) bind = $mod SHIFT, B, exec, blueman-manager -# Screenshots (grim + slurp + satty for annotation) -bind = $mod, S, exec, grim -g "$(slurp)" - | satty --filename - --output-filename ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png -bind = , Print, exec, grim - | satty --filename - --output-filename ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png +# Screenshots (grim + slurp + fuzzel menu) +bind = $mod, S, exec, screenshot region +bind = $mod, Print, exec, screenshot fullscreen # Lock screen (from sxhkdrc: super+Escape) bind = $mod, ESCAPE, exec, hyprlock |
