niri, waybar, swaylock

This commit is contained in:
Matt Nish-Lapidus 2025-01-30 11:25:14 -05:00
parent f5a0090ea0
commit 41a49f8c2a
12 changed files with 383 additions and 246 deletions

View file

@ -1,4 +1,4 @@
(defwindow example
(defwindow mainbar
:monitor 0
:geometry (geometry :x "0%"
:y "20px"
@ -9,4 +9,4 @@
:reserve (struts :distance "40px" :side "top")
:windowtype "dock"
:wm-ignore false
"example content")
)

View file

@ -1,5 +1,5 @@
#!/usr/bin/env fish
function flakeup --description 'update flake sources'
sudo nix flake update --flake /home/emenel/source/nixos-config
nix flake update --flake /home/emenel/source/nixos-config
end

View file

@ -0,0 +1,25 @@
# Halloy config.
#
# For a complete list of available options,
# please visit https://halloy.squidowl.org/configuration/index.html
theme = "oxocarbon"
[font]
family = "Jetbrains-Mono"
size = 18
[servers.liberachat]
nickname = "emenel"
nick_password_file = "/home/emenel/.config/halloy/password"
server = "irc.libera.chat"
channels = ["#halloy", "#shirakumo", "#guix", "#nonguix", "#msg", "#systemcrafters"]
[servers.oftc]
nickname = "emenel"
nick_password_file = "/home/emenel/.config/halloy/password"
server = "irc.oftc.net"
channels = ["#suckless"]
[buffer.channel.topic]
enabled = true

View file

@ -0,0 +1,11 @@
name = "oxocarbon"
[palette]
background = "#161616"
text = "#dde1e6"
action = "#525252"
accent = "#33b1ff"
alert = "#ff7eb6"
error = "#e46876"
info = "#82cfff"
success = "#be95ff"

View file

@ -3,6 +3,10 @@
// Check the wiki for a full description of the configuration:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
debug {
wait-for-frame-completion-before-queueing
}
input {
keyboard {
xkb {
@ -12,16 +16,16 @@ input {
touchpad {
natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "two-finger"
// disabled-on-external-mouse
scroll-method "two-finger"
dwt
tap-button-map "left-right-middle"
click-method "clickfinger"
}
mouse {
natural-scroll
accel-speed 0.2
accel-profile "flat"
accel-speed 0.1
accel-profile "adaptive"
}
workspace-auto-back-and-forth
@ -34,23 +38,35 @@ output "eDP-1" {
transform "normal"
}
output "DP-3" {
output "PNP(BNQ) BenQ PD2725U N2N00414019" {
mode "3840x2160@59.997"
background-color "#000000"
scale 1.1
scale 1
transform "normal"
}
environment {
DISPLAY ":0"
//QT_QPA_PLATFORM "wayland"
QT_QPA_PLATFORM "wayland"
//XDG_CURRENT_DESKTOP "niri"
//XDG_SESSION_TYPE "wayland"
MOZ_ENABLE_WAYLAND "1"
}
/-switch-events {
lid-close { spawn "swaylock"; }
}
cursor {
xcursor-theme "Bibata-Modern-Classic"
xcursor-size 24
hide-after-inactive-ms 30000
}
layout {
gaps 10
center-focused-column "never"
always-center-single-column
preset-column-widths {
proportion 0.33333
proportion 0.5
@ -58,27 +74,34 @@ layout {
}
default-column-width { proportion 0.5; }
focus-ring {
off
//active-color "#d8bfffee"
active-gradient from="#d8bfffdd" to="#BD93FF99" angle=0 in="srgb-linear"
width 2
}
border {
active-color "#424242"
inactive-color "#323232"
width 1
//active-gradient from="#ffbb66aa" to="#ffc880aa" angle=45 in="oklch longer hue"
inactive-gradient from="#333333" to="#000000" angle=180 in="srgb-linear"
active-color "#000"
//inactive-color "#323232"
width 2
}
}
prefer-no-csd
workspace "main"
workspace "scratchpad"
// prefer-no-csd
// spawn-at-startup "mako"
// spawn-at-startup "fuzzel"
// spawn-at-startup "eww" "daemon"
spawn-at-startup "maestral_qt"
spawn-at-startup "xwayland-satellite" ":0"
spawn-at-startup "clipse" "-listen"
spawn-at-startup "waybar"
spawn-at-startup "eww" "daemon"
spawn-at-startup "swayosd-server"
spawn-at-startup "bitwarden"
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
@ -87,18 +110,19 @@ animations {
}
window-rule {
match app-id="plexamp"
match app-id="Calculator"
match app-id="Color Picker"
match app-id="Volume Control"
open-floating true
}
window-rule {
match app-id="Plexamp"
match app-id="scratchpad"
open-on-workspace "scratchpad"
open-floating true
}
// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
// Work around WezTerm initial configure bug
// by setting an empty default-column-width.
window-rule {
match app-id=r#"^org\.wezfurlong\.wezterm$"#
default-column-width {}
}
// Open the Firefox picture-in-picture player as floating by default.
window-rule {
@ -110,25 +134,34 @@ window-rule {
}
window-rule {
geometry-corner-radius 12
geometry-corner-radius 8
clip-to-geometry true
}
/-window-rule {
match is-active=false
opacity 0.75
}
binds {
// shows a list of important hotkeys.
Mod+Shift+Slash { show-hotkey-overlay; }
// Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+T { spawn "wezterm"; }
Mod+E { spawn "emacsclient"; }
Mod+Space { spawn "fuzzel"; }
Super+Alt+L { spawn "swaylock"; }
// Example volume keys mappings for PipeWire & WirePlumber.
// The allow-when-locked=true property makes them work even when the session is locked.
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"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "raise"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "lower"; }
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
XF86AudioMicMute allow-when-locked=true { spawn "swayosd-client" "--input-volume" "mute-toggle"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "swayosd-client" "--brightness" "raise"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "swayosd-client" "--brightness" "lower"; }
Mod+Q { close-window; }
@ -185,8 +218,8 @@ binds {
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+Alt+Down { move-column-to-workspace-down; }
Mod+Alt+Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
@ -279,9 +312,9 @@ binds {
Mod+Shift+Equal { set-window-height "+10%"; }
// Move the focused window between the floating and the tiling layout.
Mod+X { toggle-window-floating; }
Mod+Ctrl+X { toggle-window-floating; }
// Mod+Shift+X { switch-focus-between-floating-and-tiling; }
Mod+Shift+X { focus-workspace "scratchpad"; }
Mod+X { focus-workspace "scratchpad"; }
// Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have

View file

@ -1,51 +1,104 @@
{
"modules-left": ["clock", "niri/workspaces", "custom/media"],
"modules-center": ["niri/window"],
"modules-right": ["tray", "pulseaudio", "idle_inhibitor", "custom/power"],
"modules-left": [
"clock",
"niri/workspaces",
"wlr/taskbar",
"mpris"
],
"modules-center": [
"niri/window"
],
"modules-right": [
"tray",
"cpu",
"memory",
"network",
"wireplumber",
"power-profiles-daemon",
"upower"
],
"network": {
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ifname} ",
"format-disconnected": "",
"max-length": 50,
"on-click": "kitty -e 'nmtui'"
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"memory": {
"interval": 30,
"format": "{used:0.1f}G/{total:0.1f}G ",
"on-click": "gnome-system-monitor"
},
"cpu": {
"interval": 10,
"format": "{}% ",
"max-length": 10,
"on-click": "gnome-system-monitor"
},
"network": {
"format-wifi": "{essid} ",
"format-ethernet": "{ifname} ",
"format-disconnected": "",
"max-length": 50,
"on-click": "wezterm -e 'nmtui'"
},
"tray": {
"icon-size": 20,
"spacing": 10
},
"clock": {
"format": "{:%a %d %b %Y %I:%M}",
"on-click": "gnome-calendar",
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "",
"on-click": "helvum",
"format-icons": [
"",
"",
""
],
"on-click": "pavucontrol"
},
"mpris": {
"format": "{player_icon} {dynamic}",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"dynamic-len": 100,
"player-icons": {
"default": "▶",
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
},
"status-icons": {
"paused": "⏸"
},
"tray": {
"icon-size": 15,
"spacing": 10
},
"wlr/taskbar": {
"format": "{icon}",
"icon-size": 20,
"icon-theme": "Numix-Circle",
"tooltip-format": "{title}",
"on-click": "activate",
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
},
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}",
"on-click": "gnome-calendar"
},
"pulseaudio": {
"format": "{volume}% {icon} ",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": "0% {icon} ",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/power": {
"format": " ",
"on-click": "wlogout"
}
"ignore-list": [
"Signal"
],
"rewrite": {
"Firefox Web Browser": "Firefox",
"Foot Server": "Terminal"
}
},
"niri/workspaces": {
"format": "{icon}",
"format-icons": {
"main": "",
"scratchpad": "",
}
}
}

View file

@ -1,6 +1,6 @@
* {
border: none;
font-size: 14px;
font-size: 12pt;
font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF" ;
min-height: 25px;
}
@ -10,28 +10,26 @@ window#waybar {
margin: 5px;
}
#custom-logo {
padding: 0 10px;
}
.modules-right {
padding-left: 5px;
border-radius: 15px 0 0 15px;
margin-top: 2px;
background: #000000;
color: #ccc;
}
.modules-center {
padding: 0 15px;
margin-top: 2px;
border-radius: 15px 15px 15px 15px;
background: #000000;
color: #ccc;
}
.modules-left {
border-radius: 0 15px 15px 0;
margin-top: 2px;
background: #000000;
color: #ccc;
padding-right: 5px;
}
#network {
padding: 0 10px 0 15px;
}
#battery,
@ -40,7 +38,7 @@ window#waybar {
#custom-powerDraw,
#bluetooth,
#pulseaudio,
#network,
#wireplumber,
#disk,
#memory,
#backlight,
@ -53,10 +51,7 @@ window#waybar {
#window,
#workspaces,
#clock {
padding: 0 5px;
}
#pulseaudio {
padding-top: 3px;
padding: 0 20px;
}
#temperature.critical,
@ -65,11 +60,8 @@ window#waybar {
padding-top: 0;
}
#clock{
color: #5fd1fa;
color: #d8bfff;
}
#battery.charging {
@ -92,10 +84,30 @@ window#waybar {
animation-direction: alternate;
}
#mpris {
margin-left: 15px;
}
#workspaces button {
color: #666;
}
#workspaces button.empty {
color: #222;
}
#workspaces button.focused
{
color: #ccc;
}
#taskbar button.active {
background: #333;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
to {
background-color: #ffffff;
color: #000000;
}
}

View file

@ -43,7 +43,7 @@ local workspace_switcher = wezterm.plugin.require("https://github.com/MLFlexer/s
config.enable_wayland = false;
config.front_end = "WebGpu";
config.font_size = 13
config.font_size = 14
config.font = wezterm.font {
family = 'JetBrains Mono',
weight = 'Medium'
@ -74,7 +74,7 @@ config.background = {
}
}
-- config.window_decorations = "TITLE|RESIZE"
config.window_decorations = "RESIZE"
config.window_padding = {
left = 12,