Compare commits

...

3 Commits

Author SHA1 Message Date
5e55b51220 fixes waybar, adds cursors, fixes some hyprland stuff 2026-02-15 21:03:00 +01:00
73d6ca5bec fixes waybar, adds cursors 2026-01-22 21:23:27 +01:00
8a6e480d58 fixes cava in waybar 2026-01-22 14:15:32 +01:00
17 changed files with 398 additions and 176 deletions

View File

@@ -1,19 +1,19 @@
$wallpaper = /usr/share/wallpapers/downloaded/pexels-jplenio-1102912.jpg
$background = rgb(0E0E11)
$foreground = rgb(FDF2DE)
$color0 = rgb(38393C)
$color1 = rgb(424652)
$color2 = rgb(6A3E40)
$color3 = rgb(736956)
$color4 = rgb(897C88)
$color5 = rgb(9B8166)
$color6 = rgb(F9D9A2)
$color7 = rgb(F4E4C8)
$color8 = rgb(AA9F8C)
$color9 = rgb(424652)
$color10 = rgb(6A3E40)
$color11 = rgb(736956)
$color12 = rgb(897C88)
$color13 = rgb(9B8166)
$color14 = rgb(F9D9A2)
$color15 = rgb(F4E4C8)
$wallpaper = /usr/share/wallpapers/downloaded/pexels-8kspain-21564213.jpg
$background = rgb(252425)
$foreground = rgb(F9F1D9)
$color0 = rgb(505051)
$color1 = rgb(9C604E)
$color2 = rgb(807A52)
$color3 = rgb(908BAB)
$color4 = rgb(B7815F)
$color5 = rgb(B9BECA)
$color6 = rgb(EED793)
$color7 = rgb(EEE3C1)
$color8 = rgb(A79F87)
$color9 = rgb(9C604E)
$color10 = rgb(807A52)
$color11 = rgb(908BAB)
$color12 = rgb(B7815F)
$color13 = rgb(B9BECA)
$color14 = rgb(EED793)
$color15 = rgb(EEE3C1)

View File

@@ -2,9 +2,11 @@
# ┃ Enviroment Configuration ┃
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
envd = HYPRCURSOR_SIZE,24
envd = XCURSOR_SIZE,24
envd = QT_CURSOR_SIZE,24
envd = HYPRCURSOR_THEME,vimix-kanagawa-hyprcursors-lotus
envd = HYPRCURSOR_SIZE,34
env = XCURSOR_THEME,vimix-kanagawa-hyprcursors-lotus
envd = XCURSOR_SIZE,34
envd = QT_CURSOR_SIZE,34
# Force electron apps to use wayland
env = ELECTRON_OZONE_PLATFORM_HINT,wayland

View File

