dots/stow/.config/hypr/hyprland.conf
Nico 251b8fd0fc hyprland: update window rules for the firefox picture in picture window to match bar
commit 0bf183ffee makes the waybar
vertical, making it so the location for the firefox picture in picture
window need to be updated to match.
2025-06-21 18:52:30 +10:00

292 lines
9.1 KiB
Text
Executable file

################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,1920x1080@60,auto,1
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once = swww-daemon &
exec-once = waybar &
exec-once = swaync &
exec-once = hyprshade auto &
exec-once = walker --gapplication-service
exec-once = opensnitch-ui
exec-once = systemctl status --user polkit-gnome-authentication-agent-1.service
exec-once = steam -silent &
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
general {
gaps_in = 3
gaps_out = 5
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(ff6161ee) rgba(cc2a2aee) 45deg
col.inactive_border = rgba(e04254aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 5
passes = 3
vibrancy = 0.1696
}
}
# Matugen theming
source = ./matugen.conf
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
enabled = true
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
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
# force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
# disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
disable_splash_rendering = true
disable_hyprland_logo = true # makes swww startup more seemless
enable_swallow = true
swallow_regex = ^(com.mitchellh.ghostty)$
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
clickfinger_behavior = true
tap-to-click = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = true
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, ghostty
bind = $mainMod, B, exec, firefox
bind = $mainMod, D, exec, walker
bind = $mainMod, S, exec, hyprshot -z --clipboard-only -m region
bind = $mainMod shift, S, exec, hyprshot -z --clipboard-only -m window
bind = $mainMod control, S, exec, hyprshot -z --clipboard-only -m active
bind = $mainMod, V, exec, sh ~/.config/hypr/hyprlock.sh
bind = $mainMod, SPACE, togglefloating,
bind = $mainMod, W, killactive,
bind = $mainMod, M, exit,
#bind = $mainMod, P, pseudo, # dwindle # have no clue what this does
bind = $mainMod, F, fullscreen
bind = $mainMod, C, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# brightness keys
bindel = , XF86MonBrightnessUp, exec, brightnessctl s +2%
bindel = , XF86MonBrightnessDown, exec, brightnessctl s 2%-
# media keys
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Requires playerctl
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioNext, exec, playerctl next
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
input:kb_options = caps:super
# Controllers Binds
bind = $mainMod, page_up, workspace, e+1
bind = $mainMod, page_down, workspace, e-1
bind = $mainMod, insert, exec, hyprexit
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
windowrulev2 = noborder,initialClass:ulauncher
windowrulev2 = noblur,initialClass:ulauncher
windowrulev2 = noshadow,initialClass:ulauncher
windowrulev2 = float,initialTitle:(^KeePassXC - Browser Access Request$)
windowrulev2 = noanim,initialTitle:(^flameshot$)
windowrulev2 = float,initialTitle:(^flameshot$)
windowrulev2 = float, initialTitle:(^Picture-in-Picture$), initialClass:(^firefox$)
windowrulev2 = pin, initialTitle:(^Picture-in-Picture$), initialClass:(^firefox$)
windowrulev2 = noinitialfocus, initialTitle:(^Picture-in-Picture$), initialClass:(^firefox$)
windowrulev2 = size 20%, initialTitle:(^Picture-in-Picture$), initialClass:(^firefox$)
windowrulev2 = move 76% 0.5%, initialTitle:(^Picture-in-Picture$), initialClass:(^firefox$)
windowrulev2 = keepaspectratio, initialTitle:(^Picture-in-Picture$), initialClass:(^firefox$)
windowrulev2 = move -100% -100%, initialClass:(^xwaylandvideobridge$)
windowrulev2 = noinitialfocus, initialClass:(^xwaylandvideobridge$)
windowrulev2 = dimaround, initialClass:(^polkit-gnome-authentication-agent-1$)
windowrulev2 = center, initialClass:(^polkit-gnome-authentication-agent-1$)
windowrulev2 = float, initialClass:(^polkit-gnome-authentication-agent-1$)
windowrulev2 = pin, initialClass:(^polkit-gnome-authentication-agent-1$)
windowrulev2 = stayfocused, initialClass:(^polkit-gnome-authentication-agent-1$)
windowrulev2 = animation slidein, initialClass:(^polkit-gnome-authentication-agent-1$)
windowrulev2 = dimaround, initialClass:(^opensnitch_ui$)
windowrulev2 = stayfocused, initialClass:(^opensnitch_ui$)
windowrulev2 = animation slidein, initialClass:(^opensnitch_ui$)
windowrulev2 = float, initialClass:(^opensnitch_ui$)
windowrulev2 = size 960 540, initialClass:(^opensnitch_ui$)
windowrulev2 = center, initialClass:(^opensnitch_ui$)
windowrulev2 = idleinhibit fullscreen, initialTitle:(.*)
windowrulev2 = pin, initialTitle:(^Steam Input On-screen Keyboard$)
windowrulev2 = noblur, initialTitle:(^Steam Input On-screen Keyboard$)
windowrulev2 = bordersize 0, initialTitle:(^Steam Input On-screen Keyboard$)
windowrulev2 = noshadow, initialTitle:(^Steam Input On-screen Keyboard$)
# layer rules
layerrule = animation slide right, waybar