From e789fc824de1a3a53b240b9ed8e96fdcf8696307 Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Fri, 25 Oct 2024 14:15:48 -0400 Subject: [PATCH] more overhaul --- etcnixos/flake.lock | 30 +- home-manager/flake.lock | 42 +-- home-manager/progs/swaylock.nix | 64 ++-- home-manager/progs/waybar.nix | 519 ++++++++++++++++---------------- home-manager/system-mreow.nix | 26 +- 5 files changed, 341 insertions(+), 340 deletions(-) diff --git a/etcnixos/flake.lock b/etcnixos/flake.lock index 08f5826..763f981 100644 --- a/etcnixos/flake.lock +++ b/etcnixos/flake.lock @@ -33,11 +33,11 @@ ] }, "locked": { - "lastModified": 1729348269, - "narHash": "sha256-KCjrPNlEgEVFYs8wHIpd4iBelAV9L9QYsynoMYihIFw=", + "lastModified": 1729599319, + "narHash": "sha256-e/4JPcIRte5zkwqmGFrFo3763e0iHURX6N0apz4jbI0=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "528723447ef037a1c081add43f4fd46440c9c3b1", + "rev": "1b86b304c8eb1437d9337a760e7f930826fc4d6d", "type": "github" }, "original": { @@ -186,11 +186,11 @@ ] }, "locked": { - "lastModified": 1729027341, - "narHash": "sha256-IqWD7bA9iJVifvJlB4vs2KUXVhN+d9lECWdNB4jJ0tE=", + "lastModified": 1729414726, + "narHash": "sha256-Dtmm1OU8Ymiy9hVWn/a2B8DhRYo9Eoyx9veERdOBR4o=", "owner": "nix-community", "repo": "home-manager", - "rev": "2a4fd1cfd8ed5648583dadef86966a8231024221", + "rev": "fe56302339bb28e3471632379d733547caec8103", "type": "github" }, "original": { @@ -208,11 +208,11 @@ ] }, "locked": { - "lastModified": 1728974938, - "narHash": "sha256-pTPEx6WlM+nJVGrRUGx7Di4ljZMwE9HfvlZ6f3NzNfo=", + "lastModified": 1729177642, + "narHash": "sha256-DdKal+ZhB9QD/tnEwFg4cZ4j4YnrkvSljBxnyG+3eE0=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "23170582b0658e6afd913149a58863af3a57b376", + "rev": "bb69165ff372ddbd3228a03513922acd783040e8", "type": "github" }, "original": { @@ -271,11 +271,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1729455275, - "narHash": "sha256-THqzn/7um3oMHUEGXyq+1CJQE7EogwR3HjLMNOlhFBE=", + "lastModified": 1729742320, + "narHash": "sha256-u3Of8xRkN//me8PU+RucKA59/6RNy4B2jcGAF36P4jI=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9fcf30fccf8435f6390efec4a4d38e69c2268a36", + "rev": "e8a2f6d5513fe7b7d15701b2d05404ffdc3b6dda", "type": "github" }, "original": { @@ -287,11 +287,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1729471405, - "narHash": "sha256-QNH6AVw/p0iMMj36RumeXNpqhFFrXyxIzAn5H+dwR+Y=", + "lastModified": 1729878015, + "narHash": "sha256-CNWmKiA00tGw+N+fDnt4+JfLF500oofJ7BikcVxg0zw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dfd24c1593f41213e73e90effbbd963a45cd9413", + "rev": "6dbbd5a2622d9abf9263a5cb0a85ca218974b085", "type": "github" }, "original": { diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 0709e7e..1c568ab 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -72,11 +72,11 @@ ] }, "locked": { - "lastModified": 1729459288, - "narHash": "sha256-gBOVJv+q6Mx8jGvwX7cE6J8+sZmi1uxpRVsO7WxvVuQ=", + "lastModified": 1729864948, + "narHash": "sha256-CeGSqbN6S8JmzYJX/HqZjr7dMGlvHLLnJJarwB45lPs=", "owner": "nix-community", "repo": "home-manager", - "rev": "1e27f213d77fc842603628bcf2df6681d7d08f7e", + "rev": "0c0268a3c80d30b989d0aadbd65f38d4fa27a9a0", "type": "github" }, "original": { @@ -98,11 +98,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1729450307, - "narHash": "sha256-jhpL4ttlp8kxBurzfdlNsnI0n3iOkpy0iDaSMG1DzqE=", + "lastModified": 1729841254, + "narHash": "sha256-KywrT/D1yMOLxc2xDJAPx9Z+qVoQw5rCScQR/lU3NTc=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "bfe9f1a9906e66c83cb073d281920e902cd63e01", + "rev": "d7c058c0c0b8cd5b799a3a3ac4f8a1090454155e", "type": "github" }, "original": { @@ -131,11 +131,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1729444736, - "narHash": "sha256-/Q1yf6f9nUBFVqI/t89xfTPmQipaug63LP8TeENg4CA=", + "lastModified": 1729744939, + "narHash": "sha256-QbfaNQa93yt4KKg5XNi1tUIfGoDIohxFp/PmHi8sruU=", "owner": "YaLTeR", "repo": "niri", - "rev": "289ae3604d705cebc82cbcd23ee4534ded16d3af", + "rev": "c8044a9b5dbdb3e0648c86a00bfb63acfc06a559", "type": "github" }, "original": { @@ -146,11 +146,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1729471405, - "narHash": "sha256-QNH6AVw/p0iMMj36RumeXNpqhFFrXyxIzAn5H+dwR+Y=", + "lastModified": 1729878015, + "narHash": "sha256-CNWmKiA00tGw+N+fDnt4+JfLF500oofJ7BikcVxg0zw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dfd24c1593f41213e73e90effbbd963a45cd9413", + "rev": "6dbbd5a2622d9abf9263a5cb0a85ca218974b085", "type": "github" }, "original": { @@ -174,11 +174,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1729181673, - "narHash": "sha256-LDiPhQ3l+fBjRATNtnuDZsBS7hqoBtPkKBkhpoBHv3I=", + "lastModified": 1729691686, + "narHash": "sha256-BAuPWW+9fa1moZTU+jFh+1cUtmsuF8asgzFwejM4wac=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4eb33fe664af7b41a4c446f87d20c9a0a6321fa3", + "rev": "32e940c7c420600ef0d1ef396dc63b04ee9cad37", "type": "github" }, "original": { @@ -205,11 +205,11 @@ ] }, "locked": { - "lastModified": 1729391507, - "narHash": "sha256-as0I9xieJUHf7kiK2a9znDsVZQTFWhM1pLivII43Gi0=", + "lastModified": 1729823394, + "narHash": "sha256-RiinJqorqSLKh1oSpiMHnBe6nQdJzE45lX6fSnAuDnI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "784981a9feeba406de38c1c9a3decf966d853cca", + "rev": "7e52e80f5faa374ad4c607d62c6d362589cb523f", "type": "github" }, "original": { @@ -253,11 +253,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1729139001, - "narHash": "sha256-BADKw4fQma8tUNBRfmS9YLXTRXK4nYyXIxQdhGuEV0s=", + "lastModified": 1729838433, + "narHash": "sha256-o9D859STqawTSe6mkXpm3xR/gitYgOHy32xOhOfT3vw=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "ab2d09962c425670a4a7ca6ef5d92a0f06632499", + "rev": "67efa2c559b53d3ca90c131c06c247278783880d", "type": "github" }, "original": { diff --git a/home-manager/progs/swaylock.nix b/home-manager/progs/swaylock.nix index bb528c3..15177c8 100644 --- a/home-manager/progs/swaylock.nix +++ b/home-manager/progs/swaylock.nix @@ -1,31 +1,37 @@ +{ pkgs, ... }: { - color = "24273a"; - bs-hl-color = "f4dbd6"; - caps-lock-bs-hl-color = "f4dbd6"; - caps-lock-key-hl-color = "a6da95"; - inside-color = 0; - inside-clear-color = 0; - inside-caps-lock-color = 0; - inside-ver-color = 0; - inside-wrong-color = 0; - key-hl-color = "a6da95"; - layout-bg-color = 0; - layout-border-color = 0; - layout-text-color = "cad3f5"; - line-color = 0; - line-clear-color = 0; - line-caps-lock-color = 0; - line-ver-color = 0; - line-wrong-color = 0; - ring-color = "b7bdf8"; - ring-clear-color = "f4dbd6"; - ring-caps-lock-color = "f5a97f"; - ring-ver-color = "8aadf4"; - ring-wrong-color = "ee99a0"; - separator-color = 0; - text-color = "cad3f5"; - text-clear-color = "f4dbd6"; - text-caps-lock-color = "f5a97f"; - text-ver-color = "8aadf4"; - text-wrong-color = "ee99a0"; + programs.swaylock = { + enable = true; + settings = { + color = "24273a"; + bs-hl-color = "f4dbd6"; + caps-lock-bs-hl-color = "f4dbd6"; + caps-lock-key-hl-color = "a6da95"; + inside-color = 0; + inside-clear-color = 0; + inside-caps-lock-color = 0; + inside-ver-color = 0; + inside-wrong-color = 0; + key-hl-color = "a6da95"; + layout-bg-color = 0; + layout-border-color = 0; + layout-text-color = "cad3f5"; + line-color = 0; + line-clear-color = 0; + line-caps-lock-color = 0; + line-ver-color = 0; + line-wrong-color = 0; + ring-color = "b7bdf8"; + ring-clear-color = "f4dbd6"; + ring-caps-lock-color = "f5a97f"; + ring-ver-color = "8aadf4"; + ring-wrong-color = "ee99a0"; + separator-color = 0; + text-color = "cad3f5"; + text-clear-color = "f4dbd6"; + text-caps-lock-color = "f5a97f"; + text-ver-color = "8aadf4"; + text-wrong-color = "ee99a0"; + }; + }; } diff --git a/home-manager/progs/waybar.nix b/home-manager/progs/waybar.nix index 45e3e90..0ee2610 100644 --- a/home-manager/progs/waybar.nix +++ b/home-manager/progs/waybar.nix @@ -1,270 +1,273 @@ -{ pkgs }: +{ pkgs, ... }: { - enable = true; - settings.mainBar = { - layer = "top"; - position = "top"; - # mod = "dock"; - # exclusive = true; - # gtk-layer-shell = true; - margin-bottom = -1; - # passthrough = false; - height = 32; - modules-left = - [ + programs.waybar = { + enable = true; + settings.mainBar = { + layer = "top"; + position = "top"; + # mod = "dock"; + # exclusive = true; + # gtk-layer-shell = true; + margin-bottom = -1; + # passthrough = false; + height = 32; + modules-left = + [ + ]; + modules-center = [ "clock" ]; + modules-right = [ + "cpu" + "memory" + "tray" + "bluetooth" + "pulseaudio" + "network" + "battery" ]; - modules-center = [ "clock" ]; - modules-right = [ - "cpu" - "memory" - "tray" - "bluetooth" - "pulseaudio" - "network" - "battery" - ]; - cpu = { - interval = 5; - format = " {usage}%"; - max-length = 10; - }; - memory = { - interval = 10; - format = " {percentage}%"; - max-length = 10; - tooltip = true; - tooltip-format = "RAM - {used:0.1f}GiB used"; - }; - tray = { - icon-size = 18; - spacing = 3; - }; - clock = { - format = " {:%R\n %d.%m.%Y}"; - tooltip-format = "{calendar}"; - calendar = { - mode = "year"; - mode-mon-col = 3; - weeks-pos = "right"; - on-scroll = 1; - on-click-right = "mode"; - format = { - months = "{}"; - days = "{}"; - weeks = "W{}"; - weekdays = "{}"; - today = "{}"; + cpu = { + interval = 5; + format = " {usage}%"; + max-length = 10; + }; + memory = { + interval = 10; + format = " {percentage}%"; + max-length = 10; + tooltip = true; + tooltip-format = "RAM - {used:0.1f}GiB used"; + }; + tray = { + icon-size = 18; + spacing = 3; + }; + clock = { + format = " {:%R\n %d.%m.%Y}"; + tooltip-format = "{calendar}"; + calendar = { + mode = "year"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + on-click-right = "mode"; + format = { + months = "{}"; + days = "{}"; + weeks = "W{}"; + weekdays = "{}"; + today = "{}"; + }; + }; + actions = { + on-click-right = "mode"; + on-click-forward = "tz_up"; + on-click-backward = "tz_down"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; }; }; - actions = { - on-click-right = "mode"; - on-click-forward = "tz_up"; - on-click-backward = "tz_down"; - on-scroll-up = "shift_up"; - on-scroll-down = "shift_down"; + + network = { + format-wifi = " {icon}"; + tooltip-format-wifi = "{essid} ({signalStrength}%)"; + format-ethernet = "  "; + format-disconnected = "󰌙 "; + format-icons = [ + "󰤯 " + "󰤟 " + "󰤢 " + "󰤢 " + "󰤨 " + ]; + # tooltip = false; }; - }; - network = { - format-wifi = " {icon}"; - tooltip-format-wifi = "{essid} ({signalStrength}%)"; - format-ethernet = "  "; - format-disconnected = "󰌙 "; - format-icons = [ - "󰤯 " - "󰤟 " - "󰤢 " - "󰤢 " - "󰤨 " - ]; - # tooltip = false; - }; - - battery = { - states = { - good = 95; - warning = 30; - critical = 20; - }; - format = " {icon} {capacity}%"; - format-charging = "  {capacity}%"; - format-plugged = "  {capacity}%"; - format-alt = "{time} {icon}"; - format-icons = [ - "󰂎" - "󰁺" - "󰁻" - "󰁼" - "󰁽" - "󰁾" - "󰁿" - "󰂀" - "󰂁" - "󰂂" - "󰁹" - ]; - }; - - # not actually pulseaudio-specific (I use pipewire!) - pulseaudio = { - max-volume = 100; - scroll-step = 10; - format = "{icon}"; - tooltip-format = "{desc} ({volume}%)"; - format-muted = "🔇"; - format-icons = { - default = [ - " " - " " - " " + battery = { + states = { + good = 95; + warning = 30; + critical = 20; + }; + format = " {icon} {capacity}%"; + format-charging = "  {capacity}%"; + format-plugged = "  {capacity}%"; + format-alt = "{time} {icon}"; + format-icons = [ + "󰂎" + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" ]; }; - on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol"; + + # not actually pulseaudio-specific (I use pipewire!) + pulseaudio = { + max-volume = 100; + scroll-step = 10; + format = "{icon}"; + tooltip-format = "{desc} ({volume}%)"; + format-muted = "🔇"; + format-icons = { + default = [ + " " + " " + " " + ]; + }; + on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol"; + }; + + bluetooth = { + format = " ({status}) "; + format-connected = " {device_alias}"; + format-connected-battery = " {device_alias} {device_battery_percentage}%"; + tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; + tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; + tooltip-format-enumerate-connected = "{device_alias}\t{device_address}"; + tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%"; + + on-click = "${pkgs.blueman}/bin/blueman-manager"; + }; }; - bluetooth = { - format = " ({status}) "; - format-connected = " {device_alias}"; - format-connected-battery = " {device_alias} {device_battery_percentage}%"; - tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; - tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; - tooltip-format-enumerate-connected = "{device_alias}\t{device_address}"; - tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%"; - on-click = "${pkgs.blueman}/bin/blueman-manager"; - }; + style = '' + /*base background color*/ + @define-color bg_main rgba(25, 25, 25, 1.0); + @define-color bg_main_tooltip rgba(0, 0, 0, 0.7); + + + /*base background color of selections */ + @define-color bg_hover rgba(200, 200, 200, 0.3); + /*base background color of active elements */ + @define-color bg_active rgba(100, 100, 100, 0.5); + + /*base border color*/ + @define-color border_main rgba(255, 255, 255, 0.2); + + /*text color for entries, views and content in general */ + @define-color content_main white; + /*text color for entries that are unselected */ + @define-color content_inactive rgba(255, 255, 255, 0.25); + + * { + text-shadow: none; + box-shadow: none; + border: none; + border-radius: 0; + font-family: "Segoe UI", "Ubuntu"; + font-weight: 600; + font-size: 12.7px; + } + + window#waybar { + background: @bg_main; + border-top: 0; + color: @content_main; + } + + tooltip { + background: @bg_main_tooltip; + border-radius: 5px; + border-width: 1px; + border-style: solid; + border-color: @border_main; + } + + tooltip label { + color: @content_main; + } + + #taskbar { + } + + #taskbar button { + min-width: 130px; + border-bottom: 3px solid rgba(255, 255, 255, 0.3); + margin-left: 2px; + margin-right: 2px; + padding-left: 8px; + padding-right: 8px; + color: white; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); + } + + #taskbar button.active { + border-bottom: 3px solid white; + background: @bg_active; + } + + #taskbar button:hover { + border-bottom: 3px solid white; + background: @bg_hover; + color: @content_main; + } + + #cpu, #memory { + padding:3px; + } + + #window { + border-radius: 10px; + margin-left: 20px; + margin-right: 20px; + } + + #tray { + margin-left: 5px; + margin-right: 5px; + } + + #tray > .passive { + border-bottom: none; + } + + #tray > .active { + border-bottom: 3px solid white; + } + + #tray > .needs-attention { + border-bottom: 3px solid @warning_color; + } + + #tray > widget { + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); + } + + #tray > widget:hover { + background: @bg_hover; + } + + #pulseaudio { + font-family: "JetBrains Mono Nerd Font"; + padding-left: 3px; + padding-right: 3px; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); + } + + #pulseaudio:hover { + background: @bg_hover; + } + + #network { + padding-left: 3px; + padding-right: 3px; + } + + #clock { + padding-right: 5px; + padding-left: 5px; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); + } + + #clock:hover { + background: @bg_hover; + } + ''; }; - - style = '' - /*base background color*/ - @define-color bg_main rgba(25, 25, 25, 1.0); - @define-color bg_main_tooltip rgba(0, 0, 0, 0.7); - - - /*base background color of selections */ - @define-color bg_hover rgba(200, 200, 200, 0.3); - /*base background color of active elements */ - @define-color bg_active rgba(100, 100, 100, 0.5); - - /*base border color*/ - @define-color border_main rgba(255, 255, 255, 0.2); - - /*text color for entries, views and content in general */ - @define-color content_main white; - /*text color for entries that are unselected */ - @define-color content_inactive rgba(255, 255, 255, 0.25); - - * { - text-shadow: none; - box-shadow: none; - border: none; - border-radius: 0; - font-family: "Segoe UI", "Ubuntu"; - font-weight: 600; - font-size: 12.7px; - } - - window#waybar { - background: @bg_main; - border-top: 0; - color: @content_main; - } - - tooltip { - background: @bg_main_tooltip; - border-radius: 5px; - border-width: 1px; - border-style: solid; - border-color: @border_main; - } - - tooltip label { - color: @content_main; - } - - #taskbar { - } - - #taskbar button { - min-width: 130px; - border-bottom: 3px solid rgba(255, 255, 255, 0.3); - margin-left: 2px; - margin-right: 2px; - padding-left: 8px; - padding-right: 8px; - color: white; - transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); - } - - #taskbar button.active { - border-bottom: 3px solid white; - background: @bg_active; - } - - #taskbar button:hover { - border-bottom: 3px solid white; - background: @bg_hover; - color: @content_main; - } - - #cpu, #memory { - padding:3px; - } - - #window { - border-radius: 10px; - margin-left: 20px; - margin-right: 20px; - } - - #tray { - margin-left: 5px; - margin-right: 5px; - } - - #tray > .passive { - border-bottom: none; - } - - #tray > .active { - border-bottom: 3px solid white; - } - - #tray > .needs-attention { - border-bottom: 3px solid @warning_color; - } - - #tray > widget { - transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); - } - - #tray > widget:hover { - background: @bg_hover; - } - - #pulseaudio { - font-family: "JetBrains Mono Nerd Font"; - padding-left: 3px; - padding-right: 3px; - transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); - } - - #pulseaudio:hover { - background: @bg_hover; - } - - #network { - padding-left: 3px; - padding-right: 3px; - } - - #clock { - padding-right: 5px; - padding-left: 5px; - transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); - } - - #clock:hover { - background: @bg_hover; - } - ''; } diff --git a/home-manager/system-mreow.nix b/home-manager/system-mreow.nix index 4761f45..6d469ec 100644 --- a/home-manager/system-mreow.nix +++ b/home-manager/system-mreow.nix @@ -8,25 +8,25 @@ { imports = [ ./gui.nix + + # niri wayland compositor ./progs/niri.nix + + # waybar for status bar + ./progs/waybar.nix + + ./progs/swaylock.nix ]; home.packages = with pkgs; [ wdisplays intel-gpu-tools - swaylock - - # manage bluetooth devices - blueman # used by /etc/nixos logic to launch niri config.programs.niri.package ]; - # # bluetooth manager - # services.blueman-applet.enable = true; - - # bluetooth media controls + # media controls systemd.user.services.mpris-proxy = { Unit.Description = "Mpris proxy"; Install.After = [ @@ -43,14 +43,6 @@ package = pkgs.dunst; }; - programs.swaylock = { - enable = true; - settings = import ./progs/swaylock.nix; - }; - - # waybar for status bar - programs.waybar = import ./progs/waybar.nix { inherit pkgs; }; - # rofi for application launcher programs.rofi = { enable = true; @@ -88,7 +80,7 @@ # Filter: ON PK Fc 7500.0 Hz Gain -2.09 dB Q 3.0 # Filter: ON PK Fc 8000.0 Hz Gain 2.01 dB Q 4.36 # Filter: ON PK Fc 900.0 Hz Gain -4.12 dB Q 5.909999999999967 - home.file.".config/easyeffects/output/framework.json".text = + home.file.".config/easyeffects/output/${config.services.easyeffects.preset}.json".text = let baseBand = { mode = "RLC (BT)";