diff --git a/helix/dot-config/helix/languages.toml b/helix/dot-config/helix/languages.toml index 7342e67..b252bd0 100644 --- a/helix/dot-config/helix/languages.toml +++ b/helix/dot-config/helix/languages.toml @@ -4,10 +4,10 @@ auto-format = true [[language]] name = "xml" -file-types = [ "xml", "svg", "xsd", "xslt", "xsl", "ui" ] +file-types = ["xml", "svg", "xsd", "xslt", "xsl", "ui"] auto-format = true formatter = { command = "xmllint", args = ["--format", "-"] } -language-servers = [ "xml" ] +language-servers = ["xml"] [language-server.xml] command = "lemminx" diff --git a/niri/dot-config/niri/config.kdl b/niri/dot-config/niri/config.kdl index 021d585..c1c605a 100644 --- a/niri/dot-config/niri/config.kdl +++ b/niri/dot-config/niri/config.kdl @@ -1,7 +1,6 @@ debug { disable-cursor-plane } - input { touchpad { tap @@ -12,50 +11,41 @@ input { scroll-method "two-finger" disabled-on-external-mouse } - mouse { accel-profile "flat" } } - // You can configure outputs by their name, which you can find // by running `niri msg outputs` while inside a niri instance. - output "eDP-1" { scale 1.5 transform "normal" - // position x=1280 y=0 + // position x=1280 y=0 } - output "LG Electronics LG ULTRAGEAR 404NTCZ0R931" { scale 1.5 variable-refresh-rate on-demand=true } - layout { gaps 10 - center-focused-column "on-overflow" always-center-single-column - preset-column-widths { proportion 0.33333 proportion 0.5 proportion 0.66667 } - - default-column-width { proportion 0.5; } - + default-column-width { + proportion 0.5 + } focus-ring { off } - border { width 2 active-color "#bb9af7" inactive-color "#414868" } - shadow { on softness 30 @@ -63,7 +53,6 @@ layout { offset x=0 y=5 color "#0007" } - tab-indicator { place-within-column gap 4 @@ -71,20 +60,16 @@ layout { gaps-between-tabs 4 corner-radius 5 } - background-color "transparent" } - hotkey-overlay { skip-at-startup } - overview { workspace-shadow { off } } - // Utilities spawn-at-startup "/usr/lib/polkit-kde-authentication-agent-1" spawn-at-startup "swayidle" "-w" @@ -96,152 +81,115 @@ spawn-at-startup "udiskie" spawn-at-startup "wl-paste" "--watch" "cliphist" "store" spawn-at-startup "cliphist" "wipe" spawn-at-startup "flatpak" "run" "it.mijorus.smile" "--start-hidden" - environment { CLIPHIST_MAX_ITEMS "20" ELECTRON_OZONE_PLATFORM_HINT "auto" PROTON_ENABLE_WAYLAND "1" TERMINAL "kitty" } - cursor { xcursor-theme "Adwaita" xcursor-size 24 } - workspace "web" workspace "chat" workspace "dev" workspace "games" - prefer-no-csd - // You can change the path where screenshots are saved. // A ~ at the front will be expanded to the home directory. // The path is formatted with strftime(3) to give you the screenshot date and time. screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" - // Window rules let you adjust behavior for individual windows. // Find more information on the wiki: // https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules - // Make windows open floating window-rule { - match app-id=r#"^it\.mijorus\.smile$"# - + match app-id="^it\\.mijorus\\.smile$" open-floating true } - // Open the Firefox picture-in-picture player as floating by default. window-rule { - match app-id=r#"firefox"# title="^Picture-in-Picture$" - + match app-id="firefox" title="^Picture-in-Picture$" open-floating true } - // Block out windows from screen capture window-rule { - match app-id=r#"discord"# - + match app-id="discord" block-out-from "screencast" } - // Display Steam notifications in corner of the screen window-rule { - match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"# - + match app-id="steam" title="^notificationtoasts_\\d+_desktop$" default-floating-position x=0 y=0 relative-to="bottom-right" } - // Open windows in web workspace window-rule { - match app-id=r#"firefox$"# at-startup=true - match app-id=r#"thunderbird$"# - + match app-id="firefox$" at-startup=true + match app-id="thunderbird$" open-on-workspace "web" } - // Open windows in chat workspace window-rule { match app-id="discord" - open-on-workspace "chat" } - // Open windows in games workspace window-rule { match app-id="gamescope" - match app-id=r#"PrismLauncher$"# + match app-id="PrismLauncher$" match app-id="steam" - open-on-workspace "games" } - // Dont auto focus window-rule { match app-id="steam" - open-focused false } - // Maximize at startup window-rule { - match app-id=r#"firefox$"# at-startup=true + match app-id="firefox$" at-startup=true match app-id="discord" at-startup=true match app-id="steam" at-startup=true - open-maximized true } - // Enable rounded corners for all windows. window-rule { geometry-corner-radius 5 clip-to-geometry true } - // Indicate screencasted windows with red colors. window-rule { match is-window-cast-target=true - border { active-color "#ff0000" inactive-color "#aa0000" } - shadow { color "#aa0000" } - tab-indicator { active-color "#ff0000" inactive-color "#aa0000" } } - // Enable shadows on launcher and notifications layer-rule { match namespace="^launcher$" - shadow { on } - geometry-corner-radius 5 } - layer-rule { - match namespace=r#"^wpaperd-"# - + match namespace="^wpaperd-" place-within-backdrop true } - // Block out mako notifications from screencasts. layer-rule { match namespace="swaync-notification-window" - block-out-from "screencast" } - binds { // Keys consist of modifiers separated by + signs, followed by an XKB key name // in the end. To find an XKB name for a particular key, you may use a program @@ -249,85 +197,168 @@ binds { // // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt // when running as a winit window. - // Mod-Shift-/, which is usually the same as Mod-?, // shows a list of important hotkeys. - Mod+Shift+Slash { show-hotkey-overlay; } - + Mod+Shift+Slash { + show-hotkey-overlay + } // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+Return { spawn "kitty"; } - Mod+D { spawn "fuzzel"; } - Mod+V hotkey-overlay-title="Manage clipboard" { spawn "sh" "-c" "cliphist list | fuzzel --dmenu --placeholder clipboard --with-nth 2 | cliphist decode | wl-copy"; } - Super+Alt+L { spawn "swaylock"; } - Mod+E { spawn "kitty" "-e" "yazi"; } - Mod+Shift+E { spawn "nautilus"; } - Mod+Shift+D { spawn "emacsclient" "--alternate-editor=" "--create-frame"; } - Mod+Period { spawn "flatpak" "run" "it.mijorus.smile"; } - Control+Shift+Escape { spawn "kitty" "-e" "btop"; } - + Mod+Return { + spawn "kitty" + } + Mod+D { + spawn "fuzzel" + } + Mod+V hotkey-overlay-title="Manage clipboard" { + spawn "sh" "-c" "cliphist list | fuzzel --dmenu --placeholder clipboard --with-nth 2 | cliphist decode | wl-copy" + } + Super+Alt+L { + spawn "swaylock" + } + Mod+E { + spawn "kitty" "-e" "yazi" + } + Mod+Shift+E { + spawn "nautilus" + } + Mod+Shift+D { + spawn "emacsclient" "--alternate-editor=" "--create-frame" + } + Mod+Period { + spawn "flatpak" "run" "it.mijorus.smile" + } + Control+Shift+Escape { + spawn "kitty" "-e" "btop" + } // You can also use a shell. Do this if you need pipes, multiple commands, etc. // Note: the entire command goes as a single argument in the end. // Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; } - // Volume keys mappings for PipeWire & WirePlumber. - XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } - XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } - XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } - - Alt+F4 { close-window; } - Mod+Shift+Q { close-window; } - - Mod+O { toggle-overview; } - - Mod+H { focus-column-left; } - Mod+J { focus-window-down-or-top; } - Mod+K { focus-window-up-or-bottom; } - Mod+L { focus-column-right; } - - Mod+Shift+H { move-column-left; } - Mod+Shift+J { move-window-down; } - Mod+Shift+K { move-window-up; } - Mod+Shift+L { move-column-right; } - - Mod+Home { focus-column-first; } - Mod+End { focus-column-last; } - Mod+Shift+Home { move-column-to-first; } - Mod+Shift+End { move-column-to-last; } - - Mod+Page_Down { focus-workspace-down; } - Mod+Page_Up { focus-workspace-up; } - Mod+U { focus-workspace-down; } - Mod+I { focus-workspace-up; } - Mod+Ctrl+Page_Down { move-column-to-workspace-down; } - Mod+Ctrl+Page_Up { move-column-to-workspace-up; } - Mod+Ctrl+U { move-column-to-workspace-down; } - Mod+Ctrl+I { move-column-to-workspace-up; } - - Mod+Shift+Page_Down { move-workspace-down; } - Mod+Shift+Page_Up { move-workspace-up; } - Mod+Shift+U { move-workspace-down; } - Mod+Shift+I { move-workspace-up; } - + XF86AudioRaiseVolume allow-when-locked=true { + spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+" + } + XF86AudioLowerVolume allow-when-locked=true { + spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-" + } + XF86AudioMute allow-when-locked=true { + spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" + } + XF86AudioMicMute allow-when-locked=true { + spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" + } + Alt+F4 { + close-window + } + Mod+Shift+Q { + close-window + } + Mod+O { + toggle-overview + } + Mod+H { + focus-column-left + } + Mod+J { + focus-window-down-or-top + } + Mod+K { + focus-window-up-or-bottom + } + Mod+L { + focus-column-right + } + Mod+Shift+H { + move-column-left + } + Mod+Shift+J { + move-window-down + } + Mod+Shift+K { + move-window-up + } + Mod+Shift+L { + move-column-right + } + Mod+Home { + focus-column-first + } + Mod+End { + focus-column-last + } + Mod+Shift+Home { + move-column-to-first + } + Mod+Shift+End { + move-column-to-last + } + Mod+Page_Down { + focus-workspace-down + } + Mod+Page_Up { + focus-workspace-up + } + Mod+U { + focus-workspace-down + } + Mod+I { + focus-workspace-up + } + Mod+Ctrl+Page_Down { + move-column-to-workspace-down + } + Mod+Ctrl+Page_Up { + move-column-to-workspace-up + } + Mod+Ctrl+U { + move-column-to-workspace-down + } + Mod+Ctrl+I { + move-column-to-workspace-up + } + Mod+Shift+Page_Down { + move-workspace-down + } + Mod+Shift+Page_Up { + move-workspace-up + } + Mod+Shift+U { + move-workspace-down + } + Mod+Shift+I { + move-workspace-up + } // You can bind mouse wheel scroll ticks using the following syntax. // These binds will change direction based on the natural-scroll setting. // // To avoid scrolling through workspaces really fast, you can use // the cooldown-ms property. The bind will be rate-limited to this value. // You can set a cooldown on any bind, but it's most useful for the wheel. - 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+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 + } // 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+Shift+WheelScrollDown { + focus-column-right + } + Mod+Shift+WheelScrollUp { + focus-column-left + } // Similarly, you can bind touchpad scroll "ticks". // Touchpad scrolling is continuous, so for these binds it is split into // discrete intervals. @@ -336,7 +367,6 @@ binds { // touchpads by default. // Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; } // Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; } - // You can refer to workspaces by index. However, keep in mind that // niri is a dynamic workspace system, so these commands are kind of // "best effort". Trying to refer to a workspace index bigger than @@ -345,56 +375,123 @@ binds { // // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on // will all refer to the 3rd workspace. - 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-column-to-workspace 1; } - Mod+Shift+2 { move-column-to-workspace 2; } - Mod+Shift+3 { move-column-to-workspace 3; } - Mod+Shift+4 { move-column-to-workspace 4; } - Mod+Shift+5 { move-column-to-workspace 5; } - Mod+Shift+6 { move-column-to-workspace 6; } - Mod+Shift+7 { move-column-to-workspace 7; } - Mod+Shift+8 { move-column-to-workspace 8; } - Mod+Shift+9 { move-column-to-workspace 9; } - - Mod+Ctrl+1 { move-window-to-workspace 1; } - Mod+Ctrl+2 { move-window-to-workspace 2; } - Mod+Ctrl+3 { move-window-to-workspace 3; } - Mod+Ctrl+4 { move-window-to-workspace 4; } - Mod+Ctrl+5 { move-window-to-workspace 5; } - Mod+Ctrl+6 { move-window-to-workspace 6; } - Mod+Ctrl+7 { move-window-to-workspace 7; } - Mod+Ctrl+8 { move-window-to-workspace 8; } - Mod+Ctrl+9 { move-window-to-workspace 9; } - + 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-column-to-workspace 1 + } + Mod+Shift+2 { + move-column-to-workspace 2 + } + Mod+Shift+3 { + move-column-to-workspace 3 + } + Mod+Shift+4 { + move-column-to-workspace 4 + } + Mod+Shift+5 { + move-column-to-workspace 5 + } + Mod+Shift+6 { + move-column-to-workspace 6 + } + Mod+Shift+7 { + move-column-to-workspace 7 + } + Mod+Shift+8 { + move-column-to-workspace 8 + } + Mod+Shift+9 { + move-column-to-workspace 9 + } + Mod+Ctrl+1 { + move-window-to-workspace 1 + } + Mod+Ctrl+2 { + move-window-to-workspace 2 + } + Mod+Ctrl+3 { + move-window-to-workspace 3 + } + Mod+Ctrl+4 { + move-window-to-workspace 4 + } + Mod+Ctrl+5 { + move-window-to-workspace 5 + } + Mod+Ctrl+6 { + move-window-to-workspace 6 + } + Mod+Ctrl+7 { + move-window-to-workspace 7 + } + Mod+Ctrl+8 { + move-window-to-workspace 8 + } + Mod+Ctrl+9 { + move-window-to-workspace 9 + } // Switches focus between the current and the previous workspace. - Mod+Tab { focus-workspace-previous; } - + Mod+Tab { + 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+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } - - Mod+R { switch-preset-column-width; } - Mod+Shift+R { switch-preset-window-height; } - Mod+Ctrl+R { reset-window-height; } - Mod+F { maximize-column; } - Mod+Shift+F { fullscreen-window; } - + Mod+BracketLeft { + consume-or-expel-window-left + } + Mod+BracketRight { + consume-or-expel-window-right + } + Mod+R { + switch-preset-column-width + } + 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; } - + Mod+Ctrl+F { + expand-column-to-available-width + } + Mod+C { + center-column + } // Finer width adjustments. // This command can also: // * set width in pixels: "1000" @@ -403,22 +500,32 @@ binds { // * 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+Equal { set-column-width "+10%"; } - + Mod+Minus { + set-column-width "-10%" + } + Mod+Equal { + 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%"; } - + 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+B { toggle-window-floating; } - Mod+Shift+B { switch-focus-between-floating-and-tiling; } - + Mod+B { + toggle-window-floating + } + Mod+Shift+B { + 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; } - + 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. @@ -426,15 +533,24 @@ binds { // 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+Print { screenshot-screen; } - Alt+Print { screenshot-window; } - - Mod+Alt+Return { set-dynamic-cast-window; } - Mod+Alt+Shift+Return { set-dynamic-cast-monitor; } - Mod+Alt+Shift+Backspace { clear-dynamic-cast-target; } - + Print { + screenshot + } + Shift+Print { + screenshot-screen + } + Alt+Print { + screenshot-window + } + Mod+Alt+Return { + set-dynamic-cast-window + } + Mod+Alt+Shift+Return { + set-dynamic-cast-monitor + } + Mod+Alt+Shift+Backspace { + clear-dynamic-cast-target + } // 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. @@ -443,13 +559,20 @@ binds { // // 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; } - + Mod+Escape allow-inhibiting=false { + toggle-keyboard-shortcuts-inhibit + } // The quit action will show a confirmation dialog to avoid accidental exits. - Mod+Shift+Escape { quit; } - Ctrl+Alt+Delete { quit; } - + Mod+Shift+Escape { + quit + } + Ctrl+Alt+Delete { + quit + } // Powers off the monitors. To turn them back on, do any input like // moving the mouse or pressing any other key. - Mod+Shift+P { power-off-monitors; } + Mod+Shift+P { + power-off-monitors + } } + diff --git a/niri/dot-config/waybar/config.jsonc b/niri/dot-config/waybar/config.jsonc index 232dd61..10c9f5b 100644 --- a/niri/dot-config/waybar/config.jsonc +++ b/niri/dot-config/waybar/config.jsonc @@ -1,103 +1,107 @@ // -*- mode: jsonc -*- { - "layer": "top", - "spacing": 8, - "modules-left": [ - "niri/workspaces", - "privacy", - "niri/window" - ], - "modules-center": [ - "clock" - ], - "modules-right": [ - "tray", - "idle_inhibitor", - "battery", - "power-profiles-daemon", - "wireplumber", - "bluetooth", - "network", - "custom/notifications" - ], - "niri/workspaces": { - "format": "{icon}", - "format-icons": { - "web": "󰈹", - "chat": "󰭹", - "dev": "", - "games": "󰊖" - } - }, - "privacy": { - "icon-size": 12 - }, - "clock": { - "format": "{:%a %H:%M}", - "tooltip-format": "{calendar}", - "calendar": { - "format": { - "today": "{}" - } - } - }, - "tray": { - "spacing": 4, - "reverse-direction": true - }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, - "battery": { - "format": "{icon} {capacity}%" - }, - "power-profiles-daemon": { - "format-icons": { - "default": "", - "performance": "", - "balanced": "", - "power-saver": "" - } - }, - "wireplumber": { - "format": "{icon} {volume}%", - "format-muted": " Muted", - "format-icons": ["", "", ""] - }, - "bluetooth": { - "format-disabled": "", - "format-connected": " {num_connections}" - }, - "network": { - "format-ethernet": "󰛳 Wired", - "format-wifi": " {essid}", - "format-disconnected": "󰅛 Disconnected", - "tooltip-format-ethernet": "Interface: {ifname}\nIP: {ipaddr}\nGateway: {gwaddr}", - "tooltip-format-wifi": "{frequency}GHz {signalStrength}%\n\nInterface: {ifname}\nIP: {ipaddr}\nGateway: {gwaddr}", - "tooltip-format-disconnected": "" - }, - "custom/notifications": { - "exec": "swaync-client -swb", - "exec-if": "which swaync-client", - "return-type": "json", - "format": "{icon}", - "format-icons": { - "notification": "", - "none": "", - "dnd-notification": "", - "dnd-none": "", - "inhibited-notification": "", - "inhibited-none": "", - "dnd-inhibited-notification": "", - "dnd-inhibited-none": "" - }, - "on-click": "swaync-client -t -sw", - "on-click-right": "swaync-client -d -sw", - "tooltip-format": "Notifications", - "escape": true + "layer": "top", + "spacing": 8, + "modules-left": [ + "niri/workspaces", + "privacy", + "niri/window" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + "tray", + "idle_inhibitor", + "battery", + "power-profiles-daemon", + "wireplumber", + "bluetooth", + "network", + "custom/notifications" + ], + "niri/workspaces": { + "format": "{icon}", + "format-icons": { + "web": "󰈹", + "chat": "󰭹", + "dev": "", + "games": "󰊖" } -} + }, + "privacy": { + "icon-size": 12 + }, + "clock": { + "format": "{:%a %H:%M}", + "tooltip-format": "{calendar}", + "calendar": { + "format": { + "today": "{}" + } + } + }, + "tray": { + "spacing": 4, + "reverse-direction": true + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "battery": { + "format": "{icon} {capacity}%" + }, + "power-profiles-daemon": { + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "" + } + }, + "wireplumber": { + "format": "{icon} {volume}%", + "format-muted": " Muted", + "format-icons": [ + "", + "", + "" + ] + }, + "bluetooth": { + "format-disabled": "", + "format-connected": " {num_connections}" + }, + "network": { + "format-ethernet": "󰛳 Wired", + "format-wifi": " {essid}", + "format-disconnected": "󰅛 Disconnected", + "tooltip-format-ethernet": "Interface: {ifname}\nIP: {ipaddr}\nGateway: {gwaddr}", + "tooltip-format-wifi": "{frequency}GHz {signalStrength}%\n\nInterface: {ifname}\nIP: {ipaddr}\nGateway: {gwaddr}", + "tooltip-format-disconnected": "" + }, + "custom/notifications": { + "exec": "swaync-client -swb", + "exec-if": "which swaync-client", + "return-type": "json", + "format": "{icon}", + "format-icons": { + "notification": "", + "none": "", + "dnd-notification": "", + "dnd-none": "", + "inhibited-notification": "", + "inhibited-none": "", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": "" + }, + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "tooltip-format": "Notifications", + "escape": true + } +} \ No newline at end of file diff --git a/niri/dot-config/waybar/style.css b/niri/dot-config/waybar/style.css index 8ad17d9..dbb2355 100644 --- a/niri/dot-config/waybar/style.css +++ b/niri/dot-config/waybar/style.css @@ -1,46 +1,46 @@ * { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: FontAwesome, Inter, sans-serif; - font-size: 12px; + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Inter, sans-serif; + font-size: 12px; } window#waybar { - background-color: rgba(26, 27, 38, 0.95); - color: #c0caf5; - transition-property: background-color; - transition-duration: .5s; + background-color: rgba(26, 27, 38, 0.95); + color: #c0caf5; + transition-property: background-color; + transition-duration: .5s; } button { - /* Avoid rounded borders under each button name */ - border: none; - border-radius: 0; - padding: 0 4px; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; + padding: 0 4px; } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ button:hover { - background: inherit; - box-shadow: inset 0 0 transparent; + background: inherit; + box-shadow: inset 0 0 transparent; } #workspaces button { - background-color: transparent; - color: #ffffff; + background-color: transparent; + color: #ffffff; } #workspaces button:hover { - background: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.2); } #workspaces button.focused { - background-color: #bb9af7; - color: #15161e; + background-color: #bb9af7; + color: #15161e; } #workspaces button.urgent { - background-color: #e0af68; - color: #15161e; + background-color: #e0af68; + color: #15161e; } #clock, @@ -51,80 +51,81 @@ button:hover { #idle_inhibitor, #power-profiles-daemon, #custom-notifications { - padding: 0 4px; - min-width: 1.5em; - color: #c0caf5; + padding: 0 4px; + min-width: 1.5em; + color: #c0caf5; } #window, #workspaces { - margin: 0 4px; + margin: 0 4px; } /* If workspaces is the leftmost module, omit left margin */ -.modules-left > widget:first-child > #workspaces { - margin-left: 0; +.modules-left>widget:first-child>#workspaces { + margin-left: 0; } #clock { - font-weight: bold; + font-weight: bold; } -#battery.charging, #battery.plugged { - background-color: #9ece6a; - color: #15161e; +#battery.charging, +#battery.plugged { + background-color: #9ece6a; + color: #15161e; } #battery.critical:not(.charging) { - background-color: #f7768e; - color: #15161e; + background-color: #f7768e; + color: #15161e; } #power-profiles-daemon.performance { - background-color: #e0af68; - color: #15161e; + background-color: #e0af68; + color: #15161e; } #power-profiles-daemon.power-saver { - background-color: #9ece6a; - color: #15161e; + background-color: #9ece6a; + color: #15161e; } label:focus { - background-color: #000000; + background-color: #000000; } #network.disconnected { - background-color: #f7768e; - color: #15161e; + background-color: #f7768e; + color: #15161e; } #wireplumber.muted { - background-color: #f7768e; - color: #15161e; + background-color: #f7768e; + color: #15161e; } -#tray > .passive { - -gtk-icon-effect: dim; +#tray>.passive { + -gtk-icon-effect: dim; } -#tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #e0af68; - color: #15161e; +#tray>.needs-attention { + -gtk-icon-effect: highlight; + background-color: #e0af68; + color: #15161e; } #idle_inhibitor.activated { - background-color: #e0af68; - color: #15161e; + background-color: #e0af68; + color: #15161e; } #privacy { - padding: 0; + padding: 0; } #privacy-item { - padding: 0 4px; - background-color: #e0af68; - color: #15161e; -} + padding: 0 4px; + background-color: #e0af68; + color: #15161e; +} \ No newline at end of file diff --git a/yazi/dot-config/yazi/keymap.toml b/yazi/dot-config/yazi/keymap.toml index 609f979..bef5cb4 100644 --- a/yazi/dot-config/yazi/keymap.toml +++ b/yazi/dot-config/yazi/keymap.toml @@ -1,49 +1,49 @@ [[mgr.prepend_keymap]] -on = [ "g", "C" ] +on = ["g", "C"] run = "cd ~/config" desc = "Go to dotfiles" [[mgr.prepend_keymap]] -on = [ "g", "d" ] +on = ["g", "d"] run = "cd ~/Documents" desc = "Go to Documents" [[mgr.prepend_keymap]] -on = [ "g", "D" ] +on = ["g", "D"] run = "cd ~/Downloads" desc = "Go to Downloads" [[mgr.prepend_keymap]] -on = [ "g", "g", "s" ] +on = ["g", "g", "s"] run = "cd ~/.local/share/Steam/steamapps/common" desc = "Go to steamapps" [[mgr.prepend_keymap]] -on = [ "g", "m" ] +on = ["g", "m"] run = "cd ~/Music" desc = "Go to Music" [[mgr.prepend_keymap]] -on = [ "g", "P" ] +on = ["g", "P"] run = "cd ~/Projects" desc = "Go to Projects" [[mgr.prepend_keymap]] -on = [ "g", "p", "p" ] +on = ["g", "p", "p"] run = "cd ~/Pictures" desc = "Go to Pictures" [[mgr.prepend_keymap]] -on = [ "g", "p", "s" ] +on = ["g", "p", "s"] run = "cd ~/Pictures/Screenshots" desc = "Go to Screenshots" [[mgr.prepend_keymap]] -on = [ "g", "v", "v" ] +on = ["g", "v", "v"] run = "cd ~/Videos" desc = "Go to Videos" [[mgr.prepend_keymap]] -on = [ "g", "v", "r" ] +on = ["g", "v", "r"] run = "cd ~/Videos/Recording" desc = "Go to Recordings" diff --git a/yazi/dot-config/yazi/keymap.toml-1753599537122504 b/yazi/dot-config/yazi/keymap.toml-1753599537122504 deleted file mode 100644 index e5abde3..0000000 --- a/yazi/dot-config/yazi/keymap.toml-1753599537122504 +++ /dev/null @@ -1,49 +0,0 @@ -[[manager.prepend_keymap]] -on = [ "g", "C" ] -run = "cd ~/config" -desc = "Go to dotfiles" - -[[manager.prepend_keymap]] -on = [ "g", "d" ] -run = "cd ~/Documents" -desc = "Go to Documents" - -[[manager.prepend_keymap]] -on = [ "g", "D" ] -run = "cd ~/Downloads" -desc = "Go to Downloads" - -[[manager.prepend_keymap]] -on = [ "g", "g", "s" ] -run = "cd ~/.local/share/Steam/steamapps/common" -desc = "Go to steamapps" - -[[manager.prepend_keymap]] -on = [ "g", "m" ] -run = "cd ~/Music" -desc = "Go to Music" - -[[manager.prepend_keymap]] -on = [ "g", "P" ] -run = "cd ~/Projects" -desc = "Go to Projects" - -[[manager.prepend_keymap]] -on = [ "g", "p", "p" ] -run = "cd ~/Pictures" -desc = "Go to Pictures" - -[[manager.prepend_keymap]] -on = [ "g", "p", "s" ] -run = "cd ~/Pictures/Screenshots" -desc = "Go to Screenshots" - -[[manager.prepend_keymap]] -on = [ "g", "v", "v" ] -run = "cd ~/Videos" -desc = "Go to Videos" - -[[manager.prepend_keymap]] -on = [ "g", "v", "r" ] -run = "cd ~/Videos/Recording" -desc = "Go to Recordings"