Compare commits

...

6 Commits

8 changed files with 115 additions and 45 deletions
+5
View File
@@ -15,3 +15,8 @@ case "$GPU" in
intel) pac_file packages/graphics-intel.txt ;; intel) pac_file packages/graphics-intel.txt ;;
*) info "no GPU group for GPU='$GPU'" ;; *) info "no GPU group for GPU='$GPU'" ;;
esac esac
# Laptop only: backlight control. Desktop monitors (DP/HDMI) don't expose a
# /sys/class/backlight device — they use DDC/CI (ddcutil) — so brightnessctl has
# nothing to control there and the XF86MonBrightness* binds just no-op.
[ "$IS_DESKTOP" = 0 ] && pacman -S --needed --noconfirm brightnessctl
Binary file not shown.
+25 -43
View File
@@ -4,11 +4,12 @@
# Create your files separately and then link them to this file like this: # Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf # source = ~/.config/hypr/myColors.conf
################ ###############################
### MONITORS ### ### MONITORS AND WORKSPACES ###
################ ###############################
# Desktop, dual external monitors setup:
# See https://wiki.hypr.land/Configuring/Monitors/
#monitorv2 { #monitorv2 {
# output = DP-1 # output = DP-1
# mode = 3840x2160@60 # mode = 3840x2160@60
@@ -27,9 +28,19 @@
# icc = /home/tobias/scripts/set_gamma/LG_1_2020_D6500_sRGB.icm # icc = /home/tobias/scripts/set_gamma/LG_1_2020_D6500_sRGB.icm
#} #}
# Assign Workspace 1 to correct monitor and set cursor to that workspace on start # workspacerules
#workspace=name:1, monitor:DP-2 #workspace = name:1, monitor:DP-1, default:false
#exec-once = hyprctl dispatch workspace 1 #workspace = name:2, monitor:DP-1, default:false
#workspace = name:3, monitor:DP-1, default:false
#workspace = name:4, monitor:DP-1, default:false
#workspace = name:5, monitor:DP-1, default:false
#workspace = name:6, monitor:DP-2, default:false
#workspace = name:7, monitor:DP-2, default:false
#workspace = name:8, monitor:DP-2, default:false
#workspace = name:9, monitor:DP-2, default:false
#workspace = name:0, monitor:DP-2, default:false
debug { debug {
disable_logs = true disable_logs = true
@@ -162,21 +173,13 @@ decoration {
active_opacity = 1.0 active_opacity = 1.0
inactive_opacity = 1.0 inactive_opacity = 1.0
#shadow {
# enabled = true
# range = 4
# render_power = 3
# color = rgba(1a1a1aee)
#}
shadow { shadow {
enabled = true enabled = true
range = 100 range = 100
render_power = 3 render_power = 3
color = rgba(00000050) color = rgba(00000050)
scale = 0.99 scale = 0.99
offset = 0 9 offset = 0 9
} }
# https://wiki.hypr.land/Configuring/Variables/#blur # https://wiki.hypr.land/Configuring/Variables/#blur
@@ -257,12 +260,6 @@ ecosystem {
no_donation_nag = true no_donation_nag = true
} }
#cursor {
# no_hardware_cursors = true
# min_refresh_rate = 60
#}
############# #############
### INPUT ### ### INPUT ###
@@ -397,24 +394,10 @@ bind = $shiftMod, PRINT, exec, hyprshot -m output
bind = $mainMod,P,exec,hyprpicker -a bind = $mainMod,P,exec,hyprpicker -a
############################## ##############################
### WINDOWS AND WORKSPACES ### ### WINDOWS ###
############################## ##############################
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more # See https://wiki.hypr.land/Configuring/Window-Rules/ for more
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
# workspacerules
workspace = name:1, monitor:DP-1, default:false
workspace = name:2, monitor:DP-1, default:false
workspace = name:3, monitor:DP-1, default:false
workspace = name:4, monitor:DP-1, default:false
workspace = name:5, monitor:DP-1, default:false
workspace = name:6, monitor:DP-2, default:false
workspace = name:7, monitor:DP-2, default:false
workspace = name:8, monitor:DP-2, default:false
workspace = name:9, monitor:DP-2, default:false
workspace = name:0, monitor:DP-2, default:false
# windowrules # windowrules
windowrule = float on, size 1100 700, match:class ^(org.gnome.Nautilus)$ windowrule = float on, size 1100 700, match:class ^(org.gnome.Nautilus)$
@@ -433,10 +416,9 @@ windowrule = float on, size 1200 750, match:class ^(Element)$
windowrule = float on, size 1200 750, match:class ^(org.gnome.Fractal)$ windowrule = float on, size 1200 750, match:class ^(org.gnome.Fractal)$
#windowrule = suppressevent[activatefocus activate],initialClass:^(photoshop.exe)$
windowrule = no_initial_focus on, match:initial_class ^(photoshop.exe)$ windowrule = no_initial_focus on, match:initial_class ^(photoshop.exe)$
#windowrule = suppressevent[activatefocus activate],initialClass:^(photoshop.exe)$
#windowrule = noblur,initialClass:^(photoshop.exe)$ #windowrule = noblur,initialClass:^(photoshop.exe)$
#windowrule = noshadow,initialClass:^(photoshop.exe)$ #windowrule = noshadow,initialClass:^(photoshop.exe)$
#windowrule = noanim,initialClass:^(photoshop.exe)$ #windowrule = noanim,initialClass:^(photoshop.exe)$
@@ -23,6 +23,7 @@
"cpu", "cpu",
"memory", "memory",
"battery", "battery",
"custom/power_profile",
"custom/studio-sound", "custom/studio-sound",
"bluetooth", "bluetooth",
"wireplumber", "wireplumber",
@@ -195,6 +196,16 @@
"return-type": "json" "return-type": "json"
}, },
"custom/power_profile": {
"format": "{}",
"exec": "~/.config/waybar/scripts/power-profile.sh",
"on-click": "~/.config/waybar/scripts/power-profile.sh toggle",
"interval": "once",
"signal": 9,
"return-type": "json",
"tooltip": true
},
"custom/studio-sound": { "custom/studio-sound": {
"format": "{}", "format": "{}",
"exec": "~/.config/waybar/scripts/studio-sound.py", "exec": "~/.config/waybar/scripts/studio-sound.py",
@@ -0,0 +1,71 @@
#!/bin/bash
# Waybar power-profiles-daemon module.
# default : print the current profile as JSON (empty -> Waybar hides the module)
# toggle : cycle to the next available profile, then signal Waybar to refresh
#
# Wired as interval:"once" + signal in config.jsonc, so the script runs exactly
# once at Waybar startup and thereafter only when we signal it on click. On a
# desktop the single startup run hits an unavailable PPD, prints empty, and the
# module stays hidden forever with no recurring cost.
#
# Availability keys off the systemd unit being *enabled* rather than
# `powerprofilesctl get` succeeding: PPD is D-Bus-activatable and desktop CPUs
# expose EPP too, so `get` would answer on a desktop as well. The repo only
# enables the service on laptops (IS_DESKTOP=0), so `is-enabled` is the honest
# "is this a laptop that uses PPD" signal.
SERVICE=power-profiles-daemon.service
available() {
command -v powerprofilesctl >/dev/null 2>&1 || return 1
systemctl is-enabled "$SERVICE" >/dev/null 2>&1
}
# Available profile names in the order PPD lists them (power-saver … performance).
# Profile header lines are just "name:" (optionally "* name:" for the active one);
# every other line (Driver:, Degraded:, …) has text after the colon.
profiles() {
powerprofilesctl list 2>/dev/null | sed -nE 's/^[[:space:]]*\*?[[:space:]]*([a-z-]+):[[:space:]]*$/\1/p'
}
# FontAwesome glyphs (Nerd Font): f0e7 bolt, f6ad yin-yang, f06c leaf, f011 power.
icon() {
case "$1" in
performance) printf '' ;;
balanced) printf '' ;;
power-saver) printf '' ;;
*) printf '' ;; # power symbol, fallback
esac
}
cycle() {
mapfile -t list < <(profiles)
[ "${#list[@]}" -eq 0 ] && exit 0
cur=$(powerprofilesctl get 2>/dev/null)
next=0
for i in "${!list[@]}"; do
if [ "${list[$i]}" = "$cur" ]; then
next=$(( (i + 1) % ${#list[@]} ))
break
fi
done
powerprofilesctl set "${list[$next]}"
pkill -SIGRTMIN+9 waybar
}
output() {
if ! available; then
printf '{"text":""}\n'
exit 0
fi
cur=$(powerprofilesctl get 2>/dev/null)
[ -z "$cur" ] && { printf '{"text":""}\n'; exit 0; }
printf '{"text":"%s","tooltip":"Power profile: %s\\nClick to cycle","class":"%s"}\n' \
"$(icon "$cur")" "$cur" "$cur"
}
case "$1" in
toggle|cycle) cycle ;;
*) output ;;
esac
@@ -137,6 +137,7 @@ tooltip {
color: #a6e3a1; color: #a6e3a1;
border-left: 0px; border-left: 0px;
border-right: 0px; border-right: 0px;
min-width: 17px;
} }
#window { #window {
-1
View File
@@ -36,6 +36,5 @@ streamrip
uxplay uxplay
vcvrack vcvrack
vkd3d-proton-bin vkd3d-proton-bin
whitesur-icon-theme
wl-screenrec wl-screenrec
yaak-bin yaak-bin
+2 -1
View File
@@ -73,7 +73,8 @@ sudo ~/arch-system-hyprland/04-secrets/run.sh
- install firefox extensions manually - install firefox extensions manually
- ublock origin - ublock origin
- floccus - floccus
- dark reader - Dark Reader
- KeePassXC-Browser
- edit hyprland config to adjust for monitor setup, including color profiles under ~/.local/share/icc - edit hyprland config to adjust for monitor setup, including color profiles under ~/.local/share/icc