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 :monitor 0
:geometry (geometry :x "0%" :geometry (geometry :x "0%"
:y "20px" :y "20px"
@ -9,4 +9,4 @@
:reserve (struts :distance "40px" :side "top") :reserve (struts :distance "40px" :side "top")
:windowtype "dock" :windowtype "dock"
:wm-ignore false :wm-ignore false
"example content") )

View file

@ -1,5 +1,5 @@
#!/usr/bin/env fish #!/usr/bin/env fish
function flakeup --description 'update flake sources' 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 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: // Check the wiki for a full description of the configuration:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Overview // https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
debug {
wait-for-frame-completion-before-queueing
}
input { input {
keyboard { keyboard {
xkb { xkb {
@ -12,16 +16,16 @@ input {
touchpad { touchpad {
natural-scroll natural-scroll
// accel-speed 0.2 scroll-method "two-finger"
// accel-profile "flat" dwt
// scroll-method "two-finger" tap-button-map "left-right-middle"
// disabled-on-external-mouse click-method "clickfinger"
} }
mouse { mouse {
natural-scroll natural-scroll
accel-speed 0.2 accel-speed 0.1
accel-profile "flat" accel-profile "adaptive"
} }
workspace-auto-back-and-forth workspace-auto-back-and-forth
@ -34,23 +38,35 @@ output "eDP-1" {
transform "normal" transform "normal"
} }
output "DP-3" { output "PNP(BNQ) BenQ PD2725U N2N00414019" {
mode "3840x2160@59.997" mode "3840x2160@59.997"
background-color "#000000" background-color "#000000"
scale 1.1 scale 1
transform "normal" transform "normal"
} }
environment { environment {
DISPLAY ":0" DISPLAY ":0"
//QT_QPA_PLATFORM "wayland" QT_QPA_PLATFORM "wayland"
//XDG_CURRENT_DESKTOP "niri" //XDG_CURRENT_DESKTOP "niri"
//XDG_SESSION_TYPE "wayland" //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 { layout {
gaps 10 gaps 10
center-focused-column "never" center-focused-column "never"
always-center-single-column
preset-column-widths { preset-column-widths {
proportion 0.33333 proportion 0.33333
proportion 0.5 proportion 0.5
@ -58,27 +74,34 @@ layout {
} }
default-column-width { proportion 0.5; } default-column-width { proportion 0.5; }
focus-ring { focus-ring {
off //active-color "#d8bfffee"
active-gradient from="#d8bfffdd" to="#BD93FF99" angle=0 in="srgb-linear"
width 2
} }
border { border {
active-color "#424242" //active-gradient from="#ffbb66aa" to="#ffc880aa" angle=45 in="oklch longer hue"
inactive-color "#323232" inactive-gradient from="#333333" to="#000000" angle=180 in="srgb-linear"
width 1 active-color "#000"
//inactive-color "#323232"
width 2
} }
} }
prefer-no-csd
workspace "main" workspace "main"
workspace "scratchpad" workspace "scratchpad"
// prefer-no-csd spawn-at-startup "maestral_qt"
// spawn-at-startup "mako"
// spawn-at-startup "fuzzel"
// spawn-at-startup "eww" "daemon"
spawn-at-startup "xwayland-satellite" ":0" spawn-at-startup "xwayland-satellite" ":0"
spawn-at-startup "clipse" "-listen" 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" screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
@ -87,18 +110,19 @@ animations {
} }
window-rule { 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-on-workspace "scratchpad"
open-floating true 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. // Open the Firefox picture-in-picture player as floating by default.
window-rule { window-rule {
@ -110,25 +134,34 @@ window-rule {
} }
window-rule { window-rule {
geometry-corner-radius 12 geometry-corner-radius 8
clip-to-geometry true clip-to-geometry true
} }
/-window-rule {
match is-active=false
opacity 0.75
}
binds { binds {
// shows a list of important hotkeys. // 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. // Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+T { spawn "wezterm"; } Mod+T { spawn "wezterm"; }
Mod+E { spawn "emacsclient"; }
Mod+Space { spawn "fuzzel"; } Mod+Space { spawn "fuzzel"; }
Super+Alt+L { spawn "swaylock"; } Super+Alt+L { spawn "swaylock"; }
// Example volume keys mappings for PipeWire & WirePlumber. // Example volume keys mappings for PipeWire & WirePlumber.
// The allow-when-locked=true property makes them work even when the session is locked. // 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+"; } XF86AudioRaiseVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "raise"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } XF86AudioLowerVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "lower"; }
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "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; } Mod+Q { close-window; }
@ -185,8 +218,8 @@ binds {
Mod+Page_Up { focus-workspace-up; } Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; } Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; } Mod+I { focus-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; } Mod+Alt+Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; } Mod+Alt+Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; } Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; } Mod+Ctrl+I { move-column-to-workspace-up; }
@ -279,9 +312,9 @@ binds {
Mod+Shift+Equal { set-window-height "+10%"; } Mod+Shift+Equal { set-window-height "+10%"; }
// Move the focused window between the floating and the tiling layout. // 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 { switch-focus-between-floating-and-tiling; }
Mod+Shift+X { focus-workspace "scratchpad"; } Mod+X { focus-workspace "scratchpad"; }
// Actions to switch layouts. // Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have // 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-left": [
"modules-center": ["niri/window"], "clock",
"modules-right": ["tray", "pulseaudio", "idle_inhibitor", "custom/power"], "niri/workspaces",
"wlr/taskbar",
"mpris"
],
"modules-center": [
"niri/window"
],
"modules-right": [
"tray",
"cpu",
"memory",
"network",
"wireplumber",
"power-profiles-daemon",
"upower"
],
"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": { "network": {
"format-wifi": "{essid} ({signalStrength}%) ", "format-wifi": "{essid} ",
"format-ethernet": "{ifname} ", "format-ethernet": "{ifname} ",
"format-disconnected": "", "format-disconnected": "",
"max-length": 50, "max-length": 50,
"on-click": "kitty -e 'nmtui'" "on-click": "wezterm -e 'nmtui'"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
},
}, },
"tray": { "tray": {
"icon-size": 15, "icon-size": 20,
"spacing": 10 "spacing": 10
}, },
"clock": { "clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", "format": "{:%a %d %b %Y %I:%M}",
"format-alt": "{:%Y-%m-%d}", "on-click": "gnome-calendar",
"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": ["", "", ""]
}, },
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "",
"on-click": "helvum",
"format-icons": [
"",
"",
""
],
"on-click": "pavucontrol" "on-click": "pavucontrol"
}, },
"custom/power": { "mpris": {
"format": " ", "format": "{player_icon} {dynamic}",
"on-click": "wlogout" "format-paused": "{status_icon} <i>{dynamic}</i>",
"dynamic-len": 100,
"player-icons": {
"default": "▶",
},
"status-icons": {
"paused": "⏸"
},
},
"wlr/taskbar": {
"format": "{icon}",
"icon-size": 20,
"icon-theme": "Numix-Circle",
"tooltip-format": "{title}",
"on-click": "activate",
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
},
"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; border: none;
font-size: 14px; font-size: 12pt;
font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF" ; font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF" ;
min-height: 25px; min-height: 25px;
} }
@ -10,28 +10,26 @@ window#waybar {
margin: 5px; margin: 5px;
} }
#custom-logo {
padding: 0 10px;
}
.modules-right { .modules-right {
padding-left: 5px; padding-left: 5px;
border-radius: 15px 0 0 15px;
margin-top: 2px; margin-top: 2px;
background: #000000; color: #ccc;
} }
.modules-center { .modules-center {
padding: 0 15px; padding: 0 15px;
margin-top: 2px; margin-top: 2px;
border-radius: 15px 15px 15px 15px; color: #ccc;
background: #000000;
} }
.modules-left { .modules-left {
border-radius: 0 15px 15px 0;
margin-top: 2px; margin-top: 2px;
background: #000000; color: #ccc;
padding-right: 5px;
}
#network {
padding: 0 10px 0 15px;
} }
#battery, #battery,
@ -40,7 +38,7 @@ window#waybar {
#custom-powerDraw, #custom-powerDraw,
#bluetooth, #bluetooth,
#pulseaudio, #pulseaudio,
#network, #wireplumber,
#disk, #disk,
#memory, #memory,
#backlight, #backlight,
@ -53,10 +51,7 @@ window#waybar {
#window, #window,
#workspaces, #workspaces,
#clock { #clock {
padding: 0 5px; padding: 0 20px;
}
#pulseaudio {
padding-top: 3px;
} }
#temperature.critical, #temperature.critical,
@ -65,11 +60,8 @@ window#waybar {
padding-top: 0; padding-top: 0;
} }
#clock{ #clock{
color: #5fd1fa; color: #d8bfff;
} }
#battery.charging { #battery.charging {
@ -92,6 +84,26 @@ window#waybar {
animation-direction: alternate; 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 { @keyframes blink {
to { to {

View file

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

73
flake.lock generated
View file

@ -185,11 +185,11 @@
"zig": "zig" "zig": "zig"
}, },
"locked": { "locked": {
"lastModified": 1737779447, "lastModified": 1738250323,
"narHash": "sha256-+iVqQXAUJshUYgxOHfke54Ux4f/aggl1yub86KNx2tE=", "narHash": "sha256-Vk04Vlpp1TpSMT8uZpPS+b9inUQ6jwCSiZvzAAo9nrc=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "71e62f96fa4d286eda835048428d5be96e9f87c1", "rev": "a62b26cd2fac4d3685aeec6aeebeaf2ad5300fc9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -263,11 +263,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1737968762, "lastModified": 1738228963,
"narHash": "sha256-xiPARGKwocaMtv+U/rgi+h2g56CZZEmrcl7ldRaslq8=", "narHash": "sha256-Ee5hVHM7AWxaq7XJN6xiZztTZX8csdXernjqaTW5r9I=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e1ae908bcc30af792b0bb0a52e53b03d2577255e", "rev": "d963ed335b890a70ed53eecf14cdb21528eda9b8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -290,11 +290,11 @@
"uv2nix": "uv2nix" "uv2nix": "uv2nix"
}, },
"locked": { "locked": {
"lastModified": 1737961863, "lastModified": 1738047527,
"narHash": "sha256-OTkGVz75+CuRnwng+fwdv0LuRzDX5TesFMAN5uRjOaI=", "narHash": "sha256-LkiDTiWM+PupXSsw6SUs4PqIwgSAWZxnuPXAE6T7Z0Q=",
"owner": "isd-project", "owner": "isd-project",
"repo": "isd", "repo": "isd",
"rev": "9c1a95c5cc66fa847f46e5f76c71022daf5ec1fa", "rev": "369fd55c0e57079f5eca2291c013f74a5dcf3c10",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -303,30 +303,6 @@
"type": "github" "type": "github"
} }
}, },
"kmonad": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"dir": "nix",
"lastModified": 1737901920,
"narHash": "sha256-weoy9VW/QL8xVc63Wd/1PMB2acZxttMFp3d1Q08ss/0=",
"ref": "refs/heads/master",
"rev": "b527946b680ee2af25b99fc6bf9386cf175cc02f",
"revCount": 911,
"submodules": true,
"type": "git",
"url": "https://github.com/kmonad/kmonad?dir=nix"
},
"original": {
"dir": "nix",
"submodules": true,
"type": "git",
"url": "https://github.com/kmonad/kmonad?dir=nix"
}
},
"libpng": { "libpng": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -373,11 +349,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1737956052, "lastModified": 1738246636,
"narHash": "sha256-Gr+tkCSuhQ5NT04hv/PoHExCgbuqRA/GZQv+le40LNY=", "narHash": "sha256-01BwBqPiv0G9bx2oe2kyj1voSQJtc1nx+EWJZ1ZOirg=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "9b4d73f13a6906537faf01b5c5e5e2fee9dd602e", "rev": "a169e0335d2773edd31a1959a3ff4fca994a422a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -438,11 +414,11 @@
}, },
"nix-flatpak": { "nix-flatpak": {
"locked": { "locked": {
"lastModified": 1737806078, "lastModified": 1738175805,
"narHash": "sha256-FjgNPBLMCpmwtJT5LiQYkM2lDY+yAmW1ZN1Idx7QeDg=", "narHash": "sha256-fPjaARmK522JLJ7wxFebxG4eE/3HHSmuAA78iAZ+A7g=",
"owner": "gmodena", "owner": "gmodena",
"repo": "nix-flatpak", "repo": "nix-flatpak",
"rev": "83cc6a28afc4155fd3fe28274f6b5287f51ed2b6", "rev": "d4c75a33c4a7a16bf87cfd804fb5444a1ec53d49",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -516,11 +492,11 @@
}, },
"nixpkgs-unstable_2": { "nixpkgs-unstable_2": {
"locked": { "locked": {
"lastModified": 1737885589, "lastModified": 1738142207,
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=", "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8", "rev": "9d3ae807ebd2981d593cddd0080856873139aa40",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -532,11 +508,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1737746512, "lastModified": 1737885589,
"narHash": "sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU=", "narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "825479c345a7f806485b7f00dbe3abb50641b083", "rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -564,11 +540,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1737885640, "lastModified": 1738163270,
"narHash": "sha256-GFzPxJzTd1rPIVD4IW+GwJlyGwBDV1Tj5FLYwDQQ9sM=", "narHash": "sha256-B/7Y1v4y+msFFBW1JAdFjNvVthvNdJKiN6EGRPnqfno=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4e96537f163fad24ed9eb317798a79afc85b51b7", "rev": "59e618d90c065f55ae48446f307e8c09565d5ab0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -676,7 +652,6 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"home-manager-unstable": "home-manager-unstable", "home-manager-unstable": "home-manager-unstable",
"isd": "isd", "isd": "isd",
"kmonad": "kmonad",
"musnix": "musnix", "musnix": "musnix",
"niri": "niri", "niri": "niri",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",

View file

@ -17,10 +17,10 @@
nix-flatpak.url = "github:gmodena/nix-flatpak"; # unstable branch nix-flatpak.url = "github:gmodena/nix-flatpak"; # unstable branch
kmonad = { # kmonad = {
url = "git+https://github.com/kmonad/kmonad?submodules=1&dir=nix"; # url = "git+https://github.com/kmonad/kmonad?submodules=1&dir=nix";
inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; # };
musnix = { musnix = {
url = "github:musnix/musnix"; url = "github:musnix/musnix";
@ -39,6 +39,7 @@
ghostty = { ghostty = {
url = "github:ghostty-org/ghostty"; url = "github:ghostty-org/ghostty";
}; };
affinity-nix = { affinity-nix = {
@ -62,7 +63,7 @@
}; };
}; };
outputs = {nixpkgs, home-manager, sops-nix, kmonad, musnix, self, ... } @ inputs: outputs = {nixpkgs, home-manager, sops-nix, musnix, self, ... } @ inputs:
let let
inherit (self) outputs; inherit (self) outputs;
# Supported systems for your flake packages, shell, etc. # Supported systems for your flake packages, shell, etc.
@ -90,7 +91,7 @@
modules = [ modules = [
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
inputs.nix-flatpak.nixosModules.nix-flatpak inputs.nix-flatpak.nixosModules.nix-flatpak
kmonad.nixosModules.default # inputs.kmonad.nixosModules.default
musnix.nixosModules.musnix musnix.nixosModules.musnix
./system/eddie/configuration.nix ./system/eddie/configuration.nix
]; ];

View file

@ -120,8 +120,6 @@
serapeum serapeum
])) ]))
# fuzzel
kdlfmt kdlfmt
kdotool kdotool
ccl ccl
@ -129,7 +127,6 @@
gdu gdu
poppler_utils poppler_utils
editorconfig-core-c editorconfig-core-c
# clang-tools
cljfmt cljfmt
libxml2 libxml2
gdtoolkit_4 gdtoolkit_4
@ -146,7 +143,6 @@
libsecret libsecret
samba4Full samba4Full
shellcheck shellcheck
# waylandpp.dev
wayland-utils wayland-utils
libffi.dev libffi.dev
nodejs_18 nodejs_18
@ -158,9 +154,7 @@
ftgl ftgl
gperf gperf
numbat numbat
# libGLU
glpng glpng
# libGL
nurl nurl
freecad freecad
procs procs
@ -193,7 +187,6 @@
fishPlugins.forgit fishPlugins.forgit
fishPlugins.colored-man-pages fishPlugins.colored-man-pages
imgcat imgcat
via via
vial vial
bitwarden-cli bitwarden-cli
@ -201,22 +194,18 @@
tailscale tailscale
trayscale trayscale
font-manager font-manager
scribus scribus
pdfarranger pdfarranger
tdf tdf
pdfchain pdfchain
pdftk pdftk
ghostscript ghostscript
zathura zathura
gpu-viewer gpu-viewer
mesa-demos mesa-demos
gnomeExtensions.just-perfection gnomeExtensions.just-perfection
gnomeExtensions.dash-to-dock gnomeExtensions.dash-to-dock
# gnomeExtensions.solaar-extension
gnomeExtensions.paperwm gnomeExtensions.paperwm
gnomeExtensions.custom-hot-corners-extended gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.media-controls gnomeExtensions.media-controls
@ -226,9 +215,10 @@
gnome-software gnome-software
gnome-tweaks gnome-tweaks
gnome-photos gnome-photos
gpaste gnome-keyring
ulauncher ulauncher
unstable.nwg-look
soundconverter soundconverter
gtop gtop
wmctrl wmctrl
@ -238,6 +228,7 @@
whitesur-cursors whitesur-cursors
whitesur-icon-theme whitesur-icon-theme
bibata-cursors bibata-cursors
adwaita-qt
icloudpd icloudpd
squirreldisk squirreldisk
@ -259,14 +250,13 @@
wine = wineWowPackages.stagingFull; wine = wineWowPackages.stagingFull;
}) })
unstable.swayosd
spice spice
spice-gtk spice-gtk
spice-protocol spice-protocol
virt-viewer virt-viewer
virt-manager virt-manager
bfg-repo-cleaner bfg-repo-cleaner
# opensnitch
# opensnitch-ui
thunderbird-latest thunderbird-latest
emojify emojify
smile smile
@ -274,7 +264,7 @@
impression impression
zoom-us zoom-us
nyxt nyxt
ungoogled-chromium unstable.ungoogled-chromium
obsidian obsidian
vlc vlc
unstable.polychromatic unstable.polychromatic
@ -330,12 +320,13 @@
ardour ardour
parinfer-rust-emacs parinfer-rust-emacs
dockfmt dockfmt
impala
unstable.playerctl unstable.playerctl
mioctl mioctl
rmpc rmpc
unstable.door-knocker unstable.door-knocker
unstable.hyprpicker unstable.hyprpicker
unstable.halloy
# Audio plugins (LV2, VST2, VST3, LADSPA) # Audio plugins (LV2, VST2, VST3, LADSPA)
eq10q eq10q
@ -402,12 +393,24 @@
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
GSK_RENDERER = "ngl"; GSK_RENDERER = "ngl";
MOZ_ENABLE_WAYLAND = 1; MOZ_ENABLE_WAYLAND = 1;
DISPLAY = ":0"; };
pointerCursor = {
package = pkgs.bibata-cursors;
name = "Bibtata-Modern-Classic";
size = 24;
gtk.enable = true;
x11.enable = true;
}; };
stateVersion = "24.05"; stateVersion = "24.05";
}; };
# gtk.cursorTheme = {
# name = "Bibata-Modern-Classic";
# package = pkgs.bibata-cursors;
# };
fonts.fontconfig = { fonts.fontconfig = {
enable = true; enable = true;
}; };
@ -442,6 +445,24 @@
settings = { settings = {
main = { main = {
terminal = "${pkgs.wezterm}/bin/wezterm"; terminal = "${pkgs.wezterm}/bin/wezterm";
dpi-aware = true;
};
border = {
radius = 8;
width = 2;
};
colors = {
background="1e1e2edd";
text="cdd6f4ff";
prompt="bac2deff";
placeholder="7f849cff";
input="cdd6f4ff";
match="f5c2e7ff";
selection="585b70ff";
selection-text="cdd6f4ff";
selection-match="f5c2e7ff";
counter="7f849cff";
border="f5c2e7ff";
}; };
}; };
}; };
@ -475,15 +496,6 @@
sha256 = "sha256-Lv2XtP2x9dkIkUUjMBWVpAs/l55Ztu7gIjKYH6ZzK4s="; sha256 = "sha256-Lv2XtP2x9dkIkUUjMBWVpAs/l55Ztu7gIjKYH6ZzK4s=";
}; };
} }
# {
# name = "zellij.fish";
# src = pkgs.fetchFromGitHub {
# owner = "kpbaks";
# repo = "zellij.fish";
# rev = "0b2393b48b55a7f3b200b5a12ac0cf26444b7172";
# sha256 = "sha256-Nxo6usCI5tqLJ/CZ1YXtCFJ+piy1DGlzFIi9/HSgDIk=";
# };
# }
]; ];
}; };
starship = { starship = {
@ -494,9 +506,10 @@
msmtp.enable = true; msmtp.enable = true;
emacs = { emacs = {
enable = true; enable = true;
package = (pkgs.emacs.override { package = (pkgs.emacs29-pgtk.override {
withXwidgets = true;
withGTK3 = true; withGTK3 = true;
# withPGTK = true;
withXwidgets = true;
withNativeCompilation = true; withNativeCompilation = true;
withTreeSitter = true; withTreeSitter = true;
withImageMagick = true; withImageMagick = true;
@ -513,8 +526,8 @@
epkgs.nixfmt epkgs.nixfmt
epkgs.parinfer-rust-mode epkgs.parinfer-rust-mode
epkgs.tree-sitter-langs epkgs.tree-sitter-langs
epkgs.gpastel # epkgs.gpastel
epkgs.emacs-everywhere epkgs.pdf-tools
]; ];
}; };
ripgrep = { ripgrep = {
@ -532,12 +545,6 @@
enable = true; enable = true;
package = inputs.wezterm.packages.${pkgs.system}.default; package = inputs.wezterm.packages.${pkgs.system}.default;
}; };
# zellij = {
# enable = true;
# package = pkgs.unstable.zellij;
# enableFishIntegration = true;
# enableBashIntegration = true;
# };
bat = { bat = {
enable = true; enable = true;
}; };
@ -604,10 +611,10 @@
waybar = { waybar = {
enable = true; enable = true;
package = pkgs.unstable.waybar; package = pkgs.unstable.waybar;
systemd = { # systemd = {
enable = true; # enable = true;
# target = "graphical-session.target"; # # target = "graphical-session.target";
}; # };
}; };
eww = { eww = {
enable = true; enable = true;
@ -628,6 +635,10 @@
primary-color = "#333333"; primary-color = "#333333";
}; };
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
"org/gnome/shell/keybindings" = { "org/gnome/shell/keybindings" = {
shift-overview-up = ["disabled"]; shift-overview-up = ["disabled"];
shift-overview-down = ["disabled"]; shift-overview-down = ["disabled"];
@ -658,16 +669,30 @@
}; };
services = { services = {
swayidle = {
enable = true;
extraArgs = [ "-w" ];
timeouts = [
{ timeout = 60; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ timeout = 90; command = "${pkgs.systemd}/bin/systemctl suspend"; }
];
events = [
{ event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ event = "lock"; command = "lock"; }
];
};
playerctld = { playerctld = {
enable = true; enable = true;
package = pkgs.unstable.playerctl; package = pkgs.unstable.playerctl;
}; };
mako = { mako = {
enable = true; enable = true;
defaultTimeout = 10000;
}; };
flatpak.enable = true; flatpak.enable = true;
syncthing = { syncthing = {
enable = true; enable = true;
# tray.enable = true;
}; };
borgmatic = { borgmatic = {
enable = true; enable = true;
@ -678,7 +703,14 @@
emacs = { emacs = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
package = pkgs.emacs; package = (pkgs.emacs29-pgtk.override {
withGTK3 = true;
# withPGTK = true;
withXwidgets = true;
withNativeCompilation = true;
withTreeSitter = true;
withImageMagick = true;
});
socketActivation.enable = true; socketActivation.enable = true;
client = { client = {
enable = true; enable = true;
@ -708,30 +740,31 @@
MOZ_ENABLE_WAYLAND = 1; MOZ_ENABLE_WAYLAND = 1;
}; };
services = { services = {
syncthingtray = { # syncthingtray = {
Service.ExecStart = lib.mkForce "${pkgs.syncthingtray}/bin/syncthingtray --wait"; # Service.ExecStart = lib.mkForce "${pkgs.syncthingtray}/bin/syncthingtray --wait";
}; # };
ulauncher = { # ulauncher = {
Unit = { # Unit = {
Description = "Start Ulauncher"; # Description = "Start Ulauncher";
After = "graphical-session.target"; # After = "graphical-session.target";
}; # };
Install = { # Install = {
WantedBy = [ "graphical-session.target" ]; # WantedBy = [ "graphical-session.target" ];
}; # };
Service = { # Service = {
Restart = "always"; # Restart = "always";
RestartSec = 1; # RestartSec = 1;
ExecStart = "${pkgs.ulauncher}/bin/ulauncher --hide-window"; # ExecStart = "${pkgs.ulauncher}/bin/ulauncher --hide-window";
}; # };
}; # };
}; };
}; };
# moving files! # moving files!
xdg.configFile."halloy/config.toml".source = ../dotfiles/dot_config/halloy/config.toml;
xdg.configFile."waybar".source = ../dotfiles/dot_config/waybar; xdg.configFile."waybar".source = ../dotfiles/dot_config/waybar;
xdg.configFile."just/justfile".source = ../dotfiles/dot_config/just/justfile; xdg.configFile."just/justfile".source = ../dotfiles/dot_config/just/justfile;
xdg.configFile."starship.toml".source = ../dotfiles/dot_config/starship.toml; xdg.configFile."starship.toml".source = ../dotfiles/dot_config/starship.toml;
@ -756,28 +789,6 @@
xdg.configFile."emacs".enable = false; xdg.configFile."emacs".enable = false;
xdg.configFile."zellij/config.kdl".text = ''
theme "molokai-dark"
pane_frames false
default_shell "fish"
copy_on_select false
keybinds {
shared {
bind "Ctrl Alt Left" { GoToPreviousTab; }
bind "Ctrl Alt Right" { GoToNextTab; }
bind "Ctrl Alt Up" { FocusPreviousPane; }
bind "Ctrl Alt Down" { FocusNextPane; }
bind "Ctrl Enter" { NewPane "Down"; }
bind "Ctrl Shift Enter" { NewPane "Right"; }
}
locked {
bind "Ctrl t" { NewTab; }
bind "Ctrl w" { CloseTab; }
}
}
'';
home.file.".msmtprc".source = ../dotfiles/dot_msmtprc; home.file.".msmtprc".source = ../dotfiles/dot_msmtprc;
home.file.".mbsyncrc".source = ../dotfiles/dot_mbsyncrc; home.file.".mbsyncrc".source = ../dotfiles/dot_mbsyncrc;
xdg.configFile."isyncrc".enable = false; xdg.configFile."isyncrc".enable = false;

View file

@ -82,7 +82,7 @@
systemd-boot.configurationLimit = 8; systemd-boot.configurationLimit = 8;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
kernelPackages = pkgs.unstable.linuxPackages_6_12; kernelPackages = pkgs.unstable.linuxPackages_latest;
initrd.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "snd-virmidi" ]; initrd.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "snd-virmidi" ];
kernelParams = [ "nvidia_drm.fbdev=1" "nvidia_drm.modeset=1" ]; kernelParams = [ "nvidia_drm.fbdev=1" "nvidia_drm.modeset=1" ];
}; };
@ -176,9 +176,20 @@
hostName = "eddie"; hostName = "eddie";
domain = "local"; domain = "local";
nameservers = [ "1.1.1.1" "1.0.0.1" ]; nameservers = [ "1.1.1.1" "1.0.0.1" ];
# wireless = {
# iwd = {
# enable = true;
# settings = {
# Settings = {
# AutoConnect = true;
# };
# };
# };
# };
networkmanager = { networkmanager = {
enable = true; enable = true;
wifi.powersave = true; wifi.powersave = true;
# wifi.backend = "iwd";
}; };
}; };
@ -257,6 +268,8 @@
pkgs.xdg-desktop-portal-gnome pkgs.xdg-desktop-portal-gnome
pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal pkgs.xdg-desktop-portal
pkgs.xdg-desktop-portal-wlr
pkgs.gnome-keyring
]; ];
}; };
@ -330,6 +343,8 @@
}; };
}; };
programs.light.enable = true;
programs.steam = { programs.steam = {
enable = true; enable = true;
protontricks.enable = true; protontricks.enable = true;
@ -368,6 +383,7 @@
services.kmonad = { services.kmonad = {
enable = true; enable = true;
package = pkgs.unstable.kmonad;
keyboards = { keyboards = {
sinc = { sinc = {
device = "/dev/input/by-id/usb-Keebio_Sinc_Rev._4-event-kbd"; device = "/dev/input/by-id/usb-Keebio_Sinc_Rev._4-event-kbd";
@ -381,7 +397,7 @@
}; };
}; };
programs.virt-manager.enable = true; # programs.virt-manager.enable = true;
# virtualisation = { # virtualisation = {
# libvirtd = { # libvirtd = {