diff --git a/.gitignore b/.gitignore index e19e5a6..02231ce 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ nvim/lazy-lock.json -hypr/hardware.conf -hypr/monitors.conf +hypr/hyprland/hardware.lua diff --git a/hypr/.luarc.json b/hypr/.luarc.json new file mode 100644 index 0000000..62faf36 --- /dev/null +++ b/hypr/.luarc.json @@ -0,0 +1,10 @@ +{ + "workspace": { + "library": [ + "/usr/share/hypr/stubs" + ] + }, + "diagnostics": { + "globals": ["hl"] + } +} diff --git a/hypr/hyprbinds.conf b/hypr/hyprbinds.conf deleted file mode 100644 index 799f3b5..0000000 --- a/hypr/hyprbinds.conf +++ /dev/null @@ -1,98 +0,0 @@ -# Window management -bind = SUPER, Q, killactive, -bind = SUPER, M, togglefloating, -bind = SUPER, M, centerwindow -bind = SUPER, SPACE, global, quickshell:peek_bar -bind = SUPER, SUPER_L, exec, quickshell ipc call topbar toggle -bind = SUPER, K, layoutmsg, movetoroot -bind = SUPER, B, layoutmsg, togglesplit -bind = SUPER, x, layoutmsg, swapsplit - -$select = winsel -bind = SUPER, A, exec, $select 0 -bind = SUPER, O, exec, $select 1 -bind = SUPER, E, exec, $select 2 -bind = SUPER, U, exec, $select 3 - -# Screen locking -bindl = SUPER, ESCAPE, exec, ~/.config/scripts/lock.sh -bind = , XF86Go, exec, ~/.config/scripts/idle-toggle.sh -bindl= ,switch:on:Lid Switch, exec, quickshell ipc call lock instalock; sleep 0.5; systemctl suspend - -# Navigate multiple monitors -bind = SUPER, PERIOD, focusmonitor, -1 -bind = SUPER, P, movecurrentworkspacetomonitor, -1 - -# Switch workspaces with mainMod + [0-9] -bind = SUPER, 1, workspace, 1 -bind = SUPER, 2, workspace, 2 -bind = SUPER, 3, workspace, 3 -bind = SUPER, 4, workspace, 4 -bind = SUPER, 5, workspace, 5 -bind = SUPER, 6, workspace, 6 -bind = SUPER, 7, workspace, 7 -bind = SUPER, 8, workspace, 8 -bind = SUPER, 9, workspace, 9 - -bind = SUPER, apostrophe, hyprexpo:expo, toggle -# bind = SUPER SHIFT, apostrophe, hymission:open, forceall -# gesture = 3, vertical, dispatcher, hymission:toggle, forceall - -# Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = SUPER SHIFT, 1, movetoworkspace, 1 -bind = SUPER SHIFT, 2, movetoworkspace, 2 -bind = SUPER SHIFT, 3, movetoworkspace, 3 -bind = SUPER SHIFT, 4, movetoworkspace, 4 -bind = SUPER SHIFT, 5, movetoworkspace, 5 -bind = SUPER SHIFT, 6, movetoworkspace, 6 -bind = SUPER SHIFT, 7, movetoworkspace, 7 -bind = SUPER SHIFT, 8, movetoworkspace, 8 -bind = SUPER SHIFT, 9, movetoworkspace, 9 -bind = SUPER SHIFT, 0, movetoworkspace, 10 - -# Manage special workspace (scratchpad) -bind = SUPER, V, togglespecialworkspace -bind = SUPER, W, movewindow, mon:current -bind = SUPER, W, movetoworkspacesilent, special - -# Move/resize windows -bindm = SUPER, mouse:272, movewindow -bindm = SUPER, mouse:273, resizewindow -bind = SUPER, F, fullscreen - -# Resize windows with super + arrow keys -binde = SUPER ALT, H, resizeactive, -50 0 -binde = SUPER ALT, T, resizeactive, 0 -50 -binde = SUPER ALT, N, resizeactive, 0 50 -binde = SUPER ALT, S, resizeactive, 50 0 - -# Open favourites -bind = SUPER, G, exec, zen-browser -bind = SUPER, C, exec, vesktop -bind = SUPER, R, exec, keepassxc -bind = SUPER, L, exec, kitty - -# Adjust brightness -bindle = , XF86MonBrightnessUp, global, quickshell:increase_brightness -bindle = , XF86MonBrightnessDown, global, quickshell:decrease_brightness -bindle = SHIFT, XF86MonBrightnessDown, exec, brillo -S 0% -q -u 1000000 -bind = , Cancel, exec, ~/.config/scripts/sunset-toggle.sh - -# Adjust volume and media -bindle = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1% -bindle = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1% -bindle = , XF86AudioRaiseVolume, exec, quickshell ipc call osd open -bindle = , XF86AudioLowerVolume, exec, quickshell ipc call osd open -bind = , XF86AudioMicMute, exec, playerctl next -bind = , XF86AudioMute, exec, playerctl play-pause - -# Screen capturing -bind = SUPER, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m region -bind = SUPER ALT, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m window -bind = SUPER SHIFT, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m active -m output -bind = SUPER, SEMICOLON, exec, ~/.config/scripts/zoom.sh -bind = SHIFT, XF86Display, exec, ~/.config/scripts/vnc-toggle.sh -bind = , XF86Display, exec, killall quickshell; quickshell -bind = ALT, XF86Display, exec, sleep 0.5 && hyprctl dispatch dpms off -bind = SUPER, D, exec, wayscriber --active -bind = SUPER SHIFT, D, exec, wl-paste | satty -f - diff --git a/hypr/hyprcolors.conf b/hypr/hyprcolors.conf deleted file mode 100644 index 4160ca8..0000000 --- a/hypr/hyprcolors.conf +++ /dev/null @@ -1,2 +0,0 @@ -$primary = rgba(00FFAAFF) -$primary_container = rgba(555555ff) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf deleted file mode 100644 index 86ff4c5..0000000 --- a/hypr/hyprland.conf +++ /dev/null @@ -1,195 +0,0 @@ -source = ~/.config/hypr/hardware.conf -source = ~/.config/hypr/monitors.conf -source = ~/.config/hypr/hyprcolors.conf -# monitor = , preferred, auto, 1.0 - -# Run stuff on launch -env = PATH, $PATH:$HOME/.local/bin:$HOME/.cargo/bin -# exec-once = hyprlock -exec-once = quickshell -exec-once = hypridle -exec-once = /lib/polkit-gnome/polkit-gnome-authentication-agent-1 -exec-once = keyd-application-mapper -d -exec-once = hyprpm reload -exec-once = kanshi - -# Theming with envvars for some reason -env = XCURSOR_SIZE, 22 -env = XCURSOR_THEME, GoogleDot-Black -envd = GTK_THEME, Graphite-Dark -env = GTK_ICON_THEME, YAMIS -env = HYPRCURSOR_SIZE, 22 -env = HYPRCURSOR_THEME, GoogleDot-hypr -env = QT_QPA_PLATFORMTHEME, gtk3 -env = QT_QPA_PLATFORM, wayland;xcb - -env = FREETYPE_PROPERTIES,cff:no-stem-darkening=0 autofitter:no-stem-darkening=0 - -# Mouse and keyboard settings -input { - kb_layout = us - kb_variant = dvorak - repeat_delay = 600 - touchpad { - natural_scroll = true - } -} - -general { - gaps_in = 4 - gaps_out = 6 - border_size = 0 - - layout = dwindle - no_focus_fallback = true -} - -decoration { - rounding = 12 - rounding_power = 2 -# active_opacity = 0.9 -# inactive_opacity = 0.92 -# fullscreen_opacity = 1.0 - blur { - enabled = true - size = 8 - passes = 3 - new_optimizations = true - ignore_opacity = true - special = false - brightness = 0.2 - } - shadow { - range = 18 - render_power = 4 - scale = 0.9995 - color = rgba(000000ff) - } -} - -workspace = special:special, gapsin:32, gapsout:64 - -animations { - enabled = yes - - bezier = default , 0.16, 1 , 0.30, 1 - bezier = easeOut , 0.16, 1 , 0.3 , 1 - bezier = easeIn , 0.64, 0 , 0.78, 0 - - animation = fadeIn , 1, 4, default - animation = fadeOut , 1, 3, default - animation = windowsIn , 1, 4, default, popin 85% - animation = windowsOut , 1, 4, default, popin 85% - animation = windowsMove , 1, 3, easeOut - animation = border , 1, 5, default - animation = layersIn , 1, 3, easeOut, slide - animation = layersOut , 1, 2, easeIn, slide - animation = fadeLayersIn , 1, 3, easeOut - animation = fadeLayersOut , 1, 2, easeIn - animation = workspaces , 1, 3, easeOut, slidefade 15% - animation = specialWorkspace , 1, 3, default, slidefadevert 10% - animation = zoomFactor , 1, 3, default - animation = monitorAdded , 1, 3, default -} - -dwindle { - preserve_split = true - smart_split = false - use_active_for_splits = true - force_split = 2 -} - -plugin { - hyprexpo { - columns = 3 - gap_size = 6 - bg_col = rgb(111111) - workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1 - - skip_empty = false - } - #dynamic-cursors { - # enabled = true - # mode = stretch - # stretch { - # limit = 3000 - # function = linear - # } - #} - # hymission { - # outer_padding_top = 80 - # outer_padding_right = 80 - # outer_padding_left = 80 - # outer_padding_bottom = 80 - # expand_selected_window = true - # } -} - -# Smart gaps -workspace = w[tv1]s[false], gapsout:0, gapsin:0 -workspace = f[1]s[false], gapsout:0, gapsin:0 -windowrule = border_size 0, match:float 0, match:workspace w[tv1]s[false] -windowrule = rounding 0, match:float 0, match:workspace w[tv1]s[false] -windowrule = border_size 0, match:float 0, match:workspace f[1]s[false] -windowrule = rounding 0, match:float 0, match:workspace f[1]s[false] - -# The bell doesn't fullscreen you, I do. -windowrule = match:class .*, suppress_event fullscreen - -# Misc window rules -windowrule = match:title (Write:), float on -windowrule = match:class xdg-desktop-portal-gtk, float on -windowrule = match:title (Open File), no_blur on -windowrule = match:class (Xdg-desktop-portal-gtk), no_blur on -windowrule = match:class (eog), float on, center on -windowrule = match:class steam_app.*, fullscreen on -windowrule = match:class steam_app.*, workspace 5 -windowrule = match:class (mpv|loupe|com.gabm.satty), float on -windowrule = match:class (mpv|loupe|com.gabm.satty), size 90% 95% -# windowrule = center 1, floating:1 - -# Misc layer rules -layerrule = match:namespace bar, animation slide -layerrule = match:namespace swww-daemon, animation popin -layerrule = match:namespace selection, animation fade -layerrule = match:namespace hyprpicker, animation fade -layerrule = match:namespace picker, animation fade -layerrule = match:namespace wayscriber, animation fade -layerrule = match:namespace quickshell, no_anim on - -layerrule = match:namespace lazerpopup, animation popin 40% -layerrule = match:namespace notification, no_anim on -layerrule = match:namespace notifpanel, dim_around on -layerrule = match:namespace bar, order 1 -layerrule = match:namespace lazerpopup, order 2 -layerrule = match:namespace notifpanel, order 3 -layerrule = match:namespace notification, order 4 - -source = ~/.config/hypr/hyprbinds.conf - -binds { - disable_keybind_grabbing = true -} - -misc { - disable_hyprland_logo = true - disable_splash_rendering = false - on_focus_under_fullscreen = 2 - key_press_enables_dpms = true - mouse_move_enables_dpms = true - focus_on_activate = true - session_lock_xray = false - animate_manual_resizes = true - enable_anr_dialog = false - background_color = 0x141414 - enable_swallow = true - swallow_regex = ^neovide$ -} - -cursor { - persistent_warps = true -} - -xwayland { - force_zero_scaling = true -} diff --git a/hypr/hyprland.lua b/hypr/hyprland.lua new file mode 100644 index 0000000..ca2cf2a --- /dev/null +++ b/hypr/hyprland.lua @@ -0,0 +1,6 @@ +require("hyprland.config") +require("hyprland.binds") +require("hyprland.hardware") +require("hyprland.environment") +require("hyprland.animations") +require("hyprland.rules") diff --git a/hypr/hyprland/animations.lua b/hypr/hyprland/animations.lua new file mode 100644 index 0000000..4ae6335 --- /dev/null +++ b/hypr/hyprland/animations.lua @@ -0,0 +1,103 @@ +hl.curve("easeIn", { + type = "bezier", + points = { {0.64, 0}, {0.78, 0} } +}) +hl.curve("easeOut", { + type = "bezier", + points = { {0.16, 1}, {0.3, 1} } +}) +hl.curve("linear", { + type = "bezier", + points = { {0, 0}, {1, 1} } +}) + +hl.animation({ + leaf = "fadeIn", + enabled = true, + speed = 4, + bezier = "easeOut" +}) +hl.animation({ + leaf = "fadeOut", + enabled = true, + speed = 3, + bezier = "easeOut" +}) +hl.animation({ + leaf = "windowsIn", + enabled = true, + speed = 4, + bezier = "easeOut", + style = "popin 85%" +}) +hl.animation({ + leaf = "windowsOut", + enabled = true, + speed = 4, + bezier = "easeOut", + style = "popin 85%" +}) +hl.animation({ + leaf = "windowsMove", + enabled = true, + speed = 3, + bezier = "easeOut" +}) +hl.animation({ + leaf = "border", + enabled = true, + speed = 5, + bezier = "easeOut" +}) +hl.animation({ + leaf = "layersIn", + enabled = true, + speed = 3, + bezier = "linear", + style = "fade" +}) +hl.animation({ + leaf = "layersOut", + enabled = true, + speed = 2, + bezier = "linear", + style = "fade" +}) +hl.animation({ + leaf = "fadeLayersIn", + enabled = true, + speed = 3, + bezier = "easeOut" +}) +hl.animation({ + leaf = "fadeLayersOut", + enabled = true, + speed = 2, + bezier = "easeIn" +}) +hl.animation({ + leaf = "workspaces", + enabled = true, + speed = 3, + bezier = "easeOut", + style = "slidefade 15%" +}) +hl.animation({ + leaf = "specialWorkspace", + enabled = true, + speed = 3, + bezier = "easeOut", + style = "slidefadevert 10%" +}) +hl.animation({ + leaf = "zoomFactor", + enabled = true, + speed = 3, + bezier = "easeOut" +}) +hl.animation({ + leaf = "monitorAdded", + enabled = true, + speed = 3, + bezier = "easeOut" +}) diff --git a/hypr/hyprland/binds.lua b/hypr/hyprland/binds.lua new file mode 100644 index 0000000..f3aa4e1 --- /dev/null +++ b/hypr/hyprland/binds.lua @@ -0,0 +1,132 @@ +-- Window management +hl.bind("SUPER + Q", hl.dsp.window.close()) + +hl.bind("SUPER + M", hl.dsp.window.float()) +hl.bind("SUPER + M", hl.dsp.window.center()) + +hl.bind("SUPER + SPACE", hl.dsp.global("quickshell:peek_bar")) +hl.bind("SUPER + SPACE", hl.dsp.global("quickshell:peek_bar"), {release = true}) +hl.bind("SUPER + SUPER_L", hl.dsp.exec_cmd("quickshell ipc call topbar toggle")) + +hl.bind("SUPER + K", hl.dsp.layout("movetoroot")) +hl.bind("SUPER + B", hl.dsp.layout("togglesplit")) +hl.bind("SUPER + x", hl.dsp.layout("swapsplit")) + +local function focus_window(n) + local windows = hl.get_windows({workspace = hl.get_active_workspace()}) + table.sort( + windows, + function (a, b) + if a.at.x < b.at.x then + return true + end + if a.at.y < b.at.y then + return true + end + return false + end + ) + if windows[n] ~= nil then + hl.dispatch(hl.dsp.focus({window = windows[n]})) + end +end + +hl.bind("SUPER + A", function() focus_window(1) end) +hl.bind("SUPER + O", function() focus_window(2) end) +hl.bind("SUPER + E", function() focus_window(3) end) +hl.bind("SUPER + U", function() focus_window(4) end) +hl.bind("SUPER + SHIFT + A", function() focus_window(5) end) +hl.bind("SUPER + SHIFT + O", function() focus_window(6) end) +hl.bind("SUPER + SHIFT + E", function() focus_window(7) end) +hl.bind("SUPER + SHIFT + U", function() focus_window(8) end) + +-- Screen locking +hl.bind("SUPER + ESCAPE", hl.dsp.exec_cmd("~/.config/scripts/lock.sh"), {locked = true}) +hl.bind("XF86Go", hl.dsp.exec_cmd("~/.config/scripts/idle-toggle.sh")) +hl.bind("switch:on:Lid Switch", hl.dsp.exec_cmd( + "quickshell ipc call lock instalock; sleep 0.5; systemctl suspend" +)) + +-- Multi-monitor +hl.bind("SUPER + PERIOD", hl.dsp.focus({monitor = -1})) +hl.bind("SUPER + P", hl.dsp.workspace.move({monitor = -1})) + +-- Workspaces +hl.bind("SUPER + 1", hl.dsp.focus({workspace = 1})) +hl.bind("SUPER + 2", hl.dsp.focus({workspace = 2})) +hl.bind("SUPER + 3", hl.dsp.focus({workspace = 3})) +hl.bind("SUPER + 4", hl.dsp.focus({workspace = 4})) +hl.bind("SUPER + 5", hl.dsp.focus({workspace = 5})) +hl.bind("SUPER + 6", hl.dsp.focus({workspace = 6})) +hl.bind("SUPER + 7", hl.dsp.focus({workspace = 7})) +hl.bind("SUPER + 8", hl.dsp.focus({workspace = 8})) +hl.bind("SUPER + 9", hl.dsp.focus({workspace = 9})) + +hl.bind("SUPER + SHIFT + 1", hl.dsp.window.move({workspace = 1, follow = true})) +hl.bind("SUPER + SHIFT + 2", hl.dsp.window.move({workspace = 2, follow = true})) +hl.bind("SUPER + SHIFT + 3", hl.dsp.window.move({workspace = 3, follow = true})) +hl.bind("SUPER + SHIFT + 4", hl.dsp.window.move({workspace = 4, follow = true})) +hl.bind("SUPER + SHIFT + 5", hl.dsp.window.move({workspace = 5, follow = true})) +hl.bind("SUPER + SHIFT + 6", hl.dsp.window.move({workspace = 6, follow = true})) +hl.bind("SUPER + SHIFT + 7", hl.dsp.window.move({workspace = 7, follow = true})) +hl.bind("SUPER + SHIFT + 8", hl.dsp.window.move({workspace = 8, follow = true})) +hl.bind("SUPER + SHIFT + 9", hl.dsp.window.move({workspace = 9, follow = true})) + +-- Special workspace +hl.bind("SUPER + V", hl.dsp.workspace.toggle_special()) +hl.bind("SUPER + W", hl.dsp.window.move({workspace = -1})) + +-- Move/resize windows +hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), ({mouse = true})) +hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), ({mouse = true})) + +-- Open favourites +hl.bind("SUPER + G", hl.dsp.exec_cmd("zen-browser")) +hl.bind("SUPER + C", hl.dsp.exec_cmd("vesktop")) +hl.bind("SUPER + R", hl.dsp.exec_cmd("keepassxc")) +hl.bind("SUPER + L", hl.dsp.exec_cmd("kitty")) + +-- Adjust brightness +hl.bind( + "XF86MonBrightnessUp", + hl.dsp.global("quickshell:increase_brightness"), + {locked = true, repeating = true} +) +hl.bind( + "XF86MonBrightnessDown", + hl.dsp.global("quickshell:decrease_brightness"), + {locked = true, repeating = true} +) +hl.bind( + "SHIFT + XF86MonBrightnessDown", + hl.dsp.exec_cmd("brillo -S 0% -q -u 1000000"), + {locked = true, repeating = true} +) + +-- Adjust volume and media +hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd( + "pactl set-sink-volume @DEFAULT_SINK@ +1%" +)) +hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd( + "pactl set-sink-volume @DEFAULT_SINK@ -1%" +)) +hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("quickshell ipc call osd open")) +hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("quickshell ipc call osd open")) +hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("playerctl next")) +hl.bind("XF86AudioMute", hl.dsp.exec_cmd("playerctl play-pause")) + +-- Screen capturing +hl.bind("SUPER + COMMA", hl.dsp.exec_cmd( + "pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m region" +)) +hl.bind("SUPER + ALT + COMMA", hl.dsp.exec_cmd( + "pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m window" +)) +hl.bind("SUPER + SHIFT + COMMA", hl.dsp.exec_cmd( + "pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m active -m output" +)) +hl.bind("SUPER + SEMICOLON", hl.dsp. exec_cmd("~/.config/scripts/zoom.sh")) +hl.bind("SHIFT + XF86Display", hl.dsp.exec_cmd("~/.config/scripts/vnc-toggle.sh")) +hl.bind("XF86Display", hl.dsp.exec_cmd("pkill -x quickshell; quickshell")) +hl.bind("SUPER + D", hl.dsp.exec_cmd("wayscriber --active")) +hl.bind("SUPER + SHIFT + D", hl.dsp.exec_cmd("wl-paste | satty -f -")) diff --git a/hypr/hyprland/config.lua b/hypr/hyprland/config.lua new file mode 100644 index 0000000..d30cb94 --- /dev/null +++ b/hypr/hyprland/config.lua @@ -0,0 +1,67 @@ +hl.config({ + input = { + kb_layout = "us", + kb_variant = "dvorak", + repeat_delay = 600, + touchpad = { + natural_scroll = true + } + }, + general = { + gaps_in = 4, + gaps_out = 6, + border_size = 0, + + layout = "dwindle", + no_focus_fallback = true + }, + decoration = { + rounding = 12, + rounding_power = 2, + -- active_opacity = 0.95, + -- inactive_opacity = 0.9, + -- fullscreen_opacity = 1.0, + blur = { + enabled = true, + size = 8, + passes = 3, + new_optimizations = true, + ignore_opacity = true, + special = false, + brightness = 0.2, + }, + shadow = { + range = 18, + render_power = 4, + scale = 0.9995, + color = "#000000", + } + }, + dwindle = { + preserve_split = true, + smart_split = false, + use_active_for_splits = true, + force_split = 2, + }, + binds = { + disable_keybind_grabbing = true + }, + misc = { + disable_hyprland_logo = true, + disable_splash_rendering = false, + on_focus_under_fullscreen = 2, + key_press_enables_dpms = true, + mouse_move_enables_dpms = true, + focus_on_activate = true, + session_lock_xray = false, + animate_manual_resizes = true, + enable_anr_dialog = false, + background_color = "#141414", + }, + cursor = { + persistent_warps = true, + }, + xwayland = { + force_zero_scaling = true, + }, +}) diff --git a/hypr/hyprland/environment.lua b/hypr/hyprland/environment.lua new file mode 100644 index 0000000..2f6335b --- /dev/null +++ b/hypr/hyprland/environment.lua @@ -0,0 +1,19 @@ + +hl.on("hyprland.start", function() + hl.exec_cmd("quickshell") + hl.exec_cmd("hypridle") + hl.exec_cmd("/lib/polkit-gnome/polkit-gnome-authentication-agent-1") + hl.exec_cmd("keyd-application-mapper -d") + hl.exec_cmd("hyprpm reload") + hl.exec_cmd("kanshi") +end) + +hl.env("XCURSOR_SIZE", "22") +hl.env("XCURSOR_THEME", "GoogleDot-Black") +hl.env("GTK_THEME", "Graphite-Dark") +hl.env("GTK_ICON_THEME", "YAMIS") +hl.env("HYPRCURSOR_SIZE", "22") +hl.env("HYPRCURSOR_THEME", "GoogleDot-hypr") +hl.env("QT_QPA_PLATFORMTHEME", "gtk3") +hl.env("QT_QPA_PLATFORM", "wayland;xcb") +hl.env("FREETYPE_PROPERTIES", ":no-stem-darkening=0 autofitter:no-stem-darkening=0") diff --git a/hypr/hyprland/hardware.lua b/hypr/hyprland/hardware.lua new file mode 100644 index 0000000..2ad2b9e --- /dev/null +++ b/hypr/hyprland/hardware.lua @@ -0,0 +1,37 @@ +hl.config({ + input = { + accel_profile = "flat", + sensitivity = 0, + follow_mouse = 2, + float_switch_override_focus = 0, + }, +}) + +hl.device({ + name = "tpps/2-elan-trackpoint", + sensitivity = 0.5, + enabled = true, +}) + +hl.device({ + name = "elan067b:00-04f3:31f8-mouse", + sensitivity = 0.5, + enabled = true, +}) + +hl.device({ + name = "pixart-hp-usb-optical-mouse", + enabled = true, +}) + +hl.monitor({ + output = "eDP-1", + mode = "preferred", +}) + +hl.monitor({ + output = "", + mode = "preferred", + position = "auto", + scale = 1 +}) diff --git a/hypr/hyprland/rules.lua b/hypr/hyprland/rules.lua new file mode 100644 index 0000000..70aec24 --- /dev/null +++ b/hypr/hyprland/rules.lua @@ -0,0 +1,47 @@ +-- Smart gaps +hl.workspace_rule({ workspace = "w[tv1]s[false]", gaps_out = 0, gaps_in = 0 }) +hl.workspace_rule({ workspace = "f[1]s[false]", gaps_out = 0, gaps_in = 0 }) +hl.window_rule({ match = { float = false, workspace = "w[tv1]s[false]" }, border_size = 0 }) +hl.window_rule({ match = { float = false, workspace = "w[tv1]s[false]" }, rounding = 0 }) +hl.window_rule({ match = { float = false, workspace = "f[1]s[false]" }, border_size = 0 }) +hl.window_rule({ match = { float = false, workspace = "f[1]s[false]" }, rounding = 0 }) + +-- Misc window rules +hl.window_rule({ + match = { + class = "Write:" + }, + float = true +}) +hl.window_rule({ + match = { + class = "xdg-desktop-portal-gtk" + }, + float = true +}) +hl.window_rule({ + match = { + title = "(Open File)" + }, + no_blur = true +}) +hl.window_rule({ + match = { + class = "(Xdg-desktop-portal-gtk)" + }, + no_blur = true +}) +hl.window_rule({ + match = { + class = "(eog)" + }, + float = true, + center = true +}) +hl.window_rule({ + match = { + class = "(mpv|loupe|com.gabm.satty)" + }, + float = true, + size = { "monitor_w*0.95", "monitor_h*0.95"} +}) diff --git a/hypr/workspaces.conf b/hypr/workspaces.conf deleted file mode 100644 index e69de29..0000000