@@ -137,7 +137,7 @@ bindd = $mainMod ALT SHIFT, F1, Move active window to s~/.config/hypr/scripts/pe
# ======= Screenshot =======
# Screenshot a window
bind = $mainMod, PRINT, exec, hyprshot -m window
bind = $mainMod, PRINT, exec, hyprshot -m window
# Screenshot a monitor
bind = , PRINT, exec, hyprshot -m output
# Screenshot a region
@@ -163,15 +163,13 @@ binds {
# Toggle Waybar
bind = $mainMod, W, exec, killall -SIGUSR1 waybar
bind = $mainMod SHIFT, W, exec, killall -SIGUSR2 waybar # restart
# ======= Monitors =======
# Toggle Monitor Flip
bind = $mainMod, F7, exec, ~/.config/hypr/scripts/rotate_current_screen.sh
# One-key flip: externals on/off
bind = $mainMod, F8, exec, ~/.config/hypr/scripts/monitor-toggle.sh toggle-externals
# Explicit profiles
bind = $mainMod, F8, exec, ~/.config/hypr/scripts/monitor-toggle.sh laptop
bind = $mainMod, F9, exec, ~/.config/hypr/scripts/monitor-toggle.sh dual
# bind = $mainMod, F8, exec, ~/.config/hypr/scripts/monitor-toggle.sh laptop
bind = $mainMod, F9, exec, ~/.config/hypr/scripts/monitor-toggle.sh dual
bind = $mainMod, F10, exec, ~/.config/hypr/scripts/monitor-toggle.sh triple

View File

@@ -4,13 +4,11 @@
# Monitor wiki https://wiki.hyprland.org/0.45.0/Configuring/Monitors/
monitor = desc:BOE NE156FHM-NX6, highres@highrr, 0x0, 1, vrr, 1
# monitor = DP-2, highres@highrr, auto-left, 1, vrr, 0
monitor = eDP-2, highres@highrr, 0x0, 1, vrr, 1
monitor = HDMI-A-1, highres@highrr, auto-right, 1, transform, 1
#monitor = HDMI-A-1, highres@highrr, auto-right, 1, transform, 1
monitor = desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1
monitor = desc:Samsung Electric Company S24F350 H4ZK111233, highres@highrr, auto-right, 1, transform, 1
monitor = desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1
#monitor = desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1
# monitor = HDMI-A-1, highres@highrr, auto-right, 1, vrr, 0

View File

@@ -55,7 +55,7 @@ misc {
enable_swallow = true
swallow_regex = ^(cachy-browser|firefox|nautilus|nemo|thunar|btrfs-assistant.)$
focus_on_activate = true
vrr = 2
vrr = 0
# Hypridle cmatrix fix:
session_lock_xray = true
middle_click_paste = false

View File

@@ -273,6 +273,15 @@ windowrule {
match:title = ^(Citation Dialog)$
}
windowrule {
name = libreoffice-opaque
match:class = ^(libreoffice.*)$
# active, inactive, fullscreen (all forced to 1.0)
opacity = 1.0 override 1.0 override 1.0 override
}
# gnome calendar
windowrule {
name = windowrule-cal
@@ -289,4 +298,18 @@ windowrule {
match:class = ^(waypaper)$
float = on
center = on
}
}
windowrule {
name = calcure
match:title = ^(calcure)$
float = on
center = on
}
windowrule {
name = gnome-calculator-fix
match:class = ^(org.gnome.Calculator)$
float = on
center = on
}

View File

@@ -6,7 +6,9 @@ workspace = 1, monitor:eDP-2
workspace = 2, monitor:eDP-2
workspace = 3, monitor:eDP-2
workspace = 4, monitor:eDP-2
workspace = 5, monitor:eDP-2
workspace = 6, monitor:eDP-2
workspace = 7, monitor:eDP-2
workspace = 7, monitor:desc:Samsung Electric Company S24F350 H4ZR302705
workspace = 8, monitor:DP-2
workspace = 9, monitor:HDMI-A-1

View File

@@ -5,20 +5,20 @@ general {
}
listener {
timeout = 150 # 2.5min.
timeout = 7200 # 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.
timeout = 7200 # 2.5min.
on-timeout = brightnessctl -sd asus::kbd_backlight set 0 # turn off keyboard backlight.
on-resume = brightnessctl -rd asus::kbd_backlight # turn on keyboard backlight.
}
listener {
timeout = 300 # 5min
timeout = 7200 # 5min
on-timeout = ~/.config/swaylock/lockscript.sh # lock screen when timeout has passed
}

View File

@@ -17,7 +17,8 @@ source = ~/.config/hypr/config/monitor.conf
source = ~/.config/hypr/config/variables.conf
source = ~/.config/hypr/config/windowrules.conf
source = ~/.config/hypr/config/workspaces.conf
source = ~/.config/hypr/config/plugins.conf
# Modifying these configs can be done by creating a user defined config in the home directory, e.g.
## ~/.config/hypr/config/user-config.conf
# source ~/.config/hypr/config/user-config.conf
# source ~/.config/hypr/config/user-config.conf

View File

@@ -0,0 +1,6 @@
# Generated by nwg-displays on 2026-02-04 at 14:45:07. Do not edit manually.
monitor=desc:BOE NE156FHM-NX6,1920x1080@144.0,0x0,1.0
monitor=desc:Samsung Electric Company S24F350 H4ZK111233,1920x1080@60.0,1920x0,1.0
monitor=desc:Samsung Electric Company S24F350 H4ZK111233,transform,1
monitor=desc:Samsung Electric Company S24F350 H4ZR302705,1920x1080@60.0,3000x0,1.0

View File

@@ -1,26 +1,25 @@
#!/usr/bin/env bash
# Quick display control for Hyprland
# Profiles:
# laptop -> keep eDP-2, disable all externals
# dual -> eDP-2 + primary external
# triple -> eDP-2 + both externals
# Toggles:
# toggle-externals -> if any external enabled => laptop; else => triple (or dual if only one preset)
# dpms-toggle-focused -> blank/unblank the currently focused monitor (does NOT change layout)
set -euo pipefail
PRIMARY="eDP-2"
RIGHT_EXTERNAL_NAME="DP-2"
MIDDLE_EXTERNAL_NAME="HDMI-A-1"
# --- exact enable lines (copy from hyprland.conf) ---
# Exact enable lines (from your config)
EXT1='desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1'
EXT2='desc:Samsung Electric Company S24F350 H4ZK111233, highres@highrr, auto-right, 1, transform, 1'
# Optional fallback by connector (harmless if not present)
EXT_FALLBACK='HDMI-A-1, highres@highrr, auto-right, 1'
# Which external is the "main" one you prefer for Dual:
# In dual mode, which one do we prefer?
DUAL_MAIN="$EXT1"
# Optional: restart Waybar after layout changes (0=off, 1=on)
RESTART_WAYBAR=1
# Dock/MST settle timing (tune if needed)
SETTLE_SECS=1.0
DPMS_KICK_RETRIES=2
DPMS_KICK_SLEEP=0.35
notify() {
if command -v notify-send >/dev/null 2>&1; then
notify-send -a "Hyprland" "$1" "${2:-}"
@@ -35,62 +34,182 @@ hypr() {
notify "hyprctl failed" "$out"
exit 1
fi
printf '%s' "$out"
}
jqok(){ command -v jq >/dev/null; }
monjson(){ hyprctl -j monitors 2>/dev/null || true; }
hypr_batch() {
local out
if ! out="$(hyprctl --batch "$1" 2>&1)"; then
notify "hyprctl --batch failed" "$out"
exit 1
fi
printf '%s' "$out"
}
any_external_enabled() {
if jqok; then
monjson | jq -e --arg P "$PRIMARY" '.[] | select(.name!=$P and (.disabled!=true))' >/dev/null
else
hyprctl monitors | awk -v P="$PRIMARY" '/^Monitor /{gsub(/^Monitor[ \t]+/, "", $0); split($0,a," "); if (a[1]!=P){print; exit 0}}' | grep -q .
restart_waybar() {
[ "${RESTART_WAYBAR:-0}" -eq 1 ] || return 0
if pgrep -x waybar >/dev/null 2>&1; then
pkill -SIGUSR2 waybar >/dev/null 2>&1 || true
fi
}
disable_all_externals() {
jqok() { command -v jq >/dev/null 2>&1; }
monjson() { hyprctl -j monitors 2>/dev/null || true; }
sleep_s() { python - <<PY 2>/dev/null || sleep 1
import time
time.sleep(float("$1"))
PY
}
# --- monitor discovery helpers ---
enabled_monitor_names() {
if jqok; then
mapfile -t names < <(monjson | jq -r --arg P "$PRIMARY" '.[] | select(.name!=$P) | .name')
monjson | jq -r '.[] | select(.disabled != true) | .name'
else
mapfile -t names < <(hyprctl monitors | awk -v P="$PRIMARY" '/^Monitor /{gsub(/^Monitor[ \t]+/, "", $0); split($0,a," "); if (a[1]!=P) print a[1]}')
# Fallback is weaker; jq is strongly recommended
hyprctl monitors | awk '
/^Monitor /{name=$2}
/disabled: false/{print name}
'
fi
for n in "${names[@]:-}"; do
hypr keyword monitor "$n, disable"
}
focused_monitor_name() {
if jqok; then
monjson | jq -r '.[] | select(.focused==true) | .name // empty'
else
hyprctl monitors | awk '
/^Monitor /{name=$2}
/focused: yes/{print name; exit}
'
fi
}
external_enabled() {
local n
while IFS= read -r n; do
[ "$n" != "$PRIMARY" ] && return 0
done < <(enabled_monitor_names)
return 1
}
# We dont try to parse desc lines; we just treat them as “enable rules”
enable_rule() {
local rule="$1"
[ -n "$rule" ] && printf 'keyword monitor %s; ' "$rule"
}
disable_by_name() {
local name="$1"
[ -n "$name" ] && printf 'keyword monitor %s, disable; ' "$name"
}
# Disable all *currently enabled* externals by name (minimal churn)
batch_disable_enabled_externals() {
local batch="" n=""
while IFS= read -r n; do
[ "$n" = "$PRIMARY" ] && continue
batch+="$(disable_by_name "$n")"
done < <(enabled_monitor_names)
printf '%s' "$batch"
}
# Dock settle wait: give MST/alt-mode time to re-enumerate before we apply rules / kick DPMS
dock_settle() {
sleep_s "$SETTLE_SECS"
}
# DPMS kick for all enabled externals (works well for dock hotplug weirdness)
kick_externals() {
local names=() n=""
if jqok; then
mapfile -t names < <(monjson | jq -r --arg P "$PRIMARY" '
.[] | select(.name != $P and (.disabled != true)) | .name
')
else
mapfile -t names < <(enabled_monitor_names | awk -v P="$PRIMARY" '$0!=P')
fi
[ "${#names[@]}" -eq 0 ] && return 0
for _ in $(seq 1 "$DPMS_KICK_RETRIES"); do
for n in "${names[@]}"; do hypr dispatch dpms off "$n" >/dev/null 2>&1 || true; done
sleep_s "$DPMS_KICK_SLEEP"
for n in "${names[@]}"; do hypr dispatch dpms on "$n" >/dev/null 2>&1 || true; done
sleep_s "$DPMS_KICK_SLEEP"
done
}
enable_line() {
local line="$1"
[ -n "$line" ] && hypr keyword monitor "$line"
enforce_triple_order() {
# Keep HDMI between the laptop panel and DP-2, with DP-2 always on the right.
enabled_monitor_names | grep -qx "$MIDDLE_EXTERNAL_NAME" || return 0
enabled_monitor_names | grep -qx "$RIGHT_EXTERNAL_NAME" || return 0
local py=0 px=0 pspan=1920 mspan=1920 mx rx
if jqok; then
read -r px py pspan < <(monjson | jq -r --arg N "$PRIMARY" '
.[] | select(.name == $N) |
(.transform // 0) as $t |
"\(.x // 0) \(.y // 0) \(if (($t % 2) == 1) then (.height // 1080) else (.width // 1920) end)"
')
read -r mspan < <(monjson | jq -r --arg N "$MIDDLE_EXTERNAL_NAME" '
.[] | select(.name == $N) |
(.transform // 0) as $t |
"\(if (($t % 2) == 1) then (.height // 1080) else (.width // 1920) end)"
')
fi
mx=$((px + pspan))
rx=$((mx + mspan))
hypr keyword monitor "$MIDDLE_EXTERNAL_NAME, highres@highrr, ${mx}x${py}, 1, transform, 1" >/dev/null 2>&1 || true
hypr keyword monitor "$RIGHT_EXTERNAL_NAME, highres@highrr, ${rx}x${py}, 1" >/dev/null 2>&1 || true
}
apply_profile() {
local label="$1"
local batch="$2"
dock_settle
[ -n "$batch" ] && hypr_batch "$batch" >/dev/null
dock_settle
kick_externals
notify "Profile: $label" ""
restart_waybar
}
profile_laptop() {
disable_all_externals
notify "Profile: Laptop-only" "$PRIMARY active, externals disabled"
# Minimal: disable only currently enabled externals
local batch=""
batch+="$(batch_disable_enabled_externals)"
apply_profile "Laptop-only" "$batch"
}
profile_dual() {
# Ensure only one external is on
disable_all_externals
enable_line "$DUAL_MAIN"
notify "Profile: Dual" "Enabled main external with preferred transform"
# Disable enabled externals, then enable preferred main external rule
local batch=""
batch+="$(batch_disable_enabled_externals)"
batch+="$(enable_rule "$DUAL_MAIN")"
apply_profile "Dual" "$batch"
}
profile_triple() {
# Ensure both externals are on (and only those two)
disable_all_externals
enable_line "$EXT2" # ext2 first so it appears in the middle
enable_line "$EXT1"
# You can drop EXT_FALLBACK if you don't actually need it:
# enable_line "$EXT_FALLBACK"
notify "Profile: Triple" "Enabled both externals"
# Disable enabled externals, then enable both rules
# Order: EXT2 first so it tends to appear “middle” with auto-right
local batch=""
batch+="$(batch_disable_enabled_externals)"
batch+="$(enable_rule "$EXT2")"
batch+="$(enable_rule "$EXT1")"
apply_profile "Triple" "$batch"
dock_settle
enforce_triple_order
}
toggle_externals() {
if any_external_enabled; then
if external_enabled; then
profile_laptop
else
# Prefer triple if we have two presets, else dual
if [ -n "$EXT1" ] && [ -n "$EXT2" ]; then
profile_triple
else
@@ -100,32 +219,38 @@ toggle_externals() {
}
dpms_toggle_focused() {
# Blank/unblank the currently focused output, layout unchanged
local name
if jqok; then
name="$(monjson | jq -r '.[] | select(.focused==true) | .name // empty')"
else
name="$(hyprctl monitors | awk '$1=="Monitor"{gsub(/^Monitor[ \t]+/,""); split($0,a," "); name=a[1]} /focused: yes/{print name; exit}')"
fi
name="$(focused_monitor_name)"
[ -z "$name" ] && { notify "No focused monitor" ""; exit 2; }
hypr dispatch dpms toggle "$name"
hypr dispatch dpms toggle "$name" >/dev/null
notify "DPMS toggle" "$name"
}
status() {
echo "Enabled monitors:"
enabled_monitor_names | sed 's/^/ - /'
echo
echo "Focused: $(focused_monitor_name || true)"
}
case "${1:-}" in
laptop) profile_laptop ;;
dual) profile_dual ;;
triple) profile_triple ;;
toggle-externals) toggle_externals ;;
dpms-toggle-focused) dpms_toggle_focused ;;
laptop) profile_laptop ;;
dual) profile_dual ;;
triple) profile_triple ;;
toggle-externals) toggle_externals ;;
dpms-toggle-focused) dpms_toggle_focused ;;
kick-externals) dock_settle; kick_externals; notify "Kicked externals (DPMS)" "" ;;
status) status ;;
*)
cat <<EOF
Usage:
$(basename "$0") laptop # eDP-2 only
$(basename "$0") dual # eDP-2 + main external
$(basename "$0") laptop # eDP-2 only (disable enabled externals)
$(basename "$0") dual # eDP-2 + preferred external
$(basename "$0") triple # eDP-2 + both externals
$(basename "$0") toggle-externals # flip between laptop-only and (dual/triple)
$(basename "$0") dpms-toggle-focused # blank/unblank focused output (no layout change)
$(basename "$0") toggle-externals # laptop-only <-> (dual/triple)
$(basename "$0") dpms-toggle-focused # blank/unblank focused output (layout unchanged)
$(basename "$0") kick-externals # DPMS off/on for enabled externals
$(basename "$0") status # print enabled + focused
EOF
exit 2
;;

