diff --git a/hypr/hyprland.lua b/hypr/hyprland.lua index f3ba324..fd570f2 100644 --- a/hypr/hyprland.lua +++ b/hypr/hyprland.lua @@ -1,26 +1,4 @@ - --- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- AUTOGENERATED HYPRLAND CONFIG. -- --- EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS. -- --- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - --- This is an example Hyprland Lua config file. --- Refer to the wiki for more information. --- https://wiki.hypr.land/Configuring/Start/ - --- Please note not all available settings / options are set here. --- For a full list, see the wiki - --- You can (and should!!) split this configuration into multiple files --- Create your files separately and then require them like this: --- require("myColors") - - ------------------- ----- MONITORS ---- ------------------- - +-- env vars hl.env("XDG_CURRENT_DESKTOP", "Hyprland") hl.env("XDG_SESSION_TYPE", "wayland") hl.env("XDG_SESSION_DESKTOP", "Hyprland") @@ -29,7 +7,12 @@ hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia") hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto") hl.env("QT_QPA_PLATFORM", "wayland;xcb") hl.env("QT_QPA_PLATFORMTHEME", "gtk3") +hl.env("XCURSOR_SIZE", "24") +hl.env("HYPRCURSOR_SIZE", "24") +hl.env("DISPLAY", ":0") +hl.env("USE_X11", "false") +-- monitors hl.monitor({ output = "HDMI-A-2", mode = "2560x1440@143.99899", @@ -44,57 +27,23 @@ hl.monitor({ scale = "auto", }) -local terminal = "alacritty" -local fileManager = "thunar" -local menu = "fuzzel" +local home = os.getenv("HOME") -hl.on("hyprland.start", function () +hl.on("hyprland.start", function () -- gentoo specific - hl.exec_cmd("/usr/libexec/hyprpolkitagent") + hl.exec_cmd("/usr/libexec/hyprpolkitagent") hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") + hl.exec_cmd("hyprpm reload") -- set up plugins + + hl.exec_cmd("hyprctl setcursor Adwaita 24") -- set cursor to be normal + hl.exec_cmd("wl-paste --watch cliphist store") + hl.exec_cmd("mako") hl.exec_cmd("awww-daemon") - hl.exec_cmd("mako") - hl.exec_cmd("/home/frosty/.config/hypr/awww_randomize.sh /home/frosty/.wallpapers/2k") - hl.exec_cmd("wl-paste --watch cliphist store") - hl.exec_cmd("hyprctl setcursor Adwaita 24") - hl.exec_cmd("qs -d -p ~/.config/quickshell/shell.qml") + hl.exec_cmd(home .. "/.config/hypr/awww_randomize.sh " .. home .. "/.wallpapers/2k") + hl.exec_cmd("qs -d -p " .. home .. "/.config/quickshell/shell.qml") end) - -------------------------------- ----- ENVIRONMENT VARIABLES ---- -------------------------------- - --- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/ - -hl.env("XCURSOR_SIZE", "24") -hl.env("HYPRCURSOR_SIZE", "24") -hl.env("DISPLAY", ":0") -hl.env("USE_X11", "false") ------------------------ ------ PERMISSIONS ----- ------------------------ - --- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/ --- Please note permission changes here require a Hyprland restart and are not applied on-the-fly --- for security reasons - --- hl.config({ --- ecosystem = { --- enforce_permissions = true, --- }, --- }) - --- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow") --- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow") --- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow") - - ------------------------ ----- LOOK AND FEEL ---- ------------------------ - -- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/ hl.config({ general = { @@ -111,17 +60,13 @@ hl.config({ resize_on_border = true, no_focus_fallback = true, allow_tearing = true, - layout = "scrolling", + layout = "hy3", }, decoration = { rounding = 10, rounding_power = 2.5, - -- Change transparency of focused and unfocused windows - active_opacity = 1.0, - inactive_opacity = 1.0, - shadow = { enabled = false, range = 4, @@ -159,6 +104,18 @@ hl.config({ mouse_move_enables_dpms = true, key_press_enables_dpms = true }, + + dwindle = { + preserve_split = true, -- You probably want this + }, + + master = { + new_status = "master", + }, + + scrolling = { + fullscreen_on_one_column = false, + }, }) -- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/ @@ -189,74 +146,9 @@ hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = " hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" }) hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" }) --- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/ --- "Smart gaps" / "No gaps when only" --- uncomment all if you wish to use that. --- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 }) --- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 }) --- hl.window_rule({ --- name = "no-gaps-wtv1", --- match = { float = false, workspace = "w[tv1]" }, --- border_size = 0, --- rounding = 0, --- }) --- hl.window_rule({ --- name = "no-gaps-f1", --- match = { float = false, workspace = "f[1]" }, --- border_size = 0, --- rounding = 0, --- }) - --- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more -hl.config({ - dwindle = { - preserve_split = true, -- You probably want this - }, -}) - --- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more -hl.config({ - master = { - new_status = "master", - }, -}) - --- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more -hl.config({ - scrolling = { - fullscreen_on_one_column = false, - }, -}) - ----------------- ----- MISC ---- ----------------- - ---------------- ----- INPUT ---- ---------------- - -hl.config({ - -}) - -hl.gesture({ - fingers = 3, - direction = "horizontal", - action = "workspace" -}) - --- Example per-device config --- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more -hl.device({ - name = "epic-mouse-v1", - sensitivity = -0.5, -}) - - ---------------------- ----- KEYBINDINGS ---- ---------------------- +local terminal = "alacritty" +local fileManager = "thunar" +local menu = "fuzzel" local mainMod = "SUPER" -- Sets "Windows" key as main modifier @@ -272,14 +164,25 @@ hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen_state({ internal="1", client hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.window.close()) -- change focus -hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" })) -hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" })) -hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" })) -hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" })) +hl.bind(mainMod .. " + LEFT", hl.dsp.focus({ direction = "left" })) +hl.bind(mainMod .. " + RIGHT", hl.dsp.focus({ direction = "right" })) +hl.bind(mainMod .. " + UP", hl.dsp.focus({ direction = "up" })) +hl.bind(mainMod .. " + DOWN", hl.dsp.focus({ direction = "down" })) -- move workspaces hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.window.swap({ direction = "left"})) hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "right"})) +hl.bind(mainMod .. " + SHIFT + UP", hl.dsp.window.swap({ direction = "up"})) +hl.bind(mainMod .. " + SHIFT + DOWN", hl.dsp.window.swap({ direction = "down"})) + +-- hy3 settings +local hy3 = hl.plugin.hy3 +hl.bind(mainMod .. " + V", hy3.make_group("v")) +hl.bind(mainMod .. " + H", hy3.make_group("h")) +hl.bind(mainMod .. " + T", hy3.make_group("tab")) + +hl.bind(mainMod .. " + CTRL + LEFT", hy3.focus_tab({ direction = "left" })) +hl.bind(mainMod .. " + CTRL + RIGHT", hy3.focus_tab({ direction = "right" })) -- Switch workspaces with mainMod + [0-9] -- Move active window to a workspace with mainMod + SHIFT + [0-9] @@ -289,11 +192,10 @@ for i = 1, 10 do hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i })) end +-- scratchpad hl.bind(mainMod .. " + MINUS", hl.dsp.workspace.toggle_special("magic")) hl.bind(mainMod .. " + SHIFT + MINUS", hl.dsp.window.move({ workspace = "special:magic" })) - - -- Scroll through existing workspaces with mainMod + scroll hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" })) hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" })) @@ -317,23 +219,13 @@ hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = tr hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true }) --------------------------------- ----- WINDOWS AND WORKSPACES ---- --------------------------------- - --- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/ --- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/ - --- Example window rules that are useful - local suppressMaximizeRule = hl.window_rule({ -- Ignore maximize requests from all apps. You'll probably like this. name = "suppress-maximize-events", match = { class = ".*" }, - suppress_event = "maximize", }) --- suppressMaximizeRule:set_enabled(false) +suppressMaximizeRule:set_enabled(true) hl.window_rule({ -- Fix some dragging issues with XWayland @@ -350,33 +242,4 @@ hl.window_rule({ no_focus = true, }) --- Layer rules also return a handle. --- local overlayLayerRule = hl.layer_rule({ --- name = "no-anim-overlay", --- match = { namespace = "^my-overlay$" }, --- no_anim = true, --- }) --- overlayLayerRule:set_enabled(false) - --- Hyprland-run windowrule -hl.window_rule({ - name = "move-hyprland-run", - match = { class = "hyprland-run" }, - - move = "20 monitor_h-120", - float = true, -}) - -hl.layer_rule({ - match = {namespace = "quickshell"}, - blur = true, - blur_popups = true -}) - -hl.layer_rule({ - match = { class = "fuzzel"}, - blur = true, -}) - - require("rules") diff --git a/hypr/rules.lua b/hypr/rules.lua index 2525eca..957ce99 100644 --- a/hypr/rules.lua +++ b/hypr/rules.lua @@ -1,3 +1,4 @@ +-- floating hl.window_rule({match = {title = "^(Open File)(.*)$" }, center = true}) hl.window_rule({match = {title = "^(Open File)(.*)$" }, float = true}) hl.window_rule({match = {title = "^(Select a File)(.*)$" }, center = true}) @@ -17,6 +18,17 @@ hl.window_rule({match = {title = "^(.*)(wants to save)$" }, cen hl.window_rule({match = {title = "^(.*)(wants to save)$" }, float = true}) hl.window_rule({match = {title = "^(.*)(wants to open)$" }, center = true}) hl.window_rule({match = {title = "^(.*)(wants to open)$" }, float = true}) - hl.window_rule({match = {class = "hyprland-share-picker" }, float = true}) hl.window_rule({match = {title = "(.*)(Settings)(.*)$" },float = true}) + +-- aesthetics +hl.layer_rule({ + match = {namespace = "quickshell"}, + blur = true, + blur_popups = true +}) + +hl.layer_rule({ + match = { class = "fuzzel"}, + blur = true, +}) diff --git a/zshrc b/zshrc index 438b68a..610bf42 100644 --- a/zshrc +++ b/zshrc @@ -3,6 +3,8 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] fi export ZSH=$HOME/.oh-my-zsh +export EDITOR="nvim" +export VISUAL="nvim-qt" ZSH_THEME="powerlevel10k/powerlevel10k" CASE_SENSITIVE="true"