diff --git a/.dotter/global.toml b/.dotter/global.toml index e1a70cd..a137e13 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -21,6 +21,7 @@ depends = [] "configs/mako" = "~/.config/mako" "configs/mise" = "~/.config/mise" "configs/mpv" = "~/.config/mpv" +"configs/niri" = "~/.config/niri" "configs/nvim" = "~/.config/nvim" "configs/rofi" = "~/.config/rofi" "configs/swappy" = "~/.config/swappy" diff --git a/configs/hypr/almighty/hyprland.conf b/configs/hypr/almighty/hyprland.conf index fa8857d..759261a 100644 --- a/configs/hypr/almighty/hyprland.conf +++ b/configs/hypr/almighty/hyprland.conf @@ -7,3 +7,17 @@ monitorv2 { supports_wide_color = true supports_hdr = true } + +monitorv2 { + output = desc:LG Electronics LG ULTRAWIDE 406NTRL99958 + mode = 3440x1440@159.96 + position = auto + supports_wide_color = 1 + supports_hdr = 1 +} + +workspace = 1, monitor:DP-1, persistent:true +workspace = 2, monitor:DP-1, persistent:true +workspace = 3, monitor:DP-1, persistent:true +workspace = 4, monitor:DP-1, persistent:true +workspace = 5, monitor:DP-1, persistent:true diff --git a/configs/hypr/base/hyprland.conf b/configs/hypr/base/hyprland.conf index f66a0a4..0ac45f0 100644 --- a/configs/hypr/base/hyprland.conf +++ b/configs/hypr/base/hyprland.conf @@ -72,13 +72,20 @@ general { layout = master } -# decoration { +decoration { # rounding = 2 # drop_shadow = true # shadow_range = 4 # shadow_render_power = 3 # col.shadow = rgba($baseAlphaee) -# } + blur { + enabled = false + } + + shadow { + enabled = false + } +} animations { enabled = true @@ -118,6 +125,7 @@ misc { mouse_move_focuses_monitor = false animate_manual_resizes = false + vrr = 0 } # ── Layouts ─────────────────────────────────────────────────────────── diff --git a/configs/niri/config.kdl b/configs/niri/config.kdl new file mode 100644 index 0000000..7e27977 --- /dev/null +++ b/configs/niri/config.kdl @@ -0,0 +1,444 @@ +input { + keyboard { + xkb { + layout "latam" + options "caps:escape" + } + // Enable numlock on startup, omitting this setting disables it. + numlock + } + // Next sections include libinput settings. + // Omitting settings disables them, or leaves them at their default values. + // All commented-out settings here are examples, not defaults. + touchpad { + // off + tap + // dwt + // dwtp + // drag false + // drag-lock + natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "two-finger" + // disabled-on-external-mouse + } + mouse { + // off + // natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "no-scroll" + + } + trackpoint { + // off + // natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "on-button-down" + // scroll-button 273 + // scroll-button-lock + // middle-emulation + + } + // warp-mouse-to-focus + focus-follows-mouse +} +output "DP-1" { + variable-refresh-rate on-demand=true +} +layout { + gaps 10 + always-center-single-column + center-focused-column "never" + preset-column-widths { + // The default preset widths are 1/3, 1/2 and 2/3 of the output. + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + preset-window-heights { + + } + default-column-width { + + } + focus-ring { + // Uncomment this line to disable the focus ring. + // off + // How many logical pixels the ring extends out from the windows. + width 2 + active-color "#7fc8ff" + inactive-color "#505050" + } +} +spawn-at-startup "brave" +// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup: +// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell" +hotkey-overlay { + skip-at-startup +} +// Uncomment this line to ask the clients to omit their client-side decorations if possible. +// If the client will specifically ask for CSD, the request will be honored. +// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. +// This option will also fix border/focus ring drawing behind some semitransparent windows. +// After enabling or disabling this, you need to restart the apps for this to take effect. +// prefer-no-csd +screenshot-path null +animations { + // Uncomment to turn off all animations. + // off + + // Slow down all animations by this factor. Values below 1 speed them up instead. + // slowdown 3.0 + +} +window-rule { + // This regular expression is intentionally made as specific as possible, + // since this is the default config, and we want no false positives. + // You can get away with just app-id="wezterm" if you want. + match app-id="^org\\.wezfurlong\\.wezterm$" + default-column-width { + + } +} +window-rule { + match app-id="firefox$" title="^Picture-in-Picture$" + open-floating true +} +window-rule { + match app-id="^org\\.keepassxc\\.KeePassXC$" + match app-id="^org\\.gnome\\.World\\.Secrets$" + // block-out-from "screen-capture" + // Use this instead if you want them visible on third-party screenshot tools. + block-out-from "screencast" +} +window-rule { + match app-id="brave-browser" + match at-startup=true + default-column-width { + proportion 0.75 + } +} +window-rule { + geometry-corner-radius 4 + clip-to-geometry true +} +binds { + Mod+Shift+Slash { + show-hotkey-overlay + } + Mod+Return hotkey-overlay-title="Open a Terminal: kitty" { + spawn "kitty" + } + Mod+D hotkey-overlay-title="Run an Application: Rofi" { + spawn "rofi" "-show" "drun" "-run-command" "uwsm app -- {cmd}" + } + XF86AudioRaiseVolume allow-when-locked=true { + spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+" + } + XF86AudioLowerVolume allow-when-locked=true { + spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-" + } + XF86AudioMute allow-when-locked=true { + spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + } + XF86AudioMicMute allow-when-locked=true { + spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + } + XF86MonBrightnessUp allow-when-locked=true { + spawn "brightnessctl" "--class=backlight" "set" "+10%" + } + XF86MonBrightnessDown allow-when-locked=true { + spawn "brightnessctl" "--class=backlight" "set" "10%-" + } + // Open/close the Overview: a zoomed-out view of workspaces and windows. + // You can also move the mouse into the top-left hot corner, + // or do a four-finger swipe up on a touchpad. + Mod+A repeat=false { + toggle-overview + } + Mod+Shift+Q repeat=false { + close-window + } + Mod+Left { + focus-column-left + } + Mod+Down { + focus-window-or-workspace-down + } + Mod+Up { + focus-window-or-workspace-up + } + Mod+Right { + focus-column-right + } + Mod+H { + focus-column-left + } + Mod+J { + focus-window-or-workspace-down + } + Mod+K { + focus-window-or-workspace-up + } + Mod+L { + focus-column-right + } + Mod+Shift+Left { + move-column-left + } + Mod+Shift+Down { + move-window-down-or-to-workspace-down + } + Mod+Shift+Up { + move-window-up-or-to-workspace-up + } + Mod+Shift+Right { + move-column-right + } + Mod+Shift+H { + move-column-left + } + Mod+Shift+J { + move-window-down-or-to-workspace-down + } + Mod+Shift+K { + move-window-up-or-to-workspace-up + } + Mod+Shift+L { + move-column-right + } + Mod+Home { + focus-column-first + } + Mod+End { + focus-column-last + } + Mod+Ctrl+Home { + move-column-to-first + } + Mod+Ctrl+End { + move-column-to-last + } + Mod+WheelScrollDown cooldown-ms=150 { + focus-workspace-down + } + Mod+WheelScrollUp cooldown-ms=150 { + focus-workspace-up + } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { + move-column-to-workspace-down + } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { + move-column-to-workspace-up + } + Mod+WheelScrollRight { + focus-column-right + } + Mod+WheelScrollLeft { + focus-column-left + } + Mod+Ctrl+WheelScrollRight { + move-column-right + } + Mod+Ctrl+WheelScrollLeft { + move-column-left + } + // Usually scrolling up and down with Shift in applications results in + // horizontal scrolling; these binds replicate that. + Mod+Shift+WheelScrollDown { + focus-column-right + } + Mod+Shift+WheelScrollUp { + focus-column-left + } + Mod+Ctrl+Shift+WheelScrollDown { + move-column-right + } + Mod+Ctrl+Shift+WheelScrollUp { + move-column-left + } + // Similarly, you can bind touchpad scroll "ticks". + // Touchpad scrolling is continuous, so for these binds it is split into + // discrete intervals. + // These binds are also affected by touchpad's natural-scroll, so these + // example binds are "inverted", since we have natural-scroll enabled for + // touchpads by default. + // Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; } + // Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; } + Mod+1 { + focus-workspace 1 + } + Mod+2 { + focus-workspace 2 + } + Mod+3 { + focus-workspace 3 + } + Mod+4 { + focus-workspace 4 + } + Mod+5 { + focus-workspace 5 + } + Mod+6 { + focus-workspace 6 + } + Mod+7 { + focus-workspace 7 + } + Mod+8 { + focus-workspace 8 + } + Mod+9 { + focus-workspace 9 + } + Mod+Shift+1 { + move-window-to-workspace 1 + } + Mod+Shift+2 { + move-window-to-workspace 2 + } + Mod+Shift+3 { + move-window-to-workspace 3 + } + Mod+Shift+4 { + move-window-to-workspace 4 + } + Mod+Shift+5 { + move-window-to-workspace 5 + } + Mod+Shift+6 { + move-window-to-workspace 6 + } + Mod+Shift+7 { + move-window-to-workspace 7 + } + Mod+Shift+8 { + move-window-to-workspace 8 + } + Mod+Shift+9 { + move-window-to-workspace 9 + } + // Switches focus between the current and the previous workspace. + Mod+Bar { + focus-workspace-previous + } + // The following binds move the focused window in and out of a column. + // If the window is alone, they will consume it into the nearby column to the side. + // If the window is already in a column, they will expel it out. + Mod+BraceLeft { + consume-or-expel-window-left + } + Mod+BraceRight { + consume-or-expel-window-right + } + // Consume one window from the right to the bottom of the focused column. + Mod+Comma { + consume-window-into-column + } + // Expel the bottom window from the focused column to the right. + Mod+Period { + expel-window-from-column + } + Mod+R { + switch-preset-column-width + } + // Cycling through the presets in reverse order is also possible. + // Mod+R { switch-preset-column-width-back; } + Mod+Shift+R { + switch-preset-window-height + } + Mod+Ctrl+R { + reset-window-height + } + Mod+F { + maximize-column + } + Mod+Shift+F { + fullscreen-window + } + // Expand the focused column to space not taken up by other fully visible columns. + // Makes the column "fill the rest of the space". + Mod+Ctrl+F { + expand-column-to-available-width + } + Mod+C { + center-column + } + // Center all fully visible columns on screen. + Mod+Ctrl+C { + center-visible-columns + } + // Finer width adjustments. + // This command can also: + // * set width in pixels: "1000" + // * adjust width in pixels: "-5" or "+5" + // * set width as a percentage of screen width: "25%" + // * adjust width as a percentage of screen width: "-10%" or "+10%" + // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, + // set-column-width "100" will make the column occupy 200 physical screen pixels. + Mod+Minus { + set-column-width "-10%" + } + Mod+Plus { + set-column-width "+10%" + } + // Finer height adjustments when in column with other windows. + Mod+Shift+Minus { + set-window-height "-10%" + } + Mod+Shift+Equal { + set-window-height "+10%" + } + // Move the focused window between the floating and the tiling layout. + Mod+Shift+Space { + toggle-window-floating + } + Mod+Space { + switch-focus-between-floating-and-tiling + } + // Toggle tabbed column display mode. + // Windows in this column will appear as vertical tabs, + // rather than stacked on top of each other. + Mod+W { + toggle-column-tabbed-display + } + // Actions to switch layouts. + // Note: if you uncomment these, make sure you do NOT have + // a matching layout switch hotkey configured in xkb options above. + // Having both at once on the same hotkey will break the switching, + // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). + // Mod+Space { switch-layout "next"; } + // Mod+Shift+Space { switch-layout "prev"; } + Print { + screenshot + } + Shift+Ctrl+Print { + screenshot-screen + } + Shift+Print { + screenshot-window + } + // Applications such as remote-desktop clients and software KVM switches may + // request that niri stops processing the keyboard shortcuts defined here + // so they may, for example, forward the key presses as-is to a remote machine. + // It's a good idea to bind an escape hatch to toggle the inhibitor, + // so a buggy application can't hold your session hostage. + // + // The allow-inhibiting=false property can be applied to other binds as well, + // which ensures niri always processes them, even when an inhibitor is active. + Mod+Escape allow-inhibiting=false { + toggle-keyboard-shortcuts-inhibit + } + // The quit action will show a confirmation dialog to avoid accidental exits. + Mod+Shift+E { + quit + } + Ctrl+Alt+Delete { + quit + } +} + diff --git a/configs/nvim/lua/aleidk/plugins/formatter.lua b/configs/nvim/lua/aleidk/plugins/formatter.lua index be07723..f7add11 100644 --- a/configs/nvim/lua/aleidk/plugins/formatter.lua +++ b/configs/nvim/lua/aleidk/plugins/formatter.lua @@ -16,6 +16,7 @@ return { go = { "gofumpt", "goimports_reviser", "golines" }, html = { "djlint", "prettierd", stop_after_first = true }, kotlin = { "ktlint" }, + kdl = { "kdlfmt" }, htmldjango = { "djlint", stop_after_first = true }, javascript = { "biome" }, javascriptreact = { "biome" }, diff --git a/configs/waybar/config.jsonc b/configs/waybar/config.jsonc index 163c48e..6c52cb8 100644 --- a/configs/waybar/config.jsonc +++ b/configs/waybar/config.jsonc @@ -9,7 +9,7 @@ "margin-left": 10, "margin-right": 10, - "modules-left": ["hyprland/workspaces"], + "modules-left": ["niri/workspaces", "niri/window"], "modules-center": ["clock"], "modules-right": [ "tray", @@ -23,6 +23,21 @@ ], "hyprland/workspaces": { + "all-outputs": false, + "format": "{icon}", + "format-icons": { + "1": "", + "2": "", + "3": "", + "9": "", + "10": "󰌳", + "default": "" + }, + "sort-by-number": true, + "active-only": false + }, + + "niri/workspaces": { "all-outputs": false, "format": "{icon}", "format-icons": { @@ -38,6 +53,16 @@ "sort-by-number": true, "active-only": false }, + + "niri/window": { + "format": "{app_id}: {title}", + "rewrite": { + "(.*): (.*)": "$2", + "brave-browser: (.*) - Brave": "🌎 $1", + "Kitty: (.*)": " $1" + } + }, + "backlight": { "format": "󱩖 {percent}% ", "device": "intel_backlight", diff --git a/configs/waybar/style.css b/configs/waybar/style.css index 9345d25..edf8db6 100644 --- a/configs/waybar/style.css +++ b/configs/waybar/style.css @@ -14,6 +14,12 @@ border-radius:5px; } +#window { + border-radius: 20px; + padding-left: 10px; + padding-right: 10px; +} + #workspaces button{ padding: .25rem .5rem; margin-right: .5rem;