View File

@@ -57,16 +57,26 @@ fi
# Get current outputs dynamically
OUTPUTS=$(hyprctl monitors | grep "Monitor" | awk '{print $2}' | paste -sd " " -)
OPTIONS=$(
cat <<EOF
TOP_LEVEL=$(printf "%b" "screenshot\nrecord" | "${DMENU_ARR[@]}" "󰄀 ")
[ -z "$TOP_LEVEL" ] && exit 0
if [ "$TOP_LEVEL" = "screenshot" ]; then
OPTIONS=$(
cat <<EOF
screenshot selection
$(for OUTPUT in $OUTPUTS; do echo "screenshot $OUTPUT"; done)
screenshot all
EOF
)
else
OPTIONS=$(
cat <<EOF
record selection
$(for OUTPUT in $OUTPUTS; do echo "record $OUTPUT"; done)
record all
EOF
)
)
fi
SELECTION=$(printf "%b" "$OPTIONS" | "${DMENU_ARR[@]}" "󰄀 ")
[ -z "$SELECTION" ] && exit 0
@@ -92,6 +102,11 @@ select_audio_mode() {
esac
}
open_in_satty() {
[ -x "$(command -v satty)" ] || return 0
satty -f "$1" >/dev/null 2>&1 &
}
# Screenshot or record depending on selection
case "$SELECTION" in
"screenshot selection")
@@ -99,6 +114,7 @@ case "$SELECTION" in
IMG="${SCREENSHOT_DIR}/${TIMESTAMP}.png"
grim -g "$(slurp)" "$IMG" || { notify-send "Error" "Failed to take screenshot"; exit 1; }
[ -x "$(command -v wl-copy)" ] && wl-copy < "$IMG"
open_in_satty "$IMG"
notify-send "Screenshot Taken" "$IMG"
;;
@@ -114,6 +130,7 @@ case "$SELECTION" in
montage "${TEMP_FILES[@]}" -tile x1 -geometry +0+0 "$IMG"
rm "${TEMP_FILES[@]}"
[ -x "$(command -v wl-copy)" ] && wl-copy < "$IMG"
open_in_satty "$IMG"
notify-send "Screenshot Taken" "$IMG"
else
notify-send "Error" "Not enough outputs to montage"
@@ -153,6 +170,7 @@ case "$SELECTION" in
OUT=$(echo "$SELECTION" | awk '{print $2}')
grim -c -o "$OUT" "$IMG" || { notify-send "Error" "Failed to screenshot $OUT"; exit 1; }
[ -x "$(command -v wl-copy)" ] && wl-copy < "$IMG"
open_in_satty "$IMG"
notify-send "Screenshot Taken" "$IMG"
;;

