diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-02 12:16:38 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-02 12:16:38 -0500 |
| commit | 8c32bbbf9fab115dc51afa17c081e0763cbee717 (patch) | |
| tree | 246b46b53c956cfea07bc9d1c2b81f9f8de53d65 /dotfiles/hyprland/.config/hypr | |
| parent | 3f370d6c19c83430547d1771b0e6fa669dc7d5c5 (diff) | |
| download | archsetup-8c32bbbf9fab115dc51afa17c081e0763cbee717.tar.gz archsetup-8c32bbbf9fab115dc51afa17c081e0763cbee717.zip | |
refactor: drop in-repo dotfiles/, move stow tooling to the dotfiles repo
Since the installer clones DOTFILES_REPO into ~/.dotfiles and stows from there, the in-repo dotfiles/ tree was dead weight. Nothing reads it at install time. I removed it (831 files) now that both machines are migrated.
The Makefile's stow / restow / reset / unstow / import targets and the dotfile-script unit suites moved to the dotfiles repo. They sit alongside the scripts they manage and run standalone (cd ~/.dotfiles && make ...). This Makefile keeps the VM-integration targets and the installer-helper suite (safe-rm-rf).
I updated CLAUDE.md and README.md so stow operations run from ~/.dotfiles, and the dotfile-management, theme, and unit-test sections point at the standalone repo. The README was already describing the old in-repo model from before the installer switched to cloning. This brings it in line.
Diffstat (limited to 'dotfiles/hyprland/.config/hypr')
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/conf.d/local.conf | 15 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hypridle.conf | 21 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 334 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprlock.conf | 100 |
4 files changed, 0 insertions, 470 deletions
diff --git a/dotfiles/hyprland/.config/hypr/conf.d/local.conf b/dotfiles/hyprland/.config/hypr/conf.d/local.conf deleted file mode 100644 index 857963c..0000000 --- a/dotfiles/hyprland/.config/hypr/conf.d/local.conf +++ /dev/null @@ -1,15 +0,0 @@ -# Machine-local Hyprland overrides -# This file is sourced by hyprland.conf via conf.d/*.conf glob. -# Add monitor scaling, keybinds, or other machine-specific settings here. -# These override the defaults in hyprland.conf. -# -# Examples: -# -# HiDPI scaling (Framework 13.5" 2256x1504): -# monitor=eDP-1,preferred,auto,1.566667 -# -# External monitor: -# monitor=DP-1,3440x1440@144,auto,1 -# -# Machine-specific keybinds: -# bind = $mod, L, exec, hyprlock diff --git a/dotfiles/hyprland/.config/hypr/hypridle.conf b/dotfiles/hyprland/.config/hypr/hypridle.conf deleted file mode 100644 index 5a4fe24..0000000 --- a/dotfiles/hyprland/.config/hypr/hypridle.conf +++ /dev/null @@ -1,21 +0,0 @@ -# Hypridle configuration -# Replaces xautolock -time 5 -locker slock - -general { - lock_cmd = pidof hyprlock || hyprlock - before_sleep_cmd = loginctl lock-session - after_sleep_cmd = hyprctl dispatch dpms on -} - -# Screen dim after 5 minutes -listener { - timeout = 300 - on-timeout = brightnessctl -s set 10% - on-resume = brightnessctl -r -} - -# Lock screen after 7 minutes -listener { - timeout = 420 - on-timeout = loginctl lock-session -} diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf deleted file mode 100644 index c71b1fa..0000000 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ /dev/null @@ -1,334 +0,0 @@ -# Hyprland Configuration -# Translated from DWM config.def.h and sxhkdrc -# Craig Jennings <c@cjennings.net> - -# ============================================================================ -# Monitor Configuration -# ============================================================================ -monitor=,preferred,auto,auto - -# ============================================================================ -# Startup Applications -# ============================================================================ -# Portal and D-Bus setup FIRST, then waybar (needs portal for appearance query) -exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE -# Portal restart (not start) reconnects stale portals on Hyprland restart. -# Backend portals (GTK, Hyprland) must restart BEFORE the main portal to avoid -# a 50s GTK settings proxy timeout. Waybar starts after portals are ready. -exec-once = systemctl --user restart xdg-desktop-portal-hyprland xdg-desktop-portal-gtk && systemctl --user restart xdg-desktop-portal && waybar 2>&1 | grep -v "LIBDBUSMENU-GLIB-WARNING" > ~/.local/var/log/waybar-$(date +%Y-%m-%d-%H%M%S).log - -# Core services -exec-once = /usr/lib/polkit-kde-authentication-agent-1 -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 -exec-once = awww-daemon && sleep 1 && awww img ~/pictures/wallpaper/trondheim-norway.jpg - -# Background services -exec-once = touchpad-auto -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 > ~/.local/var/log/gammastep-$(date +%Y-%m-%d-%H%M%S).log 2>&1 -exec-once = blueman-applet -exec-once = mpd - -# Pocketbook panel (pre-launch hidden, toggle via waybar icon or $mod+P) -exec-once = pocketbook --hidden - -# Pyprland (scratchpads, magnify, etc.) -exec-once = pypr > ~/.local/var/log/pypr-$(date +%Y-%m-%d-%H%M%S).log 2>&1 -exec-once = hypr-refocus-scratchpad - -# Apps that can start later (sleep ensures waybar tray is registered) -exec-once = sleep 1 && signal-desktop --start-in-tray --ozone-platform=wayland -exec-once = sleep 1 && Telegram -startintray -exec-once = protonmail-bridge --no-window -exec-once = sleep 1 && protonvpn-app --start-minimized -exec-once = insync start - -# ============================================================================ -# Environment Variables -# ============================================================================ -env = XCURSOR_SIZE,24 -env = XCURSOR_THEME,Bibata-Modern-Ice -env = XDG_CURRENT_DESKTOP,Hyprland -env = XDG_SESSION_TYPE,wayland -env = XDG_SESSION_DESKTOP,Hyprland -env = _JAVA_AWT_WM_NONREPARENTING,1 - -# ============================================================================ -# Appearance (matching DWM colors) -# ============================================================================ -# DWM colors: gray1=#222222, gray2=#444444, gray3=#bbbbbb, gray4=#eeeeee, cyan=#daa520 - -general { - gaps_in = 25 - gaps_out = 30 - border_size = 3 - col.active_border = rgba(daa520ff) - col.inactive_border = rgba(444444ff) - # Pyprland 3.4+ applies `group deny` to scratchpads, which routes their - # border through col.nogroup_border* instead of col.*_border. Without - # these overrides Hyprland's defaults paint scratchpads bright magenta. - col.nogroup_border_active = rgba(daa520ff) - col.nogroup_border = rgba(444444ff) - layout = master - resize_on_border = true -} - -decoration { - rounding = 10 - blur { - enabled = false - } - shadow { - enabled = false - } -} - -animations { - enabled = true - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - 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 = master - new_on_top = true - mfact = 0.55 -} - -dwindle { - preserve_split = true -} - -# ============================================================================ -# Input -# ============================================================================ -cursor { - no_warps = true - inactive_timeout = 2.0 -} - -input { - kb_layout = us - kb_options = ctrl:nocaps - numlock_by_default = true - follow_mouse = 0 - float_switch_override_focus = 1 - mouse_refocus = false - natural_scroll = true - touchpad { - natural_scroll = true - } -} - -# ============================================================================ -# Misc -# ============================================================================ -misc { - force_default_wallpaper = 0 - disable_hyprland_logo = true - focus_on_activate = true -} - -# ============================================================================ -# Debug (temporary - disable when stable) -# ============================================================================ -debug { - disable_logs = false -} - -# ============================================================================ -# XWayland -# ============================================================================ -xwayland { - force_zero_scaling = true -} - -# ============================================================================ -# Window Rules (Hyprland 0.53+ syntax: match:CONDITION, RULE) -# ============================================================================ -# Floating windows (from DWM rules) -windowrule = match:class ^(xdg-desktop-portal-gtk)$, float on -windowrule = match:class ^(Gimp)$, float on -windowrule = match:class ^(caffeine)$, float on -windowrule = match:class ^(blueman-services)$, float on -windowrule = match:class ^(Blueman-manager)$, float on -windowrule = match:class ^(qalculate-gtk)$, float on -windowrule = match:title ^(Event Tester)$, float on - -# NOTE: center windowrules removed 2026-03-04 per pyprland maintainer suggestion -# Testing whether pyprland handles scratchpad re-centering natively (issue #211) - -# Zoom — float all windows, fix disappearing popup menus -windowrule = match:class ^(zoom)$, float on -windowrule = match:class ^(zoom)$ match:title ^(menu window)$, stay_focused on -windowrule = match:class ^(zoom)$ match:title ^(confirm window)$, stay_focused on - -# Gaming -windowrule = match:class ^(Civ5XP)$, fullscreen on - -# ============================================================================ -# Key Bindings -# ============================================================================ -$mod = SUPER - -# Terminal and core apps (from DWM) -bind = $mod, T, exec, foot -bind = $mod, E, exec, emacsclient -c -a "" || emacs -bind = $mod, W, exec, $BROWSER -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 = $mod, P, exec, pocketbook -bind = $mod, V, exec, virtualbox -bind = $mod SHIFT, L, exec, calibre -bind = $mod SHIFT, P, exec, waypaper - -# Theme switching -bind = $mod, Y, exec, set-theme --toggle -bind = $mod SHIFT, Y, exec, set-theme --pick - -# Window management (from DWM) -# Layout-aware navigation (works across master, scrolling) -bind = $mod, J, exec, layout-navigate next -bind = $mod, K, exec, layout-navigate prev -bind = $mod SHIFT, J, exec, layout-navigate next move -bind = $mod SHIFT, K, exec, layout-navigate prev move -bind = $mod, H, exec, layout-resize shrink -bind = $mod, L, exec, layout-resize grow -bind = $mod, RETURN, layoutmsg, swapwithmaster master -bind = $mod, G, centerwindow -bind = $mod, TAB, workspace, previous -bind = $mod SHIFT, C, killactive - -# Layouts: master -> scrolling -> monocle -# Cycle with Shift+arrows, or jump directly with Shift+T/S/M -bind = $mod SHIFT, RIGHT, exec, layout-cycle next -bind = $mod SHIFT, LEFT, exec, layout-cycle prev -bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation left -bind = $mod SHIFT, S, exec, hyprctl keyword general:layout scrolling -bind = $mod SHIFT, M, exec, hyprctl keyword general:layout monocle -bind = $mod SHIFT, SPACE, togglefloating - -# Master layout adjustments -bind = $mod, U, layoutmsg, addmaster -bind = $mod, D, layoutmsg, removemaster - -# Stash windows (hide to special workspace) -# O = stash focused / Alt+O = stash others / Shift+O = restore all -bind = $mod, O, exec, stash-window -bind = $mod ALT, O, exec, stash-others -bind = $mod SHIFT, O, exec, stash-restore - -# Gaps (from DWM) -bind = $mod, MINUS, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq -r '.custom' | cut -d' ' -f1) - 5 )) && hyprctl keyword general:gaps_in $(( $(hyprctl getoption general:gaps_in -j | jq -r '.custom' | cut -d' ' -f1) - 5 )) -bind = $mod, EQUAL, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq -r '.custom' | cut -d' ' -f1) + 5 )) && hyprctl keyword general:gaps_in $(( $(hyprctl getoption general:gaps_in -j | jq -r '.custom' | cut -d' ' -f1) + 5 )) -bind = $mod SHIFT, EQUAL, exec, hyprctl keyword general:gaps_out 30 && hyprctl keyword general:gaps_in 25 -bind = $mod SHIFT, MINUS, exec, hyprctl keyword general:gaps_out 0 && hyprctl keyword general:gaps_in 0 - -# Toggle bar -bind = $mod, B, exec, killall -SIGUSR1 waybar - -# Fullscreen -bind = $mod, F11, fullscreen, 0 - -# Workspaces 1-9 (from DWM TAGKEYS) -bind = $mod, 1, workspace, 1 -bind = $mod, 2, workspace, 2 -bind = $mod, 3, workspace, 3 -bind = $mod, 4, workspace, 4 -bind = $mod, 5, workspace, 5 -bind = $mod, 6, workspace, 6 -bind = $mod, 7, workspace, 7 -bind = $mod, 8, workspace, 8 -bind = $mod, 9, workspace, 9 - -# Move window to workspace (from DWM tag) -bind = $mod SHIFT, 1, movetoworkspacesilent, 1 -bind = $mod SHIFT, 2, movetoworkspacesilent, 2 -bind = $mod SHIFT, 3, movetoworkspacesilent, 3 -bind = $mod SHIFT, 4, movetoworkspacesilent, 4 -bind = $mod SHIFT, 5, movetoworkspacesilent, 5 -bind = $mod SHIFT, 6, movetoworkspacesilent, 6 -bind = $mod SHIFT, 7, movetoworkspacesilent, 7 -bind = $mod SHIFT, 8, movetoworkspacesilent, 8 -bind = $mod SHIFT, 9, movetoworkspacesilent, 9 - -# Monitor focus (from DWM focusmon) -bind = $mod, COMMA, focusmonitor, -1 -bind = $mod, PERIOD, focusmonitor, +1 -bind = $mod SHIFT, COMMA, movewindow, mon:-1 -bind = $mod SHIFT, PERIOD, movewindow, mon:+1 - -# ============================================================================ -# Scratchpads (via pyprland) -# ============================================================================ -# Configured in ~/.config/hypr/pyprland.toml -# Uses normal workspaces (not special), so new windows won't be captured -bind = $mod SHIFT, RETURN, exec, pypr toggle term -bind = $mod, I, exec, pypr toggle ai-term -bind = $mod, A, exec, pypr toggle audio -bind = $mod, R, exec, pypr toggle monitor -bind = $mod, N, exec, pypr toggle network -bind = $mod, SLASH, exec, pypr toggle music - -# Magnify (zoom) -bind = $mod, Z, exec, pypr zoom - -# Calculator (not a scratchpad, just launches app) -bind = $mod, X, exec, qalculate-gtk -bind = $mod, C, exec, hyprpicker -a - -# Media/hardware keys -bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% -bindel = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% -bindl = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle -bindel = , XF86MonBrightnessUp, exec, brightnessctl s +10% -bindel = , XF86MonBrightnessDown, exec, brightnessctl s 10%- - -# Microphone toggle (from sxhkdrc) -bind = CTRL ALT, SPACE, exec, amixer set Capture toggle && amixer get Capture | grep '\[off\]' && notify-send "Microphone" "Muted" || notify-send "Microphone" "On" - -# Bluetooth (from DWM and sxhkdrc) -bind = $mod SHIFT, B, exec, blueman-manager - -# Screenshots (grim + slurp + fuzzel menu) -bind = $mod, S, exec, screenshot region -bind = CTRL $mod, S, exec, screenshot fullscreen - -# Lock screen -bind = $mod, ESCAPE, exec, hyprlock - -# Touchpad toggle (Mouse) -bind = $mod, M, exec, toggle-touchpad - -# Exit/session -bind = $mod SHIFT, Q, exec, pgrep -x wlogout || wlogout -b 3 -T 600 -B 600 -L 1200 -R 1200 -c 20 -r 20 -bind = $mod SHIFT, BACKSPACE, exit -bind = $mod SHIFT, ESCAPE, exec, hyprctl reload -bind = CTRL ALT $mod, K, exec, hyprctl kill - -# Mouse bindings (from DWM buttons) -bindm = $mod, mouse:272, movewindow -bindm = $mod, mouse:273, resizewindow -bindm = $mod SHIFT, mouse:272, resizewindow - -# ============================================================================ -# Machine-local overrides -# ============================================================================ -# Sourced last so machine-specific settings (monitor scale, gaps, keybinds) -# override the defaults above. See conf.d/local.conf. -source = $HOME/.config/hypr/conf.d/*.conf diff --git a/dotfiles/hyprland/.config/hypr/hyprlock.conf b/dotfiles/hyprland/.config/hypr/hyprlock.conf deleted file mode 100644 index 3751045..0000000 --- a/dotfiles/hyprland/.config/hypr/hyprlock.conf +++ /dev/null @@ -1,100 +0,0 @@ -# Hyprlock configuration - Dupre theme -# Warm, earthy colors from dupre-theme.el - -general { - hide_cursor = true -} - -animations { - enabled = true - bezier = linear, 1, 1, 0, 0 - animation = fadeIn, 1, 5, linear - animation = fadeOut, 1, 5, linear - animation = inputFieldDots, 1, 2, linear - animation = inputFieldColors, 1, 3, linear -} - -background { - monitor = - path = screenshot - blur_passes = 3 - blur_size = 8 - noise = 0.0117 - contrast = 0.8916 - brightness = 0.8172 - vibrancy = 0.1696 - vibrancy_darkness = 0.0 -} - -# Clock (top) -label { - monitor = - text = $TIME12 - text_align = center - color = rgb(969385) - font_size = 64 - font_family = BerkeleyMono Nerd Font - position = 0, 15% - halign = center - valign = center -} - -# Profile image -image { - monitor = - path = ~/pictures/devilman.jpg - size = 120 - rounding = -1 - border_size = 3 - border_color = rgb(d7af5f) - position = 0, 0% - halign = center - valign = center - shadow_passes = 2 - shadow_size = 3 - shadow_color = rgba(0, 0, 0, 0.5) -} - -# Username -label { - monitor = - text = $USER - text_align = center - color = rgb(d7af5f) - font_size = 36 - font_family = BerkeleyMono Nerd Font - position = 0, -7% - halign = center - valign = center -} - -# Password input -input-field { - monitor = - size = 20%, 4% - outline_thickness = 0 - dots_size = 0.33 - dots_spacing = 0.15 - dots_center = true - dots_rounding = -1 - outer_color = rgb(151311) - inner_color = rgb(151311) - font_color = rgb(969385) - fade_on_empty = true - fade_timeout = 1000 - placeholder_text = <i>Password...</i> - hide_input = false - rounding = 8 - check_color = rgb(d7af5f) - fail_color = rgb(d47c59) - fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> - - capslock_color = rgb(ccc768) - numlock_color = -1 - bothlock_color = -1 - invert_numlock = false - swap_font_color = false - position = 0, -12% - halign = center - valign = center -} |
