hyprland updates; nvim updates; misc updates

This commit is contained in:
Johannes Knopp
2026-01-06 01:45:44 +01:00
parent 7c918c3c17
commit 4093701fca
14 changed files with 246 additions and 56 deletions

View File

@ -23,12 +23,13 @@ $menu = wofi --show drun
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once = waybar
# exec-once = waybar
exec-once = /usr/lib//hhyprpolkitagent/hyprpolkitagent
exec-once = hyprpanel
exec-once = dunst
exec-once = firefox
exec-once = hyprpaper
exec-once = [workspace 9 silent] spotify
exec-once = [workspace 9 silent] deezer-desktop
# gnome keyring secret service
exec-once = dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE
@ -136,14 +137,14 @@ decoration {
}
# wofi
layerrule = blur, wofi # apply compositor blur
layerrule = ignorezero, wofi # keep blur even on near-opaque colors
layerrule = dimaround, wofi # optional: dim background behind wofi
layerrule = ignorealpha 0.90, wofi # target overall opacity for the layer
# waybar
layerrule = blur, waybar
layerrule = ignorealpha 0.15, waybar
# layerrule = blur, wofi # apply compositor blur
# layerrule = ignorezero, wofi # keep blur even on near-opaque colors
# layerrule = dimaround, wofi # optional: dim background behind wofi
# layerrule = ignorealpha 0.90, wofi # target overall opacity for the layer
#
# # waybar
# layerrule = blur, waybar
# layerrule = ignorealpha 0.15, waybar
# https://wiki.hypr.land/Configuring/Variables/#animations
animations {
@ -210,18 +211,18 @@ misc {
# https://wiki.hypr.land/Configuring/Variables/#input
input {
kb_layout = us
kb_layout = us,de
kb_variant = altgr-intl
kb_model =
kb_options =
# kb_options = grp:caps_toggle
kb_rules =
follow_mouse = 2
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
scroll_method = on_button_down
scroll_button = 274
# scroll_method = on_button_down
# scroll_button = 274
}
# Example per-device config
@ -282,12 +283,12 @@ bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
# Requires playerctl
# Spotify controls
bind = CTRL ALT, K, exec, playerctl --player=spotify play-pause
bind = CTRL ALT, Left, exec, playerctl --player=spotify previous
bind = CTRL ALT, Right, exec, playerctl --player=spotify next
bind = CTRL ALT, Up, exec, playerctl --player=spotify volume 0.05+
bind = CTRL ALT, Down, exec, playerctl --player=spotify volume 0.05-
# Deezer controls
bind = CTRL ALT, K, exec, playerctl --player=deezer play-pause
bind = CTRL ALT, Left, exec, playerctl --player=deezer previous
bind = CTRL ALT, Right, exec, playerctl --player=deezer next
bind = CTRL ALT, Up, exec, ~/.config/hypr/scripts/deezer-volume.sh +5%
bind = CTRL ALT, Down, exec, ~/.config/hypr/scripts/deezer-volume.sh -5%
bind = ,F7,pass,class:^(discord)$
bind = ,F8,pass,class:^(discord)$
@ -305,18 +306,47 @@ bind = , Print, exec, hyprshot -zm region
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
windowrule {
name = suppress-maximize-events
match:class = .*
suppress_event = maximize
}
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule {
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
windowrulev2 = tag +jb, class:^jetbrains-.+$,floating:1
windowrulev2 = stayfocused, tag:jb
windowrulev2 = noinitialfocus, tag:jb
no_focus = true
}
# 1) Do not allow these windows to inhibit Hyprland shortcuts
windowrulev2 = noshortcutsinhibit, class:^(jetbrains-.*|android-studio)$
windowrule {
name = jetbrains-shortcuts
match:class = ^(jetbrains-.*|android-studio)$
no_shortcuts_inhibit = 1
}
windowrule {
name = jetbrains-tile
match:class = ^(jetbrains-.*|android-studio)$
float = 0
}
windowrule {
name = jetbrains-tab-drag
match:class = ^(jetbrains-.*|android-studio)$
match:title = ^(\s*)$
no_initial_focus = 1
stay_focused = 1
float = 1
center = 1
}
# 2) Float and center transient dialogs from these apps
windowrulev2 = float, class:^(jetbrains-.*|android-studio)$, windowtype:^(dialog|utility|popup)$
windowrulev2 = center, class:^(jetbrains-.*|android-studio)$, windowtype:^(dialog|utility|popup)$

View File

@ -1,7 +1,24 @@
preload = /home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
wallpaper = DP-1,/home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
wallpaper = DP-2,/home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
wallpaper = HDMI-A-2,/home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
wallpaper {
monitor = DP-1
path =/home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
# fitmode = cover
}
wallpaper {
monitor = DP-2
path =/home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
# fitmode = cover
}
wallpaper {
monitor = HDMI-A-1
path =/home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
# fitmode = cover
}
wallpaper {
monitor = HDMI-A-2
path =/home/johannes/Pictures/Wallpapers/wallhaven-5g22q5.png
# fitmode = cover
}
splash = false

View File

@ -1,4 +1,4 @@
# Generated by nwg-displays on 2025-11-09 at 17:18:32. Do not edit manually.
# Generated by nwg-displays on 2025-12-26 at 06:40:37. Do not edit manually.
monitor=DP-1,2560x1440@165.0,6626x876,1.0
monitor=DP-2,2560x1440@165.0,4066x876,1.0

View File

@ -0,0 +1,77 @@
#!/usr/bin/env bash
change="$1"
if [ -z "$change" ]; then
echo "Usage: $0 [+5%|-5%|50%]"
exit 1
fi
echo "=== Deezer Volume Debug (FIXED) ==="
# 1) Deezer window PID
root_pid=$(hyprctl clients -j | jq -r '.[] | select(.class == "deezer-desktop") | .pid' | head -n1)
echo "[INFO] Deezer window PID: $root_pid"
if [ -z "$root_pid" ] || [ "$root_pid" = "null" ]; then
echo "[ERROR] Deezer window not found."
exit 1
fi
# 2) Gather ALL descendant PIDs
declare -a pid_array
pid_array+=("$root_pid")
# Direct children
children=($(pgrep -P "$root_pid"))
echo "[INFO] Children: ${children[*]}"
for c in "${children[@]}"; do
pid_array+=("$c")
gc=($(pgrep -P "$c"))
echo "[INFO] Grandchildren of $c: ${gc[*]}"
for g in "${gc[@]}"; do
pid_array+=("$g")
done
done
echo "[INFO] All collected PIDs: ${pid_array[*]}"
echo "----------------------------------"
echo "[INFO] Checking sink inputs..."
echo "----------------------------------"
sink=""
while IFS= read -r block; do
pid=$(echo "$block" | jq -r '.properties["application.process.id"] // empty')
index=$(echo "$block" | jq -r '.index')
echo "[SINK] index=$index pid=$pid"
[ -z "$pid" ] && { echo " -> Skipping"; continue; }
for candidate in "${pid_array[@]}"; do
if [ "$pid" = "$candidate" ]; then
echo " -> MATCH with PID $candidate"
sink="$index"
break 2
fi
done
echo " -> No match"
done < <(pactl -f json list sink-inputs | jq -c '.[]')
echo "----------------------------------"
if [ -z "$sink" ]; then
echo "[ERROR] No audio stream found for Deezer."
exit 1
fi
echo "[INFO] Deezer sink index: $sink"
echo "[INFO] Applying: $change"
pactl set-sink-input-volume "$sink" "$change"

View File

@ -0,0 +1,45 @@
{
"bar.customModules.storage.paths": [
"/"
],
"menus.power.showLabel": false,
"theme.font.size": "1rem",
"theme.font.weight": 500,
"scalingPriority": "gdk",
"menus.power.lowBatteryNotification": false,
"bar.customModules.worldclock.tz": [
"Europe/Vienna"
],
"theme.bar.buttons.modules.power.enableBorder": false,
"menus.dashboard.powermenu.avatar.image": "/home/johannes/Pictures/Wallpapers/wallhaven-852q62.png",
"menus.dashboard.shortcuts.left.shortcut1.tooltip": "Firefox",
"menus.dashboard.shortcuts.left.shortcut1.command": "firefox",
"menus.dashboard.shortcuts.left.shortcut1.icon": "",
"menus.clock.time.military": true,
"menus.clock.weather.location": "Vienna",
"menus.clock.weather.unit": "metric",
"menus.volume.raiseMaximumVolume": true,
"theme.bar.floating": true,
"bar.autoHide": "never",
"theme.bar.buttons.enableBorders": true,
"theme.bar.border.width": "0.1em",
"bar.workspaces.show_icons": false,
"bar.workspaces.show_numbered": false,
"bar.workspaces.workspaceMask": false,
"bar.workspaces.showWsIcons": true,
"bar.workspaces.showApplicationIcons": true,
"bar.workspaces.showAllActive": true,
"bar.workspaces.numbered_active_indicator": "highlight",
"theme.bar.buttons.workspaces.smartHighlight": true,
"theme.bar.buttons.windowtitle.enableBorder": false,
"bar.windowtitle.custom_title": true,
"bar.windowtitle.class_name": true,
"theme.bar.buttons.clock.enableBorder": false,
"bar.clock.format": "%a %b %d %H:%M:%S",
"theme.bar.menus.menu.battery.scaling": 100,
"theme.bar.buttons.battery.visible": false,
"bar.battery.label": false,
"bar.battery.hideLabelWhenFull": true,
"theme.bar.buttons.battery.enableBorder": false,
"theme.osd.enable": true
}

View File

@ -0,0 +1 @@
{}