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; [