diff --git a/hypr/hyprland/animations.lua b/hypr/hyprland/animations.lua index 4ae6335..808a2e5 100644 --- a/hypr/hyprland/animations.lua +++ b/hypr/hyprland/animations.lua @@ -14,13 +14,13 @@ hl.curve("linear", { hl.animation({ leaf = "fadeIn", enabled = true, - speed = 4, + speed = 3, bezier = "easeOut" }) hl.animation({ leaf = "fadeOut", enabled = true, - speed = 3, + speed = 4, bezier = "easeOut" }) hl.animation({ @@ -40,7 +40,7 @@ hl.animation({ hl.animation({ leaf = "windowsMove", enabled = true, - speed = 3, + speed = 5, bezier = "easeOut" }) hl.animation({ diff --git a/hypr/hyprland/binds.lua b/hypr/hyprland/binds.lua index f651108..c0a9871 100644 --- a/hypr/hyprland/binds.lua +++ b/hypr/hyprland/binds.lua @@ -2,19 +2,44 @@ 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 + M", function () + local monitor = hl.get_active_monitor() + local window = hl.get_active_window() + if (monitor == nil or window == nil) then return end + if not window.floating then return end + hl.dispatch(hl.dsp.window.resize({ + x = monitor.width - monitor.height * 0.1, + y = monitor.height * 0.9 + })) + hl.dispatch(hl.dsp.window.center()) +end) hl.bind("SUPER + F", hl.dsp.window.fullscreen()) +hl.bind("SUPER + X", hl.dsp.layout("swapsplit")) +hl.bind("SUPER + B", hl.dsp.layout("togglesplit")) 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")) +-- Move/resize windows +hl.bind("SUPER + H", hl.dsp.window.move({direction = "l"})) +hl.bind("SUPER + T", hl.dsp.window.move({direction = "u"})) +hl.bind("SUPER + N", hl.dsp.window.move({direction = "d"})) +hl.bind("SUPER + S", hl.dsp.window.move({direction = "r"})) +hl.bind("SUPER + ALT + H", hl.dsp.window.resize({x = -50, y = 0, relative = true}), + {repeating = true}) +hl.bind("SUPER + ALT + T", hl.dsp.window.resize({x = 0, y = -50, relative = true}), + {repeating = true}) +hl.bind("SUPER + ALT + N", hl.dsp.window.resize({x = 0, y = 50, relative = true}), + {repeating = true}) +hl.bind("SUPER + ALT + S", hl.dsp.window.resize({x = 50, y = 0, relative = true}), + {repeating = true}) + +hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), ({mouse = true})) +hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), ({mouse = true})) -- Select windows ordered top to bottom, left to right -local function focus_window(n) +local function select_window(n) local workspace = hl.get_active_special_workspace() if workspace == nil then workspace = hl.get_active_workspace() @@ -32,8 +57,18 @@ local function focus_window(n) return a.at.y < b.at.y end ) - if windows[n] ~= nil then - hl.dispatch(hl.dsp.focus({window = windows[n]})) + return windows[n] +end +local function focus_window(n) + local window = select_window(n) + if window ~= nil then + hl.dispatch(hl.dsp.focus({window = window})) + end +end +local function swap_window(n) + local window = select_window(n) + if window ~= nil then + hl.dispatch(hl.dsp.window.swap({target = window})) end end @@ -46,6 +81,15 @@ 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) +hl.bind("SUPER + ALT + A", function() swap_window(1) end) +hl.bind("SUPER + ALT + O", function() swap_window(2) end) +hl.bind("SUPER + ALT + E", function() swap_window(3) end) +hl.bind("SUPER + ALT + U", function() swap_window(4) end) +hl.bind("SUPER + ALT + SHIFT + A", function() swap_window(5) end) +hl.bind("SUPER + ALT + SHIFT + O", function() swap_window(6) end) +hl.bind("SUPER + ALT + SHIFT + E", function() swap_window(7) end) +hl.bind("SUPER + ALT + SHIFT + U", function() swap_window(8) end) + -- Workspaces hl.bind("SUPER + 1", hl.dsp.focus({workspace = 1})) hl.bind("SUPER + 2", hl.dsp.focus({workspace = 2})) @@ -67,14 +111,6 @@ 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})) - -- Multi-monitor hl.bind("SUPER + PERIOD", hl.dsp.focus({monitor = -1})) hl.bind("SUPER + P", hl.dsp.workspace.move({monitor = -1})) @@ -86,6 +122,16 @@ hl.bind("switch:on:Lid Switch", hl.dsp.exec_cmd( "quickshell ipc call lock instalock; sleep 0.5; systemctl suspend" )) +-- Special workspace +hl.bind("SUPER + V", hl.dsp.workspace.toggle_special()) +hl.bind("SUPER + W", function () + if hl.get_active_special_workspace() == nil then + hl.dispatch(hl.dsp.window.move({workspace = "special"})) + else + hl.dispatch(hl.dsp.window.move({workspace = hl.get_active_workspace()})) + end +end) + -- Adjust brightness hl.bind( "XF86MonBrightnessUp", diff --git a/hypr/hyprland/config.lua b/hypr/hyprland/config.lua index 3c87ba6..d463d1f 100644 --- a/hypr/hyprland/config.lua +++ b/hypr/hyprland/config.lua @@ -17,10 +17,11 @@ hl.config({ }, decoration = { rounding = 12, - rounding_power = 2, + rounding_power = 3, -- active_opacity = 0.95, -- inactive_opacity = 0.9, -- fullscreen_opacity = 1.0, + dim_special = 0, blur = { enabled = true, size = 8, @@ -31,11 +32,10 @@ hl.config({ brightness = 0.2, }, shadow = { - range = 18, + range = 20, render_power = 4, - scale = 0.9995, - color = "#000000", - } + color = "#00000088", + }, }, dwindle = { preserve_split = true, @@ -57,10 +57,14 @@ hl.config({ animate_manual_resizes = true, enable_anr_dialog = false, background_color = "#141414", + enable_swallow = true, + swallow_regex = "kitty" }, cursor = { + -- invisible = true, persistent_warps = true, zoom_detached_camera = false, + zoom_disable_aa = false, }, xwayland = { force_zero_scaling = true, diff --git a/nvim/init.lua b/nvim/init.lua index c04661a..7f13a67 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -1,5 +1,10 @@ require('config.lazy') +local cd = io.open("/tmp/fishwd", "r") +if cd ~= nil then + vim.cmd("cd " .. cd:read("a")) +end + vim.lsp.enable({ "rust_analyzer", "jdtls", @@ -16,10 +21,6 @@ vim.lsp.enable({ "kotlin_lsp" }) - -vim.keymap.set({'n', 'x', 'o'}, ',', vim.diagnostic.open_float) -vim.keymap.set({'n', 'x', 'o', 'i'}, '', "up") - if vim.g.neovide then vim.o.guifont = "0xProto Nerd Font:h12" vim.g.neovide_padding_top = 4 @@ -91,3 +92,7 @@ vim.cmd([[ hi BlinkCmpScrollbarThumb guibg=#181818 hi BlinkCmpScrollbarGutter guibg=#181818 ]]) + +vim.keymap.set({'n', 'x', 'o'}, ',', vim.diagnostic.open_float) +vim.keymap.set({'n', 'x', 'o', 'i'}, '', "up") +