diff options
Diffstat (limited to 'dotfiles/hyprland')
| -rw-r--r-- | dotfiles/hyprland/.config/easyeffectsrc | 2 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 36 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/waypaper/config.ini | 27 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/xdg-desktop-portal/portals.conf | 3 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/monitor-dashboard | 37 | ||||
| -rw-r--r-- | dotfiles/hyprland/.local/share/easyeffects/output/dt770-pro-250-harman-eq.json (renamed from dotfiles/hyprland/.config/easyeffects/output/dt770-pro-250-harman-eq.json) | 0 | ||||
| -rw-r--r-- | dotfiles/hyprland/.local/share/easyeffects/output/pixel-buds-pro-2-harman-eq.json (renamed from dotfiles/hyprland/.config/easyeffects/output/pixel-buds-pro-2-harman-eq.json) | 0 | ||||
| -rw-r--r-- | dotfiles/hyprland/.local/share/easyeffects/output/pxc-550-ii-harman-eq.json (renamed from dotfiles/hyprland/.config/easyeffects/output/pxc-550-ii-harman-eq.json) | 0 | ||||
| -rw-r--r-- | dotfiles/hyprland/.profile.d/99-hyprland-autostart.sh | 26 |
9 files changed, 118 insertions, 13 deletions
diff --git a/dotfiles/hyprland/.config/easyeffectsrc b/dotfiles/hyprland/.config/easyeffectsrc new file mode 100644 index 0000000..a4cbf66 --- /dev/null +++ b/dotfiles/hyprland/.config/easyeffectsrc @@ -0,0 +1,2 @@ +[UiSettings] +ColorScheme=BreezeDark diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index 2cc42e3..3eae5b6 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -10,22 +10,32 @@ 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 > ~/.local/var/log/waybar-$(date +%Y-%m-%d-%H%M%S).log 2>&1 -exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/trondheim-norway.jpg +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 = 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 > ~/.local/var/log/gammastep-$(date +%Y-%m-%d-%H%M%S).log 2>&1 exec-once = blueman-applet exec-once = easyeffects --gapplication-service -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 = 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 -exec-once = set-theme "$(cat ~/.config/current-theme 2>/dev/null || echo hudson)" # ============================================================================ # Environment Variables @@ -107,6 +117,13 @@ misc { } # ============================================================================ +# Debug (temporary - disable when stable) +# ============================================================================ +debug { + disable_logs = false +} + +# ============================================================================ # XWayland # ============================================================================ xwayland { @@ -252,9 +269,8 @@ bind = $mod SHIFT, PERIOD, movewindow, mon:+1 # Workspace rules (auto-launch apps when workspace first accessed) 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:monitor, on-created-empty:foot --app-id foot-monitor monitor-dashboard workspace = special:music, on-created-empty:foot --app-id foot-music ncmpcpp -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 @@ -263,7 +279,6 @@ bind = $mod SHIFT, RETURN, togglespecialworkspace, term bind = $mod, A, togglespecialworkspace, audio bind = $mod, M, togglespecialworkspace, monitor bind = $mod, SLASH, togglespecialworkspace, music -bind = $mod SHIFT, H, togglespecialworkspace, htop bind = $mod SHIFT, A, togglespecialworkspace, effects # Window rules (using app-id/class matching, Hyprland 0.53+ syntax) @@ -287,11 +302,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 -# Htop -windowrule = match:class ^(foot-htop)$, float on -windowrule = match:class ^(foot-htop)$, size (monitor_w*0.6) (monitor_h*0.6) -windowrule = match:class ^(foot-htop)$, center on - # Network manager windowrule = match:class ^(foot-network)$, float on windowrule = match:class ^(foot-network)$, size (monitor_w*0.6) (monitor_h*0.6) diff --git a/dotfiles/hyprland/.config/waypaper/config.ini b/dotfiles/hyprland/.config/waypaper/config.ini new file mode 100644 index 0000000..66652ed --- /dev/null +++ b/dotfiles/hyprland/.config/waypaper/config.ini @@ -0,0 +1,27 @@ +[Settings] +language = en +folder = ~/pictures/wallpaper +monitors = All +wallpaper = ~/pictures/wallpaper/trondheim-norway.jpg +show_path_in_tooltip = True +backend = swww +fill = fill +sort = name +color = #ffffff +subfolders = False +all_subfolders = False +show_hidden = False +show_gifs_only = False +zen_mode = False +post_command = +number_of_columns = 3 +swww_transition_type = simple +swww_transition_step = 63 +swww_transition_angle = 0 +swww_transition_duration = 2 +swww_transition_fps = 60 +mpvpaper_sound = False +mpvpaper_options = +use_xdg_state = False +stylesheet = /home/cjennings/.config/waypaper/style.css + diff --git a/dotfiles/hyprland/.config/xdg-desktop-portal/portals.conf b/dotfiles/hyprland/.config/xdg-desktop-portal/portals.conf new file mode 100644 index 0000000..9cc87a2 --- /dev/null +++ b/dotfiles/hyprland/.config/xdg-desktop-portal/portals.conf @@ -0,0 +1,3 @@ +[preferred] +default=hyprland;gtk +org.freedesktop.impl.portal.Settings=none diff --git a/dotfiles/hyprland/.local/bin/monitor-dashboard b/dotfiles/hyprland/.local/bin/monitor-dashboard new file mode 100755 index 0000000..9236d20 --- /dev/null +++ b/dotfiles/hyprland/.local/bin/monitor-dashboard @@ -0,0 +1,37 @@ +#!/bin/sh +# monitor-dashboard - tmux session with system monitoring tools +# Each tool gets its own window for full screen real estate + +SESSION="monitor" + +# Check if system has a battery +has_battery() { + [ -d /sys/class/power_supply/BAT0 ] || [ -d /sys/class/power_supply/BAT1 ] +} + +# Attach to existing session or create new one +if tmux has-session -t "$SESSION" 2>/dev/null; then + exec tmux attach-session -t "$SESSION" +fi + +# Create new session with btop in first window +tmux new-session -d -s "$SESSION" -n btop btop + +# Add windows for other monitoring tools (grouped logically) +# CPU/GPU +tmux new-window -t "$SESSION" -n s-tui s-tui +tmux new-window -t "$SESSION" -n nvtop nvtop +# Disk +tmux new-window -t "$SESSION" -n duf "watch --color -n 60 duf" +# Network +tmux new-window -t "$SESSION" -n bandwhich "sudo bandwhich" +tmux new-window -t "$SESSION" -n wavemon wavemon +# Power (laptop only) +if has_battery; then + tmux new-window -t "$SESSION" -n powertop "sudo powertop" +fi + +# Start on btop window +tmux select-window -t "$SESSION:btop" + +exec tmux attach-session -t "$SESSION" diff --git a/dotfiles/hyprland/.config/easyeffects/output/dt770-pro-250-harman-eq.json b/dotfiles/hyprland/.local/share/easyeffects/output/dt770-pro-250-harman-eq.json index 8774a0f..8774a0f 100644 --- a/dotfiles/hyprland/.config/easyeffects/output/dt770-pro-250-harman-eq.json +++ b/dotfiles/hyprland/.local/share/easyeffects/output/dt770-pro-250-harman-eq.json diff --git a/dotfiles/hyprland/.config/easyeffects/output/pixel-buds-pro-2-harman-eq.json b/dotfiles/hyprland/.local/share/easyeffects/output/pixel-buds-pro-2-harman-eq.json index 056e216..056e216 100644 --- a/dotfiles/hyprland/.config/easyeffects/output/pixel-buds-pro-2-harman-eq.json +++ b/dotfiles/hyprland/.local/share/easyeffects/output/pixel-buds-pro-2-harman-eq.json diff --git a/dotfiles/hyprland/.config/easyeffects/output/pxc-550-ii-harman-eq.json b/dotfiles/hyprland/.local/share/easyeffects/output/pxc-550-ii-harman-eq.json index c400419..c400419 100644 --- a/dotfiles/hyprland/.config/easyeffects/output/pxc-550-ii-harman-eq.json +++ b/dotfiles/hyprland/.local/share/easyeffects/output/pxc-550-ii-harman-eq.json diff --git a/dotfiles/hyprland/.profile.d/99-hyprland-autostart.sh b/dotfiles/hyprland/.profile.d/99-hyprland-autostart.sh new file mode 100644 index 0000000..9d80353 --- /dev/null +++ b/dotfiles/hyprland/.profile.d/99-hyprland-autostart.sh @@ -0,0 +1,26 @@ +# 99-hyprland-autostart.sh +# Auto-start Hyprland on TTY1 console login + +# Guard: only on TTY1, not SSH, no existing display +[ "$XDG_VTNR" = "1" ] || return 0 +[ -z "$SSH_TTY" ] || return 0 +[ -z "$WAYLAND_DISPLAY" ] || return 0 +[ -z "$DISPLAY" ] || return 0 +command -v Hyprland >/dev/null 2>&1 || return 0 + +# Skip if flag file exists (touch ~/.skip-hyprland to disable) +[ -f "$HOME/.skip-hyprland" ] && return 0 + +# Setup logging (same pattern as start-hyprland wrapper) +_hypr_log_dir="$HOME/.local/var/log" +mkdir -p "$_hypr_log_dir" +_hypr_log="$_hypr_log_dir/hyprland-$(date +%Y-%m-%d-%H%M%S).log" + +# Clear screen and start Hyprland (no exec = return to shell on exit) +clear +Hyprland >"$_hypr_log" 2>&1 + +# Hyprland exited - inform user +echo "Hyprland session ended. Type 'start-hyprland' to restart." + +unset _hypr_log_dir _hypr_log |
