Formatting
This commit is contained in:
parent
d6cb5c683f
commit
51c960f95a
6 changed files with 494 additions and 415 deletions
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
Loading…
Add table
Reference in a new issue