| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- monitor=,preferred,auto,auto
- ###################
- ### MY PROGRAMS ###
- ###################
- # See https://wiki.hypr.land/Configuring/Keywords/
- # source=~/.config/hypr/keybind.conf
- # Set programs that you use
- $terminal = wezterm
- $fileManager = nautilus
- $menu = hyprlauncher
- #################
- ### 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 = $terminal
- # exec-once = nm-applet &
- # exec-once = waybar & hyprpaper & firefox
- #############################
- ### ENVIRONMENT VARIABLES ###
- #############################
- env = XCURSOR_SIZE,24
- env = HYPRCURSOR_SIZE,24
- ###################
- ### PERMISSIONS ###
- ###################
- ecosystem {
- enforce_permissions = true
- }
- permission = /usr/bin/grim, screencopy, allow
- permission = /usr/bin/hyprpicker, screencopy, allow
- permission = /usr/bin/hyprlock, screencopy, allow
- # permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
- #####################
- ### LOOK AND FEEL ###
- #####################
- # Refer to https://wiki.hypr.land/Configuring/Variables/
- # https://wiki.hypr.land/Configuring/Variables/#general
- general {
- gaps_in = 5
- gaps_out = 20
- border_size = 2
- # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
- col.active_border = rgba(33ccffee)
- col.inactive_border = rgba(595959aa)
- # Set to true enable resizing windows by clicking and dragging on borders and gaps
- resize_on_border = false
- allow_tearing = false
- layout = master
- }
- # https://wiki.hypr.land/Configuring/Variables/#decoration
- decoration {
- rounding = 10
- rounding_power = 2
- # Change transparency of focused and unfocused windows
- active_opacity = 0.9
- inactive_opacity = 0.9
- shadow {
- enabled = true
- range = 4
- render_power = 3
- color = rgba(1a1a1aee)
- }
- # https://wiki.hypr.land/Configuring/Variables/#blur
- blur {
- enabled = true
- size = 3
- passes = 1
- vibrancy = 0.1696
- }
- }
- # https://wiki.hypr.land/Configuring/Variables/#animations
- animations {
- enabled = yes, please :)
- # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
- # NAME, X0, Y0, X1, Y1
- bezier = easeOutQuint, 0.23, 1, 0.32, 1
- bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
- bezier = linear, 0, 0, 1, 1
- bezier = almostLinear, 0.5, 0.5, 0.75, 1
- bezier = quick, 0.15, 0, 0.1, 1
- # Default animations, see https://wiki.hypr.land/Configuring/Animations/
- # NAME, ONOFF, SPEED, CURVE, [STYLE]
- animation = global, 1, 10, default
- animation = border, 1, 5.39, easeOutQuint
- animation = windows, 1, 4.79, easeOutQuint
- animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
- animation = windowsOut, 1, 1.49, linear, popin 87%
- animation = fadeIn, 1, 1.73, almostLinear
- animation = fadeOut, 1, 1.46, almostLinear
- animation = fade, 1, 3.03, quick
- animation = layers, 1, 3.81, easeOutQuint
- animation = layersIn, 1, 4, easeOutQuint, fade
- animation = layersOut, 1, 1.5, linear, fade
- animation = fadeLayersIn, 1, 1.79, almostLinear
- animation = fadeLayersOut, 1, 1.39, almostLinear
- animation = workspaces, 1, 1.94, almostLinear, fade
- animation = workspacesIn, 1, 1.21, almostLinear, fade
- animation = workspacesOut, 1, 1.94, almostLinear, fade
- animation = zoomFactor, 1, 7, quick
- }
- # Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
- # "Smart gaps" / "No gaps when only"
- # uncomment all if you wish to use that.
- # workspace = w[tv1], gapsout:0, gapsin:0
- # workspace = f[1], gapsout:0, gapsin:0
- # windowrule {
- # name = no-gaps-wtv1
- # match:float = false
- # match:workspace = w[tv1]
- #
- # border_size = 0
- # rounding = 0
- # }
- #
- # windowrule {
- # name = no-gaps-f1
- # match:float = false
- # match:workspace = f[1]
- #
- # border_size = 0
- # rounding = 0
- # }
- # See https://wiki.hypr.land/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.hypr.land/Configuring/Master-Layout/ for more
- master {
- new_status = master
- }
- # https://wiki.hypr.land/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. :(
- }
- #############
- ### INPUT ###
- #############
- # https://wiki.hypr.land/Configuring/Variables/#input
- input {
- kb_layout = ch
- kb_options = caps:swapescape,altwin:swap_lalt_lwin
- follow_mouse = 1
- sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
- touchpad {
- natural_scroll = true
- disable_while_typing = true
- clickfinger_behavior = true
- }
- }
- # See https://wiki.hypr.land/Configuring/Gestures
- gesture = 3, horizontal, workspace
- # Example per-device config
- # See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
- device {
- name = epic-mouse-v1
- sensitivity = -0.5
- }
- ###################
- ### KEYBINDINGS ###
- ###################
- # See https://wiki.hypr.land/Configuring/Keywords/
- $mainMod = SUPER
- bindir = $mainMod, SUPER_L, exec, fuzzel
- # Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
- bind = $mainMod, Return, exec, $terminal
- bind = $mainMod, Q, killactive,
- bind = $mainMod SHIFT, Q, exec, killall Hyprland
- bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
- bind = $mainMod, E, exec, $fileManager --new-window
- bind = $mainMod, V, togglefloating,
- bind = $mainMod, R, exec, $menu
- bind = $mainMod, P, pseudo, # dwindle
- # bind = $mainMod, J, layoutmsg, togglesplit # dwindle
- bind = $mainMod SHIFT, T, exec, ~/.config/hypr/scripts/toggle-theme.sh
- bind = $mainMod ALT, Space, togglefloating,
- # Move focus with mainMod + arrow keys
- bind = $mainMod, left, movefocus, l
- bind = $mainMod, right, movefocus, r
- bind = $mainMod, up, movefocus, u
- bind = $mainMod, down, movefocus, d
- # Swap windows
- bind = $mainMod SHIFT, left, movewindow, l
- bind = $mainMod SHIFT, right, movewindow, r
- bind = $mainMod SHIFT, up, movewindow, u
- bind = $mainMod SHIFT, down, movewindow, d
- binde = $mainMod, H, layoutmsg, mfact -0.05
- binde = $mainMod, L, layoutmsg, mfact +0.05
- bind = $mainMod SHIFT, L, exec, hyprlock & systemctl suspend
- bind = $mainMod, F, fullscreen, 0
- # Master Layout Control
- bind = $mainMod SHIFT, Return, layoutmsg, swapwithmaster
- bind = $mainMod, J, layoutmsg, cyclenext
- bind = $mainMod, K, layoutmsg, cycleprev
- bind = $mainMod, I, layoutmsg, addmaster
- bind = $mainMod, D, layoutmsg, removemaster
- # 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
- # Example special workspace (scratchpad)
- bind = $mainMod, S, togglespecialworkspace, magic
- bind = $mainMod SHIFT, S, movetoworkspace, special:magic
- # 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
- # Laptop multimedia keys for volume and LCD brightness
- bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
- bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
- bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
- bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
- bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
- bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
- # Requires playerctl
- bindl = , XF86AudioNext, exec, playerctl next
- bindl = , XF86AudioPause, exec, playerctl play-pause
- bindl = , XF86AudioPlay, exec, playerctl play-pause
- bindl = , XF86AudioPrev, exec, playerctl previous
- ##############################
- ### WINDOWS AND WORKSPACES ###
- ##############################
- # See https://wiki.hypr.land/Configuring/Window-Rules/ for more
- # See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
- # Example windowrules that are useful
- windowrule {
- name = opaque-floating
- match:float = true
- opacity = 1.0 override 1.0 override
- }
- windowrule {
- # Ignore maximize requests from all apps. You'll probably like this.
- name = suppress-maximize-events
- match:class = .*
- suppress_event = maximize
- }
- windowrule {
- # Fix some dragging issues with XWayland
- name = fix-xwayland-drags
- match:class = ^$
- match:title = ^$
- match:xwayland = true
- match:float = true
- match:fullscreen = false
- match:pin = false
- no_focus = true
- }
- # Hyprland-run windowrule
- windowrule {
- name = move-hyprland-run
- match:class = hyprland-run
- move = 20 monitor_h-120
- float = yes
- }
|