1
1
Fork 0

hyprland: update config for hyprscroller plugin

Signed-off-by: Myned <dev@bjork.tech>
This commit is contained in:
Myned 2025-02-15 15:57:55 -06:00
parent c3e79d8926
commit a691050bc4
Signed by: Myned
GPG key ID: C7224454F7881A34
4 changed files with 88 additions and 88 deletions

View file

@ -132,9 +132,9 @@ in {
(key "Backspace" "Super" "scroller:alignwindow" "middle") (key "Backspace" "Super" "scroller:alignwindow" "middle")
(key "Backspace" "Super+Shift" "scroller:fitsize" "visible") (key "Backspace" "Super+Shift" "scroller:fitsize" "visible")
(key "Equal" "Super+Shift" "exec" "${zoom} +0.1") (key "Equal" "Super+Shift" "exec" "${zoom} +0.1")
(key "Escape" "Super" "togglefloating" null) (key "Escape" "Super" "pin" null)
(key "Escape" "Super+Alt" "exec" "lifx state --color red") (key "Escape" "Super+Alt" "exec" "lifx state --color red")
(key "Escape" "Super+Shift" "scroller:pin" null) (key "Escape" "Super+Shift" "togglefloating" null)
(key "Left" "Super+Ctrl+Shift" "exec" "${left} --scroll kensington-orbit-wireless-tb-mouse") (key "Left" "Super+Ctrl+Shift" "exec" "${left} --scroll kensington-orbit-wireless-tb-mouse")
(key "Minus" "Super+Shift" "exec" "${zoom} -0.1") (key "Minus" "Super+Shift" "exec" "${zoom} -0.1")
(key "Return" "Super" "fullscreen" "1") # Maximize (key "Return" "Super" "fullscreen" "1") # Maximize
@ -197,19 +197,19 @@ in {
(key "M" "Super+Shift" "movetoworkspacesilent" "special:music") (key "M" "Super+Shift" "movetoworkspacesilent" "special:music")
(key "O" "Super" "exec" "${hyprpicker} --autocopy") (key "O" "Super" "exec" "${hyprpicker} --autocopy")
(key "O" "Super+Shift" "exec" "${hyprpicker} --autocopy --format rgb") (key "O" "Super+Shift" "exec" "${hyprpicker} --autocopy --format rgb")
(key "P" "Ctrl+Alt" "exec" "${pkill} --full --exact 1password") (key "P" "Ctrl+Alt" "exec" "${pkill} --exact 1password")
(key "P" "Super" "togglespecialworkspace" "password") (key "P" "Super" "togglespecialworkspace" "password")
(key "P" "Super+Shift" "movetoworkspacesilent" "special:password") (key "P" "Super+Shift" "movetoworkspacesilent" "special:password")
(key "Q" "Ctrl+Alt" "exec" "${kill} -9 $(${hyprctl} -j activewindow | ${jq} .pid)") (key "Q" "Ctrl+Alt" "exec" "${hyprctl} kill")
(key "Q" "Super" "killactive" null) (key "Q" "Super" "killactive" null)
(key "R" "Super" "scroller:movefocus" "d") (key "R" "Super" "scroller:movefocus" "d")
(key "R" "Super+Ctrl" "scroller:alignwindow" "down") (key "R" "Super+Ctrl" "scroller:alignwindow" "down")
(key "R" "Super+Shift" "scroller:movewindow" "d") (key "R" "Super+Shift" "scroller:movewindow" "d")
(key "S" "Ctrl+Alt" "exec" "${pkill} --full --exact steam") (key "S" "Ctrl+Alt" "exec" "${pkill} --exact steam")
(key "S" "Super" "scroller:movefocus" "r") (key "S" "Super" "scroller:movefocus" "r")
(key "S" "Super+Ctrl" "scroller:alignwindow" "right") (key "S" "Super+Ctrl" "scroller:alignwindow" "right")
(key "S" "Super+Shift" "scroller:movewindow" "r") (key "S" "Super+Shift" "scroller:movewindow" "r")
(key "T" "Ctrl+Alt" "exec" "${pkill} --full --exact ghostty") (key "T" "Ctrl+Alt" "exec" "${pkill} --exact ghostty")
(key "T" "Super" "togglespecialworkspace" "terminal") (key "T" "Super" "togglespecialworkspace" "terminal")
(key "T" "Super+Ctrl" "exec" ghostty) (key "T" "Super+Ctrl" "exec" ghostty)
(key "T" "Super+Shift" "movetoworkspacesilent" "special:terminal") (key "T" "Super+Shift" "movetoworkspacesilent" "special:terminal")
@ -220,8 +220,10 @@ in {
(key "W" "Super" "scroller:movefocus" "u") (key "W" "Super" "scroller:movefocus" "u")
(key "W" "Super+Ctrl" "scroller:alignwindow" "up") (key "W" "Super+Ctrl" "scroller:alignwindow" "up")
(key "W" "Super+Shift" "scroller:movewindow" "u") (key "W" "Super+Shift" "scroller:movewindow" "u")
(key "X" "Super" "scroller:cyclesize" "next") (key "X" "Super" "scroller:cyclewidth" "next")
(key "Z" "Super" "scroller:cyclesize" "previous") (key "X" "Super+Shift" "scroller:cycleheight" "next")
(key "Z" "Super" "scroller:cyclewidth" "previous")
(key "Z" "Super+Shift" "scroller:cycleheight" "previous")
]; ];
# Lockscreen binds # Lockscreen binds
@ -250,9 +252,11 @@ in {
(key "Alt_L" "Super+Alt+Shift" "movetoworkspacesilent" "special:wallpaper") (key "Alt_L" "Super+Alt+Shift" "movetoworkspacesilent" "special:wallpaper")
(key "Control_L" "Super+Ctrl" "scroller:admitwindow" null) (key "Control_L" "Super+Ctrl" "scroller:admitwindow" null)
(key "Control_L" "Super+Ctrl+Shift" "scroller:expelwindow" null) (key "Control_L" "Super+Ctrl+Shift" "scroller:expelwindow" null)
(key "Shift_L" "Super+Ctrl+Shift" "scroller:setmode" "row")
(key "Shift_L" "Super+Shift" "scroller:setmode" "column") # BUG: Causes Hyprland to crash when floating the scroller:pin window
(key "Super_L" "Super" "exec" config.custom.menus.show) (key "Shift_L" "Super+Shift" "scroller:pin" null)
(key "Super_L" "Super" "exec" config.custom.menus.default.show)
(key "Super_L" "Super+Alt" "exec" config.custom.menus.vault.show) (key "Super_L" "Super+Alt" "exec" config.custom.menus.vault.show)
(key "Super_L" "Super+Ctrl+Shift" "exec" config.custom.menus.network.show) (key "Super_L" "Super+Ctrl+Shift" "exec" config.custom.menus.network.show)
(key "Super_L" "Super+Shift" "exec" config.custom.menus.search.show) (key "Super_L" "Super+Shift" "exec" config.custom.menus.search.show)

View file

@ -56,10 +56,18 @@ in {
# https://github.com/dawsers/hyprscroller?tab=readme-ov-file#options # https://github.com/dawsers/hyprscroller?tab=readme-ov-file#options
scroller = mkIf cfg.hyprscroller { scroller = mkIf cfg.hyprscroller {
"col.selection_border" = "rgb(d33682)"; "col.selection_border" = "rgb(d33682)";
#// center_row_if_space_available = true; center_row_if_space_available = true;
column_default_width = "onethird";
#// column_widths = "onethird onehalf twothirds one"; column_default_width =
#// window_heights = "onethird onehalf twothirds one"; if config.custom.ultrawide
then "threeeighths"
else "onethird";
column_widths =
if config.custom.ultrawide
then "onefourth threeeighths onehalf fiveeighths threequarters one"
else "onethird onehalf twothirds one";
cyclesize_wrap = false; cyclesize_wrap = false;
focus_wrap = false; focus_wrap = false;
}; };

View file

@ -43,6 +43,8 @@ in {
# https://wiki.hyprland.org/Configuring/Window-Rules # https://wiki.hyprland.org/Configuring/Window-Rules
#?? windowrulev2 = RULE, WINDOW #?? windowrulev2 = RULE, WINDOW
windowrulev2 = with config.custom; let windowrulev2 = with config.custom; let
gaps_in = gap / 4;
# HACK: Attempts to account for hypr-specific scale, gaps, borders, and bar padding # HACK: Attempts to account for hypr-specific scale, gaps, borders, and bar padding
### Static geometry rules ### Static geometry rules
tr = num: toString (builtins.floor num); # Convert truncated float to string tr = num: toString (builtins.floor num); # Convert truncated float to string
@ -50,6 +52,7 @@ in {
# Bottom center # Bottom center
android = rec { android = rec {
x = tr (width / scale / 2 - (toInt w) / 2); x = tr (width / scale / 2 - (toInt w) / 2);
y = tr (height y = tr (height
/ scale / scale
- (toInt h) - (toInt h)
@ -60,27 +63,30 @@ in {
then - border # Cause unknown then - border # Cause unknown
else 0 else 0
)); ));
w = tr ( w = tr (
width width
/ scale / scale
* ( * (
if ultrawide if ultrawide
then 0.5 # 50% then 3.0 / 8.0 # threeeighths
else 1 else 1.0 # one
) )
+ ( + (
if ultrawide if ultrawide
then - gap / 2 * 2 # Center layout padding between windows then - gaps_in * 2
else - gap * 2 else - gap * 2
) )
- border * 2 - border * 2
); );
h = tr (height / scale * 0.5); # 50%
h = tr (height / scale * 0.5);
}; };
# Bottom center # Bottom center
clipboard = rec { clipboard = rec {
x = tr (width / scale / 2 - (toInt w) / 2); x = tr (width / scale / 2 - (toInt w) / 2);
y = tr (height y = tr (height
/ scale / scale
- (toInt h) - (toInt h)
@ -91,13 +97,15 @@ in {
then - border # Cause unknown then - border # Cause unknown
else 0 else 0
)); ));
w = "600"; w = "600";
h = tr (height / scale * 0.75); # 75% h = tr (height / scale * 0.75);
}; };
# Bottom center # Bottom center
dropdown = rec { dropdown = rec {
x = tr (width / scale / 2 - (toInt w) / 2); x = tr (width / scale / 2 - (toInt w) / 2);
y = tr (height y = tr (height
/ scale / scale
- (toInt h) - (toInt h)
@ -108,27 +116,29 @@ in {
then - border # Cause unknown then - border # Cause unknown
else 0 else 0
)); ));
w = tr ( w = tr (
width width
/ scale / scale
* ( * (
if ultrawide if ultrawide
then 0.5 # 50% then 3.0 / 8.0 # threeeighths
else 1 else 1.0 # one
) )
+ ( + (
if ultrawide if ultrawide
then - gap / 2 * 2 # Center layout padding between windows then - gaps_in * 2
else - gap * 2 else - gap * 2
) )
- border * 2 - border * 2
); );
h = tr (height h = tr (height
/ scale / scale
* ( * (
if ultrawide if ultrawide
then 0.2 # 20% then 0.2
else 0.3 # 30% else 0.3
)); ));
}; };
@ -136,7 +146,20 @@ in {
pip = rec { pip = rec {
x = tr (width / scale - (toInt w) - gap - border); x = tr (width / scale - (toInt w) - gap - border);
y = tr (gap + border); y = tr (gap + border);
w = tr (width / scale * 0.25 - gap - gap / 2 - border * 2); # 25%
w = tr (
width
/ scale
* (
if ultrawide
then (1 - 3.0 / 8.0) / 2 # threeeighths / 2
else 1.0 / 3.0 # onethird
)
- gap
- gaps_in
- border * 2
);
h = tr ((toInt w) * 9 / 16 + 1); # 16:9 aspect ratio h = tr ((toInt w) * 9 / 16 + 1); # 16:9 aspect ratio
}; };
@ -169,11 +192,12 @@ in {
focus = expr: rules: merge "focus" expr rules; focus = expr: rules: merge "focus" expr rules;
fullscreen = expr: rules: merge "fullscreen" expr rules; fullscreen = expr: rules: merge "fullscreen" expr rules;
pinned = expr: rules: merge "pinned" expr rules; pinned = expr: rules: merge "pinned" expr rules;
tag = expr: rules: merge "tag" expr rules;
title = expr: rules: merge "title" "^${expr}$" rules; title = expr: rules: merge "title" "^${expr}$" rules;
### Pseudo-tags ### Pseudo-tags
# Wrap generated rules in Nix categories # Wrap generated rules in Nix categories
tag = { t = {
android = rules: [ android = rules: [
(class "[Ww]aydroid.*" rules) (class "[Ww]aydroid.*" rules)
]; ];
@ -265,83 +289,47 @@ in {
in in
flatten [ flatten [
### Defaults ### Defaults
(class ".*" ["float" "suppressevent maximize"])
(floating false ["noshadow" "plugin:hyprbars:nobar"]) (floating false ["noshadow" "plugin:hyprbars:nobar"])
(floating true ["noborder"]) (floating true ["noborder"])
(focus false ["plugin:hyprbars:bar_color rgb(073642)" "plugin:hyprbars:title_color rgb(586e75)"]) (focus false ["plugin:hyprbars:bar_color rgb(073642)" "plugin:hyprbars:title_color rgb(586e75)"])
(fullscreen true ["idleinhibit focus"]) (fullscreen true ["idleinhibit focus"])
(pinned true ["bordercolor rgb(073642) rgb(073642)"]) (pinned true ["bordercolor rgb(fdf6e3) rgb(fdf6e300)" "noborder 0" "noshadow"])
(tag.android ["idleinhibit always" "move ${android.x} ${android.y}" "size ${android.w} ${android.h}" "workspace special:android silent" "plugin:hyprbars:nobar"]) (tag "scroller:pinned" ["bordercolor rgb(fdf6e3) rgb(fdf6e300)"])
(tag.browser ["tile" "workspace 1"])
(tag.clipboard ["move ${clipboard.x} ${clipboard.y}" "pin" "size ${clipboard.w} ${clipboard.h}" "stayfocused" "plugin:hyprbars:nobar"]) (t.android ["float" "idleinhibit always" "move ${android.x} ${android.y}" "size ${android.w} ${android.h}" "workspace special:android silent" "plugin:hyprbars:nobar"])
(tag.dropdown ["move ${dropdown.x} ${dropdown.y}" "pin" "size ${dropdown.w} ${dropdown.h}" "plugin:hyprbars:nobar"]) (t.browser ["workspace 1"])
(tag.editor ["tile"]) (t.clipboard ["float" "move ${clipboard.x} ${clipboard.y}" "pin" "size ${clipboard.w} ${clipboard.h}" "stayfocused" "plugin:hyprbars:nobar"])
(tag.files ["center"]) (t.dropdown ["float" "move ${dropdown.x} ${dropdown.y}" "pin" "size ${dropdown.w} ${dropdown.h}" "plugin:hyprbars:nobar"])
(tag.game ["focusonactivate" "idleinhibit always" "noborder" "noshadow" "renderunfocused" "workspace name:game" "plugin:hyprbars:nobar"]) (t.game ["focusonactivate" "idleinhibit always" "noborder" "noshadow" "renderunfocused" "workspace name:game" "plugin:hyprbars:nobar"])
(tag.media ["center" "keepaspectratio" "size <90% <90%"]) (t.media ["center" "float" "keepaspectratio" "size <90% <90%"])
(tag.music ["tile" "workspace special:music silent"]) (t.music ["workspace special:music silent"])
(tag.office ["tile" "workspace special:office silent"]) (t.office ["workspace special:office silent" "plugin:scroller:group office"])
(tag.password ["center" "tile" "workspace special:password silent" "plugin:hyprbars:nobar"]) (t.password ["workspace special:password silent" "plugin:hyprbars:nobar"])
(tag.pip ["keepaspectratio" "move ${pip.x} ${pip.y}" "noinitialfocus" "pin" "size ${pip.w} ${pip.h}" "plugin:hyprbars:nobar"]) (t.pip ["float" "keepaspectratio" "move ${pip.x} ${pip.y}" "noinitialfocus" "pin" "size ${pip.w} ${pip.h}" "plugin:hyprbars:nobar"])
(tag.social ["tile"]) (t.social ["plugin:scroller:group social" "plugin:scroller:columnwidth onequarter" "plugin:scroller:windowheight onehalf"])
(tag.steam ["suppressevent activate activatefocus" "workspace special:steam silent" "plugin:hyprbars:nobar"]) (t.steam ["suppressevent activate activatefocus" "workspace special:steam silent" "plugin:hyprbars:nobar"])
(tag.terminal ["tile"]) (t.terminal ["plugin:scroller:group terminal"])
(tag.vm ["workspace special:vm silent"]) (t.vm ["workspace special:vm silent" "plugin:scroller:group vm"])
### Overrides ### Overrides
(class "dev\\.benz\\.walker" ["noanim" "noshadow" "pin" "stayfocused" "plugin:hyprbars:nobar"]) # Imitate layer (class "org\\.gnome\\.NautilusPreviewer" ["float" "stayfocused" "plugin:hyprbars:nobar"]) # Sushi
(class "org\\.gnome\\.NautilusPreviewer" ["stayfocused" "plugin:hyprbars:nobar"]) # Sushi
(class "signal" ["tile"]) # Initial window in social group
(class "steam_app_1473350" ["workspace 0"]) # (the) Gnorp Apologue (class "steam_app_1473350" ["workspace 0"]) # (the) Gnorp Apologue
(class "Tap Wizard 2\\.x86_64" ["workspace 0"]) (class "Tap Wizard 2\\.x86_64" ["workspace 0"])
(class "Xdg-desktop-portal-gtk" ["noborder" "noshadow" "plugin:hyprbars:nobar"])
(title "File Upload" ["center" "float" "size 1000 625"])
(title "Open" ["center" "float" "size 1000 625"])
(title "Save As" ["center" "float" "size 1000 625"])
#!! Expressions are not wrapped in ^$ #!! Expressions are not wrapped in ^$
(fields {
class = "^com\\.github\\.wwmm\\.easyeffects$";
title = "^Easy Effects$"; # Main window
} ["center" "float" "size 50% 50%"])
(fields { (fields {
class = "^discord$"; class = "^discord$";
title = "^Discord Updater$"; # Update dialog title = "^Discord Updater$"; # Update dialog
} ["float" "nofocus" "plugin:hyprbars:nobar"]) } ["float" "nofocus" "plugin:hyprbars:nobar"])
(fields {
class = "^lutris$";
title = "^Lutris$"; # Main window
} ["center" "float" "size 1000 500"])
(fields { (fields {
class = "^org\\.gnome\\.Loupe$"; class = "^org\\.gnome\\.Loupe$";
title = "^wallpaper.png$"; title = "^wallpaper.png$";
} ["tile" "workspace special:wallpaper silent"]) } ["workspace special:wallpaper silent"])
(fields {
class = "^org\\.gnome\\.Nautilus$";
title = "^Home$"; # Main window
} ["size 1000 625"])
(fields {
class = "^org\\.gnome\\.Nautilus$";
title = "^New Folder$";
} ["plugin:hyprbars:nobar"])
(fields {
class = "^org\\.remmina\\.Remmina$";
title = "^Remmina.*$"; # Main windows
} ["center" "float" "size 1000 500"])
(fields { (fields {
class = "^steam$"; class = "^steam$";
title = "^notificationtoasts$"; # Steam notifications title = "^notificationtoasts$"; # Steam notifications
} ["float" "nofocus" "pin"]) } ["float" "nofocus" "pin"])
(fields {
class = "^steam$";
title = "^Steam$"; # Main window
} ["tile"])
(fields {
class = "^virt-manager$";
title = "^.+on QEMU/KVM$"; # VM window
} ["tile"])
]; ];
}; };
}; };

View file

@ -68,9 +68,9 @@ in {
# https://wiki.hyprland.org/Configuring/Variables/#general # https://wiki.hyprland.org/Configuring/Variables/#general
general = { general = {
"col.active_border" = "rgb(d33682)"; "col.active_border" = "rgb(d33682)";
"col.inactive_border" = "rgba(00000000)"; "col.inactive_border" = "rgba(d3368200)";
"col.nogroup_border_active" = "rgb(dc322f)"; "col.nogroup_border_active" = "rgb(dc322f)";
"col.nogroup_border" = "rgba(00000000)"; "col.nogroup_border" = "rgba(dc322f00)";
#// allow_tearing = true; #// allow_tearing = true;
border_size = config.custom.border; border_size = config.custom.border;
extend_border_grab_area = 5; extend_border_grab_area = 5;
@ -95,18 +95,18 @@ in {
# https://wiki.hyprland.org/Configuring/Variables/#group # https://wiki.hyprland.org/Configuring/Variables/#group
group = { group = {
"col.border_active" = "rgb(6c71c4)"; "col.border_active" = "rgb(6c71c4)";
"col.border_inactive" = "rgba(00000000)"; "col.border_inactive" = "rgba(6c71c400)";
"col.border_locked_active" = "rgb(cb4b16)"; "col.border_locked_active" = "rgb(cb4b16)";
"col.border_locked_inactive" = "rgba(00000000)"; "col.border_locked_inactive" = "rgba(cb4b1600)";
#// auto_group = false; #// auto_group = false;
#// insert_after_current = false; #// insert_after_current = false;
# https://wiki.hyprland.org/Configuring/Variables/#groupbar # https://wiki.hyprland.org/Configuring/Variables/#groupbar
groupbar = { groupbar = {
"col.active" = "rgb(6c71c4)"; "col.active" = "rgb(6c71c4)";
"col.inactive" = "rgba(00000000)"; "col.inactive" = "rgba(6c71c400)";
"col.locked_active" = "rgb(cb4b16)"; "col.locked_active" = "rgb(cb4b16)";
"col.locked_inactive" = "rgba(00000000)"; "col.locked_inactive" = "rgba(cb4b1600)";
font_size = font_size =
if config.custom.hidpi if config.custom.hidpi