View File

@@ -1,19 +1,19 @@
@define-color cursor #9D7C73;
@define-color background #0E0E11;
@define-color foreground #FDF2DE;
@define-color color0 #38393C;
@define-color color1 #424652;
@define-color color2 #6A3E40;
@define-color color3 #736956;
@define-color color4 #897C88;
@define-color color5 #9B8166;
@define-color color6 #F9D9A2;
@define-color color7 #F4E4C8;
@define-color color8 #AA9F8C;
@define-color color9 #424652;
@define-color color10 #6A3E40;
@define-color color11 #736956;
@define-color color12 #897C88;
@define-color color13 #9B8166;
@define-color color14 #F9D9A2;
@define-color color15 #F4E4C8;
@define-color cursor #AAA27D;
@define-color background #252425;
@define-color foreground #F9F1D9;
@define-color color0 #505051;
@define-color color1 #9C604E;
@define-color color2 #807A52;
@define-color color3 #908BAB;
@define-color color4 #B7815F;
@define-color color5 #B9BECA;
@define-color color6 #EED793;
@define-color color7 #EEE3C1;
@define-color color8 #A79F87;
@define-color color9 #9C604E;
@define-color color10 #807A52;
@define-color color11 #908BAB;
@define-color color12 #B7815F;
@define-color color13 #B9BECA;
@define-color color14 #EED793;
@define-color color15 #EEE3C1;

