dotfiles/eggs/hypr/hyprland.conf
2025-05-19 14:13:37 +02:00

352 lines
13 KiB
Plaintext
Executable File

autogenerated = 0
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DP-2, 3440x1440@165, 0x0, 1
monitor=DP-3, 3440x1440, -3440x0, 1
#monitor=HDMI-A-1, 800x480@60, 0x-480, 1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Set programs that you use
$terminal = kitty zsh
$browser = librewolf
$fileManager = thunar
$menu = rofi
$workspace-switcher = /home/someone/Builds/microscripts/workspace_manager
$special-workspace-movment = /home/someone/Builds/microscripts/specia-workspace-movment-toggle
#$workspace-switcher = /home/someone/Code/linux-sys-scripts/workspace_manager.sh
$kill-on-unfocus = /home/someone/Builds/microscripts/kill-on-unfocus
# Some default env vars.
env = XCURSOR_SIZE,16
env = QT_QPA_PLATFORMTHEME,qt5ct # should also aply to qt6ct
env = XDG_SESSION_TYPE,wayland
env = GTK_THEME,catppuccin-frappe-mauve-standard+default
env = ICON_THEME,catppuccin-frappe-mauve-cursors
env = GNOME22_USER_DIR,/home/someone/.config/gnome2 # For nemo and other gnome 2 apps
env = DESKTOP_SESSION,gnome # Used to let xdg-su (e.g. Yast) know use gnomesu (libgnomesu libgnomesu0)
# Fix for nvidia
#env = LIBV_DRIVER_NAME,nvidia
#env = GBM_BACKEND,nvidia-drm
#env = __GLX_VENDOR_LYBARY_NAME,nvidia
#env = WLR_NO_HARDWARE_CURSORS,1
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
plugin = /run/current-system/sw/lib/libhyprexpo.so
plugin {
hyprexpo {
columns = 2
gap_size = 5
bg_col = rgba(232634ff)
workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1
}
}
bind = SUPER, code:65, hyprexpo:expo, toggle
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
accel_profile = flat # flat, adaptive, custom <step> <points...> e.g. Win profile 0.2 0.0 0.5 1 1.2 1.5
force_no_accel = false # Not recomended
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
follow_mouse = 2
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 10
border_size = 2
col.active_border = rgba(ca9ee6ff) rgba(8caaeeff) 90deg
col.inactive_border = rgba(232634ff)
layout = master
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false # enable if kernal >= 6.8
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
# Deprecated drop_shadow = yes
# Deprecated shadow_range = 4
# Deprecated shadow_render_power = 3
# Deprecated col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = master
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers
disable_splash_rendering = false # The splash text at the bottom
# Gaming performance
#no_direct_scanout = false
#vrr = 2 # 0 = off, 1 = on, 2 = fullscreen
}
group {
groupbar {
enabled = true
}
}
# Workspaces
workspace = monitor:0, name:1, default:true
workspace = monitor:0, name:2
workspace = monitor:0, name:3
workspace = monitor:0, name:4
workspace = monitor:1, name:5, default:true
workspace = monitor:1, name:6
workspace = monitor:1, name:7
workspace = monitor:1, name:8
workspace = special:scratchpad
workspace = special:scratchpad2
workspace = special:dump
# windowrule v1 https://wiki.hyprland.org/Configuring/Window-Rules/
# Allways start OpenRGB on special:dump
# Letting float, settng size and pos
windowrulev2 = float, initialclass:^(com.github.hluk.copyq)$
windowrulev2 = size 500 300, initialclass:^(com.github.hluk.copyq)$
windowrulev2 = move onscreen cursor 0 -100%, initialclass:^(com.github.hluk.copyq)$
windowrule = float, title:(.*)(textsnatcher|com.github.rajsolai.textsnatcher|Dialect)$
windowrule = size 500 300, title:(.*)(textsnatcher|com.github.rajsolai.textsnatcher)$
windowrule = move onscreen cursor 0 -100%, title:(.*)(textsnatcher|com.github.rajsolai.textsnatcher)$
# --- fixed pos
windowrule = size 600 300, title:(.*)(Dialect)$
windowrule = move 0 2840, title:(.*)(Dialect)$
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# Thunar file transfer window, float top right
windowrulev2 = float, initialTitle:[(Copying )|^(Preparing to)],initialclass:^(nemo)$
windowrulev2 = move 2831 11, initialTitle:[(Copying )|^(Preparing to)],initialclass:^(nemo)$
windowrulev2 = size 450 100, initialTitle:[(Copying )|^(Preparing to)],initialclass:^(nemo)$
# Fixing steam drop down
windowrulev2 = stayfocused, title:^()$,class:^(steam)$
windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$
# Fix Screen +sharing for XWayland
# See https://wiki.hyprland.org/hyprland-wiki/pages/Useful-Utilities/Screen-Sharing/
windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
windowrulev2 = nofocus,class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
# Fix genishin impact, eable tearing
# brroke with 42 windowrulev2 = fakefullscreen,class:^(genshinimpact.exe)$
windowrulev2 = maximize,class:^(genshinimpact.exe)$
windowrulev2 = monitor 1,class:^(genshinimpact.exe)$
# brroke with 42 windowrulev2 = windowdance,class:^(genshinimpact.exe)$
windowrulev2 = noanim,class:^(genshinimpact.exe)$
windowrulev2 = float,class:^(genshinimpact.exe)$
# brroke with 42 windowrulev2 = forceinput,class:^(genshinimpact.exe)$
#windowrulev2 = stayfocused,class:^(genshinimpact.exe)$
#windowrulev2 = immediate,class:^(genshinimpact.exe)$
# Setting weather to floing near bar
windowrulev2 = float,class:^(bar_popup|com.nextcloud.desktopclient.nextcloud)$
windowrulev2 = move 2758 298,title:^(Weather Report)$,class:^(bar_popup)$
windowrulev2 = size 596 819, title:^(Weather Report)$,class:^(bar_popup)$
windowrulev2 = move 2755 608,title:^(Connection Editor|Audio Mixer)$,class:^(bar_popup)$
windowrulev2 = size 596 819, title:^(Connection Editor|Audio Mixer)$,class:^(bar_popup)$
windowrulev2 = move 2765 615, title^(Nextcloud)$,class:^(com.nextcloud.desktopclient.nextcloud)$
windowrulev2 = size 596 819, title^(Nextcloud)$,class:^(com.nextcloud.desktopclient.nextcloud)$
# Other Games
#windowrulev2 = immediate,class:^(overwatch)$
# Rofi allways floating
windowrulev2 = float,class:^(Rofi)$
# Exec at start
exec-once= systemctl --user start hyprpolkitagent #Auth agent
exec-once= sleep 3 && copyq --start-server #QT_QPA_PLATFORM=xcb
exec-once= waybar -c $HOME/.config/waybar/bar/config.jsonc -s $HOME/.config/waybar/bar/style.css
exec-once= hyprctl setcursor catppuccin-frappe-mauve-cursors 16
exec-once= hyprpaper # https://github.com/hyprwm/hyprpaper/issues/5q
exec-once= openrgb -p $HOME/.config/OpenRGB/Cat.orp
#exec-once= sleep 3 && nextcloud --background #QT_QPA_PLATFORM=xcb
#exec-once= hyprpm enable Hyprspace
exec-once= $workspace-switcher 1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
$subMod = SUPERCONTROL
$focusMod = ALT #L Alt
$resizeMod = ALTSHIFT #L Alt + L shift
$moveMod = CONTROLALT
# Dispatchers https://wiki.hyprland.org/Configuring/Dispatchers/
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
# Applications
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, code:51, exec, $browser #51 =
bind = $mainMod, code:48, exec, $fileManager
bind = $mainMod, V, exec, copyq show
bindr= $mainMod, SUPER_L, exec, if pgrep -x $menu; then kill $(pgrep -x $menu); else $menu -show drun; fi
bind = ,code:107, exec, grim -g "$(slurp)" - | /home/someone/.local/share/default-venv/bin/python /home/someone/Builds/microscripts/strip_a_pixel.py - | swappy -f -
bind = $mainMod, code:107, exec, grim -o $(hyprctl activeworkspace -j | jq ".monitor" | tr -d "\"") - | /home/someone/.local/share/default-venv/bin/python /home/someone/Builds/microscripts/strip_a_pixel.py - | swappy -f - #"
bind = $subMod, code:107, exec, $kill-on-unfocus textsnatcher
bind = $focusMod, code:107, exec, dunstify -a System -r 1000 -t 5000 -i "$HOME/.config/assets/arch-maron.png" "Hyprpicker" "Color: $(hyprpicker -a -r)"
# Media Buttons https://raw.githubusercontent.com/xkbcommon/libxkbcommon/master/include/xkbcommon/xkbcommon-keysyms.h
bind = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 1%-
bind = ,XF86AudioLowerVolume, exec, dunstify -a System -r 1000 -t 2000 -i $HOME/.config/assets/volume-down.png -h int:value:$(echo "100 * $(wpctl get-volume @DEFAULT_SINK@ | tr -d "Volume: ")" | bc) Volume
bind = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_SINK@ 1%+
bind = ,XF86AudioRaiseVolume, exec, dunstify -a System -r 1000 -t 2000 -i $HOME/.config/assets/volume-up.png -h int:value:$(echo "100 * $(wpctl get-volume @DEFAULT_SINK@ | tr -d "Volume: ")" | bc) Volume
bindl=, XF86AudioPlay, exec, playerctl play-pause
bindl=, XF86AudioPlay, exec, sleep 0.1; if [ "$(playerctl status)" = "Playing" ]; then dunstify -a System -r 1000 -t 2000 -i "$HOME/.config/assets/play.png" "Player" "resumed playback"; else dunstify -a System -r 1000 -t 2000 -i "$HOME/.config/assets/pause.png" "Player" "paused playback"; fi
bindl=, XF86AudioNext, exec, playerctl next
bindl=, XF86AudioPrev, exec, playerctl previous
# System ctl
bind =, XF86PowerOff, exec, bash $HOME/Builds/microscripts/sleep.sh hibernate
# Key must be enabled by disabeleing default in /etc/systemd/logind.conf (add: HandlePowerKey=ignore)
# check with: systemd-analyze cat-config systemd/logind.conf, then reboot or systemctl restart systemd-logind
# From https://www.reddit.com/r/swaywm/comments/180ly44/how_to_change_power_button_behavior/ and https://unix.stackexchange.com/questions/555822/how-to-change-power-button-shutdown-action-to-run-a-script-under-systemd
# Windowmanagment
bind = $mainMod, Q, killactive,
bind = $mainMod, W, fullscreen, 1
bind = $mainMod, T, fullscreen, 0
bind = $mainMod, M, forcerendererreload,
bind = $mainMod, F, togglefloating,
bind = $mainMod, R, togglespecialworkspace, scratchpad
bind = $mainMod, X, togglespecialworkspace, scratchpad2
bind = $mainMod, code:21, togglespecialworkspace, dump
bind = $resizeMod, e, layoutmsg, orientationnext
bind = $resizeMod, q, layoutmsg, orientationprev
# Change Focus
bind = $focusMod, a, movefocus, l
bind = $focusMod, d, movefocus, r
bind = $focusMod, w, movefocus, u
bind = $focusMod, s, movefocus, d
# Resize Window
binde = $resizeMod, a, resizeactive,-30 0
binde = $resizeMod, d, resizeactive, 30 0
binde = $resizeMod, s, resizeactive, 0 30
binde = $resizeMod, w, resizeactive, 0 -30
# Move Window
bind = $moveMod, a, movewindow, l
bind = $moveMod, d, movewindow, r
bind = $moveMod, s, movewindow, d
bind = $moveMod, w, movewindow, u
bind = $mainMod, code:112, movewindow, mon:DP-2
bind = $mainMod, code:117, movewindow, mon:DP-3
bind = $mainMod, E, exec, $special-workspace-movment scratchpad
bind = $mainMod, Y, exec, $special-workspace-movment scratchpad2
bind = $mainMod, code:20, exec, $special-workspace-movment dump
# Switch workspaces with mainMod
bind = $mainMod, code:113, exec, $workspace-switcher 1
bind = $mainMod, code:114, exec, $workspace-switcher 2
bind = $mainMod, code:111, exec, $workspace-switcher 3
bind = $mainMod, code:116, exec, $workspace-switcher 4
# Workspaces, carry window
bind = $mainMod SHIFT, code:113, exec, $workspace-switcher 1 carry
bind = $mainMod SHIFT, code:114, exec, $workspace-switcher 2 carry
bind = $mainMod SHIFT, code:111, exec, $workspace-switcher 3 carry
bind = $mainMod SHIFT, code:116, exec, $workspace-switcher 4 carry
# Workspace management
bind = $mainMod, c, swapactiveworkspaces, DP-2 DP-3
# Mousebinds
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Submaps
bind = $mainMod, g, submap, gaming
#Other
bind = $subMod, code:112, movecursor, 1720 720
bind = $subMod, code:117, movecursor, -2560 720
#bind = $mainMod, code:65, hyprexpo:expo, toggle # can be: toggle, off/disable or on/enable on space
submap=gaming
bind = $mainMod, T, fullscreen, 0
bind = $mainMod, R, togglespecialworkspace, scratchpad
bind = $mainMod, g, submap,reset
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bind = $mainMod, code:51, exec, $browser #51 = #
submap=reset