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"