Files
dotfiles/gui/dot-config/hypr/hyprland.conf
2025-10-17 09:47:09 +02:00

240 lines
7.7 KiB
Plaintext

#######################################################################################hypr
monitor = , preferred, auto, 1, mirror, eDP-1
monitor = HDMI-A-1, 1920x1080@60, 0x0, 1
monitor = HDMI-A-2, 1920x1080@60, -1920x0, 1
monitor = DP-1, 1920x1080@60, 1920x0, 1
input:tablet {
output = HDMI-A-1
active_area_size = 170, 120
active_area_position = 35, 30
}
#######################################################################################
$terminal = alacritty
$menu = tofi-drun --terminal="alacritty -e" | sh
#######################################################################################
exec-once = waybar
exec-once = hyprsunset -t 3000
exec-once = wl-clip-persist --clipboard regular
exec-once = hyprpaper
exec-once = nm-applet
exec-once = ~/projects/scripts/shell/rnote_mapper.sh
# Mount the webdav folder configured by rclone
exec-once = mkdir -p ~/webdav
exec-once = rclone mount Strato: ~/webdav
# Set the right workspace otherwise it is set to ten
exec-once = sleep 0.1 && hyprctl dispatch workspace 1
# Check the hostname and enable animations only on a specific device
#exec-once = sh -c 'if [ "$(hostname)" = "minoxy" ]; then hyprctl keyword animations enabled; fi'
#######################################################################################
# Split up the monitors by default for the main working machine
workspace=1,monitor:HDMI-A-1
workspace=2,monitor:HDMI-A-1
workspace=3,monitor:HDMI-A-1
workspace=4,monitor:HDMI-A-1
workspace=5,monitor:HDMI-A-2
workspace=6,monitor:HDMI-A-2
workspace=7,monitor:HDMI-A-2
workspace=8,monitor:DP-1
workspace=9,monitor:DP-1
workspace=0,monitor:DP-1
env = HYPRCURSOR_THEME,catppuccin-frappe-rosewater-cursors
env = HYPRCURSOR_SIZE,18
env = WLR_NO_HARDWARE_CURSORS,1
#######################################################################################
general {
gaps_in = 0
gaps_out = 0
border_size = 1
col.active_border = rgba(999999ee) rgba(999999ee)
resize_on_border = false
}
animations {
enabled = no
}
misc {
disable_hyprland_logo = true
}
input {
kb_layout = us
follow_mouse = 1
touchpad {
natural_scroll = false
}
}
$mainMod = SUPER
# Quick openers and default bindings
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, U, killactive,
bind = $mainMod, B, exec, firefox
bind = $mainMod, M, exit,
bind = $mainMod, F, togglefloating,
bind = $mainMod, P, exec, $menu
# Some keybindings for screenshot and colorpicking
bind = , Print, exec, hyprshot -m region --clipboard-only
bind = SHIFT, Print, exec, hyprpicker -a
bind = CONTROL, Print, exec, hyprshot -m output -m active --clipboard-only
# Move focus with mainMod + vim keys
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
bind = $mainMod, l, movefocus, r
bind = $mainMod, h, movefocus, l
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
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
bind = $mainMod, F12, exec, ~/projects/scripts/unison_sync.sh
# Resizeing with mouse buttons while pressed mod
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 3%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 3%-
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%-
# Toggle waybar
bindt = Super_L, W,exec, pkill -SIGUSR1 waybar
bindt = $mainMod SHIFT, L, exec, hyprlock
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
windowrulev2 = float, class:(clipse)
windowrulev2 = size 622 652, class:(clipse)
windowrulev2 = stayfocused, class:(clipse)
windowrulev2 = float, class:(org.kde.dolphin)
# App rules
windowrulev2 = workspace 1, class:(Alacritty)
windowrulev2 = workspace 1, class:(kitty)
windowrulev2 = workspace 1, class:(Emacs)
# Browsers
windowrulev2 = workspace 2, class:(firefox)
windowrulev2 = workspace 2, class:(org.kde.falkon)
windowrulev2 = workspace 2, class:(midori)
windowrulev2 = workspace 2, class:(org.gnome.Epiphany)
# PDFS (keep all the pdfs here)
windowrulev2 = workspace 3, class:(sioyek)
windowrulev2 = workspace 3, class:(org.pwmt.zathura)
# Having code here because it is also fast
windowrulev2 = workspace 4, class:(code)
windowrulev2 = workspace 4, class:(thunderbird)
windowrulev2 = workspace 4, class:(jetbrains-studio)
windowrulev2 = workspace 4, class:(com.github.flxzt.rnote)
windowrulev2 = workspace 4, class:(com.github.xournalpp.xournalpp)
# Gaming and other things
windowrulev2 = workspace 5, class:(steam)
windowrulev2 = workspace 5, class:(blender)
windowrulev2 = workspace 6, initialTitle:(LibreOffice)
windowrulev2 = workspace 6, initialTitle:(GNU Image Manipulation Program)
windowrulev2 = workspace 6, class:(org.shotcut.Shotcut)
# Social Apps
windowrulev2 = workspace 7, class:(signal)
windowrulev2 = workspace 7, class:(Slack)
windowrulev2 = workspace 7, class:(zoom)
windowrulev2 = workspace 7, class:(discord)
windowrulev2 = workspace 8, class:(anki)
windowrulev2 = workspace 8, class:(obsidian)
windowrulev2 = workspace 8, class:(org.qbittorrent.qBittorrent)
# Media and passwords
windowrulev2 = workspace 9, class:(\b(feh|mpv|vlc)\b)
windowrulev2 = workspace 9, class:(KeePassXC)
windowrulev2 = workspace 9, class:(spotify)
# Other stuff
windowrulev2 = workspace 10, class:(Matplotlib)
#windowrulev2 = workspace 10, title:(PallSim)
windowrulev2 = workspace 10, class:(m.py)
windowrulev2 = workspace 10, class:(org.prismlauncher.PrismLauncher)
# Can find sioyek in classes
#windowrule = float,^(sioyek)$ # set rounding to 10 for kitty
windowrulev2 = size 900 500, title:(Select Document)
windowrulev2 = size 900 500, title:(Open File)
# Settings applications will float
windowrulev2 = float, class:(qt6ct)
windowrulev2 = float, class:(nm-connection-editor)
windowrulev2 = float, class:(simple-scan)
windowrulev2 = float, title:(Kvantum Manager)
windowrulev2 = float, class:(qt5ct)
windowrulev2 = float, title:(Open File)
windowrulev2 = float, title:(Open Folder)
windowrulev2 = float, title:(Save As)
windowrulev2 = size 450 450, class:(Gnuplot)
windowrulev2 = move 100 203, class:(Gnuplot)
windowrulev2 = float, class:(qalculate-qt)
windowrulev2 = move 700 200, class:(qalculate-qt)
windowrulev2 = size 700 700, class:(qalculate-qt)
windowrulev2 = float, title:(Select Document)
windowrulev2 = size 800 450, class:(org.pulseaudio.pavucontrol)
windowrulev2 = move 40 80, class:(org.pulseaudio.pavucontrol)
windowrulev2 = move 1300 80, class:(nm-connection-editor)
windowrulev2 = float, class:(org.pulseaudio.pavucontrol)
windowrulev2 = float, class:(cheese)
windowrulev2 = float, class:(nemo)
windowrulev2 = tile, class:(sioyek)
windowrulev2 = move 50 100, class:(xdragon)
windowrulev2 = pin, class:(xdragon)
windowrulev2 = pseudo, class:(xdragon)
windowrulev2 = bordersize 30, class:(xdragon)
windowrulev2 = bordercolor rgba(b3cc1aee) rgba(a3af1aee), class:(xdragon)
windowrulev2 = rounding 3, class:(xdragon)