#######################################################################################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 device { name = gaomon-gaomon-tablet # Big one output = HDMI-A-1 active_area_size = 170, 120 active_area_position = 35, 30 } device { name = gaomon-gaomon-tablet-pen # Small one output = HDMI-A-1 active_area_size = 155, 60 active_area_position = 0, 0 } ####################################################################################### $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/start_kmonad.sh exec-once = sleep 5 && nextcloud # To save battery #exec-once = sleep 5 && owncloud # Prevent speaker damage exec-once = sleep 5 && wpctl set-volume @DEFAULT_AUDIO_SINK@ 42% #exec-once = ~/projects/scripts/shell/rnote_mapper.sh exec-once = ~/projects/scripts/shell/toggle_grayscale.sh exec-once = ~/projects/scripts/shell/computer.sh # Mount the webdav folder configured by rclone #exec-once = mkdir -p ~/Notecloud #exec-once = rclone mount Strato: ~/Notecloud # 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=11,monitor:HDMI-A-2 workspace=12,monitor:HDMI-A-2 workspace=8,monitor:DP-1 workspace=9,monitor:DP-1 workspace=13,monitor:DP-1 workspace=14,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 kb_options = compose:ralt 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 bind = $mainMod, E, exec, nemo # 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, A, workspace, 11 bind = $mainMod, S, workspace, 12 bind = $mainMod, D, workspace, 13 bind = $mainMod, G, workspace, 14 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 SHIFT, A, movetoworkspace, 11 bind = $mainMod SHIFT, S, movetoworkspace, 12 bind = $mainMod SHIFT, D, movetoworkspace, 13 bind = $mainMod SHIFT, G, movetoworkspace, 14 bind = $mainMod, F12, exec, ~/projects/scripts/unison_sync.sh # Useful rotation for thinkpad bind = $mainMod SHIFT, F7, exec, hyprctl keyword monitor eDP-1,preferred,auto,1,transform,2 bind = $mainMod, F7, exec, hyprctl keyword monitor eDP-1,preferred,auto,1,transform,0 # 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 = float, class:(Edit Item) 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) windowrulev2 = float, class:(PrismLauncher) windowrulev2 = workspace 9, class:(PrismLauncher) windowrulev2 = workspace 4, class:(Minecraft*) # Settings applications will float windowrulev2 = float, class:(qt6ct) windowrulev2 = float, class:(nm-connection-editor) windowrulev2 = float, title:(Save Document As) windowrulev2 = float, title:(Print) 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 = float, title:(Preferences) windowrulev2 = float, title:(Add) windowrulev2 = size 450 450, class:(Gnuplot) windowrulev2 = move 100 203, class:(Gnuplot) # Overwrite mechanics windowrulev2 = float, class:(thunderbird) windowrulev2 = tile, initialTitle:(Mozilla Thunderbird) #windowrulev2 = tile, class:(sioyek) windowrulev2 = float, title:(Select Document) windowrulev2 = float, class:(Nextcloud) windowrulev2 = move 1250 28, class:(Nextcloud) windowrulev2 = move 700 50, title:(Nextcloud Settings) windowrulev2 = size 700 800, title:(Nextcloud Settings) windowrulev2 = float, class:(ownCloud) windowrulev2 = move 800 48, class:(ownCloud) windowrulev2 = move 700 50, title:(Nextcloud Settings) windowrulev2 = size 1200 900, title:(Add) 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 = float, initialTitle:(Open) windowrulev2 = size 1200 900, class:(nemo) 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)