diff --git a/etcnixos/common.nix b/etcnixos/common.nix index 34020de..0f0c21e 100644 --- a/etcnixos/common.nix +++ b/etcnixos/common.nix @@ -48,7 +48,9 @@ # kernel options boot = { - kernelPackages = pkgs.linuxPackages_cachyos-lto; + #cachyos-lto currently broken + # kernelPackages = pkgs.linuxPackages_cachyos-lto; + kernelPackages = pkgs.linuxPackages_latest; kernel.sysctl = { # dmesg shushhhhh diff --git a/etcnixos/flake.lock b/etcnixos/flake.lock index 36f19af..691061a 100644 --- a/etcnixos/flake.lock +++ b/etcnixos/flake.lock @@ -34,11 +34,11 @@ ] }, "locked": { - "lastModified": 1738552004, - "narHash": "sha256-eYE+8F0ZrSIYvlVkgTjTBlnM1COqUdSs4GKyWnel6I4=", + "lastModified": 1738675414, + "narHash": "sha256-DwKipTgF2DEyNm6+Rj6FXg0DbNNNbt+h4fj9aTO4Q68=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "894d1db77131a4a449d1993c7ba314ee15dd4e36", + "rev": "59029b0faeee6d2d5284af29830d85fb2caa30ee", "type": "github" }, "original": { @@ -310,11 +310,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738410390, - "narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=", + "lastModified": 1738546358, + "narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3a228057f5b619feb3186e986dbe76278d707b6e", + "rev": "c6e957d81b96751a3d5967a0fd73694f303cc914", "type": "github" }, "original": { diff --git a/etcnixos/flake.nix b/etcnixos/flake.nix index 5366a77..3fc0e98 100644 --- a/etcnixos/flake.nix +++ b/etcnixos/flake.nix @@ -38,7 +38,6 @@ "mreow" "yarn" ]; - in { nixosConfigurations = nixpkgs.lib.foldl' ( diff --git a/etcnixos/vm.nix b/etcnixos/vm.nix index 112b2d9..11fa51c 100644 --- a/etcnixos/vm.nix +++ b/etcnixos/vm.nix @@ -10,6 +10,7 @@ # https://github.com/quickemu-project/quickemu (quickemu.overrideAttrs (old: { patches = [ + # patch to allow forcing a specific ISO file via an environment variable `FILE_NAME` (pkgs.fetchpatch { url = "https://github.com/Titaniumtown/quickemu/commit/f96d52a6b6f4b3187171d8cab61a273475da3b6c.diff"; sha256 = "vXVI4EeJGhOlx8ARTCvB98Ajalk0bVakL98WojqcI3c="; @@ -42,11 +43,6 @@ url = "https://github.com/Scrut1ny/Hypervisor-Phantom/raw/d09d66813570704e2b05440f290d6f9bdf2d26c7/Hypervisor-Phantom/patches/QEMU/intel-qemu-9.2.0.patch"; sha256 = "kXY6R/0Tsotf0mGUIevDLlLWHEznnF1dt0K2ayX7XAg="; }) - - (pkgs.fetchpatch { - url = "https://github.com/Scrut1ny/Hypervisor-Phantom/raw/d09d66813570704e2b05440f290d6f9bdf2d26c7/Hypervisor-Phantom/patches/QEMU/qemu-9.2.0-libnfs6.patch"; - sha256 = "DkkC7KiQLnL7jbBOtgyLKVvozEG388hdfl5seEqvu3o="; - }) ]; }) ); @@ -55,6 +51,7 @@ (pkgs.OVMF.overrideAttrs (old: { secureBoot = true; tpmSupport = true; + # TODO! add patches from: https://github.com/Scrut1ny/Hypervisor-Phantom/tree/main/Hypervisor-Phantom/patches/EDK2 })).fd ]; }; @@ -64,14 +61,14 @@ users.users."${username}".extraGroups = [ "libvirtd" ]; - boot.kernelPatches = [ - { - name = "undetected-kvm"; - patch = pkgs.fetchurl { - url = "https://raw.githubusercontent.com/Scrut1ny/Hypervisor-Phantom/d09d66813570704e2b05440f290d6f9bdf2d26c7/Hypervisor-Phantom/patches/Kernel/linux-6.13-svm.patch"; - sha256 = "zz18xerutulLGzlHhnu26WCY8rVQXApyeoDtCjbejIk="; - }; - } - ]; + # boot.kernelPatches = [ + # { + # name = "undetected-kvm"; + # patch = pkgs.fetchurl { + # url = "https://raw.githubusercontent.com/Scrut1ny/Hypervisor-Phantom/d09d66813570704e2b05440f290d6f9bdf2d26c7/Hypervisor-Phantom/patches/Kernel/linux-6.13-svm.patch"; + # sha256 = "zz18xerutulLGzlHhnu26WCY8rVQXApyeoDtCjbejIk="; + # }; + # } + # ]; } diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 2e552d9..240b2ae 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -54,11 +54,11 @@ ] }, "locked": { - "lastModified": 1738610386, - "narHash": "sha256-yb6a5efA1e8xze1vcdN2HBxqYr340EsxFMrDUHL3WZM=", + "lastModified": 1738667255, + "narHash": "sha256-sMMQb9NydZqQ/MvvtPp+Ny0W9P0Jk0moU7SrTBlO5Vo=", "owner": "nix-community", "repo": "home-manager", - "rev": "066ba0c5cfddbc9e0dddaec73b1561ad38aa8abe", + "rev": "7abcf59a365430b36f84eaa452a466b11e469e33", "type": "github" }, "original": { @@ -79,11 +79,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1738583235, - "narHash": "sha256-Tk5w3uqp045W/W0mDQT0swwy90ex0l3JWS2crimG8Wo=", + "lastModified": 1738659223, + "narHash": "sha256-fr3uPkLEDdmyD3CQwFBcRDl96VmkK0Lgr21BIxqk+gY=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "1511396846427b58f1d6ca5442a228ede7673c67", + "rev": "297a7208e396ab6e9de88363c538baec8d75ccbb", "type": "github" }, "original": { @@ -112,11 +112,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1738579367, - "narHash": "sha256-820QsR/C9+Gyn3v65LHNwwW7KxSA6u6MQtky3SUrZ3A=", + "lastModified": 1738654964, + "narHash": "sha256-30l3hOfTW1kJXcTRQsJ9f0/wE1aaTTACKb4ch6ZlLNU=", "owner": "YaLTeR", "repo": "niri", - "rev": "553b1ba85256e2cb290e8a67f709a14e603606bc", + "rev": "7d24ad23c2bc690b22b1f13ad4598dc8323d128b", "type": "github" }, "original": { @@ -127,11 +127,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738410390, - "narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=", + "lastModified": 1738546358, + "narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3a228057f5b619feb3186e986dbe76278d707b6e", + "rev": "c6e957d81b96751a3d5967a0fd73694f303cc914", "type": "github" }, "original": { @@ -143,11 +143,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1738435198, - "narHash": "sha256-5+Hmo4nbqw8FrW85FlNm4IIrRnZ7bn0cmXlScNsNRLo=", + "lastModified": 1738574474, + "narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f6687779bf4c396250831aa5a32cbfeb85bb07a3", + "rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c", "type": "github" }, "original": { @@ -242,11 +242,11 @@ ] }, "locked": { - "lastModified": 1738639173, - "narHash": "sha256-fZnh8ypF2NJ99heI3C/MdtvRUDlIhuSCnhduKEJy86o=", + "lastModified": 1738682295, + "narHash": "sha256-Jx0SfHYrCFWztBYV6ySVBCcYlEA90NVNOUZLEm9DSu4=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "5bce21504d22f7d9d984b4f008cbc74b4ce76273", + "rev": "c49f8dcb66ff8cb75fd8de4ca40ea953a97a140a", "type": "github" }, "original": { diff --git a/home-manager/flake.nix b/home-manager/flake.nix index 954a3e0..66e2589 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -45,6 +45,7 @@ username = "primary"; homeDirectory = "/home/${username}"; hostname = nixpkgs.lib.strings.removeSuffix "\n" (builtins.readFile /etc/hostname); + pkgs = import nixpkgs { }; # stolen from: https://stackoverflow.com/a/42398526 diff --git a/home-manager/gui.nix b/home-manager/gui.nix index 6bb51b1..7efcd45 100644 --- a/home-manager/gui.nix +++ b/home-manager/gui.nix @@ -2,15 +2,12 @@ pkgs, lib, inputs, - optimizeWithFlags, ... }: { imports = [ ./no-gui.nix ./progs/alacritty.nix - - # gpt4all broken https://github.com/NixOS/nixpkgs/pull/346185 ./progs/gpt4all/gpt4all.nix ./progs/trezor.nix ]; @@ -114,31 +111,31 @@ savvycan - # nerdfonts - # simple screen recording on wayland wl-screenrec + + gimp ] ++ (builtins.filter lib.isDerivation (builtins.attrValues nerd-fonts)); - programs.zed-editor = { - enable = true; - userSettings = { - ui_font_size = 16; - buffer_font_size = 16; - theme = { - mode = "system"; - light = "Gruvbox Dark Hard"; - dark = "One Dark"; - }; - }; - extensions = [ - "nix" - "sql" - "CSV" - "assembly" - ]; - }; + # programs.zed-editor = { + # enable = true; + # userSettings = { + # ui_font_size = 16; + # buffer_font_size = 16; + # theme = { + # mode = "system"; + # light = "Gruvbox Dark Hard"; + # dark = "One Dark"; + # }; + # }; + # extensions = [ + # "nix" + # "sql" + # "CSV" + # "assembly" + # ]; + # }; # make chromium-based stuff use wayland home.file.".config/chromium-flags.conf".text = "--ozone-platform-hint=auto"; diff --git a/home-manager/no-gui.nix b/home-manager/no-gui.nix index 13816ba..9efb971 100644 --- a/home-manager/no-gui.nix +++ b/home-manager/no-gui.nix @@ -61,6 +61,7 @@ gping # `ping`... but with a graph!! tldr # `man` but more straight-forward and simpler ripgrep # grep, but written in rust, respects .gitignore, and very very fast, command is `rg` + lurk # better strace # adds `sensors` command lm_sensors @@ -142,6 +143,9 @@ nixpkgs-review nmap + + # terminal image viewer + timg ]; # home.file.".cargo/config.toml".text = '' diff --git a/home-manager/progs/eww/config/eww.scss b/home-manager/progs/eww/config/eww.scss new file mode 100644 index 0000000..4bee480 --- /dev/null +++ b/home-manager/progs/eww/config/eww.scss @@ -0,0 +1,108 @@ +$background: #1e1e2e; +$pink: #f5c2e7; +$lavendar: #b4befe; +$red: #f38ba8; +$maroon: #eba0ac; +$peach: #fab387; +$yellow: #f9e2af; +$green: #a6e3a1; +$text: #cdd6f4; +$subtext: #a6adc8; +$surface: #585b70; + +* { + color: $text; + font-family: CaskaydiaCove Nerd Font Mono; + font-weight: 600; + font-size: 10pt; + padding: 0 1px; +} + +.red { color: $red; } +.maroon { color: $maroon; } +.peach { color: $peach; } +.yellow { color: $yellow; } +.green { color: $green; } +.lavendar { color: $lavendar; } + +.symbol { + color: $lavendar; + font-size: 20px; +} + +.button { + * { + all: unset; + margin: 0 5px; + font-size:14pt; + transition: color 0.2s ease-in-out; + } + &:hover * { + color: $pink; + } +} + +.bluetooth * { + font-size: 10pt; + padding: 0 0.3em; +} + +.padded > *:not(:last-child) { + padding: 0 10px; + border-right: 1px solid $surface; +} + +.background { + border: 1px solid $pink; + background-color: $background; + border-radius: 12px; + opacity: 0.8; +} + +scale trough { + margin: 0 10px; + border: none; + background-color: #FFF; + min-height: 3px; + min-width: 100px; + + & slider { + box-shadow: none; + background-image: none; + border: none; + background-color: $pink; + min-width: 5pt; + min-height: 5pt; + margin: -5pt; + } + + & highlight { + border: none; + background-color: $lavendar; + } +} + +.workspaces * { + padding: 0 8px; + font-size: 14pt; + transition: color 0.2s ease-in-out; + + &:hover * { + color: $pink; + } + + .empty * { + color: $subtext; + } + .current * { + color: $green; + } +} + +.clipboard { + color: $subtext; +} + +.time { + padding-right: 10px; +} diff --git a/home-manager/progs/eww/config/eww.yuck b/home-manager/progs/eww/config/eww.yuck new file mode 100644 index 0000000..3c66bcc --- /dev/null +++ b/home-manager/progs/eww/config/eww.yuck @@ -0,0 +1,117 @@ +(defwindow statusbar + :monitor 0 + :stacking "fg" + :exclusive true + :geometry (geometry + :y "0.5%" + :width "100%" + :height "24px" + :anchor "top center") + (statusbar)) + +(defwidget statusbar [] + (centerbox + + (brightness-ctl) + + ; (window-title) + (time) + (box :space-evenly false :halign 'end' :class 'padded' + (clipboard) + (battery) + (bluetooth) + (wifi)) + ) +) + +(defwidget cmd-slider [?symbol value command max colour] + (box :space-evenly false + (label :text symbol :class "symbol") + (scale + :min 0 :max max + :value value + :round-digits 0 + :timeout "200ms" + :onchange command) + (label :text "${value}%" :class colour))) + +(defwidget window-title [] + (label + :text windowtitle + :tooltip windowtitle)) + +(defpoll windowtitle :interval "1s" `scripts/currentWindow.fish`) +(defpoll currentworkspace :interval "1s" `scripts/currentWorkspace.fish`) + +(defwidget brightness-ctl [] + (cmd-slider :symbol "󰃠" :value brightness + :command `brightnessctl set {}%` + :max 101 :colour "${ + brightness >= 80 ? "green" : + brightness >= 50 ? "yellow" : + brightness >= 30 ? "peach" : + brightness >= 10 ? "maroon" : "red" + }")) +(defpoll brightness :interval "1s" `brightnessctl -m | awk -F, '{print $4+0}'`) + +(defwidget clipboard [] + (label :text clipboard-short :tooltip clipboard :class "clipboard")) +(defpoll clipboard :interval "5s" `scripts/clipboardInfo.zsh all`) +(defpoll clipboard-short :interval "5s" `scripts/clipboardInfo.zsh head`) + +(defwidget wifi [] + (eventbox + :class "button ${wifi-strength.colour}" + (label + :text {wifi-strength.icon} + :tooltip "Connected To: ${wifi-name}"))) + +(defpoll wifi-strength :interval "10s" `scripts/wifiInfo.zsh strength`) +(defpoll wifi-name :interval "1m" `scripts/wifiInfo.zsh name`) + +(defwidget bluetooth [] + (eventbox + :class "bluetooth button ${ bluetooth-name != "" ? "green" : "lavendar" }" + :onclick `blueman-manager &` + (label + :text "${bluetooth-name} 󰂯"))) + +(defpoll bluetooth-name :interval "10s" `bluetoothctl devices Connected | awk '{print $3}'`) + +(defwidget time [] + (box + :space-evenly false + :class "time" + :tooltip {time.long} + (label :class "yellow" :text {time.hour}) + (label :text ":") + (label :class "yellow" :text {time.minute}))) + +(defpoll time :interval "1s" `scripts/dateInfo.fish`) + +; TODO: make this a package or something, not using rust-script +(defpoll powerstats :interval "2s" `~/Documents/power_bat.rs`) + +(defwidget battery [] + (box :space-evenly false + :tooltip powerstats + (label + :text "${EWW_BATTERY.BAT1.status == "Charging" ? "󰂄" : + EWW_BATTERY.BAT1.capacity >= 90 ? "󰁹" : + EWW_BATTERY.BAT1.capacity >= 80 ? "󰂂" : + EWW_BATTERY.BAT1.capacity >= 70 ? "󰂁" : + EWW_BATTERY.BAT1.capacity >= 60 ? "󰂀" : + EWW_BATTERY.BAT1.capacity >= 50 ? "󰁿" : + EWW_BATTERY.BAT1.capacity >= 40 ? "󰁾" : + EWW_BATTERY.BAT1.capacity >= 30 ? "󰁽" : + EWW_BATTERY.BAT1.capacity >= 20 ? "󰁼" : + EWW_BATTERY.BAT1.capacity >= 10 ? "󰁻" : "󰁺" + } " + :class "${ + EWW_BATTERY.BAT1.capacity >= 80 ? "green" : + EWW_BATTERY.BAT1.capacity >= 50 ? "yellow" : + EWW_BATTERY.BAT1.capacity >= 30 ? "peach" : + EWW_BATTERY.BAT1.capacity >= 10 ? "maroon" : "red" + }") + (label :text "${EWW_BATTERY.BAT1.capacity}%" :class "yellow"))) + diff --git a/home-manager/progs/eww/config/scripts/clipboardInfo.zsh b/home-manager/progs/eww/config/scripts/clipboardInfo.zsh new file mode 100755 index 0000000..e90c08c --- /dev/null +++ b/home-manager/progs/eww/config/scripts/clipboardInfo.zsh @@ -0,0 +1,14 @@ +#!/usr/bin/env zsh +if wl-paste | iconv -f UTF8 > /dev/null; then + case $1 in + head) + wl-paste 2> /dev/null | + head -1 | + awk 'length > 20{$0 = substr($0, 1, 17) "..."} {printf "%s", $0}' | + sed 's/^[[:space:]]*//g' + echo "";; + all) + wl-paste 2> /dev/null + true;; + esac +fi diff --git a/home-manager/progs/eww/config/scripts/currentWindow.fish b/home-manager/progs/eww/config/scripts/currentWindow.fish new file mode 100755 index 0000000..d9159ce --- /dev/null +++ b/home-manager/progs/eww/config/scripts/currentWindow.fish @@ -0,0 +1,2 @@ +#!/usr/bin/env fish +niri msg focused-window | rg Title | sed -E "s/[[:space:]]+Title\: //g" | sed "s/\"//g" diff --git a/home-manager/progs/eww/config/scripts/currentWorkspace.fish b/home-manager/progs/eww/config/scripts/currentWorkspace.fish new file mode 100755 index 0000000..68f2fbf --- /dev/null +++ b/home-manager/progs/eww/config/scripts/currentWorkspace.fish @@ -0,0 +1,3 @@ +#!/usr/bin/env fish + +niri msg workspaces | rg "^ \*" | sed -E 's/[[:space:]]+\* //g' diff --git a/home-manager/progs/eww/config/scripts/dateInfo.fish b/home-manager/progs/eww/config/scripts/dateInfo.fish new file mode 100755 index 0000000..77cf08f --- /dev/null +++ b/home-manager/progs/eww/config/scripts/dateInfo.fish @@ -0,0 +1,2 @@ +#!/usr/bin/env fish +date +'{"long":"%a %b %e %H:%M:%S %Z %Y","hour":"%H","minute":"%M"}' diff --git a/home-manager/progs/eww/config/scripts/wifiInfo.zsh b/home-manager/progs/eww/config/scripts/wifiInfo.zsh new file mode 100755 index 0000000..4fa41e3 --- /dev/null +++ b/home-manager/progs/eww/config/scripts/wifiInfo.zsh @@ -0,0 +1,23 @@ +#!/usr/bin/env zsh +export CHARSET=ASCII +case $1 in + name) + nmcli -f IN-USE,SSID d w | grep '*' | sed 's/[\* ]//g' | cat + exit 0;; + strength) + str=$(nmcli -f ACTIVE,BARS d w | grep 'yes' | tr -d ' yesno') + case ${str: 0:-1} in + '****') + icon="󰤨"; colour="green";; + '***') + icon="󰤥"; colour="yellow";; + '**') + icon="󰤢"; colour="peach";; + '*') + icon="󰤟"; colour="maroon";; + *) + icon="󰤯"; colour="red";; + esac + echo "{\"icon\":\"$icon\",\"colour\":\"$colour\"}" + exit 0;; +esac diff --git a/home-manager/progs/eww/eww.nix b/home-manager/progs/eww/eww.nix new file mode 100644 index 0000000..407b208 --- /dev/null +++ b/home-manager/progs/eww/eww.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + zsh + bluez + brightnessctl + ]; + + programs.eww = { + enable = true; + configDir = ./config; + }; +} diff --git a/home-manager/progs/framework-13-easyeffects.nix b/home-manager/progs/framework-13-easyeffects.nix deleted file mode 100644 index 1dca4e1..0000000 --- a/home-manager/progs/framework-13-easyeffects.nix +++ /dev/null @@ -1,121 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: -{ - - # https://community.frame.work/t/speakers-sound-quality/1078/83 - # Filter: ON HPQ Fc 100.0 Hz Gain 0.0 dB Q 1.0 - # Filter: ON PK Fc 150.0 Hz Gain 4.02 dB Q 3.0 - # Filter: ON PK Fc 600.0 Hz Gain -5.07 dB Q 4.000000000000008 - # Filter: ON PK Fc 1200.0 Hz Gain -3.49 dB Q 4.17 - # Filter: ON PK Fc 2000.0 Hz Gain 1.43 dB Q 4.0 - # Filter: ON PK Fc 5300.0 Hz Gain 3.84 dB Q 2.64 - # Filter: ON HSC Fc 6000.0 Hz Gain 4.02 dB Q 4.36 - # 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/${config.services.easyeffects.preset}.json".text = - let - baseBand = { - mode = "RLC (BT)"; - mute = false; - solo = false; - slope = "1x"; - type = "Bell"; - }; - - bandList = [ - { - frequency = 100.0; - gain = 0.0; - q = 1.0; - slope = "x4"; - type = "Hi-pass"; - } - { - frequency = 150.0; - gain = 4.02; - q = 3.0; - } - { - frequency = 600.0; - gain = -5.07; - q = 4.000000000000008; - } - { - frequency = 1200.0; - gain = -3.49; - q = 4.17; - } - { - frequency = 2000.0; - gain = 1.43; - q = 4.0; - } - { - frequency = 5300.0; - gain = 3.84; - q = 2.64; - } - { - frequency = 6000.0; - gain = 4.02; - q = 4.36; - type = "Hi-shelf"; - } - { - frequency = 7500.0; - gain = -2.09; - q = 3.0; - } - { - frequency = 8000.0; - gain = 2.01; - q = 4.36; - } - { - frequency = 900.0; - gain = -4.12; - q = 5.909999999999967; - } - ]; - - bands = builtins.listToAttrs ( - map (f: { - name = "band${toString f.snd}"; - value = baseBand // f.fst; - }) (lib.lists.zipLists bandList (lib.range 0 (lib.length (bandList)))) - ); - - in - builtins.toJSON { - output = { - blocklist = [ ]; - equalizer = { - balance = 0.0; - bypass = false; - input-gain = 0.0; - left = bands; - right = bands; - mode = "IIR"; - num-bands = 10; - output-gain = -1.5; - pitch-left = 0.0; - pitch-right = 0.0; - split-channels = false; - }; - plugins_order = [ - "equalizer" - ]; - }; - }; - - services.easyeffects = { - enable = true; - package = pkgs.easyeffects; - preset = "framework"; - }; -} diff --git a/home-manager/progs/niri.nix b/home-manager/progs/niri.nix index 5c3c8ea..0e8a971 100644 --- a/home-manager/progs/niri.nix +++ b/home-manager/progs/niri.nix @@ -1,7 +1,6 @@ { config, pkgs, - homeDirectory, ... }: { @@ -34,14 +33,23 @@ focus-ring = { enable = true; active = { - color = "pink"; + color = "#bf7778"; }; }; }; spawn-at-startup = [ # waybar (status bar) - { command = [ "${pkgs.waybar}/bin/waybar" ]; } + # { command = [ "${pkgs.waybar}/bin/waybar" ]; } + { + command = [ + "${config.programs.eww.package}/bin/eww" + "-c" + "${config.programs.eww.configDir}" + "open" + "statusbar" + ]; + } # swaybg works on more than just sway (sets a wallpaper) { @@ -52,10 +60,11 @@ ]; } + # Xwayland on niri via xwayland-satellite { command = [ - "${pkgs.xwayland-satellite-unstable}/bin/xwayland-satellite" - (builtins.toString config.programs.niri.settings.environment.DISPLAY) + "${pkgs.xwayland-satellite}/bin/xwayland-satellite" + config.programs.niri.settings.environment.DISPLAY ]; } ]; diff --git a/home-manager/progs/waybar.nix b/home-manager/progs/waybar.nix deleted file mode 100644 index 6e3ee36..0000000 --- a/home-manager/progs/waybar.nix +++ /dev/null @@ -1,294 +0,0 @@ -{ pkgs, ... }: -{ - 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 = [ - "niri/workspaces" - "niri/window" - ]; - modules-center = [ "clock" ]; - modules-right = [ - "cpu" - "memory" - "tray" - "bluetooth" - "pulseaudio" - "network" - "battery" - ]; - - "niri/workspaces" = { - format = "{icon}"; - format-icons = { - - # Icons by state - active = ""; - default = ""; - }; - }; - - "niri/window" = { - format = "{}"; - }; - - 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"; - }; - }; - - 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 = [ - " " - " " - " " - ]; - }; - 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"; - }; - }; - - style = '' - /*base background color*/ - /* color picked from a celeste background bc it looks pretty and matches my background */ - @define-color bg_main rgba(39.6, 51.4, 76.1, 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 b5e35ff..bcf838a 100644 --- a/home-manager/system-mreow.nix +++ b/home-manager/system-mreow.nix @@ -1,7 +1,6 @@ { config, pkgs, - lib, homeDirectory, ... }: @@ -12,12 +11,11 @@ # niri wayland compositor ./progs/niri.nix - # waybar for status bar - ./progs/waybar.nix + # statusbar + ./progs/eww/eww.nix + # lockscreen ./progs/swaylock.nix - - # ./progs/framework-13-easyeffects.nix ]; home.packages = with pkgs; [