eww
This commit is contained in:
parent
6815ec12ce
commit
42cd641f30
@ -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
|
||||
|
||||
12
etcnixos/flake.lock
generated
12
etcnixos/flake.lock
generated
@ -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": {
|
||||
|
||||
@ -38,7 +38,6 @@
|
||||
"mreow"
|
||||
"yarn"
|
||||
];
|
||||
|
||||
in
|
||||
{
|
||||
nixosConfigurations = nixpkgs.lib.foldl' (
|
||||
|
||||
@ -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=";
|
||||
# };
|
||||
# }
|
||||
# ];
|
||||
|
||||
}
|
||||
|
||||
36
home-manager/flake.lock
generated
36
home-manager/flake.lock
generated
@ -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": {
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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 = ''
|
||||
|
||||
108
home-manager/progs/eww/config/eww.scss
Normal file
108
home-manager/progs/eww/config/eww.scss
Normal file
@ -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;
|
||||
}
|
||||
117
home-manager/progs/eww/config/eww.yuck
Normal file
117
home-manager/progs/eww/config/eww.yuck
Normal file
@ -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")))
|
||||
|
||||
14
home-manager/progs/eww/config/scripts/clipboardInfo.zsh
Executable file
14
home-manager/progs/eww/config/scripts/clipboardInfo.zsh
Executable file
@ -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
|
||||
2
home-manager/progs/eww/config/scripts/currentWindow.fish
Executable file
2
home-manager/progs/eww/config/scripts/currentWindow.fish
Executable file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env fish
|
||||
niri msg focused-window | rg Title | sed -E "s/[[:space:]]+Title\: //g" | sed "s/\"//g"
|
||||
3
home-manager/progs/eww/config/scripts/currentWorkspace.fish
Executable file
3
home-manager/progs/eww/config/scripts/currentWorkspace.fish
Executable file
@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
niri msg workspaces | rg "^ \*" | sed -E 's/[[:space:]]+\* //g'
|
||||
2
home-manager/progs/eww/config/scripts/dateInfo.fish
Executable file
2
home-manager/progs/eww/config/scripts/dateInfo.fish
Executable file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env fish
|
||||
date +'{"long":"%a %b %e %H:%M:%S %Z %Y","hour":"%H","minute":"%M"}'
|
||||
23
home-manager/progs/eww/config/scripts/wifiInfo.zsh
Executable file
23
home-manager/progs/eww/config/scripts/wifiInfo.zsh
Executable file
@ -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
|
||||
13
home-manager/progs/eww/eww.nix
Normal file
13
home-manager/progs/eww/eww.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
zsh
|
||||
bluez
|
||||
brightnessctl
|
||||
];
|
||||
|
||||
programs.eww = {
|
||||
enable = true;
|
||||
configDir = ./config;
|
||||
};
|
||||
}
|
||||
@ -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";
|
||||
};
|
||||
}
|
||||
@ -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
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
@ -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 = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@ -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; [
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user