mirror of
https://github.com/yusufipk/hyprconf.git
synced 2026-09-11 19:06:12 +00:00
385 lines
12 KiB
Plaintext
385 lines
12 KiB
Plaintext
|
|
#
|
|
# Please note not all available settings / options are set here.
|
|
# For a full list, see the wiki
|
|
#
|
|
|
|
|
|
monitor=,preferred,auto,auto
|
|
monitor=HDMI-A-1, [email protected], 0x0, 1
|
|
monitor=DVI-D-1, 1920x1080, 1920x0, 1
|
|
|
|
workspace=HDMI-A-1,1
|
|
workspace=HDMI-A-1,2
|
|
workspace=HDMI-A-1,3
|
|
workspace=DVI-D-1,4
|
|
workspace=DVI-D-1,5
|
|
workspace=DVI-D-1,6
|
|
workspace=DVI-D-1,7
|
|
workspace=DVI-D-1,8
|
|
workspace=DVI-D-1,9
|
|
workspace=DVI-D-1,10
|
|
|
|
# wsbind=1,HDMI-A-1
|
|
# wsbind=2,HDMI-A-1
|
|
# wsbind=3,HDMI-A-1
|
|
# wsbind=4,DVI-D-1
|
|
# wsbind=5,DVI-D-1
|
|
# wsbind=6,DVI-D-1
|
|
# wsbind=7,DVI-D-1
|
|
# wsbind=8,DVI-D-1
|
|
# wsbind=9,DVI-D-1
|
|
# wsbind=10,DVI-D-1
|
|
|
|
# autostart
|
|
exec-once = hyprpaper & wl-paste --watch cliphist store & easyeffects --gapplication-service & mako & sh ~/Applications/aw.sh & blueman & qbittorrent & kdeconnect-cli & morgen --hidden
|
|
#exec-once = sh ~/.config/hypr/nuke-screenshare.sh
|
|
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
|
|
|
|
|
# Slow app launch fix
|
|
exec-once = systemctl --user import-environment &
|
|
exec-once = hash dbus-update-activation-environment 2>/dev/null &
|
|
exec-once = dbus-update-activation-environment --systemd &
|
|
|
|
# Some default env vars.
|
|
env = XCURSOR_SIZE,21
|
|
env = wayland,x11
|
|
env = QT_QPA_PLATFORM,wayland;xcb
|
|
env = CLUTTER_BACKEND,wayland
|
|
env = QT_QPA_PLATFORMTHEME,qt5ct
|
|
env = MOZ_ENABLE_WAYLAND,1
|
|
|
|
env = LIBVA_DRIVER_NAME,nvidia
|
|
env = XDG_SESSION_TYPE,wayland
|
|
env = GBM_BACKEND,nvidia-drm
|
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
|
env = WLR_NO_HARDWARE_CURSORS,1
|
|
|
|
env = GTK_THEME,Adwaita:dark
|
|
|
|
### Idle configuration
|
|
#
|
|
exec-once = swayidle -w \
|
|
timeout 300 'swaylock -f -c 000000' \
|
|
before-sleep 'swaylock -f -c 000000'
|
|
|
|
# Source a file (multi-file configs)
|
|
# source = ~/.config/hypr/myColors.conf
|
|
|
|
### Input configuration
|
|
#
|
|
input {
|
|
kb_layout = tr
|
|
kb_variant =
|
|
kb_model =
|
|
kb_options = caps:escape
|
|
kb_rules =
|
|
repeat_rate = 70
|
|
repeat_delay = 500
|
|
numlock_by_default = true
|
|
|
|
follow_mouse = 1
|
|
|
|
touchpad {
|
|
natural_scroll = no
|
|
}
|
|
|
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
}
|
|
|
|
general {
|
|
gaps_in = 3
|
|
gaps_out = 5
|
|
border_size = 3
|
|
col.active_border = rgba(ff5e81ac)
|
|
#col.inactive_border = rgba(66333333)
|
|
col.inactive_border = rgba(595959aa)
|
|
|
|
layout = dwindle # master|dwindle
|
|
|
|
apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
|
|
}
|
|
|
|
decoration {
|
|
multisample_edges = true
|
|
active_opacity = 1.0
|
|
inactive_opacity = 0.98
|
|
fullscreen_opacity = 1.0
|
|
|
|
rounding = 4
|
|
blur = yes
|
|
blur_size = 15
|
|
blur_passes = 2 # more passes = more resource intensive.
|
|
blur_new_optimizations = true
|
|
blur_xray = true
|
|
|
|
drop_shadow = false
|
|
shadow_range = 4
|
|
shadow_render_power = 3
|
|
shadow_ignore_window = true
|
|
|
|
dim_inactive = false
|
|
blur_ignore_opacity = false
|
|
col.shadow = rgba(1a1a1aee)
|
|
}
|
|
|
|
# Blur for waybar
|
|
#blurls = waybar
|
|
|
|
animations {
|
|
enabled = yes
|
|
|
|
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
|
|
bezier = overshot, 0.13, 0.99, 0.29, 1.1
|
|
|
|
bezier = overshot, 0.13, 0.99, 0.29, 1.1
|
|
animation = windows, 1, 4, overshot, slide
|
|
animation = windowsOut, 1, 5, default, popin 80%
|
|
animation = border, 1, 5, default
|
|
animation = fade, 1, 8, default
|
|
animation = workspaces, 1, 6, overshot, slide
|
|
}
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
dwindle {
|
|
no_gaps_when_only = false
|
|
force_split = 0
|
|
special_scale_factor = 0.8
|
|
split_width_multiplier = 1.0
|
|
use_active_for_splits = true
|
|
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
preserve_split = yes
|
|
}
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
master {
|
|
no_gaps_when_only = false
|
|
new_is_master = true
|
|
special_scale_factor = 0.8
|
|
}
|
|
|
|
misc {
|
|
#disable_autoreload = true
|
|
disable_hyprland_logo = true
|
|
always_follow_on_dnd = true
|
|
layers_hog_keyboard_focus = true
|
|
animate_manual_resizes = false
|
|
enable_swallow = true
|
|
swallow_regex =
|
|
focus_on_activate = true
|
|
vfr = 1
|
|
}
|
|
|
|
gestures {
|
|
workspace_swipe = true
|
|
workspace_swipe_fingers = 4
|
|
workspace_swipe_distance = 250
|
|
workspace_swipe_invert = true
|
|
workspace_swipe_min_speed_to_force = 15
|
|
workspace_swipe_cancel_ratio = 0.5
|
|
workspace_swipe_create_new = false
|
|
}
|
|
|
|
# Binds
|
|
$mainMod = SUPER
|
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
bind = $mainMod, Return, exec, konsole
|
|
bind = $mainMod, W, exec, firefox
|
|
bind = $mainMod_SHIFT, Q, killactive,
|
|
bind = $mainMod, M, exit,
|
|
bind = $mainMod_SHIFT, Return, exec, dolphin
|
|
bind = CTRL_SHIFT, Return, exec, ksysguard
|
|
bind = $mainMod, Space, togglefloating,
|
|
bind = $mainMod_SHIFT, D, togglegroup,
|
|
#bind = $mainMod, D, changegroupactive,
|
|
bind = $mainMod, F, fullscreen,
|
|
bind = $mainMod_SHIFT, F, exec, rofi -show drun -show-icons
|
|
bind = ALT, D, exec, sh ~/.config/hypr/rofi-web-search.sh
|
|
|
|
bind = $mainMod_SHIFT, right, movewindow, mon:r
|
|
bind = $mainMod_SHIFT, left, movewindow, mon:l
|
|
bind = $mainMod_SHIFT, up, movewindow, mon:u
|
|
bind = $mainMod_SHIFT, down, movewindow, mon:d
|
|
bind = $mainMod, right, moveintogroup, r
|
|
bind = $mainMod, left, moveintogroup, l
|
|
bind = $mainMod, up, moveintogroup, u
|
|
bind = $mainMod, down, moveintogroup, d
|
|
|
|
# shutdown
|
|
bind = CTRL_ALT, X, exec, wlogout
|
|
|
|
# color picker
|
|
bind = CTRL_ALT, A, exec, hyprpicker -a
|
|
|
|
# screenshot
|
|
bind = $mainMod_SHIFT, X, exec, grimblast --notify copysave area /home/yusuf/Pictures/Screenshots/$(date +"%d-%m-%H-%M-%S").png
|
|
|
|
# ocr text
|
|
bind = ALT_SHIFT, S, exec, grim -g "$(slurp)" - | tesseract - stdout -l eng+tur+rus+kor | wl-copy
|
|
|
|
# emoji picker
|
|
bind = $ALT_SHIFT, X, exec, rofi -modi emoji -show emoji
|
|
|
|
# clipboard
|
|
bind = $mainMod, v, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
|
|
|
|
# scratchpad
|
|
bind = SUPER_SHIFT, S, movetoworkspace, special
|
|
bind = SUPER, S, togglespecialworkspace
|
|
|
|
bind = $mainMod, Y, pin
|
|
#bind = $mainMod, P, pseudo, # dwindle
|
|
bind = $mainMod, J, togglesplit, # dwindle
|
|
bind = $mainMod, Tab, changegroupactive, f
|
|
bind = $mainMod SHIFT, G,exec,hyprctl --batch "keyword general:gaps_out 5;keyword general:gaps_in 3"
|
|
bind = $mainMod , G,exec,hyprctl --batch "keyword general:gaps_out 0;keyword general:gaps_in 0"
|
|
|
|
|
|
bind=,XF86AudioLowerVolume,exec,pamixer -ud 3 && pamixer --get-volume > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob
|
|
bind=,XF86AudioRaiseVolume,exec,pamixer -ui 3 && pamixer --get-volume > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob
|
|
# mute sound
|
|
bind=,XF86AudioMute,exec,amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob
|
|
|
|
bind=,XF86AudioPlay,exec, playerctl play-pause
|
|
bind=,XF86AudioNext,exec, playerctl next
|
|
bind=,XF86AudioPrev,exec, playerctl previous
|
|
|
|
|
|
bind = $mainMod, L, exec, swaylock-fancy -e -K -p 10 -f Hack-Regular
|
|
|
|
bind = $mainMod, O, exec, killall -SIGUSR1 .waybar-wrapped
|
|
|
|
# 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
|
|
|
|
# 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
|
|
bind = $mainMod, period, workspace, e+1
|
|
bind = $mainMod, comma, workspace,e-1
|
|
|
|
bind = $mainMod, minus, movetoworkspace,special
|
|
bind = $mainMod, equal, togglespecialworkspace
|
|
|
|
bind = $mainMod SHIFT,left ,movewindow, l
|
|
bind = $mainMod SHIFT,right ,movewindow, r
|
|
bind = $mainMod SHIFT,up ,movewindow, u
|
|
bind = $mainMod SHIFT,down ,movewindow, d
|
|
|
|
# Move active window to a workspace with mainMod + CTRL + [0-9]
|
|
bind = $mainMod CTRL, 1, movetoworkspace, 1
|
|
bind = $mainMod CTRL, 2, movetoworkspace, 2
|
|
bind = $mainMod CTRL, 3, movetoworkspace, 3
|
|
bind = $mainMod CTRL, 4, movetoworkspace, 4
|
|
bind = $mainMod CTRL, 5, movetoworkspace, 5
|
|
bind = $mainMod CTRL, 6, movetoworkspace, 6
|
|
bind = $mainMod CTRL, 7, movetoworkspace, 7
|
|
bind = $mainMod CTRL, 8, movetoworkspace, 8
|
|
bind = $mainMod CTRL, 9, movetoworkspace, 9
|
|
bind = $mainMod CTRL, 0, movetoworkspace, 10
|
|
bind = $mainMod CTRL, left, movetoworkspace, -1
|
|
bind = $mainMod CTRL, right, movetoworkspace, +1
|
|
|
|
# same as above, but doesnt switch to the workspace
|
|
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
|
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
|
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
|
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
|
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
|
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
|
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
|
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
|
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
|
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
|
|
|
binds {
|
|
workspace_back_and_forth = 1
|
|
allow_workspace_cycles = 1
|
|
}
|
|
bind = $mainMod,slash,workspace,previous
|
|
|
|
bind = $mainMod,R,submap,resize
|
|
submap = resize
|
|
binde =,right,resizeactive,15 0
|
|
binde =,left,resizeactive,-15 0
|
|
binde =,up,resizeactive,0 -15
|
|
binde =,down,resizeactive,0 15
|
|
binde =,l,resizeactive,15 0
|
|
binde =,h,resizeactive,-15 0
|
|
binde =,k,resizeactive,0 -15
|
|
binde =,j,resizeactive,0 15
|
|
bind =,escape,submap,reset
|
|
submap = reset
|
|
|
|
bind=CTRL SHIFT, left, resizeactive,-15 0
|
|
bind=CTRL SHIFT, right, resizeactive,15 0
|
|
bind=CTRL SHIFT, up, resizeactive,0 -15
|
|
bind=CTRL SHIFT, down, resizeactive,0 15
|
|
bind=CTRL SHIFT, l, resizeactive, 15 0
|
|
bind=CTRL SHIFT, h, resizeactive,-15 0
|
|
bind=CTRL SHIFT, k, resizeactive, 0 -15
|
|
bind=CTRL SHIFT, j, resizeactive, 0 15
|
|
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
bindm = $mainMod, mouse:272, movewindow
|
|
bindm = $mainMod, mouse:273, resizewindow
|
|
|
|
#------------#
|
|
# auto start #
|
|
#------------#
|
|
exec-once = waybar &
|
|
exec-once = mako &
|
|
exec-once = nm-applet --indicator &
|
|
exec-once = /usr/lib/polkit-kde-authentication-agent-1 &
|
|
|
|
# Float Necessary Windows
|
|
windowrule=float,Rofi
|
|
windowrule=float,io.github.diegoivanme.flowtime
|
|
windowrule=float,pavucontrol
|
|
windowrulev2 = float,class:^()$,title:^(Picture in picture)$
|
|
windowrulev2 = float,class:^(brave)$,title:^(Save File)$
|
|
windowrulev2 = float,class:^(brave)$,title:^(Open File)$
|
|
windowrulev2 = float,class:^(LibreWolf)$,title:^(Picture-in-Picture)$
|
|
windowrulev2 = float,class:^(blueman-manager)$
|
|
windowrulev2 = float,class:^(xdg-desktop-portal-gtk)$
|
|
windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
|
|
windowrulev2 = float,class:^(cachyos-hello)$
|
|
|
|
#---------------#
|
|
# windows rules #
|
|
#---------------#
|
|
#`hyprctl clients` get class、title...
|
|
windowrule=float,title:^(Picture-in-Picture)$
|
|
windowrule=size 960 540,title:^(Picture-in-Picture)$
|
|
windowrule=move 25%-,title:^(Picture-in-Picture)$
|
|
windowrule=float,mpv
|
|
windowrule=move 25%-,mpv
|
|
windowrule=size 960 540,mpv
|
|
windowrule=noblur,^(waybar)$
|
|
windowrule=float,^(org.gnome.Characters)$
|
|
windowrule=float,^(it.mijorus.smile)$
|
|
windowrule=float,^(fr.romainvigier.zap)$
|
|
windowrule=float,^(feeling_finder)$
|
|
windowrule=float,^(org.kde.polkit-kde-authentication-agent-1)$
|
|
windowrulev2 = float,class:^(Steam)$,title:^(Friends List)$
|
|
windowrulev2 = float,class:^(Steam)$,title:^(Steam - News)$
|
|
windowrulev2 = float,class:^(cachybrowser)$,title:^(Cachy Browser — Sharing Indicator)$
|
|
windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
|
|
windowrulev2 = float,class:^(librewolf)$,title:^(LibreWolf — Sharing Indicator)$
|
|
windowrulev2 = float,class:^(org.kde.kdenlive)$,title:^(Clip Problems — Kdenlive)$
|
|
windowrulev2 = float,class:^(org.kde.kdenlive)$,title:^(kdenlive)$
|
|
windowrulev2 = float,class:^(com.obsproject.Studio)$,title:^(Missing Files)$
|