diff --git a/.config/hypr/env.conf b/.config/hypr/env.conf index 4ea5f98a..dcddc2ad 100644 --- a/.config/hypr/env.conf +++ b/.config/hypr/env.conf @@ -1,9 +1,15 @@ -# env = GTK_IM_MODULE, fcitx +########## Input method ########## +env = GTK_IM_MODULE, fcitx env = QT_IM_MODULE, fcitx env = XMODIFIERS, @im=fcitx -env = QT_QPA_PLATFORMTHEME, qt5ct +############# Themes ############# +# env = QT_QPA_PLATFORMTHEME, qt5ct +# env = QT_STYLE_OVERRIDE,kvantum env = WLR_NO_HARDWARE_CURSORS, 1 -# env = XDG_CURRENT_DESKTOP, GNOME + +######### Screen tearing ######### # env = WLR_DRM_NO_ATOMIC, 1 +############# Others ############# + diff --git a/.config/hypr/execs.conf b/.config/hypr/execs.conf index 3c4204b0..8b6b633d 100644 --- a/.config/hypr/execs.conf +++ b/.config/hypr/execs.conf @@ -18,8 +18,10 @@ exec-once = swayidle -w timeout 300 'swaylock -f' before-sleep 'swaylock -f' & exec-once = swayidle -w timeout 450 'pidof java || systemctl suspend' & exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk -# Clipboard history +# Clipboard: history exec-once = wl-paste --watch cliphist store & +# Clipboard: disable middle-click paste +exec-once = wl-paste -p --watch wl-copy -p "" # Cursor exec-once = hyprctl setcursor Bibata-Modern-Classic 24 diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index 4b1caa95..7101400f 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -16,12 +16,9 @@ monitor=,addreserved, 0, 0, 0, 0 source=~/.config/hypr/execs.conf input { - # Mouse - force_no_accel = false - # Keyboard: Add a layout and uncomment kb_options for Win+Space switching shortcut - kb_layout = us - # kb_options = grp:win_space_toggle + #kb_layout = us,vn + #kb_options = grp:win_space_toggle numlock_by_default = true repeat_delay = 250 repeat_rate = 35 @@ -32,6 +29,8 @@ input { clickfinger_behavior = true scroll_factor = 0.5 } + + special_fallthrough = true } binds { @@ -71,7 +70,7 @@ general { dwindle { preserve_split = true - # no_gaps_when_only = 1 + # no_gaps_when_only = 1 smart_split = false smart_resizing = false } @@ -137,11 +136,12 @@ animations { misc { vfr = 1 vrr = 1 + #layers_hog_mouse_focus = true focus_on_activate = true animate_manual_resizes = false animate_mouse_windowdragging = false - #suppress_portal_warnings = true enable_swallow = true + swallow_regex = (foot|kitty|allacritty|Alacritty) disable_hyprland_logo = true force_hypr_chan = true @@ -159,11 +159,10 @@ debug { layerrule = noanim, selection source=~/.config/hypr/rules.conf - # Dynamic colors source=~/.config/hypr/colors.conf # Keybinds source=~/.config/hypr/keybinds.conf - +windowrulev2=rounding 20, onworkspace:1 diff --git a/.config/hypr/keybinds.conf b/.config/hypr/keybinds.conf index 8f401fa1..792be08c 100644 --- a/.config/hypr/keybinds.conf +++ b/.config/hypr/keybinds.conf @@ -1,12 +1,13 @@ #################### It just works™ keybinds ################### # Volume -bindl = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle +bindl = ,XF86AudioMute, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% +bindl = Super+Shift,M, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # Brightness -# bindle=, XF86MonBrightnessUp, exec, brightnessctl set '12.75+' -# bindle=, XF86MonBrightnessDown, exec, brightnessctl set '12.75-' +#bindle=, XF86MonBrightnessUp, exec, brightnessctl set '12.75+' +#bindle=, XF86MonBrightnessDown, exec, brightnessctl set '12.75-' bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05;' bindle=, XF86MonBrightnessDown, exec, ags run-js 'brightness.screen_value -= 0.05;' @@ -14,94 +15,99 @@ bindle=, XF86MonBrightnessDown, exec, ags run-js 'brightness.screen_value -= 0.0 # Apps: just normal apps bind = Super, C, exec, code --password-store=gnome --enable-features=UseOzonePlatform --ozone-platform=wayland bind = Super, T, exec, foot --override shell=fish +#bind = Super, Return, exec, foot --override shell=fish bind = Super, E, exec, nautilus --new-window bind = SuperAlt, E, exec, thunar bind = Super, W, exec, firefox -bind = ControlSuperAlt, E, exec, /usr/bin/microsoft-edge-stable --password-store=gnome --enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 +bind = Control+Super, W, exec, thorium-browser --ignore-gpu-blocklist --ozone-platform-hint=wayland --gtk-version=4 --ignore-gpu-blocklist --enable-features=TouchpadOverscrollHistoryNavigation +bind = Control+Super+Alt, E, exec, /usr/bin/microsoft-edge-stable --password-store=gnome --ozone-platform-hint=wayland --gtk-version=4 --ignore-gpu-blocklist --enable-features=TouchpadOverscrollHistoryNavigation bind = Super, X, exec, gnome-text-editor --new-window -bind = SuperShift, W, exec, wps +bind = Super+Shift, W, exec, wps # Apps: Settings and config bind = Super, I, exec, XDG_CURRENT_DESKTOP="gnome" gnome-control-center -bind = ControlSuper, V, exec, pavucontrol -bind = ControlShift, Escape, exec, gnome-system-monitor +bind = Control+Super, V, exec, pavucontrol +bind = Control+Shift, Escape, exec, gnome-system-monitor # Actions bind = Super, Period, exec, pkill fuzzel || ~/.local/bin/fuzzel-emoji bind = Super, Q, killactive, -bind = SuperAlt, Space, togglefloating, -bind = ShiftSuperAlt, Q, exec, hyprctl kill -bind = ControlShiftAlt, Delete, exec, pkill wlogout || wlogout -p layer-shell -bind = ControlShiftAltSuper, Delete, exec, systemctl poweroff +bind = Super+Alt, Space, togglefloating, +bind = Shift+Super+Alt, Q, exec, hyprctl kill +bind = Control+Shift+Alt, Delete, exec, pkill wlogout || wlogout -p layer-shell +bind = Control+Shift+Alt+Super, Delete, exec, systemctl poweroff # Screenshot, Record, OCR, Color picker, Clipboard history -bind = SuperShiftAlt, S, exec, grim -g $SLURP_COMMAND - | swappy -f - +bind = Super+Shift+Alt, S, exec, grim -g $SLURP_COMMAND - | swappy -f - bindl=,Print,exec,grim - | wl-copy -bind = SuperShift, S, exec, grim -g $SLURP_COMMAND - | wl-copy -bind = SuperAlt, R, exec, ~/.config/ags/scripts/record-script.sh -bind = ControlAlt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen -bind = SuperShiftAlt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen-sound -bind = SuperShift, C, exec, hyprpicker -a +bind = Super+Shift, S, exec, grim -g $SLURP_COMMAND - | wl-copy +bind = Super+Alt, R, exec, ~/.config/ags/scripts/record-script.sh +bind = Control+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen +bind = Super+Shift+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen-sound +bind = Super+Shift, C, exec, hyprpicker -a bind = Super, V, exec, pkill fuzzel || cliphist list | fuzzel --no-fuzzy --dmenu | cliphist decode | wl-copy # Text-to-image # Normal -bind = ControlSuperShift,S,exec,grim -g $SLURP_COMMAND "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" +bind = Control+Super+Shift,S,exec,grim -g $SLURP_COMMAND "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" # English -bind = SuperShift,T,exec,grim -g $SLURP_COMMAND "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png" +bind = Super+Shift,T,exec,grim -g $SLURP_COMMAND "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png" # Japanese -bind = SuperShift,J,exec,grim -g $SLURP_COMMAND "tmp.png" && tesseract -l jpn "tmp.png" - | wl-copy && rm "tmp.png" +bind = Super+Shift,J,exec,grim -g $SLURP_COMMAND "tmp.png" && tesseract -l jpn "tmp.png" - | wl-copy && rm "tmp.png" # Media -bind = SuperShift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` +bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` -bind = SuperShift, B, exec, playerctl previous -bind = SuperShift, P, exec, playerctl play-pause -bind = ,XF86AudioPlay, exec, playerctl play-pause +bindl= Super+Shift, B, exec, playerctl previous +bindl= Super+Shift, P, exec, playerctl play-pause +bindl= ,XF86AudioPlay, exec, playerctl play-pause #Lock screen | blur: --effect-blur=20x202 bind = Super, L, exec, swaylock -bind = SuperShift, L, exec, swaylock -bindl = SuperShift, L, exec, sleep 0.1 && systemctl suspend +bind = Super+Shift, L, exec, swaylock +bindl = Super+Shift, L, exec, sleep 0.1 && systemctl suspend # App launcher -bind = ControlSuper, Slash, exec, pkill anyrun || anyrun +bind = Control+Super, Slash, exec, pkill anyrun || anyrun ###################################### AGS keybinds ##################################### -bindr = ControlSuper, R, exec, killall ags activewin.sh activews.sh gohypr bash ydotool; ags & -bindr = ControlSuperAlt, R, exec, hyprctl reload; killall ags activewin.sh activews.sh gohypr bash ydotool; ags & -bind = ControlSuper, T, exec, ~/.config/ags/scripts/color_generation/switchwall.sh +bindr = Control+Super, R, exec, killall ags ydotool; ags & +bindr = Control+Super+Alt, R, exec, hyprctl reload; killall ags ydotool; ags & +bind = Control+Super, T, exec, ~/.config/ags/scripts/color_generation/switchwall.sh bindir = Super, Super_L, exec, ags -t 'overview' bind = Super, Tab, exec, ags -t 'overview' bind = Super, Slash, exec, ags -t 'cheatsheet' bind = Super, B, exec, ags -t 'sideleft' bind = Super, A, exec, ags -t 'sideleft' -bind = Super, O, exec, ags -t 'sideleft' # blame osu for this keybinding +bind = Super, O, exec, ags -t 'sideleft' bind = Super, N, exec, ags -t 'sideright' bind = Super, M, exec, ags run-js 'openMusicControls.value = (!Mpris.getPlayer() ? false : !openMusicControls.value);' bind = Super, Comma, exec, ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' bind = Super, K, exec, ags -t 'osk' -bind = ControlAlt, Delete, exec, ags -t 'session' +bind = Control+Alt, Delete, exec, ags -t 'session' bindle = , XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1);' bindle = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);' +bindl = , XF86AudioMute, exec, ags run-js 'indicator.popup(1);' +bindl = Super+Shift,M, exec, ags run-js 'indicator.popup(1);' bindle = , XF86MonBrightnessUp, exec, ags run-js 'indicator.popup(1);' bindle = , XF86MonBrightnessDown, exec, ags run-js 'indicator.popup(1);' ###################################### Plugins ######################################### -bind = ControlSuper, P, exec, hyprctl plugin load "~/.config/hypr/plugins/droidbars.so" -bind = ControlSuper, O, exec, hyprctl plugin unload "~/.config/hypr/plugins/droidbars.so" +bind = Control+Super, P, exec, hyprctl plugin load "~/.config/hypr/plugins/droidbars.so" +bind = Control+Super, O, exec, hyprctl plugin unload "~/.config/hypr/plugins/droidbars.so" ## Testing # bind = SuperAlt, f12, exec, notify-send "Hyprland version: $(hyprctl version | head -2 | tail -1 | cut -f2 -d ' ')" "owo" -a 'Hyprland keybind' -bind = SuperAlt, f12, exec, notify-send "Millis since epoch" "$(date +%s%N | cut -b1-13)" -a 'Hyprland keybind' -bind = SuperAlt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' +# bind = Super+Alt, f12, exec, notify-send "Millis since epoch" "$(date +%s%N | cut -b1-13)" -a 'Hyprland keybind' +bind = Super+Alt, f12, exec, notify-send 'Test notification' "Here's a really long message to test truncation and wrapping\nYou can middle click or flick this notification to dismiss it!" -a 'Shell' -A "Test1=I got it!" -A "Test2=Another action" +bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' ############################ Keybinds for Hyprland ############################ # Swap windows -bind = SuperShift, left, movewindow, l -bind = SuperShift, right, movewindow, r -bind = SuperShift, up, movewindow, u -bind = SuperShift, down, movewindow, d +bind = Super+Shift, left, movewindow, l +bind = Super+Shift, right, movewindow, r +bind = Super+Shift, up, movewindow, u +bind = Super+Shift, down, movewindow, d # Move focus bind = Super, left, movefocus, l bind = Super, right, movefocus, r @@ -111,26 +117,26 @@ bind = Super, BracketLeft, movefocus, l bind = Super, BracketRight, movefocus, r # Workspace, window, tab switch with keyboard -bind = ControlSuper, right, workspace, +1 -bind = ControlSuper, left, workspace, -1 -bind = ControlSuper, BracketLeft, workspace, -1 -bind = ControlSuper, BracketRight, workspace, +1 -bind = ControlSuper, up, workspace, -5 -bind = ControlSuper, down, workspace, +5 +bind = Control+Super, right, workspace, +1 +bind = Control+Super, left, workspace, -1 +bind = Control+Super, BracketLeft, workspace, -1 +bind = Control+Super, BracketRight, workspace, +1 +bind = Control+Super, up, workspace, -5 +bind = Control+Super, down, workspace, +5 bind = Super, Page_Down, workspace, +1 bind = Super, Page_Up, workspace, -1 -bind = ControlSuper, Page_Down, workspace, +1 -bind = ControlSuper, Page_Up, workspace, -1 -bind = SuperAlt, Page_Down, movetoworkspace, +1 -bind = SuperAlt, Page_Up, movetoworkspace, -1 -bind = SuperShift, Page_Down, movetoworkspace, +1 -bind = SuperShift, Page_Up, movetoworkspace, -1 -bind = ControlSuperShift, Right, movetoworkspace, +1 -bind = ControlSuperShift, Left, movetoworkspace, -1 -bind = SuperShift, mouse_down, movetoworkspace, -1 -bind = SuperShift, mouse_up, movetoworkspace, +1 -bind = SuperAlt, mouse_down, movetoworkspace, -1 -bind = SuperAlt, mouse_up, movetoworkspace, +1 +bind = Control+Super, Page_Down, workspace, +1 +bind = Control+Super, Page_Up, workspace, -1 +bind = Super+Alt, Page_Down, movetoworkspace, +1 +bind = Super+Alt, Page_Up, movetoworkspace, -1 +bind = Super+Shift, Page_Down, movetoworkspace, +1 +bind = Super+Shift, Page_Up, movetoworkspace, -1 +bind = Control+Super+Shift, Right, movetoworkspace, +1 +bind = Control+Super+Shift, Left, movetoworkspace, -1 +bind = Super+Shift, mouse_down, movetoworkspace, -1 +bind = Super+Shift, mouse_up, movetoworkspace, +1 +bind = Super+Alt, mouse_down, movetoworkspace, -1 +bind = Super+Alt, mouse_up, movetoworkspace, +1 # Window split ratio binde = Super, Minus, splitratio, -0.1 @@ -155,36 +161,39 @@ bind = Super, 8, workspace, 8 bind = Super, 9, workspace, 9 bind = Super, 0, workspace, 10 bind = Super, S, togglespecialworkspace, -bind = ControlSuper, S, togglespecialworkspace, +bind = Control+Super, S, togglespecialworkspace, bind = Alt, Tab, cyclenext bind = Alt, Tab, bringactivetotop, # bring it to the top # Move window to workspace Super + Alt + [0-9] -bind = Super Alt, 1, movetoworkspacesilent, 1 -bind = Super Alt, 2, movetoworkspacesilent, 2 -bind = Super Alt, 3, movetoworkspacesilent, 3 -bind = Super Alt, 4, movetoworkspacesilent, 4 -bind = Super Alt, 5, movetoworkspacesilent, 5 -bind = Super Alt, 6, movetoworkspacesilent, 6 -bind = Super Alt, 7, movetoworkspacesilent, 7 -bind = Super Alt, 8, movetoworkspacesilent, 8 -bind = Super Alt, 9, movetoworkspacesilent, 9 -bind = Super Alt, 0, movetoworkspacesilent, 10 -bind = ControlShiftSuper, Up, movetoworkspacesilent, special -bind = SuperAlt, S, movetoworkspacesilent, special +bind = Super+Alt, 1, movetoworkspacesilent, 1 +bind = Super+Alt, 2, movetoworkspacesilent, 2 +bind = Super+Alt, 3, movetoworkspacesilent, 3 +bind = Super+Alt, 4, movetoworkspacesilent, 4 +bind = Super+Alt, 5, movetoworkspacesilent, 5 +bind = Super+Alt, 6, movetoworkspacesilent, 6 +bind = Super+Alt, 7, movetoworkspacesilent, 7 +bind = Super+Alt, 8, movetoworkspacesilent, 8 +bind = Super+Alt, 9, movetoworkspacesilent, 9 +bind = Super+Alt, 0, movetoworkspacesilent, 10 +bind = Control+Shift+Super, Up, movetoworkspacesilent, special +bind = Super+Alt, S, movetoworkspacesilent, special # Scroll through existing workspaces with (Control) + Super + scroll bind = Super, mouse_up, workspace, +1 bind = Super, mouse_down, workspace, -1 -bind = ControlSuper, mouse_up, workspace, +1 -bind = ControlSuper, mouse_down, workspace, -1 +bind = Control+Super, mouse_up, workspace, +1 +bind = Control+Super, mouse_down, workspace, -1 # Move/resize windows with Super + LMB/RMB and dragging bindm = Super, mouse:272, movewindow bindm = Super, mouse:273, resizewindow # bindm = Super, mouse:274, movewindow bindm = Super, Z, movewindow -bind = ControlSuper, Backslash, resizeactive, exact 640 480 +bind = Control+Super, Backslash, resizeactive, exact 640 480 -bind = SuperAlt, J, exec, ydotool key 105:1 105:0 +bindle = Alt, I, exec, ydotool key 103:1 103:0 +bindle = Alt, K, exec, ydotool key 108:1 108:0 +bindle = Alt, J, exec, ydotool key 105:1 105:0 +bindle = Alt, L, exec, ydotool key 106:1 106:0 diff --git a/.config/hypr/plugins.conf b/.config/hypr/plugins.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/.config/hypr/rules.conf b/.config/hypr/rules.conf index f5ea624b..eab77bd7 100644 --- a/.config/hypr/rules.conf +++ b/.config/hypr/rules.conf @@ -1,5 +1,5 @@ ######## Window rules ######## -windowrule = noblur,.* +windowrule = noblur,.* # Disables blur for windows. Substantially improves performance. #windowrule = opacity 0.94 override 0.94 override, .* windowrule = float, ^(steam)$