Formatting

This commit is contained in:
pancakes 2025-07-29 00:00:03 +10:00
parent d6cb5c683f
commit 51c960f95a
Signed by: pancakes
SSH key fingerprint: SHA256:yrp4c4hhaPoPG07fb4QyQIgAdlbUdsJvUAydJEWnfTw
6 changed files with 494 additions and 415 deletions

View file

@ -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"

View file

@ -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
}
}

View file

@ -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": "<tt>{calendar}</tt>",
"calendar": {
"format": {
"today": "<b><u>{}</u></b>"
}
}
},
"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": "<span foreground='red'><sup></sup></span>",
"none": "",
"dnd-notification": "<span foreground='red'><sup></sup></span>",
"dnd-none": "",
"inhibited-notification": "<span foreground='red'><sup></sup></span>",
"inhibited-none": "",
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span>",
"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": "<tt>{calendar}</tt>",
"calendar": {
"format": {
"today": "<b><u>{}</u></b>"
}
}
},
"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": "<span foreground='red'><sup></sup></span>",
"none": "",
"dnd-notification": "<span foreground='red'><sup></sup></span>",
"dnd-none": "",
"inhibited-notification": "<span foreground='red'><sup></sup></span>",
"inhibited-none": "",
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span>",
"dnd-inhibited-none": ""
},
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw",
"tooltip-format": "Notifications",
"escape": true
}
}

View file

@ -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;
}

View file

@ -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"

View file

@ -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"