From 73ced94bc12f51ac3facf1c5c6d266d125edd277 Mon Sep 17 00:00:00 2001 From: Declan Teevan Date: Sun, 8 Feb 2026 13:16:30 +0000 Subject: [PATCH] feat(hypr): extend cfgs feat(distro): extend stub arch setup script Extended hypr configs (only base/example config files without any themes to this repo for now - pending some polishing/refactoring). Added stubs for adding soem of my `plymouth` and `sddm` theming to my dots repo. --- .../display/hyprland/hypr/cfgs/autostart.conf | 11 +- config/display/hyprland/hypr/hypridle.conf | 37 ++++++ config/display/hyprland/hypr/hyprlock.conf | 106 ++++++++++++++++++ config/display/plymouth/.gitkeep | 2 + config/display/sddm/.gitkeep | 1 + distro/arch/setup.sh | 29 ++++- 6 files changed, 182 insertions(+), 4 deletions(-) create mode 100644 config/display/hyprland/hypr/hypridle.conf create mode 100644 config/display/hyprland/hypr/hyprlock.conf create mode 100644 config/display/plymouth/.gitkeep create mode 100644 config/display/sddm/.gitkeep diff --git a/config/display/hyprland/hypr/cfgs/autostart.conf b/config/display/hyprland/hypr/cfgs/autostart.conf index e0a388b..b831432 100644 --- a/config/display/hyprland/hypr/cfgs/autostart.conf +++ b/config/display/hyprland/hypr/cfgs/autostart.conf @@ -9,13 +9,18 @@ # exec-once = nm-applet & # exec-once = waybar & hyprpaper & firefox -# TODO: start polkit (separate exec-once) +# Start polkit agent +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 -# TODO: load wallpaper manager +# Load wallpaper manager / daemon +# NOTE: using `awww` in dots, instead of `wpaperd`/`swaybg` for now +exec-once = awww-daemon # Notifications Daemon exec-once = swaync -# TODO: hyprlock setup (hypridle?) +# Hyprlock + Hypridle Setup +exec-once = hypridle +# Start launcher apps exec-once = waybar \ No newline at end of file diff --git a/config/display/hyprland/hypr/hypridle.conf b/config/display/hyprland/hypr/hypridle.conf new file mode 100644 index 0000000..5d0121b --- /dev/null +++ b/config/display/hyprland/hypr/hypridle.conf @@ -0,0 +1,37 @@ +# NOTE: Example config (pending reworking my own hypr-rice) +# SOURCE: https://wiki.hypr.land/Hypr-Ecosystem/hypridle/ + +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 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. + on-resume = brightnessctl -r # monitor backlight restore. +} + +# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. +listener { + timeout = 150 # 2.5min. + on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight. + on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight. +} + +listener { + timeout = 300 # 5min + 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 +} \ No newline at end of file diff --git a/config/display/hyprland/hypr/hyprlock.conf b/config/display/hyprland/hypr/hyprlock.conf new file mode 100644 index 0000000..90c495b --- /dev/null +++ b/config/display/hyprland/hypr/hyprlock.conf @@ -0,0 +1,106 @@ +# sample hyprlock.conf +# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock +# +# rendered text in all widgets supports pango markup (e.g. or tags) +# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks +# +# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace +# +# you can get started by copying this config to ~/.config/hypr/hyprlock.conf +# + +$font = Monospace + +general { + hide_cursor = false +} + +# uncomment to enable fingerprint authentication +# auth { +# fingerprint { +# enabled = true +# ready_message = Scan fingerprint to unlock +# present_message = Scanning... +# retry_delay = 250 # in milliseconds +# } +# } + +animations { + enabled = true + bezier = linear, 1, 1, 0, 0 + animation = fadeIn, 1, 5, linear + animation = fadeOut, 1, 5, linear + animation = inputFieldDots, 1, 2, linear +} + +background { + monitor = + path = screenshot + blur_passes = 3 +} + +input-field { + monitor = + size = 20%, 5% + outline_thickness = 3 + inner_color = rgba(0, 0, 0, 0.0) # no fill + + outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg + check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg + fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg + + font_color = rgb(143, 143, 143) + fade_on_empty = false + rounding = 15 + + font_family = $font + placeholder_text = Input password... + fail_text = $PAMFAIL + + # uncomment to use a letter instead of a dot to indicate the typed password + # dots_text_format = * + # dots_size = 0.4 + dots_spacing = 0.3 + + # uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator) + # hide_input = true + + position = 0, -20 + halign = center + valign = center +} + +# TIME +label { + monitor = + text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution + font_size = 90 + font_family = $font + + position = -30, 0 + halign = right + valign = top +} + +# DATE +label { + monitor = + text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds + font_size = 25 + font_family = $font + + position = -30, -150 + halign = right + valign = top +} + +label { + monitor = + text = $LAYOUT[en,ru] + font_size = 24 + onclick = hyprctl switchxkblayout all next + + position = 250, -20 + halign = center + valign = center +} \ No newline at end of file diff --git a/config/display/plymouth/.gitkeep b/config/display/plymouth/.gitkeep new file mode 100644 index 0000000..6f1d50f --- /dev/null +++ b/config/display/plymouth/.gitkeep @@ -0,0 +1,2 @@ +TODO: add plymouth themeing here +(TODO: also themeing for LUKS screen on portable workstations) diff --git a/config/display/sddm/.gitkeep b/config/display/sddm/.gitkeep new file mode 100644 index 0000000..87bc416 --- /dev/null +++ b/config/display/sddm/.gitkeep @@ -0,0 +1 @@ +TODO: sddm themeing here \ No newline at end of file diff --git a/distro/arch/setup.sh b/distro/arch/setup.sh index d5a1de8..1c6ce93 100644 --- a/distro/arch/setup.sh +++ b/distro/arch/setup.sh @@ -11,12 +11,39 @@ ARCH_APPS = ( base-devel git + + kitty + fastfetch # ofc, ofc + zoxide + + neovim + lazygit + lazydocker + + kleopatra ) AUR_APPS = ( - brave # disable safe browsing (sends URLS for checking against single API) + brave # disable safe browsing; privacy (sends URLS, hashes - but known DB, for checking against single API) firefox + # bruno + # insomnia +) + +# TODO: customise install level within script +# select custom 'packages' / 'apps' (minimal dots, core apps/cfgs only, etc) +HYPR_APPS = ( + hyprland + hyprlock + hypridle + rofi + swaync + waybar +) + +HYPR_AUR_APPS = ( + awww-git ) # if [[ $HOSTTYPE == "server" ]]; then STANDARD_PKGS+=(tmux) else AUR_PKGS+=(spotify) fi