View File

@@ -4,7 +4,7 @@
// -------------------------------------------------------------------------
"layer": "top",
"swap-icon-label": true,
"position": "top",
"height": 36,
@@ -18,6 +18,7 @@
"modules-left": [
"clock",
"custom/weather",
"tray",
//"custom/rofi",
"hyprland/workspaces",
//"hyprland/submap",
@@ -30,20 +31,20 @@
// //"custom/gammastep"
// ],
"modules-right": [
"cava",
"wireplumber",
//"wlr/taskbar",
//"custom/storage",
"memory",
"cpu",
"temperature",
"battery",
//"pulseaudio",
"wireplumber",
"cava",
//"backlight",
"bluetooth",
//"custom/screenshot_t",
"custom/power_profiles",
//"tray",
"custom/power",
],
@@ -84,17 +85,17 @@
"clock#1": {
"format": " {:%a}",
"tooltip": false,
"on-click": "gnome-calendar",
"on-click": "kitty -e calcure --class=\"float\" -T calcure",
},
"clock#2": {
"format": " {:%d-%h-%Y}",
"tooltip": false,
"on-click": "gnome-calendar",
"on-click": "kitty -e calcure --class=\"float\" -T calcure",
},
"clock#3": {
"format": " {:%H:%M:%S %p}",
"tooltip": false,
"on-click": "gnome-calendar",
"on-click": "kitty -e calcure --class=\"float\" -T calcure",
},
"bluetooth": {
@@ -227,7 +228,7 @@
"format": " {:%H:%M  %e %b}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"today-format": "<b>{}</b>",
"on-click": "gnome-calendar",
"on-click": "kitty -e calcure --class=\"float\" -T calcure",
},
"clock#date": {
@@ -380,8 +381,9 @@
},
"tray": {
"icon-size": 15,
"icon-size": 11,
"spacing": 5,
"show-passive-items": true,
},
"custom/power_profiles": {
@@ -405,33 +407,37 @@
"menu": "on-click",
"menu-file": "~/.config/waybar/modules/power_menu.xml",
"menu-actions": {
"shutdown": "shutdown",
"reboot": "reboot",
"suspend": "systemctl suspend",
"hibernate": "systemctl hibernate",
"logout": "hyprctl dispatch exit",
"shutdown": "shutdown",
"reboot": "reboot",
},
},
"cava": {
"on-click": "pavucontrol",
// "cava_config": "$XDG_CONFIG_HOME/cava/cava.conf",
"framerate": 30,
"sensitivity": 3,
"autosens": 1,
"sensitivity": 100,
"bars": 14,
"lower_cutoff_freq": 50,
"bars": 12,
"lower_cutoff_freq": 10,
"higher_cutoff_freq": 10000,
"hide_on_silence": false,
// "format_silent": "quiet",
"method": "pulse",
"format_silent": "quiet",
"method": "pipewire",
"source": "auto",
"stereo": true,
"stereo": false,
"reverse": false,
"bar_delimiter": 0,
"monstercat": false,
"waves": false,
"bar_spacing": 1,
"monstercat": true,
"waves": true,
"noise_reduction": 0.77,
"input_delay": 2,
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
"eq": { "1": 1.8, "2": 1.4, "3": 1.1, "4": 1.0, "5": 1.0 },
"format-icons": ["", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
"actions": {
"on-click-right": "mode",
},

View File

@@ -13,7 +13,12 @@
<property name="label">Hibernate</property>
</object>
</child>
<child>
<child>
<object class="GtkMenuItem" id="logout">
<property name="label">Logout</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="shutdown">
<property name="label">Shutdown</property>
</object>
@@ -28,4 +33,3 @@
</child>
</object>
</interface>

View File

@@ -8,12 +8,12 @@
</child>
<child>
<object class="GtkMenuItem" id="balanced">
<property name="label">balanced (current)</property>
<property name="label">balanced</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="power-saver">
<property name="label">power-saver</property>
<property name="label">power-saver (current)</property>
</object>
</child>
</object>

View File

@@ -18,10 +18,9 @@
.modules-left,
.modules-right {
background-color: rgba(17, 24, 39, 0.5);
margin-top: 2px;
border-radius: 3px;
padding: 3px 6px;
background-color: rgba(17, 24, 39, 0.1);
margin: 2px;
padding: 1px 3px;
}
/* The whole bar */
@@ -40,20 +39,15 @@ window#waybar.empty #window {
background-color: transparent;
}
/* --- Workspaces --- */
#workspaces button {
padding: 3px 2px;
margin: 3px 2px;
border-radius: 6px;
padding: 3px 10px;
margin: 2px;
border-radius: 3px;
color: @foreground;
background-color: @color0;
background-color: alpha(@foreground, 0.15);
transition: all 0.3s ease-in-out;
font-size: 9px; /* Slightly smaller font size */
}
#workspaces {
background-color: transparent;
margin: 0;
padding: 0;
font-size: 9px;
}
#workspaces button.active {
@@ -69,15 +63,44 @@ window#waybar.empty #window {
background-color: @color9;
}
#workspaces {
background-color: transparent;
margin: 0;
padding: 0;
}
/* --- Tray --- */
#tray {
margin: 2px;
}
#tray > * {
background-color: alpha(@foreground, 0.15);
margin: 2px;
}
#tray > * > image,
#tray > * image {
padding: 0px 10px;
}
#tray > *:hover {
background: @color2;
}
#tray > .needs-attention {
background-color: @color9;
}
#window {
background-color: alpha(@background, 0.1);
color: @foreground;
border-radius: 3px;
padding: 1px 10px; /* Reduced padding */
padding: 1px 10px;
margin: 2px;
}
/* Shared module styling */
/* --- Shared module styling --- */
#clock,
#battery,
#cpu,
@@ -91,8 +114,9 @@ window#waybar.empty #window {
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#pulseaudio {
#cava {
background-color: alpha(@foreground, 0.15);
color: @foreground;
padding: 0px 10px;
@@ -113,18 +137,41 @@ window#waybar.empty #window {
#backlight:hover,
#network:hover,
#wireplumber:hover,
#pulseaudio:hover {
#pulseaudio:hover,
#cava:hover {
background: @color2;
}
#wireplumber {
border-radius: 0px 3px 3px 0px;
margin-left: 0px;
}
#cava {
border-radius: 3px 0px 0px 3px;
margin-right: 0px;
}
#bluetooth {
background-color: alpha(@color3, 0.3);
}
#bluetooth.disabled {
}
#bluetooth.on {
background-color: alpha(@color2, 1);
}
#bluetooth.connected {
background-color: alpha(@color4, 1);
}
#bluetooth.connected:hover,
#bluetooth.on:hover {
background-color: alpha(@color3, 0.3);
}
#battery.critical:not(.charging) {
color: @color1;
background-color: alpha(@color2, 1);
@@ -134,15 +181,6 @@ window#waybar.empty #window {
background-color: alpha(@color2, 1);
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: rgba(253, 77, 75, 0.5);
}
#idle_inhibitor {
background-color: rgba(45, 52, 54, 0.5);
}
@@ -196,11 +234,12 @@ window#waybar.empty #window {
}
menu {
border-radius: 15px;
background: rgba(22, 19, 32, 0);
border-radius: 5px;
border: 0px;
background: rgba(22, 19, 32, 0.5);
color: #b5e8e0;
padding: 5px;
}
menuitem {
border-radius: 15px;
border-radius: 5px;
}