Compare commits
302 Commits
gitea
...
75904231c5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75904231c5 | ||
|
|
1085acc0f5 | ||
|
|
cd25a1a569 | ||
|
|
d009d109a9 | ||
|
|
b4b7378afa | ||
|
|
01deb843e4 | ||
|
|
efe96374de | ||
|
|
35c5760f50 | ||
|
|
fb17f37662 | ||
|
|
e81d82ad6e | ||
|
|
2c6e0f0b73 | ||
|
|
432c1e18f8 | ||
|
|
482b96d0ae | ||
|
|
208d1ed7b4 | ||
|
|
0162b27d79 | ||
|
|
1191019cf8 | ||
|
|
880b3abd60 | ||
|
|
5c9d924606 | ||
|
|
151f61d31e | ||
|
|
eba7f91576 | ||
|
|
eed5c14a25 | ||
|
|
8982916aee | ||
|
|
87ec047d20 | ||
|
|
8be6a841d0 | ||
|
|
bfc57081b8 | ||
|
|
edb394c95c | ||
|
|
5d3491ecec | ||
|
|
871a270a21 | ||
|
|
f222c3b595 | ||
|
|
de8e26e6e3 | ||
|
|
83af085bd6 | ||
|
|
9d84b4bcf0 | ||
|
|
69090a5aa2 | ||
|
|
a62a2113ca | ||
|
|
647830080a | ||
|
|
f22ef9939c | ||
|
|
42a4a2fe0e | ||
|
|
0340fbfacd | ||
|
|
dee4b516b0 | ||
|
|
0821124f4f | ||
|
|
395c676fc6 | ||
|
|
f67d54c66b | ||
|
|
baa8a43692 | ||
|
|
b6b6115b4e | ||
|
|
167f3936dc | ||
|
|
4ef43805ae | ||
|
|
bb773f0dee | ||
|
|
35ad7c04e9 | ||
|
|
31ef18fc34 | ||
|
|
9cb47d96d9 | ||
|
|
9ade97edb9 | ||
|
|
872082819b | ||
|
|
cf66ef2ea9 | ||
|
|
9368c387dc | ||
|
|
da268cd46a | ||
|
|
dd3b850221 | ||
|
|
2ecb7486bb | ||
|
|
bbe16598ad | ||
|
|
c64ade92b7 | ||
|
|
82c2d4c85c | ||
|
|
66f543b966 | ||
|
|
000d37ebed | ||
|
|
17bd864d5c | ||
|
|
0d1a9d0554 | ||
|
|
f3b953e87b | ||
|
|
1ee84d5dd8 | ||
|
|
1b530779aa | ||
|
|
7978dc1987 | ||
|
|
2384158d1c | ||
|
|
58d0b12e1f | ||
|
|
ba66d8bbef | ||
|
|
0f95741b5a | ||
|
|
88eadf2d64 | ||
|
|
46bdbb10f9 | ||
|
|
381489b567 | ||
|
|
0929c6287d | ||
|
|
950ffac450 | ||
|
|
3bc47393b3 | ||
|
|
9d9b2cf84d | ||
|
|
c1710f928f | ||
|
|
9c0094949e | ||
|
|
8e3ec6c603 | ||
|
|
78f6fb64d0 | ||
|
|
244e40a746 | ||
|
|
7b9f009a27 | ||
|
|
4fdc4becf0 | ||
|
|
6d2f90486f | ||
|
|
d6d4a1f3b5 | ||
|
|
04dcba2d3f | ||
|
|
d2d1ce7830 | ||
|
|
fbd045d53e | ||
|
|
027dee164d | ||
|
|
e651b39126 | ||
|
|
5a242c60a5 | ||
|
|
be9f5c23e8 | ||
|
|
c5a0f61faa | ||
|
|
786648990f | ||
|
|
30f5ee6a3a | ||
|
|
7544b0dbac | ||
|
|
68eb400210 | ||
|
|
7952492672 | ||
|
|
fa3348c5c2 | ||
|
|
8a47706856 | ||
|
|
cc9026297e | ||
|
|
bf30ac72d1 | ||
|
|
10344ce639 | ||
|
|
a76fe844c6 | ||
|
|
feb6d269de | ||
|
|
76e83f6498 | ||
|
|
46ad89fe0d | ||
|
|
c186666394 | ||
|
|
6b8d1d277b | ||
|
|
2c358380e4 | ||
|
|
935beadb3b | ||
|
|
5775bc88d6 | ||
|
|
3285d23223 | ||
|
|
a8629627ea | ||
|
|
68c749474e | ||
|
|
e0b43bcbe5 | ||
|
|
10e1941c5a | ||
|
|
2d697c079d | ||
|
|
ed18e8bd51 | ||
|
|
a9670b5896 | ||
|
|
b5e66bbf43 | ||
|
|
e1f74665c1 | ||
|
|
c8903a6b56 | ||
|
|
b1258be64b | ||
|
|
7b08304f78 | ||
|
|
d439996d0c | ||
|
|
c566e4f40a | ||
|
|
272ae1cd55 | ||
|
|
c4052ec34d | ||
|
|
f4f80ffbde | ||
|
|
2de110149f | ||
|
|
b0ab87bbab | ||
|
|
edde9bd52b | ||
|
|
bf56cc88bf | ||
|
|
393d7f4fc4 | ||
|
|
2ecb4ce65a | ||
|
|
88e73a3ea8 | ||
|
|
8be84ff0a9 | ||
|
|
9d3418bec2 | ||
|
|
68cb4377b7 | ||
|
|
ce140cf4f2 | ||
|
|
a60e90ab8f | ||
|
|
89adbab83b | ||
|
|
09837534ea | ||
|
|
a769f9eb1f | ||
|
|
031215cb4f | ||
|
|
b36e420e89 | ||
|
|
0a52deb024 | ||
|
|
d3b5bb0d60 | ||
|
|
5a1c9eeacb | ||
|
|
b9d8a339d2 | ||
|
|
9fe46133da | ||
|
|
f35172fde1 | ||
|
|
6b79aca0be | ||
|
|
9788b83d82 | ||
|
|
366644f5d2 | ||
|
|
3891119804 | ||
|
|
e8284be564 | ||
|
|
6c6dd819a8 | ||
|
|
014fca20a9 | ||
|
|
2b51508030 | ||
|
|
7e8f5f6751 | ||
|
|
61a788961d | ||
|
|
8a8780ff71 | ||
|
|
921f8fc6a7 | ||
|
|
977837f81e | ||
|
|
17bbc58503 | ||
|
|
61fa0dd7fd | ||
|
|
f08777fdab | ||
|
|
7a6f6aac82 | ||
|
|
86ce0ac9d4 | ||
|
|
e08b0e8184 | ||
|
|
02c48e8eaa | ||
|
|
0876ec355e | ||
|
|
28dd018961 | ||
|
|
ce363cafe1 | ||
|
|
67202e47e3 | ||
|
|
d7d9b8e39c | ||
|
|
1a52cafa66 | ||
|
|
b3a419de26 | ||
|
|
0b3931ff86 | ||
|
|
2b854183ac | ||
|
|
18013b83df | ||
|
|
6b4a76dd4a | ||
|
|
c15bf8c58e | ||
|
|
60a839663a | ||
|
|
ee72de3539 | ||
|
|
73281b62d9 | ||
|
|
e5e7164a93 | ||
|
|
3ed506a924 | ||
|
|
33503c4485 | ||
|
|
5c8e50aa9f | ||
|
|
c9106e8484 | ||
|
|
62b40404c7 | ||
|
|
07a320147d | ||
|
|
34cdfc4def | ||
|
|
545b61a79f | ||
|
|
feb2f93360 | ||
|
|
8fb93e5f2b | ||
|
|
e5e3eaaff4 | ||
|
|
4bc88c8d13 | ||
|
|
a5c8d284ee | ||
|
|
c2f151e03e | ||
|
|
b0b643f164 | ||
|
|
99c07ec5fb | ||
|
|
3f553d27e1 | ||
|
|
a6a17574b8 | ||
|
|
78359c710f | ||
|
|
2206e5472b | ||
|
|
9c96585401 | ||
|
|
ac36fa13ac | ||
|
|
b4586e8661 | ||
|
|
5a6199a8a9 | ||
|
|
5e34285db2 | ||
|
|
9612646c55 | ||
|
|
7324904db9 | ||
|
|
132c169e24 | ||
|
|
207961e397 | ||
|
|
73339cfc50 | ||
|
|
94559de7ae | ||
|
|
89fa46aa6d | ||
|
|
0fbb54a04a | ||
|
|
9619164eb4 | ||
|
|
343fc2ac4e | ||
|
|
9c98199ee3 | ||
|
|
3652cdfca9 | ||
|
|
2699268b81 | ||
|
|
e4d0326a74 | ||
|
|
8525adecf4 | ||
|
|
c381580cca | ||
|
|
aea641cd9c | ||
|
|
2179dbf1d8 | ||
|
|
6f5f70f439 | ||
|
|
d40175d4a5 | ||
|
|
34eba60193 | ||
|
|
57230a32c3 | ||
|
|
d9146432e4 | ||
|
|
447e6edd56 | ||
|
|
aa58ca79bb | ||
|
|
a2692f6837 | ||
|
|
c031de7fec | ||
|
|
918342fdf3 | ||
|
|
d8f623f1a0 | ||
|
|
6a4460d089 | ||
|
|
e61954442f | ||
|
|
f5aa965369 | ||
|
|
eb812dc9e0 | ||
|
|
6d4d118685 | ||
|
|
94a78942f8 | ||
|
|
5c2437cee1 | ||
|
|
fa8875c0ee | ||
|
|
2040ce3ea0 | ||
|
|
d9822a7a91 | ||
|
|
d2e0b9d2d3 | ||
|
|
ccdd036935 | ||
|
|
5d36be3804 | ||
|
|
2640b00b05 | ||
|
|
9087100c42 | ||
|
|
5c9a92c68e | ||
|
|
1fd894a3b3 | ||
|
|
09316011ab | ||
|
|
fdce6c3d57 | ||
|
|
1be03c39ad | ||
|
|
a0c098ea1f | ||
|
|
9a4e3d7a78 | ||
|
|
1005cc522d | ||
|
|
729e7e5f0e | ||
|
|
79cbdc9f69 | ||
|
|
c6ca7c95f4 | ||
|
|
e878158b71 | ||
|
|
ed5f0784d1 | ||
|
|
051648954a | ||
|
|
f5538e69a5 | ||
|
|
a82660b049 | ||
|
|
f828268b14 | ||
|
|
02c7814ce4 | ||
|
|
e36ffd828b | ||
|
|
219a19a3a8 | ||
|
|
683913e0fe | ||
|
|
837e64c377 | ||
|
|
f8497f5538 | ||
|
|
9c2a69aa03 | ||
|
|
a8c3a12089 | ||
|
|
b8199c24ef | ||
|
|
971cea5418 | ||
|
|
d12b9ddf2f | ||
|
|
e4ec830aaa | ||
|
|
ebb1da3fc2 | ||
|
|
80e06b3f49 | ||
|
|
605381b553 | ||
|
|
298d31e21a | ||
|
|
947b824796 | ||
|
|
edbe4e7f66 | ||
|
|
dbccb827ad | ||
|
|
f5af726382 | ||
|
|
e95332cedb | ||
|
|
6a7d8fe4be | ||
|
|
37eb70db63 | ||
|
|
77e9aa4ddd |
0
.gitattributes
vendored
Executable file → Normal file
0
.gitattributes
vendored
Executable file → Normal file
0
.gitignore
vendored
Executable file → Normal file
0
.gitignore
vendored
Executable file → Normal file
15
.ignore
Normal file
15
.ignore
Normal file
@@ -0,0 +1,15 @@
|
||||
flake.lock
|
||||
*.remmina
|
||||
*.pem
|
||||
*.env
|
||||
*.key
|
||||
*.ovpn
|
||||
sops-secrets.yaml
|
||||
*.png
|
||||
*.jpg
|
||||
*.webp
|
||||
*.gif
|
||||
*.mp3
|
||||
*.mp4
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
keys:
|
||||
- &users:
|
||||
- &nx2backup age1sgzc2jh8af30a3cp6g7l4hyzusqrn3x3xw7frghc4akvjaplwa3stfemxc
|
||||
- &nx2 22FB2CC03DC5292AB81CF67D0AF27B383170E634
|
||||
- &nx2_key_13 age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq
|
||||
- &hosts:
|
||||
- &north age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e
|
||||
- &xps age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6
|
||||
@@ -13,6 +13,6 @@ creation_rules:
|
||||
- *north
|
||||
- *xps
|
||||
- *ace
|
||||
- *nx2backup
|
||||
- *nx2_key_13
|
||||
pgp:
|
||||
- *nx2
|
||||
|
||||
123
configuration.nix
Executable file → Normal file
123
configuration.nix
Executable file → Normal file
@@ -1,126 +1,69 @@
|
||||
{ pkgs, inputs, lib, host, ... }:
|
||||
{
|
||||
imports = ([
|
||||
{ ... }@all: with all; {
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
./system-modules/adb.nix
|
||||
./system-modules/auto-mount.nix
|
||||
./system-modules/hardware-configuration.nix
|
||||
./system-modules/fuse.nix
|
||||
./system-modules/nvidia.nix
|
||||
./system-modules/users.nix
|
||||
./system-modules/sound.nix
|
||||
./system-modules/fonts.nix
|
||||
./system-modules/boot.nix
|
||||
./system-modules/gc.nix
|
||||
./system-modules/tz.nix
|
||||
./system-modules/bluetooth.nix
|
||||
./system-modules/boot.nix
|
||||
./system-modules/cache.nix
|
||||
./system-modules/calendar.nix
|
||||
./system-modules/dm.nix
|
||||
./system-modules/docker.nix
|
||||
./system-modules/fcitx5.nix
|
||||
./system-modules/fonts.nix
|
||||
./system-modules/fuse.nix
|
||||
./system-modules/games.nix
|
||||
./system-modules/gc.nix
|
||||
./system-modules/gpg.nix
|
||||
./system-modules/hardware-configuration.nix
|
||||
./system-modules/health_reminder.nix
|
||||
./system-modules/hsmw.nix
|
||||
./system-modules/kanata.nix
|
||||
./system-modules/terminal.nix
|
||||
./system-modules/kodi.nix
|
||||
./system-modules/networking.nix
|
||||
./system-modules/nixd.nix
|
||||
./system-modules/nvidia.nix
|
||||
./system-modules/obs.nix
|
||||
./system-modules/ollama.nix
|
||||
./system-modules/qmk.nix
|
||||
./system-modules/scanning.nix
|
||||
./system-modules/sops.nix
|
||||
./system-modules/sound.nix
|
||||
./system-modules/sshd.nix
|
||||
./system-modules/base-packages.nix
|
||||
./system-modules/input.nix
|
||||
./system-modules/syncthing.nix
|
||||
./system-modules/tuda.nix
|
||||
./system-modules/gui.nix
|
||||
./system-modules/editor.nix
|
||||
./system-modules/printing.nix
|
||||
./system-modules/security.nix
|
||||
./system-modules/users.nix
|
||||
./system-modules/virtualisation.nix
|
||||
./system-modules/ydotool.nix
|
||||
]) ++ (if (host == "NxACE") then [
|
||||
] ++ (if (hyper.host == "NxACE") then [
|
||||
./system-modules/nx2site.nix
|
||||
./system-modules/hugo.nix
|
||||
./system-modules/postgres.nix
|
||||
./system-modules/nx2site/proxy.nix
|
||||
# ./system-modules/nx2site/gitea.nix
|
||||
# ./system-modules/nx2site/vaultwarden.nix
|
||||
] else []);
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console.font = "Lat2-Terminus16";
|
||||
console.keyMap = "de";
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "de";
|
||||
options = "eurosign:e,caps:escape";
|
||||
};
|
||||
# lightdm in lightdm.nix
|
||||
};
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# rtkit is optional but recommended
|
||||
security.rtkit.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
services.libinput.enable = true;
|
||||
hardware.uinput.enable = true;
|
||||
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
package = pkgs.bluez5-experimental;
|
||||
settings.Policy.AutoEnable = "true";
|
||||
settings.General.Enable = "Source,Sink,Media,Socket";
|
||||
};
|
||||
services.blueman.enable = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; ([
|
||||
git
|
||||
git-crypt
|
||||
lazygit # home-manager module is bugged
|
||||
wget
|
||||
curlHTTP3
|
||||
zip
|
||||
unzip
|
||||
p7zip
|
||||
unar
|
||||
nano
|
||||
htop
|
||||
direnv
|
||||
openssl
|
||||
blueman
|
||||
dmidecode
|
||||
file
|
||||
# ]) ++ (with pkgs-unstable; [
|
||||
# # sendme
|
||||
./system-modules/nx2site/audiobookshelf.nix
|
||||
./system-modules/nx2site/copyparty.nix
|
||||
./system-modules/nx2site/gitea.nix
|
||||
./system-modules/nx2site/open-web-calendar.nix
|
||||
./system-modules/nx2site/radicale.nix
|
||||
./system-modules/nx2site/vaultwarden.nix
|
||||
./system-modules/nx2site/paperless.nix
|
||||
./system-modules/calendar/publish.nix
|
||||
./system-modules/calendar/lec.nix
|
||||
./system-modules/calendar/lr.nix
|
||||
./system-modules/calendar/dicos.nix
|
||||
] else [
|
||||
]);
|
||||
|
||||
environment.variables = {
|
||||
EDITOR = "hx";
|
||||
VISUAL = "hx";
|
||||
};
|
||||
|
||||
|
||||
programs.hyprland = {
|
||||
# config is done with home-manager
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
||||
system.stateVersion = hyper.pkgs-version;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
programs.bash.shellInit = ''
|
||||
source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
'';
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
"discord"
|
||||
"spotify"
|
||||
"obsidian"
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
"zoom-us"
|
||||
"zoom"
|
||||
|
||||
@@ -35,6 +37,8 @@
|
||||
"libnvjitlink"
|
||||
"libcusparse"
|
||||
"libnpp"
|
||||
|
||||
"vscode-extension-mhutchie-git-graph"
|
||||
];
|
||||
|
||||
inecure = [
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"base": {
|
||||
"foreground": "#eedce2",
|
||||
"background": "#221016"
|
||||
"foreground": "#dcd5f5",
|
||||
"background": "#100929"
|
||||
},
|
||||
"to_alter": {
|
||||
"accent": "#ac5271",
|
||||
"secondary": "#f20c5b",
|
||||
"tertiary": "#d5a287",
|
||||
"special": "#51ac8d",
|
||||
"weird": "#0cf2a3"
|
||||
"accent": "#765ad7",
|
||||
"secondary": "#ce32ff",
|
||||
"tertiary": "#879eaa",
|
||||
"special": "#bad759",
|
||||
"weird": "#d75991"
|
||||
}
|
||||
}
|
||||
@@ -6,15 +6,14 @@ pkgs: rec {
|
||||
rounding = 3;
|
||||
gap-size = 5;
|
||||
border-width = 2;
|
||||
color =
|
||||
let
|
||||
color = let
|
||||
dark = (-0.5);
|
||||
bright = (0.5);
|
||||
alter-set = let f = lib.alter-luminace-hex; in color-name: color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||
alter = let f = lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||
# ccolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json));
|
||||
ccolor = builtins.mapAttrs alter-set {
|
||||
black = "#111111"; # "#111111" "#001100";
|
||||
black = "#040404"; # "#111111" "#001100";
|
||||
white = "#dddddd"; # "#dddddd" "#66dd66";
|
||||
blue = "#4444dd"; # "#3333dd" "#003300";
|
||||
cyan = "#44dddd"; # "#11dddd" "#00dd55";
|
||||
@@ -26,8 +25,8 @@ pkgs: rec {
|
||||
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)).to_alter;
|
||||
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json)).base;
|
||||
fcolor = facolor // fbcolor;
|
||||
xcolor = with ccolor; with fcolor; rec {
|
||||
background = "#000000";
|
||||
xcolor = with ccolor; with fcolor; {
|
||||
# background = "#000000";
|
||||
# foreground = "#dddddd";
|
||||
# accent = blue;
|
||||
# secondary = cyan;
|
||||
@@ -42,17 +41,14 @@ pkgs: rec {
|
||||
in ccolor // fcolor // xcolor;
|
||||
font = {
|
||||
code = {
|
||||
name = "JetBrainsMono-NF";
|
||||
name2 = "JetBrainsMono Nerd Font";
|
||||
package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
|
||||
# name = "CascadiaCove-NF";
|
||||
# package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
|
||||
name = "JetBrainsMono Nerd Font";
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
};
|
||||
base = {
|
||||
# name = "NewComputerModern08";
|
||||
# package = pkgs.newcomputermodern;
|
||||
name = "Atkinson Hyperlegible";
|
||||
package = pkgs.atkinson-hyperlegible;
|
||||
package = pkgs.atkinson-hyperlegible-next;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
|
||||
593
flake.lock
generated
Executable file → Normal file
593
flake.lock
generated
Executable file → Normal file
@@ -1,26 +1,5 @@
|
||||
{
|
||||
"nodes": {
|
||||
"Hyprspace": {
|
||||
"inputs": {
|
||||
"hyprland": [
|
||||
"hyprland"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728710667,
|
||||
"narHash": "sha256-9HR9EePhzweUAUPUccByNYxKQzfFAnxfu2BXTLqOLZQ=",
|
||||
"owner": "KZDKM",
|
||||
"repo": "Hyprspace",
|
||||
"rev": "e8406a7708bceb3b5bedf56b67490dbe3d27e6f8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "KZDKM",
|
||||
"repo": "Hyprspace",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"aquamarine": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
@@ -41,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728902391,
|
||||
"narHash": "sha256-44bnoY0nAvbBQ/lVjmn511yL39Sv7SknV0BDxn34P3Q=",
|
||||
"lastModified": 1755946532,
|
||||
"narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "9874e08eec85b5542ca22494e127b0cdce46b786",
|
||||
"rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -54,31 +33,32 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"copyparty": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"lanzaboote",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-utils": [
|
||||
"lanzaboote",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-overlay": [
|
||||
"lanzaboote",
|
||||
"rust-overlay"
|
||||
]
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681177078,
|
||||
"narHash": "sha256-ZNIjBDou2GOabcpctiQykEQVkI8BDwk7TyvlWlI4myE=",
|
||||
"lastModified": 1756320983,
|
||||
"narHash": "sha256-huaJ1CvBsylibf55pjiFEpiKxYU235iAzwMhJ+iDSjw=",
|
||||
"owner": "9001",
|
||||
"repo": "copyparty",
|
||||
"rev": "f4f702c39dd2365f6ca43ed6b72a84c708fded8d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "9001",
|
||||
"repo": "copyparty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1731098351,
|
||||
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "0c9f468ff00576577d83f5019a66c557ede5acf6",
|
||||
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -88,6 +68,22 @@
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
@@ -103,14 +99,14 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -120,24 +116,6 @@
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727826117,
|
||||
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"lanzaboote",
|
||||
@@ -145,11 +123,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1680392223,
|
||||
"narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=",
|
||||
"lastModified": 1730504689,
|
||||
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5",
|
||||
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -159,15 +137,12 @@
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"lastModified": 1678901627,
|
||||
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -178,14 +153,14 @@
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -225,11 +200,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1660459072,
|
||||
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -245,16 +220,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726989464,
|
||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
||||
"lastModified": 1756245065,
|
||||
"narHash": "sha256-aAZNbGcWrVRZgWgkQbkabSGcDVRDMgON4BipMy69gvI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
||||
"rev": "54b2879ce622d44415e727905925e21b8f833a98",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.05",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -275,11 +250,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728669738,
|
||||
"narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=",
|
||||
"lastModified": 1753964049,
|
||||
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "0264e698149fcb857a66a53018157b41f8d97bb0",
|
||||
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -288,25 +263,56 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprgraphics": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprutils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755678602,
|
||||
"narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "157cc52065a104fc3b8fa542ae648b992421d1c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland": {
|
||||
"inputs": {
|
||||
"aquamarine": "aquamarine",
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprgraphics": "hyprgraphics",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprland-qtutils": "hyprland-qtutils",
|
||||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"systems": "systems_2",
|
||||
"systems": "systems",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729629261,
|
||||
"narHash": "sha256-IJtor2qFpsZkCm4UMnCHOSosW9GXKZVOm7DILtJJgoM=",
|
||||
"lastModified": 1756325904,
|
||||
"narHash": "sha256-PRz3GE4ZBScWrHTVegpM4B2YLZplp1iPwmZ9AeYBbsg=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "29997ef4ba8ef0a80390e80199998d1390177454",
|
||||
"revCount": 5366,
|
||||
"rev": "378e130f1426648d8d734049800128f9882805bf",
|
||||
"revCount": 6395,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland"
|
||||
@@ -334,11 +340,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729596320,
|
||||
"narHash": "sha256-sBPr6O2Ad916f+L7biAjmJVx4TLDITC4joKgeOT47V8=",
|
||||
"lastModified": 1756325158,
|
||||
"narHash": "sha256-aJ9jAYtZ64MWBpWPfH1q+t6U9b6kJWc2yK9Vrlj6fZY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "4d7f0b5d8b952f31f7d2e29af22ab0a55ca5c219",
|
||||
"rev": "bf843fc6adf90d43a5dd7742e9df61d395ba780d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -359,11 +365,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728345020,
|
||||
"narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
|
||||
"lastModified": 1749046714,
|
||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "a7c183800e74f337753de186522b9017a07a8cee",
|
||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -372,6 +378,74 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qt-support": {
|
||||
"inputs": {
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749154592,
|
||||
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qtutils": {
|
||||
"inputs": {
|
||||
"hyprland-qt-support": "hyprland-qt-support",
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang",
|
||||
"hyprutils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753819801,
|
||||
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
@@ -388,11 +462,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728168612,
|
||||
"narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=",
|
||||
"lastModified": 1753622892,
|
||||
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e",
|
||||
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -401,23 +475,24 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprswitch": {
|
||||
"hyprspace": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"hyprland": [
|
||||
"hyprland"
|
||||
],
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1725107917,
|
||||
"narHash": "sha256-6on3nwb3gB4t+P/2IExgGhVLVgAkF6ZiE5x+qcQHEXU=",
|
||||
"owner": "h3rmt",
|
||||
"repo": "hyprswitch",
|
||||
"rev": "f478c394ad6db5ba268f80052f1eb2366366b21e",
|
||||
"lastModified": 1754887838,
|
||||
"narHash": "sha256-npC+H+Wl60EdrV75sjqm+bbbLbKgCCGn4ALSM0B2OWA=",
|
||||
"owner": "KZDKM",
|
||||
"repo": "Hyprspace",
|
||||
"rev": "2b61fd2115262243b03aa9afe8dfd8a78e71636c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "h3rmt",
|
||||
"ref": "release",
|
||||
"repo": "hyprswitch",
|
||||
"owner": "KZDKM",
|
||||
"repo": "Hyprspace",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -433,11 +508,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728941256,
|
||||
"narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=",
|
||||
"lastModified": 1756117388,
|
||||
"narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85",
|
||||
"rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -458,11 +533,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726874836,
|
||||
"narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
|
||||
"lastModified": 1755184602,
|
||||
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
|
||||
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -475,50 +550,68 @@
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1682802423,
|
||||
"narHash": "sha256-Fb5TeRTdvUlo/5Yi2d+FC8a6KoRLk2h1VE0/peMhWPs=",
|
||||
"lastModified": 1737639419,
|
||||
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "64b903ca87d18cef2752c19c098af275c6e51d63",
|
||||
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "v0.3.0",
|
||||
"ref": "v0.4.2",
|
||||
"repo": "lanzaboote",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-wsl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755261305,
|
||||
"narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "main",
|
||||
"repo": "NixOS-WSL",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1728888510,
|
||||
"narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
|
||||
"lastModified": 1748162331,
|
||||
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c",
|
||||
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-latest": {
|
||||
"locked": {
|
||||
"lastModified": 1729631290,
|
||||
"narHash": "sha256-zVL79jvDihxcnq9FKkAoILYWxGmxCw1DGdBnpv/B+3s=",
|
||||
"lastModified": 1756326156,
|
||||
"narHash": "sha256-EvRCnKAE5oL9wOIT/LrA5+pJVpTvhH71OReJDTOZDyk=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1f9d2cf67508efd9b5e81cdf7af556bbbfe02377",
|
||||
"rev": "636dea4f2cd65b8c558149a957423da47c1cbc95",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -528,25 +621,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1727825735,
|
||||
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1720386169,
|
||||
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||
"lastModified": 1730741070,
|
||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
|
||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -556,45 +637,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1678872516,
|
||||
"narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-22.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_3": {
|
||||
"locked": {
|
||||
"lastModified": 1729357638,
|
||||
"narHash": "sha256-66RHecx+zohbZwJVEPF7uuwHeqf8rykZTMCTqIrOew4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bb8c2cf7ea0dd2e18a52746b2c3a5b0c73b93c22",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1729413321,
|
||||
"narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=",
|
||||
"lastModified": 1756266583,
|
||||
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26",
|
||||
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -605,26 +654,27 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1711588226,
|
||||
"narHash": "sha256-nd7goEu+nH/WZ/uCxvbWzSYqzZZn25kWTeKfANOhCjU=",
|
||||
"owner": "nixos",
|
||||
"lastModified": 1756266583,
|
||||
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7232f19f7fb710e3554cafaa9d8e93cff8273b59",
|
||||
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1682741954,
|
||||
"narHash": "sha256-RPZxzRu8XU0YD2WeYUFYzJy5yAvWUsxkuK+zWw+6WVk=",
|
||||
"lastModified": 1731919951,
|
||||
"narHash": "sha256-vOM6ETpl1yu9KLi/icTmLJIPbbdJCdAVYUXZceO/Ce4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "373e9eb4c42b2fc0611d794de5ea715a35d72393",
|
||||
"rev": "04386ac325a813047fc314d4b4d838a5b1e3c7fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -636,26 +686,42 @@
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1729449015,
|
||||
"narHash": "sha256-Gf04dXB0n4q0A9G5nTGH3zuMGr6jtJppqdeljxua1fo=",
|
||||
"lastModified": 1754725699,
|
||||
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "89172919243df199fe237ba0f776c3e3e3d72367",
|
||||
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.05",
|
||||
"type": "indirect"
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1729265718,
|
||||
"narHash": "sha256-4HQI+6LsO3kpWTYuVGIzhJs1cetFcwT7quWCk/6rqeo=",
|
||||
"lastModified": 1756217674,
|
||||
"narHash": "sha256-TH1SfSP523QI7kcPiNtMAEuwZR3Jdz0MCDXPs7TS8uo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ccc0c2126893dd20963580b6478d1a10a4512185",
|
||||
"rev": "4e7667a90c167f7a81d906e5a75cba4ad8bee620",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1752596105,
|
||||
"narHash": "sha256-lFNVsu/mHLq3q11MuGkMhUUoSXEdQjCHvpReaGP1S2k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dab3a6e781554f965bde3def0aa2fda4eb8f1708",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -665,22 +731,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1727348695,
|
||||
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
@@ -688,15 +738,14 @@
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728778939,
|
||||
"narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=",
|
||||
"lastModified": 1755960406,
|
||||
"narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "ff68f91754be6f3427e4986d7949e6273659be1d",
|
||||
"rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -711,23 +760,19 @@
|
||||
"lanzaboote",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-utils": [
|
||||
"lanzaboote",
|
||||
"flake-utils"
|
||||
],
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681413034,
|
||||
"narHash": "sha256-/t7OjNQcNkeWeSq/CFLYVBfm+IEnkjoSm9iKvArnUUI=",
|
||||
"lastModified": 1731363552,
|
||||
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "d3de8f69ca88fb6f8b09e5b598be5ac98d28ede5",
|
||||
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -738,37 +783,33 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"Hyprspace": "Hyprspace",
|
||||
"copyparty": "copyparty",
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"hyprland-plugins": "hyprland-plugins",
|
||||
"hyprswitch": "hyprswitch",
|
||||
"hyprspace": "hyprspace",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs-latest": "nixpkgs-latest",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"sops-nix": "sops-nix",
|
||||
"yazi": "yazi",
|
||||
"zen-browser": "zen-browser"
|
||||
"yazi": "yazi"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"lanzaboote",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1682129965,
|
||||
"narHash": "sha256-1KRPIorEL6pLpJR04FwAqqnt4Tzcm4MqD84yhlD+XSk=",
|
||||
"lastModified": 1731897198,
|
||||
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "2c417c0460b788328220120c698630947547ee83",
|
||||
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -785,11 +826,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729391507,
|
||||
"narHash": "sha256-as0I9xieJUHf7kiK2a9znDsVZQTFWhM1pLivII43Gi0=",
|
||||
"lastModified": 1752633862,
|
||||
"narHash": "sha256-Bj7ozT1+5P7NmvDcuAXJvj56txcXuAhk3Vd9FdWFQzk=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "784981a9feeba406de38c1c9a3decf966d853cca",
|
||||
"rev": "8668ca94858206ac3db0860a9dec471de0d995f8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -802,15 +843,14 @@
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729587807,
|
||||
"narHash": "sha256-YOc4033a/j1TbdLfkaSOSX2SrvlmuM+enIFoveNTCz4=",
|
||||
"lastModified": 1754988908,
|
||||
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "26642e8f193f547e72d38cd4c0c4e45b49236d27",
|
||||
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -864,21 +904,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
@@ -907,11 +932,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728166987,
|
||||
"narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=",
|
||||
"lastModified": 1755354946,
|
||||
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787",
|
||||
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -923,15 +948,15 @@
|
||||
"yazi": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729473414,
|
||||
"narHash": "sha256-ffiEVFCUMnShcSa4hvCbT1EQeu7c2lVOk6OdaxjiUmU=",
|
||||
"lastModified": 1756309929,
|
||||
"narHash": "sha256-udly1zNvxR6UKFZSkbutSEZ9EihUd+pPCDBaseppB5s=",
|
||||
"owner": "sxyazi",
|
||||
"repo": "yazi",
|
||||
"rev": "0e118b5b3a5baacf7fe62971e2bfe2b0ad972bab",
|
||||
"rev": "dd7afaa64aa54fac5bd30404eb44ccd9d68f31c5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -939,24 +964,6 @@
|
||||
"repo": "yazi",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727721329,
|
||||
"narHash": "sha256-QYlWZwUSwrM7BuO+dXclZIwoPvBIuJr6GpFKv9XKFPI=",
|
||||
"owner": "MarceColl",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "e6ab73f405e9a2896cce5956c549a9cc359e5fcc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "MarceColl",
|
||||
"repo": "zen-browser-flake",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
96
flake.nix
Executable file → Normal file
96
flake.nix
Executable file → Normal file
@@ -2,70 +2,98 @@
|
||||
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
||||
|
||||
inputs = {
|
||||
nixpkgs = { url = "nixpkgs/nixos-24.05"; };
|
||||
nixpkgs = { url = "nixpkgs/nixos-25.05"; };
|
||||
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
||||
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
||||
home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
nixos-wsl = { url = "github:nix-community/NixOS-WSL/main"; };
|
||||
|
||||
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; };
|
||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.4.2"; };
|
||||
|
||||
hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; };
|
||||
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
|
||||
Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
||||
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
||||
hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
||||
|
||||
# firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
yazi.url = "github:sxyazi/yazi";
|
||||
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
||||
yazi = { url = "github:sxyazi/yazi"; };
|
||||
copyparty = { url = "github:9001/copyparty"; };
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-latest, home-manager, ... }@inputs: let
|
||||
outputs = { ... }@inputs: with inputs; let
|
||||
|
||||
system = "x86_64-linux";
|
||||
simple-pkgs = import nixpkgs { inherit system; };
|
||||
config = { allowUnfreePredicate = pkg: builtins.elem (simple-pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
||||
|
||||
hyper-base = rec {
|
||||
inherit system;
|
||||
user = "nx2";
|
||||
domain = "nx2.site";
|
||||
home = "/home/${user}/";
|
||||
webroot = "/var/lib/hugo/nx2site/public";
|
||||
pkgs-version = "25.05";
|
||||
};
|
||||
|
||||
config = { allowUnfree = true; allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
||||
my-pkgs = host: import nixpkgs {
|
||||
inherit system config;
|
||||
overlays = [(final: prev: {
|
||||
unstable = import nixpkgs-unstable { inherit system config; };
|
||||
latest = import nixpkgs-latest { inherit system config; };
|
||||
version = "25.05";
|
||||
})] ++ (if host == "NxACE" then [
|
||||
copyparty.overlays.default
|
||||
] else []);
|
||||
};
|
||||
|
||||
pkgs = import nixpkgs { inherit system config; };
|
||||
pkgs-unstable = import nixpkgs-unstable { inherit system config; };
|
||||
pkgs-latest = import nixpkgs-latest { inherit system config; };
|
||||
|
||||
nvidia-set = import ./flake-modules/nvidia.nix;
|
||||
nvidia-base = import ./flake-modules/nvidia.nix;
|
||||
secrets = import ./git-crypt/secrets.nix;
|
||||
rice = import ./flake-modules/rice.nix pkgs;
|
||||
rice = import ./flake-modules/rice.nix simple-pkgs;
|
||||
in {
|
||||
nixosConfigurations = let
|
||||
make-nixos-system = host: nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
make-nixos-system = host: nvidia-settings: nixpkgs.lib.nixosSystem {
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./configuration.nix ];
|
||||
specialArgs = let
|
||||
nvidia = nvidia-set // {
|
||||
enable = if (host == "NxXPS" || host == "NxNORTH") then true else false;
|
||||
prime = if (host == "NxXPS") then true else false;
|
||||
hyper = hyper-base // { inherit host; nvidia = (nvidia-base // nvidia-settings); };
|
||||
in { inherit inputs hyper rice secrets; };
|
||||
};
|
||||
in { inherit inputs user host domain pkgs-unstable pkgs-latest secrets rice nvidia; };
|
||||
make-nixos-wsl-system = host: nixpkgs.lib.nixosSystem {
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./nixos-wsl.nix ];
|
||||
specialArgs = let
|
||||
hyper = hyper-base // { inherit host; };
|
||||
in { inherit inputs hyper rice; };
|
||||
};
|
||||
in {
|
||||
NxXPS = make-nixos-system "NxXPS";
|
||||
NxNORTH = make-nixos-system "NxNORTH";
|
||||
NxACE = make-nixos-system "NxACE";
|
||||
NxXPS = make-nixos-system "NxXPS" { enable = true; prime = true; };
|
||||
NxNORTH = make-nixos-system "NxNORTH" { enable = true; prime = false; };
|
||||
NxACE = make-nixos-system "NxACE" { enable = false; };
|
||||
NxWSL = make-nixos-wsl-system "NxWSL";
|
||||
};
|
||||
|
||||
homeConfigurations = let
|
||||
make-home-configuration = host: user: home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
make-home-configuration = host: user: nvidia-settings: home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = let
|
||||
nvidia = nvidia-set // {
|
||||
enable = if (host == "NxXPS" || host == "NxNORTH") then true else false;
|
||||
prime = if (host == "NxXPS") then true else false;
|
||||
hyper = hyper-base // { inherit host; nvidia = nvidia-base // nvidia-settings; };
|
||||
in { inherit inputs hyper rice secrets; };
|
||||
};
|
||||
in { inherit inputs system user host domain pkgs-unstable pkgs-latest rice secrets nvidia; };
|
||||
make-shell-configuration = host: user: home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = my-pkgs host;
|
||||
modules = [ ./shell-only.nix ];
|
||||
extraSpecialArgs = let
|
||||
hyper = hyper-base // { inherit host; };
|
||||
in { inherit inputs hyper rice secrets; };
|
||||
};
|
||||
in {
|
||||
"${user}@NxXPS" = make-home-configuration "NxXPS" user;
|
||||
"${user}@NxNORTH" = make-home-configuration "NxNORTH" user;
|
||||
"${user}@NxACE" = make-home-configuration "NxACE" user;
|
||||
"${hyper-base.user}@NxXPS" = make-home-configuration "NxXPS" hyper-base.user { enable = true; prime = true; };
|
||||
"${hyper-base.user}@NxNORTH" = make-home-configuration "NxNORTH" hyper-base.user { enable = true; prime = false; };
|
||||
"${hyper-base.user}@NxACE" = make-home-configuration "NxACE" hyper-base.user { enable = false; };
|
||||
|
||||
"${hyper-base.user}@NxWSL" = make-shell-configuration "NxWSL" hyper-base.user;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
0
git-crypt/easyroam-hsmw/easyroam_client_cert.pem
Executable file → Normal file
0
git-crypt/easyroam-hsmw/easyroam_client_cert.pem
Executable file → Normal file
0
git-crypt/easyroam-hsmw/easyroam_client_key.pem
Executable file → Normal file
0
git-crypt/easyroam-hsmw/easyroam_client_key.pem
Executable file → Normal file
0
git-crypt/easyroam-hsmw/easyroam_root_ca.pem
Executable file → Normal file
0
git-crypt/easyroam-hsmw/easyroam_root_ca.pem
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx-ca.pem
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx-ca.pem
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx-cert.key
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx-cert.key
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx-cert.pem
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx-cert.pem
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx.ovpn
Executable file → Normal file
0
git-crypt/pnx-vpn/ljk-pnx.ovpn
Executable file → Normal file
BIN
git-crypt/secrets.nix
Executable file → Normal file
BIN
git-crypt/secrets.nix
Executable file → Normal file
Binary file not shown.
0
git-crypt/vpn-hsmw/USERTrust-ECC-Certification-Authority.pem
Executable file → Normal file
0
git-crypt/vpn-hsmw/USERTrust-ECC-Certification-Authority.pem
Executable file → Normal file
0
git-crypt/vpn-hsmw/USERTrust-RSA-Certification-Authority.pem
Executable file → Normal file
0
git-crypt/vpn-hsmw/USERTrust-RSA-Certification-Authority.pem
Executable file → Normal file
819
home-modules/assets/nx2.flf
Normal file
819
home-modules/assets/nx2.flf
Normal file
@@ -0,0 +1,819 @@
|
||||
flf2a$ 8 8 17 -1 2
|
||||
nx2.flf by nx2
|
||||
July 10. 2025
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@@
|
||||
db$@
|
||||
88$@
|
||||
88$@
|
||||
°°$@
|
||||
..$@
|
||||
YP$@
|
||||
$@
|
||||
$@@
|
||||
.o. .o.$@
|
||||
'8' '8'$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db db $@
|
||||
C88888D$@
|
||||
88 88 $@
|
||||
C88888D$@
|
||||
YP YP $@
|
||||
$@
|
||||
$@@
|
||||
8 $@
|
||||
.d888b.$@
|
||||
88 8 °°$@
|
||||
'Y888b.$@
|
||||
.. 8 8D$@
|
||||
'Y888P'$@
|
||||
8 $@
|
||||
$@@
|
||||
d8b dD$@
|
||||
°8° d8'$@
|
||||
d8' $@
|
||||
d8' $@
|
||||
d8'.8.$@
|
||||
d8' Y8P$@
|
||||
$@
|
||||
$@@
|
||||
.d888b. $@
|
||||
8P 8D $@
|
||||
'Vb d8' $@
|
||||
d88C dD$@
|
||||
C8' d8D $@
|
||||
'888P Yb$@
|
||||
$@
|
||||
$@@
|
||||
Cb$@
|
||||
'D$@
|
||||
'$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
dD$@
|
||||
d8' $@
|
||||
d8 $@
|
||||
88 $@
|
||||
V8 $@
|
||||
V8. $@
|
||||
VD$@
|
||||
$@@
|
||||
Cb. $@
|
||||
'8b $@
|
||||
8b$@
|
||||
88$@
|
||||
8P$@
|
||||
.8P $@
|
||||
CP' $@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
d.8.b $@
|
||||
X8K $@
|
||||
Y'8'P $@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db $@
|
||||
88 $@
|
||||
C888888D$@
|
||||
88 $@
|
||||
VP $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
db$@
|
||||
Y8$@
|
||||
.V$@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
C8888D$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
db$@
|
||||
VP$@
|
||||
$@
|
||||
$@@
|
||||
dD$@
|
||||
d8'$@
|
||||
d8' $@
|
||||
d8' $@
|
||||
d8' $@
|
||||
C8' $@
|
||||
$@
|
||||
$@@
|
||||
.d88b. $@
|
||||
.8P 88.$@
|
||||
88 d'88$@
|
||||
88 d' 88$@
|
||||
'88' d8'$@
|
||||
'Y88P' $@
|
||||
$@
|
||||
$@@
|
||||
d8b $@
|
||||
dP88 $@
|
||||
dP'88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
Y8888P$@
|
||||
$@
|
||||
$@@
|
||||
.d888b.$@
|
||||
VP '8D$@
|
||||
odD'$@
|
||||
.88' $@
|
||||
j88. $@
|
||||
888888D$@
|
||||
$@
|
||||
$@@
|
||||
.d888b.$@
|
||||
VP '8D$@
|
||||
oooY'$@
|
||||
°°Yb.$@
|
||||
db 8D$@
|
||||
'Y888P'$@
|
||||
$@
|
||||
$@@
|
||||
j8b $@
|
||||
j888 $@
|
||||
j8'88 $@
|
||||
j8' 88 $@
|
||||
V88888D$@
|
||||
VP $@
|
||||
$@
|
||||
$@@
|
||||
d88888b$@
|
||||
8D $@
|
||||
Y888bo.$@
|
||||
'88$@
|
||||
do. .88$@
|
||||
'Y888P'$@
|
||||
$@
|
||||
$@@
|
||||
dD $@
|
||||
d8' $@
|
||||
d8' $@
|
||||
d8888b.$@
|
||||
88' '8D$@
|
||||
'8888P $@
|
||||
$@
|
||||
$@@
|
||||
d88888b$@
|
||||
VP d8'$@
|
||||
d8' $@
|
||||
d8' $@
|
||||
d8' $@
|
||||
d8' $@
|
||||
$@
|
||||
$@@
|
||||
.d888b.$@
|
||||
88 8D$@
|
||||
'VoooY'$@
|
||||
.d°°°b.$@
|
||||
88 8D$@
|
||||
'Y888P'$@
|
||||
$@
|
||||
$@@
|
||||
.d888b.$@
|
||||
88' '8D$@
|
||||
'V8o88'$@
|
||||
d8' $@
|
||||
d8' $@
|
||||
d8' $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db$@
|
||||
VP$@
|
||||
$@
|
||||
db$@
|
||||
VP$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db$@
|
||||
VP$@
|
||||
$@
|
||||
db$@
|
||||
V8$@
|
||||
P$@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
.d9$@
|
||||
.dP' $@
|
||||
'Yb. $@
|
||||
'Yb$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
C8888D$@
|
||||
$@
|
||||
C8888D$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
0b. $@
|
||||
'Yb.$@
|
||||
.dP'$@
|
||||
0Y' $@
|
||||
$@
|
||||
$@@
|
||||
.d888b.$@
|
||||
VP '8D$@
|
||||
odD'$@
|
||||
8P' $@
|
||||
.. $@
|
||||
VP $@
|
||||
$@
|
||||
$@@
|
||||
.o888bo. $@
|
||||
d8°' '°Y8 $@
|
||||
d8' .o88b 88$@
|
||||
8P dP d8 8P$@
|
||||
8b 'V88P'8P $@
|
||||
Yo. ...$@
|
||||
'°Y8888P°' $@
|
||||
$@@
|
||||
d8b $@
|
||||
dP'Yb $@
|
||||
d8. .8b $@
|
||||
d8888888b $@
|
||||
d8' '8b$@
|
||||
YP YP$@
|
||||
$@
|
||||
$@@
|
||||
d8888b.$@
|
||||
88 '8D$@
|
||||
88oooY'$@
|
||||
88°°Yb.$@
|
||||
88 8D$@
|
||||
Y8888P'$@
|
||||
$@
|
||||
$@@
|
||||
.od88bo. $@
|
||||
.8P°' '°YD$@
|
||||
88 $@
|
||||
88 $@
|
||||
'8b. .dD$@
|
||||
'°Y88P°' $@
|
||||
$@
|
||||
$@@
|
||||
d8888bo. $@
|
||||
88 '8b$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
88 .8P$@
|
||||
Y8888P°' $@
|
||||
$@
|
||||
$@@
|
||||
d888888b$@
|
||||
88' $@
|
||||
88oooo. $@
|
||||
88°°°°' $@
|
||||
88. $@
|
||||
Y888888P$@
|
||||
$@
|
||||
$@@
|
||||
d888888b$@
|
||||
88' $@
|
||||
88oooo. $@
|
||||
88°°°°' $@
|
||||
88 $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
.od88bo. $@
|
||||
.8P°' '°YD$@
|
||||
88 $@
|
||||
88 d88b$@
|
||||
'8b. .8D$@
|
||||
'°Y88P°'V$@
|
||||
$@
|
||||
$@@
|
||||
db db$@
|
||||
88 88$@
|
||||
88ooo88$@
|
||||
88°°°88$@
|
||||
88 88$@
|
||||
YP YP$@
|
||||
$@
|
||||
$@@
|
||||
d8888b$@
|
||||
'88' $@
|
||||
88 $@
|
||||
88 $@
|
||||
.88. $@
|
||||
Y8888P$@
|
||||
$@
|
||||
$@@
|
||||
d88b$@
|
||||
'8P'$@
|
||||
88 $@
|
||||
88 $@
|
||||
db..88 $@
|
||||
'Y88P' $@
|
||||
$@
|
||||
$@@
|
||||
db dD$@
|
||||
88 .8P'$@
|
||||
88o8P $@
|
||||
88°8b $@
|
||||
88 '88.$@
|
||||
YP YD$@
|
||||
$@
|
||||
$@@
|
||||
db $@
|
||||
88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
88....$@
|
||||
Y8888D$@
|
||||
$@
|
||||
$@@
|
||||
d8b d8b$@
|
||||
88Y8bd8P88$@
|
||||
88 'YP' 88$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
YP YP$@
|
||||
$@
|
||||
$@@
|
||||
d8b db$@
|
||||
888b 88$@
|
||||
88Y8b 88$@
|
||||
88 Y8b88$@
|
||||
88 Y888$@
|
||||
YP Y8P$@
|
||||
$@
|
||||
$@@
|
||||
.od88bo. $@
|
||||
.8P' 'Y8.$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
'8b. .d8'$@
|
||||
'°Y88P°' $@
|
||||
$@
|
||||
$@@
|
||||
d88888b.$@
|
||||
88' '8b$@
|
||||
88. .8P$@
|
||||
888888P'$@
|
||||
88 $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
.od88bo. $@
|
||||
.8P' 'Y8.$@
|
||||
88 88$@
|
||||
88 '8o 88$@
|
||||
'8b. '8dP'$@
|
||||
'°Y88P°8o $@
|
||||
$@
|
||||
$@@
|
||||
d88888b.$@
|
||||
88' '8b$@
|
||||
88. .8P$@
|
||||
888888P'$@
|
||||
88 Y8b $@
|
||||
YP Y8b$@
|
||||
$@
|
||||
$@@
|
||||
.d8888.$@
|
||||
88' YP$@
|
||||
'8bo. $@
|
||||
'Y8b.$@
|
||||
db 8D$@
|
||||
'8888Y'$@
|
||||
$@
|
||||
$@@
|
||||
d888888b$@
|
||||
'°°88°°'$@
|
||||
88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
db db$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
Y8. .8P$@
|
||||
°8888° $@
|
||||
$@
|
||||
$@@
|
||||
db db$@
|
||||
88 88$@
|
||||
Y8 8P$@
|
||||
'8b d8'$@
|
||||
'8bd8' $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
db db$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
Y8 db 8P$@
|
||||
'8bd88bd8'$@
|
||||
'8P°°8P' $@
|
||||
$@
|
||||
$@@
|
||||
db db$@
|
||||
'8b d8'$@
|
||||
'8bd8' $@
|
||||
.dPYb. $@
|
||||
.8P Y8.$@
|
||||
YP YP$@
|
||||
$@
|
||||
$@@
|
||||
db db$@
|
||||
'8b d8'$@
|
||||
'8bd8' $@
|
||||
88 $@
|
||||
88 $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
d88888D$@
|
||||
YP d8'$@
|
||||
d8' $@
|
||||
d8' $@
|
||||
d8' db$@
|
||||
d88888P$@
|
||||
$@
|
||||
$@@
|
||||
d88D$@
|
||||
88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
L88D$@
|
||||
$@@
|
||||
Cb $@
|
||||
'8b $@
|
||||
'8b $@
|
||||
'8b $@
|
||||
'8b $@
|
||||
'8D$@
|
||||
$@
|
||||
$@@
|
||||
C88D$@
|
||||
88$@
|
||||
88$@
|
||||
88$@
|
||||
88$@
|
||||
88$@
|
||||
C888$@
|
||||
$@@
|
||||
db $@
|
||||
.dPVb. $@
|
||||
dP' 'Vb$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
C88888D$@
|
||||
$@
|
||||
$@@
|
||||
dD$@
|
||||
C'$@
|
||||
'$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
.d8888bd8$@
|
||||
d8°' '°88$@
|
||||
88 88$@
|
||||
88o. .o88$@
|
||||
'Y8888P'8$@
|
||||
$@
|
||||
$@@
|
||||
db $@
|
||||
88od888b. $@
|
||||
88°' '°88$@
|
||||
88 88$@
|
||||
88o. .o88$@
|
||||
Y'Y8888P' $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
.od88bo.$@
|
||||
.8P' 'YP$@
|
||||
88 $@
|
||||
'8b. .db$@
|
||||
'°Y88P°'$@
|
||||
$@
|
||||
$@@
|
||||
db$@
|
||||
.d888bo88$@
|
||||
d8°' '°88$@
|
||||
88 88$@
|
||||
88o. .o88$@
|
||||
'Y8888P'V$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
.od88bo.$@
|
||||
.8P' '88$@
|
||||
88'°°°°°'$@
|
||||
'8b. .oo$@
|
||||
'°Y88P°'$@
|
||||
$@
|
||||
$@@
|
||||
.d888b.$@
|
||||
d8' '8b$@
|
||||
888b $@
|
||||
88 $@
|
||||
d8 $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
.d8888bd0$@
|
||||
d8°' '°88$@
|
||||
88 88$@
|
||||
88o. .o88$@
|
||||
'Y8888P'8$@
|
||||
do. .oP$@
|
||||
'Y8888P' $@@
|
||||
db $@
|
||||
88od888b. $@
|
||||
88°' '°88$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
YP YP$@
|
||||
$@
|
||||
$@@
|
||||
** $@
|
||||
ooo $@
|
||||
88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
088D$@
|
||||
$@
|
||||
$@@
|
||||
**$@
|
||||
ooo$@
|
||||
88$@
|
||||
88$@
|
||||
88$@
|
||||
8D$@
|
||||
.88$@
|
||||
d8P $@@
|
||||
db $@
|
||||
88 .oo$@
|
||||
88.d8' $@
|
||||
888K $@
|
||||
88'Y8. $@
|
||||
YP 'YD$@
|
||||
$@
|
||||
$@@
|
||||
db $@
|
||||
88 $@
|
||||
88 $@
|
||||
88 $@
|
||||
88..$@
|
||||
'Y8D$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
8.d8b.d8b.$@
|
||||
88 '88 '88$@
|
||||
88 88 88$@
|
||||
88 88 88$@
|
||||
YP YP YP$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
8bod888b. $@
|
||||
88°' '°88$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
YP YP$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
.d8888b. $@
|
||||
d8°' '°8b$@
|
||||
88 88$@
|
||||
Y8o. .o8P$@
|
||||
'Y8888P' $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
.d8888b. $@
|
||||
d8°' '°88$@
|
||||
88 88$@
|
||||
88o. .o88$@
|
||||
88'8888P' $@
|
||||
88 $@
|
||||
YP $@@
|
||||
$@
|
||||
.d8888b. $@
|
||||
d8°' '°88$@
|
||||
88 88$@
|
||||
Y8o. .o88$@
|
||||
'Y8888'88$@
|
||||
88$@
|
||||
YP$@@
|
||||
$@
|
||||
8.d88D$@
|
||||
88' $@
|
||||
88 $@
|
||||
88 $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
.d888b.$@
|
||||
88 °°$@
|
||||
'Y888b.$@
|
||||
.. 8D$@
|
||||
'Y888P'$@
|
||||
$@
|
||||
$@@
|
||||
db $@
|
||||
88oo$@
|
||||
88''$@
|
||||
88 $@
|
||||
88..$@
|
||||
'Y8D$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db db$@
|
||||
88 88$@
|
||||
88 88$@
|
||||
Y8o. .o88$@
|
||||
'Y8888P'8$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db db$@
|
||||
Y8 8P$@
|
||||
'8b d8'$@
|
||||
'8bd8' $@
|
||||
YP $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db db$@
|
||||
88 88$@
|
||||
Y8 db 8P$@
|
||||
'8bd88bd8'$@
|
||||
'8P°°8P' $@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
db db$@
|
||||
'Y8..8P'$@
|
||||
)88( $@
|
||||
.8P''Y8.$@
|
||||
YP YP$@
|
||||
$@
|
||||
$@@
|
||||
$@
|
||||
88 88$@
|
||||
d8 88$@
|
||||
88 88$@
|
||||
Y8o. .o88$@
|
||||
'Y8888'88$@
|
||||
do. .oP$@
|
||||
'Y8888P' $@@
|
||||
$@
|
||||
d88888D$@
|
||||
YP .8P'$@
|
||||
.8P' $@
|
||||
.8P db$@
|
||||
d88888P$@
|
||||
$@
|
||||
$@@
|
||||
.o8P$@
|
||||
8' $@
|
||||
.dP $@
|
||||
C8K $@
|
||||
'Yb $@
|
||||
8. $@
|
||||
'°8b$@
|
||||
$@@
|
||||
db$@
|
||||
88$@
|
||||
88$@
|
||||
88$@
|
||||
88$@
|
||||
88$@
|
||||
YP$@
|
||||
$@@
|
||||
88o. $@
|
||||
'8 $@
|
||||
Vb. $@
|
||||
X8D$@
|
||||
dP' $@
|
||||
.8 $@
|
||||
C8°' $@
|
||||
$@@
|
||||
$@
|
||||
$@
|
||||
.d8b. .db$@
|
||||
dP' 'Y8P' $@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
0
home-modules/assets/pnx/pnx_rdp_srv-phoe3-vmdms_192-168-1-104.remmina
Executable file → Normal file
0
home-modules/assets/pnx/pnx_rdp_srv-phoe3-vmdms_192-168-1-104.remmina
Executable file → Normal file
0
home-modules/assets/pnx/pnx_rdp_srv-phoenix-3_192-168-1-108.remmina
Executable file → Normal file
0
home-modules/assets/pnx/pnx_rdp_srv-phoenix-3_192-168-1-108.remmina
Executable file → Normal file
0
home-modules/assets/pnx/pnx_rdp_srv-phoenix2_192-168-1-101.remmina
Executable file → Normal file
0
home-modules/assets/pnx/pnx_rdp_srv-phoenix2_192-168-1-101.remmina
Executable file → Normal file
0
home-modules/assets/pnx/pnx_rdp_srv-remote_192-168-1-21.remmina
Executable file → Normal file
0
home-modules/assets/pnx/pnx_rdp_srv-remote_192-168-1-21.remmina
Executable file → Normal file
9
home-modules/bar.nix
Normal file
9
home-modules/bar.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
# ./bar/submap-indicator.nix
|
||||
./bar/cclock.nix
|
||||
./bar/caldav-event.nix
|
||||
# ./bar/waybar.nix
|
||||
./bar/hyprpanel.nix
|
||||
];
|
||||
}
|
||||
126
home-modules/bar/caldav-event.nix
Normal file
126
home-modules/bar/caldav-event.nix
Normal file
@@ -0,0 +1,126 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
sops.secrets = {
|
||||
"nx2site/radicale/password" = { };
|
||||
};
|
||||
home.packages = [
|
||||
(pkgs.writers.writePython3Bin "caldav_event" {
|
||||
libraries = with pkgs.python3Packages; [ caldav ics pytz ];
|
||||
flakeIgnore = [ "E302" "E305" "E501" "E261" ];
|
||||
} /* python */ ''
|
||||
import os
|
||||
import json
|
||||
from caldav import DAVClient
|
||||
from datetime import datetime, timezone
|
||||
from ics import Calendar
|
||||
from pytz import UTC
|
||||
|
||||
def get_password(password_file):
|
||||
with open(password_file, "r") as file:
|
||||
return file.read().strip()
|
||||
|
||||
def datetime_converter(obj):
|
||||
if isinstance(obj, datetime):
|
||||
return obj.isoformat()
|
||||
return obj
|
||||
|
||||
def datetime_parser(dct):
|
||||
for key, value in dct.items():
|
||||
if isinstance(value, str):
|
||||
try:
|
||||
dct[key] = datetime.fromisoformat(value)
|
||||
except ValueError:
|
||||
pass
|
||||
return dct
|
||||
|
||||
def load_cache(cache_file):
|
||||
if os.path.exists(cache_file):
|
||||
with open(cache_file, "r") as file:
|
||||
return json.load(file, object_hook=datetime_parser)
|
||||
return None
|
||||
|
||||
def save_cache(cache_file, data):
|
||||
with open(cache_file, "w") as file:
|
||||
json.dump(data, file, default=datetime_converter, indent=4)
|
||||
|
||||
|
||||
def get_ongoing_or_next_event(url, username, password):
|
||||
now = datetime.now(timezone.utc)
|
||||
|
||||
try:
|
||||
client = DAVClient(url, username=username, password=password)
|
||||
principal = client.principal()
|
||||
calendars = principal.calendars()
|
||||
|
||||
next_event_dict = {
|
||||
'event_name': "fake",
|
||||
'event_begin': datetime(9000, 1, 1, tzinfo=UTC), # in the year 9000
|
||||
'event_end': datetime(9000, 1, 1, 8, tzinfo=UTC),
|
||||
}
|
||||
|
||||
for calendar in calendars:
|
||||
for event in calendar.search(start=now):
|
||||
calendar_parsed = Calendar(event.data)
|
||||
for ics_event in calendar_parsed.events:
|
||||
event_dict = {}
|
||||
event_dict['event_name'] = ics_event.name or "(No Title)"
|
||||
event_dict['event_begin'] = ics_event.begin.astimezone(timezone.utc)
|
||||
event_dict['event_end'] = ics_event.end.astimezone(timezone.utc)
|
||||
|
||||
if event_dict['event_begin'] <= now and now <= event_dict['event_end']:
|
||||
return event_dict
|
||||
elif event_dict['event_begin'] >= now and next_event_dict['event_begin'] > event_dict['event_begin']:
|
||||
next_event_dict = event_dict
|
||||
return next_event_dict
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error accessing {url}: {e}")
|
||||
return None
|
||||
|
||||
def is_expired(event_dict: dict):
|
||||
now = datetime.now(timezone.utc).timestamp()
|
||||
event_end = event_dict['event_end'].timestamp()
|
||||
return not (now <= event_end)
|
||||
|
||||
if __name__ == "__main__":
|
||||
password_file = "${config.sops.secrets."nx2site/radicale/password".path}" # Path to password file
|
||||
cache_file = "/tmp/caldav_event_cache.json" # Path to cache file
|
||||
url = "https://dav.${hyper.domain}/"
|
||||
username = "nx2"
|
||||
password = get_password(password_file)
|
||||
now = datetime.now(timezone.utc).timestamp()
|
||||
|
||||
event_dict = load_cache(cache_file)
|
||||
|
||||
if (event_dict is None) or (is_expired(event_dict)):
|
||||
event_dict = get_ongoing_or_next_event(url, username, password)
|
||||
save_cache(cache_file, event_dict)
|
||||
|
||||
if event_dict is None: # none were found
|
||||
print("* zen *")
|
||||
exit(0)
|
||||
|
||||
event_start = event_dict['event_begin'].timestamp()
|
||||
event_end = event_dict['event_end'].timestamp()
|
||||
|
||||
if event_start <= now <= event_end: # is currently ongoing
|
||||
action_string = "ends"
|
||||
t = event_end - now # time_remaining
|
||||
else: # is in the future
|
||||
action_string = "starts"
|
||||
t = event_start - now # time_remaining
|
||||
|
||||
hours, rem = divmod(int(t), 3600)
|
||||
minutes, _ = divmod(rem, 60)
|
||||
hour_string = f"{hours} hour{'s ' if hours != 1 else ' '}" if hours > 0 else ""
|
||||
minu_string = f"{minutes} minute{'s ' if minutes != 1 else ' '}" if minutes > 0 else ""
|
||||
if hour_string == "" and minu_string == "":
|
||||
time_string = "now"
|
||||
elif hour_string == "" or minu_string == "":
|
||||
time_string = "in " + hour_string + minu_string
|
||||
else:
|
||||
time_string = "in " + hour_string + "and " + minu_string
|
||||
|
||||
print(f"{event_dict['event_name']} {action_string} {time_string}")
|
||||
'')
|
||||
];
|
||||
}
|
||||
14
home-modules/bar/cclock.nix
Normal file
14
home-modules/bar/cclock.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ pkgs, ... }: let
|
||||
sep = " ";
|
||||
in {
|
||||
home.packages = [
|
||||
(pkgs.writeShellApplication { name = "cclock"; text = /* bash */ ''
|
||||
ord=$(date +"%e" | awk '{printf("%d%s\n", $1, ($1==11||$1==12||$1==13)?"th":((($1%10)==1)?"st":((($1%10)==2)?"nd":((($1%10)==3)?"rd":"th"))))}')
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "${sep}$(date +'%A the')" "$ord" "of" "$(date +'%B')" " ${sep}$(date +'%R')"
|
||||
elif [ "$1" = "--no-icons" ]; then
|
||||
echo "$(date +'%A the')" "$ord" "of" "$(date +'%B')" "$(date +'%R')"
|
||||
fi
|
||||
'';})
|
||||
];
|
||||
}
|
||||
523
home-modules/bar/hyprpanel.nix
Normal file
523
home-modules/bar/hyprpanel.nix
Normal file
@@ -0,0 +1,523 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
xdg.configFile = {
|
||||
"hyprpanel/modules.scss".text = with rice.color; /* scss */ ''
|
||||
@include styleModule('cmodule-cclock', (
|
||||
'text-color': ${accent.base},
|
||||
/* 'icon-color': , */
|
||||
/* 'icon-background': , */
|
||||
/* 'label-background': #242438, */
|
||||
/* 'inner-spacing': 0.5em, */
|
||||
/* 'border-enabled': false, */
|
||||
/* 'border-color': #cba6f7, */
|
||||
/* 'icon-size': 1.2em */
|
||||
));
|
||||
@include styleModule('cmodule-caldav_event', (
|
||||
'text-color': ${secondary.base},
|
||||
));
|
||||
'';
|
||||
"hyprpanel/modules.json".text = builtins.toJSON {
|
||||
"custom/cclock" = {
|
||||
execute = "cclock";
|
||||
executeOnAction = "";
|
||||
label = "{}";
|
||||
interval = 60000;
|
||||
hideOnEmpty = true;
|
||||
actions.onLeftClick = "menu:calendar";
|
||||
};
|
||||
"custom/caldav_event" = {
|
||||
execute = "caldav_event";
|
||||
executeOnAction = "";
|
||||
label = "{}";
|
||||
interval = 60000;
|
||||
hideOnEmpty = true;
|
||||
actions = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.hyprpanel;
|
||||
settings = with rice.color; let
|
||||
t = builtins.toString (builtins.ceil (rice.transparency * 100));
|
||||
in {
|
||||
"bar.layouts" = {
|
||||
"*" = {
|
||||
"left" = [
|
||||
"volume"
|
||||
(pkgs.lib.mkIf (hyper.host == "NxXPS") "battery")
|
||||
# "microphone"
|
||||
"cpu"
|
||||
"cputemp"
|
||||
"ram"
|
||||
# "bluetooth"
|
||||
"network"
|
||||
"netstat"
|
||||
"windowtitle"
|
||||
];
|
||||
"middle" = [ "workspaces" ];
|
||||
"right" = [
|
||||
"submap"
|
||||
"custom/caldav_event"
|
||||
"media"
|
||||
"custom/cclock"
|
||||
"notifications"
|
||||
"systray"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
"bar.bluetooth.label" = true;
|
||||
|
||||
"bar.customModules.submap.enabledIcon" = "";
|
||||
"bar.customModules.submap.showSubmapName" = false;
|
||||
"bar.customModules.submap.label" = true;
|
||||
"bar.customModules.submap.icon" = true;
|
||||
"bar.customModules.submap.disabledIcon" = "";
|
||||
"bar.customModules.submap.enabledText" = "[SUBMAP]";
|
||||
"bar.customModules.submap.disabledText" = "";
|
||||
|
||||
"bar.media.show_active_only" = true;
|
||||
"bar.media.truncation_size" = 20;
|
||||
|
||||
"bar.windowtitle.class_name" = false;
|
||||
"bar.windowtitle.label" = true;
|
||||
"bar.windowtitle.custom_title" = false;
|
||||
"bar.windowtitle.truncation_size" = 40;
|
||||
|
||||
"bar.workspaces.applicationIconEmptyWorkspace" = "";
|
||||
"bar.workspaces.applicationIconOncePerWorkspace" = false;
|
||||
"bar.workspaces.numbered_active_indicator" = "underline";
|
||||
"bar.workspaces.scroll_speed" = 1;
|
||||
"bar.workspaces.showAllActive" = false;
|
||||
"bar.workspaces.showApplicationIcons" = true;
|
||||
"bar.workspaces.show_icons" = false;
|
||||
"bar.workspaces.show_numbered" = false;
|
||||
"bar.workspaces.showWsIcons" = true;
|
||||
"bar.workspaces.spacing" = 1;
|
||||
"bar.workspaces.workspaceMask" = true;
|
||||
"bar.workspaces.workspaces" = 5;
|
||||
|
||||
"theme.bar.background" = background;
|
||||
"theme.bar.border.color" = accent.base;
|
||||
"theme.bar.border_radius" = "0.2em";
|
||||
|
||||
"theme.bar.buttons.background" = background;
|
||||
"theme.bar.buttons.background_opacity" = 0;
|
||||
"theme.bar.buttons.spacing" = "0em";
|
||||
"theme.bar.buttons.padding_x" = "0.5rem";
|
||||
|
||||
"theme.bar.buttons.battery.background" = background;
|
||||
"theme.bar.buttons.battery.border" = accent.base; # not seen
|
||||
"theme.bar.buttons.battery.icon_background" = background;
|
||||
"theme.bar.buttons.battery.icon" = secondary.base;
|
||||
"theme.bar.buttons.battery.text" = secondary.base;
|
||||
|
||||
"theme.bar.buttons.bluetooth.background" = background;
|
||||
"theme.bar.buttons.bluetooth.border" = accent.base;
|
||||
"theme.bar.buttons.bluetooth.icon_background" = background;
|
||||
"theme.bar.buttons.bluetooth.icon" = accent.base;
|
||||
"theme.bar.buttons.bluetooth.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.borderColor" = accent.base;
|
||||
|
||||
"theme.bar.buttons.clock.background" = background;
|
||||
"theme.bar.buttons.clock.border" = accent.base;
|
||||
"theme.bar.buttons.clock.icon_background" = background;
|
||||
"theme.bar.buttons.clock.icon" = accent.base;
|
||||
"theme.bar.buttons.clock.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.dashboard.background" = background;
|
||||
"theme.bar.buttons.dashboard.border" = accent.base;
|
||||
"theme.bar.buttons.dashboard.icon" = accent.base;
|
||||
"theme.bar.buttons.icon_background" = background;
|
||||
|
||||
"theme.bar.buttons.icon" = accent.base;
|
||||
|
||||
"theme.bar.buttons.media.background" = background;
|
||||
"theme.bar.buttons.media.border" = accent.base;
|
||||
"theme.bar.buttons.media.icon_background" = background;
|
||||
"theme.bar.buttons.media.icon" = accent.base;
|
||||
"theme.bar.buttons.media.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.cava.background" = background;
|
||||
"theme.bar.buttons.modules.cava.border" = accent.base;
|
||||
"theme.bar.buttons.modules.cava.icon_background" = background;
|
||||
"theme.bar.buttons.modules.cava.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.cava.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.cpu.background" = background;
|
||||
"theme.bar.buttons.modules.cpu.border" = accent.base;
|
||||
"theme.bar.buttons.modules.cpu.icon_background" = background;
|
||||
"theme.bar.buttons.modules.cpu.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.cpu.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.cpuTemp.background" = background;
|
||||
"theme.bar.buttons.modules.cpuTemp.border" = accent.base;
|
||||
"theme.bar.buttons.modules.cpuTemp.icon_background" = background;
|
||||
"theme.bar.buttons.modules.cpuTemp.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.cpuTemp.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.hypridle.background" = background;
|
||||
"theme.bar.buttons.modules.hypridle.border" = accent.base;
|
||||
"theme.bar.buttons.modules.hypridle.icon_background" = background;
|
||||
"theme.bar.buttons.modules.hypridle.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.hypridle.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.hyprsunset.background" = background;
|
||||
"theme.bar.buttons.modules.hyprsunset.border" = accent.base;
|
||||
"theme.bar.buttons.modules.hyprsunset.icon_background" = background;
|
||||
"theme.bar.buttons.modules.hyprsunset.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.hyprsunset.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.kbLayout.background" = background;
|
||||
"theme.bar.buttons.modules.kbLayout.border" = accent.base;
|
||||
"theme.bar.buttons.modules.kbLayout.icon_background" = background;
|
||||
"theme.bar.buttons.modules.kbLayout.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.kbLayout.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.microphone.background" = background;
|
||||
"theme.bar.buttons.modules.microphone.border" = accent.base;
|
||||
"theme.bar.buttons.modules.microphone.icon_background" = background;
|
||||
"theme.bar.buttons.modules.microphone.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.microphone.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.netstat.background" = background;
|
||||
"theme.bar.buttons.modules.netstat.border" = accent.base;
|
||||
"theme.bar.buttons.modules.netstat.icon_background" = background;
|
||||
"theme.bar.buttons.modules.netstat.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.netstat.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.power.background" = background;
|
||||
"theme.bar.buttons.modules.power.border" = accent.base;
|
||||
"theme.bar.buttons.modules.power.icon_background" = background;
|
||||
"theme.bar.buttons.modules.power.icon" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.ram.background" = background;
|
||||
"theme.bar.buttons.modules.ram.border" = accent.base;
|
||||
"theme.bar.buttons.modules.ram.icon_background" = background;
|
||||
"theme.bar.buttons.modules.ram.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.ram.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.storage.background" = background;
|
||||
"theme.bar.buttons.modules.storage.border" = accent.base;
|
||||
"theme.bar.buttons.modules.storage.icon_background" = background;
|
||||
"theme.bar.buttons.modules.storage.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.storage.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.submap.background" = background;
|
||||
"theme.bar.buttons.modules.submap.border" = accent.base;
|
||||
"theme.bar.buttons.modules.submap.icon_background" = background;
|
||||
"theme.bar.buttons.modules.submap.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.submap.text" = special.base;
|
||||
|
||||
"theme.bar.buttons.modules.updates.background" = background;
|
||||
"theme.bar.buttons.modules.updates.border" = accent.base;
|
||||
"theme.bar.buttons.modules.updates.icon_background" = background;
|
||||
"theme.bar.buttons.modules.updates.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.updates.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.weather.background" = background;
|
||||
"theme.bar.buttons.modules.weather.border" = accent.base;
|
||||
"theme.bar.buttons.modules.weather.icon_background" = background;
|
||||
"theme.bar.buttons.modules.weather.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.weather.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.modules.worldclock.background" = background;
|
||||
"theme.bar.buttons.modules.worldclock.border" = accent.base;
|
||||
"theme.bar.buttons.modules.worldclock.icon_background" = background;
|
||||
"theme.bar.buttons.modules.worldclock.icon" = accent.base;
|
||||
"theme.bar.buttons.modules.worldclock.text" = accent.base;
|
||||
"theme.bar.buttons.monochrome" = false;
|
||||
|
||||
"theme.bar.buttons.network.background" = background;
|
||||
"theme.bar.buttons.network.border" = accent.base;
|
||||
"theme.bar.buttons.network.icon_background" = background;
|
||||
"theme.bar.buttons.network.icon" = accent.base;
|
||||
"theme.bar.buttons.network.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.notifications.background" = background;
|
||||
"theme.bar.buttons.notifications.border" = accent.base;
|
||||
"theme.bar.buttons.notifications.icon_background" = background;
|
||||
"theme.bar.buttons.notifications.icon" = accent.base;
|
||||
"theme.bar.buttons.notifications.total" = accent.base;
|
||||
|
||||
"theme.bar.buttons.opacity" = t;
|
||||
|
||||
"theme.bar.buttons.separator.color" = accent.base;
|
||||
|
||||
"theme.bar.buttons.style" = "default";
|
||||
|
||||
"theme.bar.buttons.systray.background" = background;
|
||||
"theme.bar.buttons.systray.border" = accent.base;
|
||||
"theme.bar.buttons.systray.customIcon" = accent.base;
|
||||
|
||||
"theme.bar.buttons.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.volume.background" = background;
|
||||
"theme.bar.buttons.volume.border" = accent.base;
|
||||
"theme.bar.buttons.volume.icon_background" = background;
|
||||
"theme.bar.buttons.volume.icon" = accent.base;
|
||||
"theme.bar.buttons.volume.text" = accent.base;
|
||||
|
||||
"theme.bar.buttons.windowtitle.background" = background;
|
||||
"theme.bar.buttons.windowtitle.border" = secondary.base;
|
||||
"theme.bar.buttons.windowtitle.icon_background" = background;
|
||||
"theme.bar.buttons.windowtitle.icon" = secondary.base;
|
||||
"theme.bar.buttons.windowtitle.text" = secondary.base;
|
||||
|
||||
"theme.bar.buttons.workspaces.active" = accent.bright;
|
||||
"theme.bar.buttons.workspaces.available" = weird.dark; # not seen
|
||||
"theme.bar.buttons.workspaces.background" = background;
|
||||
"theme.bar.buttons.workspaces.border" = accent.base; # not seen
|
||||
"theme.bar.buttons.workspaces.hover" = foreground;
|
||||
"theme.bar.buttons.workspaces.numbered_active_highlighted_text_color" = accent.base; # not seen
|
||||
"theme.bar.buttons.workspaces.numbered_active_highlight_padding" = "0.2em";
|
||||
"theme.bar.buttons.workspaces.numbered_active_underline_color" = accent.bright;
|
||||
"theme.bar.buttons.workspaces.numbered_inactive_padding" = "0.2em";
|
||||
"theme.bar.buttons.workspaces.occupied" = accent.base;
|
||||
"theme.bar.buttons.workspaces.pill.width" = "4em";
|
||||
"theme.bar.buttons.workspaces.smartHighlight" = true;
|
||||
"theme.bar.buttons.y_margins" = "0em";
|
||||
|
||||
"theme.bar.location" = "bottom";
|
||||
|
||||
"theme.bar.menus.menu.battery.background.color" = background;
|
||||
"theme.bar.menus.menu.battery.border.color" = accent.base;
|
||||
"theme.bar.menus.menu.battery.card.color" = accent.dark;
|
||||
"theme.bar.menus.menu.battery.icons.active" = accent.base;
|
||||
"theme.bar.menus.menu.battery.icons.passive" = accent.base;
|
||||
"theme.bar.menus.menu.battery.label.color" = accent.base;
|
||||
"theme.bar.menus.menu.battery.listitems.active" = accent.base;
|
||||
"theme.bar.menus.menu.battery.listitems.passive" = accent.base;
|
||||
"theme.bar.menus.menu.battery.slider.background" = background;
|
||||
"theme.bar.menus.menu.battery.slider.backgroundhover" = background;
|
||||
"theme.bar.menus.menu.battery.slider.primary" = accent.base;
|
||||
"theme.bar.menus.menu.battery.slider.puck" = accent.base;
|
||||
"theme.bar.menus.menu.battery.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.bluetooth.background.color" = background;
|
||||
"theme.bar.menus.menu.bluetooth.border.color" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.card.color" = accent.dark;
|
||||
"theme.bar.menus.menu.bluetooth.iconbutton.active" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.iconbutton.passive" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.icons.active" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.icons.passive" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.label.color" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.listitems.active" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.listitems.passive" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.scroller.color" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.status" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.switch.disabled" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.switch_divider" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.switch.enabled" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.switch.puck" = accent.base;
|
||||
"theme.bar.menus.menu.bluetooth.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.clock.background.color" = background;
|
||||
"theme.bar.menus.menu.clock.border.color" = accent.base;
|
||||
"theme.bar.menus.menu.clock.calendar.contextdays" = foreground;
|
||||
"theme.bar.menus.menu.clock.calendar.currentday" = accent.base;
|
||||
"theme.bar.menus.menu.clock.calendar.days" = accent.base;
|
||||
"theme.bar.menus.menu.clock.calendar.paginator" = accent.base;
|
||||
"theme.bar.menus.menu.clock.calendar.weekdays" = accent.base;
|
||||
"theme.bar.menus.menu.clock.calendar.yearmonth" = accent.base;
|
||||
"theme.bar.menus.menu.clock.card.color" = accent.dark;
|
||||
"theme.bar.menus.menu.clock.text" = foreground;
|
||||
"theme.bar.menus.menu.clock.time.time" = accent.base;
|
||||
"theme.bar.menus.menu.clock.time.timeperiod" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.hourly.icon" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.hourly.temperature" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.hourly.time" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.icon" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.stats" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.status" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.temperature" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.thermometer.cold" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.thermometer.extremelycold" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.thermometer.extremelyhot" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.thermometer.hot" = accent.base;
|
||||
"theme.bar.menus.menu.clock.weather.thermometer.moderate" = accent.base;
|
||||
|
||||
"theme.bar.menus.menu.dashboard.background.color" = background;
|
||||
"theme.bar.menus.menu.dashboard.border.color" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.card.color" = accent.dark;
|
||||
|
||||
"theme.bar.menus.menu.dashboard.controls.bluetooth.background" = background;
|
||||
"theme.bar.menus.menu.dashboard.controls.bluetooth.text" = foreground;
|
||||
"theme.bar.menus.menu.dashboard.controls.disabled" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.controls.input.background" = background;
|
||||
"theme.bar.menus.menu.dashboard.controls.input.text" = foreground;
|
||||
"theme.bar.menus.menu.dashboard.controls.notifications.background" = background;
|
||||
"theme.bar.menus.menu.dashboard.controls.notifications.text" = foreground;
|
||||
"theme.bar.menus.menu.dashboard.controls.volume.background" = background;
|
||||
"theme.bar.menus.menu.dashboard.controls.volume.text" = foreground;
|
||||
"theme.bar.menus.menu.dashboard.controls.wifi.background" = background;
|
||||
"theme.bar.menus.menu.dashboard.controls.wifi.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.dashboard.directories.left.bottom.color" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.directories.left.middle.color" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.directories.left.top.color" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.directories.right.bottom.color" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.directories.right.middle.color" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.directories.right.top.color" = accent.base;
|
||||
|
||||
"theme.bar.menus.menu.dashboard.monitors.bar_background" = background;
|
||||
"theme.bar.menus.menu.dashboard.monitors.cpu.bar" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.cpu.icon" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.cpu.label" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.disk.bar" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.disk.icon" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.disk.label" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.gpu.bar" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.gpu.icon" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.gpu.label" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.ram.bar" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.ram.icon" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.monitors.ram.label" = accent.base;
|
||||
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.background" = background;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.body" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.border" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text" = foreground;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.card" = accent.dark;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.deny" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.confirmation.label" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.logout" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.restart" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.shutdown" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.powermenu.sleep" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.profile.name" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.shortcuts.background" = background;
|
||||
"theme.bar.menus.menu.dashboard.shortcuts.recording" = accent.base;
|
||||
"theme.bar.menus.menu.dashboard.shortcuts.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.media.album" = accent.base;
|
||||
"theme.bar.menus.menu.media.artist" = accent.base;
|
||||
"theme.bar.menus.menu.media.background.color" = "#000000";
|
||||
"theme.bar.menus.menu.media.border.color" = accent.base;
|
||||
"theme.bar.menus.menu.media.buttons.background" = background;
|
||||
"theme.bar.menus.menu.media.buttons.enabled" = accent.base;
|
||||
"theme.bar.menus.menu.media.buttons.inactive" = accent.base;
|
||||
"theme.bar.menus.menu.media.buttons.text" = foreground;
|
||||
"theme.bar.menus.menu.media.card.color" = accent.dark;
|
||||
"theme.bar.menus.menu.media.card.tint" = accent.dark;
|
||||
"theme.bar.menus.menu.media.slider.background" = accent.dark;
|
||||
"theme.bar.menus.menu.media.slider.backgroundhover" = secondary.dark;
|
||||
"theme.bar.menus.menu.media.slider.primary" = accent.base;
|
||||
"theme.bar.menus.menu.media.slider.puck" = accent.bright;
|
||||
"theme.bar.menus.menu.media.song" = accent.base;
|
||||
"theme.bar.menus.menu.media.timestamp" = accent.base;
|
||||
|
||||
"theme.bar.menus.menu.network.background.color" = background;
|
||||
"theme.bar.menus.menu.network.border.color" = accent.base;
|
||||
"theme.bar.menus.menu.network.card.color" = accent.dark;
|
||||
"theme.bar.menus.menu.network.iconbuttons.active" = accent.base;
|
||||
"theme.bar.menus.menu.network.iconbuttons.passive" = accent.base;
|
||||
"theme.bar.menus.menu.network.icons.active" = accent.base;
|
||||
"theme.bar.menus.menu.network.icons.passive" = accent.base;
|
||||
"theme.bar.menus.menu.network.label.color" = accent.base;
|
||||
"theme.bar.menus.menu.network.listitems.active" = accent.base;
|
||||
"theme.bar.menus.menu.network.listitems.passive" = accent.base;
|
||||
"theme.bar.menus.menu.network.scroller.color" = accent.base;
|
||||
"theme.bar.menus.menu.network.status.color" = accent.base;
|
||||
"theme.bar.menus.menu.network.switch.disabled" = accent.base;
|
||||
"theme.bar.menus.menu.network.switch.enabled" = accent.base;
|
||||
"theme.bar.menus.menu.network.switch.puck" = accent.base;
|
||||
"theme.bar.menus.menu.network.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.notifications.background" = background;
|
||||
"theme.bar.menus.menu.notifications.border" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.card" = accent.dark;
|
||||
"theme.bar.menus.menu.notifications.clear" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.label" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.no_notifications_label" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.pager.background" = background;
|
||||
"theme.bar.menus.menu.notifications.pager.button" = accent.dark;
|
||||
"theme.bar.menus.menu.notifications.pager.label" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.scrollbar.color" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.switch.disabled" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.switch_divider" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.switch.enabled" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.switch.puck" = accent.base;
|
||||
|
||||
|
||||
"theme.bar.menus.menu.power.background.color" = background;
|
||||
"theme.bar.menus.menu.power.border.color" = accent.base;
|
||||
|
||||
"theme.bar.menus.menu.power.buttons.logout.background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.logout.icon_background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.logout.icon" = accent.base;
|
||||
"theme.bar.menus.menu.power.buttons.logout.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.power.buttons.restart.background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.restart.icon_background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.restart.icon" = accent.base;
|
||||
"theme.bar.menus.menu.power.buttons.restart.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.power.buttons.shutdown.background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.shutdown.icon_background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.shutdown.icon" = accent.base;
|
||||
"theme.bar.menus.menu.power.buttons.shutdown.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.power.buttons.sleep.background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.sleep.icon_background" = background;
|
||||
"theme.bar.menus.menu.power.buttons.sleep.icon" = accent.base;
|
||||
"theme.bar.menus.menu.power.buttons.sleep.text" = foreground;
|
||||
|
||||
|
||||
"theme.bar.menus.menu.systray.dropdownmenu.background" = background;
|
||||
"theme.bar.menus.menu.systray.dropdownmenu.divider" = accent.base;
|
||||
"theme.bar.menus.menu.systray.dropdownmenu.text" = foreground;
|
||||
|
||||
"theme.bar.menus.menu.volume.audio_slider.background" = background;
|
||||
"theme.bar.menus.menu.volume.audio_slider.backgroundhover" = background;
|
||||
"theme.bar.menus.menu.volume.audio_slider.primary" = accent.base;
|
||||
"theme.bar.menus.menu.volume.audio_slider.puck" = accent.base;
|
||||
"theme.bar.menus.menu.volume.background.color" = background;
|
||||
"theme.bar.menus.menu.volume.border.color" = accent.base;
|
||||
"theme.bar.menus.menu.volume.card.color" = accent.dark;
|
||||
"theme.bar.menus.menu.volume.iconbutton.active" = accent.base;
|
||||
"theme.bar.menus.menu.volume.iconbutton.passive" = accent.base;
|
||||
"theme.bar.menus.menu.volume.input_slider.background" = background;
|
||||
"theme.bar.menus.menu.volume.input_slider.backgroundhover" = background;
|
||||
"theme.bar.menus.menu.volume.input_slider.primary" = accent.base;
|
||||
"theme.bar.menus.menu.volume.input_slider.puck" = accent.base;
|
||||
"theme.bar.menus.menu.volume.label.color" = accent.base;
|
||||
"theme.bar.menus.menu.volume.listitems.active" = accent.base;
|
||||
"theme.bar.menus.menu.volume.listitems.passive" = accent.base;
|
||||
"theme.bar.menus.menu.volume.text" = foreground;
|
||||
|
||||
"theme.bar.menus.monochrome" = false;
|
||||
|
||||
"theme.bar.opacity" = t;
|
||||
"theme.bar.outer_spacing" = "0em";
|
||||
"theme.bar.transparent" = false;
|
||||
|
||||
"theme.font.name" = rice.font.code.name;
|
||||
"theme.font.size" = "12px";
|
||||
|
||||
"theme.notification.actions.background" = background;
|
||||
"theme.notification.actions.text" = foreground;
|
||||
"theme.notification.background" = background;
|
||||
"theme.notification.border" = accent.base;
|
||||
"theme.notification.close_button.background" = accent.dark;
|
||||
"theme.notification.close_button.label" = accent.base;
|
||||
"theme.notification.label" = accent.base;
|
||||
"theme.notification.labelicon" = accent.base;
|
||||
"theme.notification.opacity" = 1;
|
||||
"theme.notification.text" = foreground;
|
||||
"theme.notification.time" = accent.base;
|
||||
|
||||
"theme.osd.bar_color" = accent.base;
|
||||
"theme.osd.bar_container" = accent.dark;
|
||||
"theme.osd.bar_empty_color" = accent.dark;
|
||||
"theme.osd.bar_overflow_color" = accent.base;
|
||||
"theme.osd.border.color" = border;
|
||||
"theme.osd.icon_container" = secondary.dark;
|
||||
"theme.osd.icon" = secondary.bright;
|
||||
"theme.osd.label" = accent.bright;
|
||||
"theme.osd.opacity" = t;
|
||||
};
|
||||
};
|
||||
}
|
||||
37
home-modules/bar/submap-indicator.nix
Normal file
37
home-modules/bar/submap-indicator.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = [
|
||||
(pkgs.writeShellApplication { name = "submap_indicator"; text = /*bash*/ ''
|
||||
print_help() {
|
||||
echo "Usage: submap_indicator {set <string>|unset}"
|
||||
}
|
||||
if [ $# -lt 1 ]; then
|
||||
print_help; exit 1;
|
||||
fi
|
||||
case "$1" in
|
||||
set)
|
||||
# Check if there is a second argument for the 'set' operation
|
||||
if [ $# -eq 2 ]; then
|
||||
echo "$2" > /tmp/submap-indictor
|
||||
pkill -RTMIN+8 waybar
|
||||
pkill -RTMIN+8 hyprpanel
|
||||
else
|
||||
echo "Error: 'set' operation requires exactly one string argument."
|
||||
print_help
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
unset)
|
||||
echo "" > /tmp/submap-indictor
|
||||
pkill -RTMIN+8 waybar
|
||||
pkill -RTMIN+8 hyprpanel
|
||||
;;
|
||||
*)
|
||||
echo "Error: Unknown command '$1'"
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
'';})
|
||||
];
|
||||
}
|
||||
165
home-modules/bar/waybar.nix
Normal file
165
home-modules/bar/waybar.nix
Normal file
@@ -0,0 +1,165 @@
|
||||
{ pkgs, ... }@all: with all; let
|
||||
sep = " ";
|
||||
in {
|
||||
programs.waybar = {
|
||||
enable = false;
|
||||
package = pkgs.waybar;
|
||||
settings = {
|
||||
bar = {
|
||||
# height = 20;
|
||||
layer = "top";
|
||||
position = "bottom";
|
||||
margin-top = 0;
|
||||
# margin-left = rice.gap-size;
|
||||
# margin-bottom = rice.gap-size;
|
||||
# margin-right = rice.gap-size;
|
||||
margin-left = 0;
|
||||
margin-bottom = 0;
|
||||
margin-right = 0;
|
||||
spacing = 10;
|
||||
fixed-center = true;
|
||||
modules-left = [
|
||||
# "cpu"
|
||||
# "memory"
|
||||
"wireplumber"
|
||||
"backlight"
|
||||
"battery"
|
||||
"network"
|
||||
"hyprland/window"
|
||||
];
|
||||
modules-center = [
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
modules-right = [
|
||||
"custom/mode"
|
||||
"custom/caldav_event"
|
||||
"custom/cclock"
|
||||
"tray"
|
||||
];
|
||||
"hyprland/workspaces" = {
|
||||
on-click = "activate";
|
||||
format = "{name}";
|
||||
all-outputs = false;
|
||||
active-only = false;
|
||||
};
|
||||
"hyprland/window" = {
|
||||
# format = "${sep}{}";
|
||||
format = "{}";
|
||||
separate-outputs = true;
|
||||
};
|
||||
"custom/cclock" = {
|
||||
exec = "cclock";
|
||||
restart-interval = 60;
|
||||
};
|
||||
"custom/caldav_event" = {
|
||||
format = "${sep}{}";
|
||||
exec = "caldav_event";
|
||||
restart-interval = 60;
|
||||
max-width = 60;
|
||||
};
|
||||
"custom/mode" = {
|
||||
exec = "cat /tmp/submap-indictor";
|
||||
interval = "once";
|
||||
signal = 8;
|
||||
};
|
||||
|
||||
cpu = {
|
||||
interval = 1;
|
||||
format = "${sep}{}%";
|
||||
max-length = 10;
|
||||
};
|
||||
memory = {
|
||||
interval = 5;
|
||||
format = "${sep}{avail:.0f}G free";
|
||||
};
|
||||
battery = {
|
||||
interval = 60;
|
||||
tooltip = false;
|
||||
format = "{icon}${sep}{capacity}%";
|
||||
states = {
|
||||
warning = 15;
|
||||
critical = 5;
|
||||
};
|
||||
format-icons = [ " " " " " " " " " " ];
|
||||
format-charging = "{icon}${sep}+{capacity}%";
|
||||
format-plugged = "{icon}${sep}P{capacity}%";
|
||||
format-full = "{icon}${sep}F{capacity}%";
|
||||
};
|
||||
backlight = {
|
||||
device = "eDP-1";
|
||||
format = "{icon}${sep}{percent}%";
|
||||
format-icons = [ "" "" "" "" "" "" "" "" "" ];
|
||||
};
|
||||
network = {
|
||||
format-wifi = "${sep}{essid}";
|
||||
format-ethernet = "${sep}Wired";
|
||||
format-disconnected = "${sep}Disconnected";
|
||||
};
|
||||
wireplumber = {
|
||||
format = "${sep}{volume}%";
|
||||
format-muted = "${sep}--%";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = with rice.color; let f = rice.lib.hex-to-rgb-comma-string; in /* css */ ''
|
||||
* {
|
||||
font-family: ${rice.font.code.name};
|
||||
font-size: 1em;
|
||||
min-height: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba(${f background},${builtins.toString rice.transparency});
|
||||
}
|
||||
|
||||
#clock,
|
||||
#custom-cclock,
|
||||
#custom-mode,
|
||||
#custom-caldav-event,
|
||||
#battery,
|
||||
#cpu,
|
||||
#tray,
|
||||
#disk,
|
||||
#backlight,
|
||||
#network,
|
||||
#wireplumber,
|
||||
#memory,
|
||||
#window,
|
||||
#workspaces {
|
||||
padding: 0px 3px;
|
||||
margin-top: 0.3em;
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
color: rgb(${f accent.bright});
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: rgb(${f accent.base});
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
#workspaces button.active { color: rgb(${f background}); background-color: rgb(${f accent.base}); }
|
||||
#workspaces button:hover { color: rgb(${f tertiary.bright}); }
|
||||
#workspaces button.urgent { background-color: rgba(${f magenta.base},${builtins.toString rice.transparency}); }
|
||||
|
||||
#window, #custom-caldav_event {
|
||||
font-family: ${rice.font.base.name}, ${rice.font.code.name};
|
||||
color: rgb(${f tertiary.bright});
|
||||
}
|
||||
|
||||
#wireplumber.muted { color: rgb(${f tertiary.bright}); }
|
||||
#wireplumber { padding-left: 10px; }
|
||||
|
||||
#battery.warning:not(.charging) { color: rgb(${f green.base});; }
|
||||
#battery.charging { color: rgb(${f green.base}); }
|
||||
#battery.critical {
|
||||
background: rgb(${f negative.base});
|
||||
color: rgb(${f foreground});
|
||||
}
|
||||
|
||||
#custom-mode { color: rgb(${f red.base}); }
|
||||
'';
|
||||
};
|
||||
}
|
||||
0
home-modules/bash.nix
Executable file → Normal file
0
home-modules/bash.nix
Executable file → Normal file
29
home-modules/bitwarden.nix
Executable file → Normal file
29
home-modules/bitwarden.nix
Executable file → Normal file
@@ -1,33 +1,6 @@
|
||||
{ config, pkgs, lib, host, secrets, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
bitwarden
|
||||
bitwarden-cli
|
||||
];
|
||||
|
||||
# home.file.".config/Bitwarden CLI/data.json".text = ''
|
||||
# {
|
||||
# "stateVersion": 9,
|
||||
# "global": {
|
||||
# "theme": "system",
|
||||
# "window": {},
|
||||
# "environmentUrls": {
|
||||
# "base": "https://pw.nx2.site",
|
||||
# "api": null,
|
||||
# "identity": null,
|
||||
# "webVault": null,
|
||||
# "icons": null,
|
||||
# "notifications": null,
|
||||
# "events": null,
|
||||
# "keyConnector": null
|
||||
# },
|
||||
# "region": "Self-hosted",
|
||||
# "installedVersion": "2023.12.0"
|
||||
# }
|
||||
# }
|
||||
# '';
|
||||
|
||||
# home.sessionVariables.BW_SESSION = secrets.bitwarden.env.bw-session;
|
||||
|
||||
}
|
||||
|
||||
57
home-modules/calendar-campuszeit-fix.nix
Normal file
57
home-modules/calendar-campuszeit-fix.nix
Normal file
@@ -0,0 +1,57 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = let
|
||||
u = pkgs.writers.writePython3Bin "nx_fix_campuszeit_python" {
|
||||
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
||||
} /* python */ ''
|
||||
import os
|
||||
import sys
|
||||
|
||||
def replace_campus_timezone(directory):
|
||||
if not os.path.isdir(directory):
|
||||
print(f"Error: {directory} is not a valid directory.")
|
||||
return
|
||||
|
||||
for filename in os.listdir(directory):
|
||||
filepath = os.path.join(directory, filename)
|
||||
if not os.path.isfile(filepath):
|
||||
continue
|
||||
|
||||
with open(filepath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
start_idx = content.find('BEGIN:VTIMEZONE')
|
||||
end_idx = content.find('END:VTIMEZONE', start_idx)
|
||||
if start_idx != -1 and end_idx != -1:
|
||||
content = content[:start_idx] + content[end_idx + len('END:VTIMEZONE\n'):]
|
||||
|
||||
# Replace all TZID references
|
||||
content = content.replace('TZID:CampusNetZeit', 'TZID:Europe/Berlin')
|
||||
content = content.replace('TZID=CampusNetZeit', 'TZID=Europe/Berlin')
|
||||
content = content.replace('TZID:"CampusNetZeit"', 'TZID:"Europe/Berlin"')
|
||||
content = content.replace('TZID="CampusNetZeit"', 'TZID="Europe/Berlin"')
|
||||
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
print(f"Updated time zone in: {filename}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: python replace_timezone.py <directory>")
|
||||
else:
|
||||
replace_campus_timezone(sys.argv[1])
|
||||
'';
|
||||
in [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "nx_fix_campuszeit";
|
||||
text = /*bash*/ ''
|
||||
echo CHANGING OWNERSHIP OF "$(realpath "$1")" RECURSIVELY
|
||||
read -r -p "Continue?"
|
||||
sudo chown -R ${hyper.user} "$1"
|
||||
${u}/bin/nx_fix_campuszeit_python "$1"
|
||||
sudo chown -R radicale "$1"
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
112
home-modules/calendar.nix
Normal file
112
home-modules/calendar.nix
Normal file
@@ -0,0 +1,112 @@
|
||||
{ pkgs, ... }@all: with all; let
|
||||
calendars = with hyper; [
|
||||
{
|
||||
name = "Preservation";
|
||||
primary = true;
|
||||
url = "https://dav.${domain}/${user}/preservation/";
|
||||
color = "#dddddd";
|
||||
}
|
||||
{
|
||||
name = "Effort";
|
||||
url = "https://dav.${domain}/${user}/effort/";
|
||||
color = "#dd2222";
|
||||
}
|
||||
{
|
||||
name = "Experience";
|
||||
url = "https://dav.${domain}/${user}/experience/";
|
||||
color = "#2222dd";
|
||||
}
|
||||
{
|
||||
name = "Exposure";
|
||||
url = "https://dav.${domain}/${user}/exposure/";
|
||||
color = "#22aa22";
|
||||
}
|
||||
{
|
||||
name = "Engagement";
|
||||
url = "https://dav.${domain}/${user}/engagement/";
|
||||
color = "#8800CC";
|
||||
}
|
||||
{
|
||||
name = "Sleep as Android";
|
||||
url = secrets.calendar.sleep-as-android-url;
|
||||
color = "#111111";
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
{
|
||||
name = "LEC";
|
||||
url = "https://${domain}/lec.ics";
|
||||
color = "#A87000";
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
{
|
||||
name = "LR";
|
||||
url = "https://${domain}/lr.ics";
|
||||
color = "#005040";
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
{
|
||||
name = "Feiertage Hessen";
|
||||
url = "https://ics.tools/Feiertage/hessen.ics";
|
||||
color = "#303030";
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
# {
|
||||
# name = "Handball Männer";
|
||||
# url = "http://i.cal.to/ical/108/dhb/handball-nationalmannschaft/c687e97f.bc7c3eb6-11a0e356.ics";
|
||||
# color = "#880023";
|
||||
# read-only = true;
|
||||
# type = "ics";
|
||||
# }
|
||||
];
|
||||
default_set = {
|
||||
# name =
|
||||
# url =
|
||||
color = "#777777";
|
||||
read-only = false;
|
||||
primary = false;
|
||||
type = "caldav";
|
||||
};
|
||||
in {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gnome-calendar
|
||||
thunderbird
|
||||
];
|
||||
|
||||
accounts.calendar.accounts = let
|
||||
transform_caledar_set = calendar_set: with calendar_set; { # transform set for accounts.calendar.accounts endpoint
|
||||
inherit primary;
|
||||
remote = {
|
||||
inherit url name;
|
||||
userName = hyper.user; # my globally set username
|
||||
};
|
||||
};
|
||||
in lib.attrsets.mergeAttrsList (
|
||||
map (calendar: {
|
||||
"${calendar.name}" = transform_caledar_set ( default_set // calendar );
|
||||
}) calendars
|
||||
);
|
||||
|
||||
programs.thunderbird.settings = let
|
||||
to_safe_name = name: (builtins.replaceStrings ["."] ["-"]) name;
|
||||
in (lib.attrsets.mergeAttrsList (
|
||||
map (calendar: with ( default_set // calendar ); {
|
||||
"calendar.registry.${to_safe_name calendar.name}.cache.enabled" = true;
|
||||
"calendar.registry.${to_safe_name calendar.name}.calendar-main-default" = primary;
|
||||
"calendar.registry.${to_safe_name calendar.name}.calendar-main-in-composite" = true;
|
||||
"calendar.registry.${to_safe_name calendar.name}.color" = color;
|
||||
"calendar.registry.${to_safe_name calendar.name}.name" = name;
|
||||
"calendar.registry.${to_safe_name calendar.name}.type" = type;
|
||||
"calendar.registry.${to_safe_name calendar.name}.uri" = url;
|
||||
"calendar.registry.${to_safe_name calendar.name}.username" = hyper.user;
|
||||
"calendar.registry.${to_safe_name calendar.name}.readOnly" = read-only;
|
||||
}) calendars
|
||||
) // {
|
||||
"calendar.list.sortOrder" = lib.fold (calendar: acc: calendar.name + " " + acc) "" calendars;
|
||||
"calendar.week.start" = 1;
|
||||
});
|
||||
}
|
||||
875
home-modules/chatterino.nix
Executable file → Normal file
875
home-modules/chatterino.nix
Executable file → Normal file
@@ -1,51 +1,35 @@
|
||||
{ pkgs, lib, rice, user, secrets, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
let
|
||||
channels = [
|
||||
"Caedrel"
|
||||
"NoWay4u_Sir"
|
||||
"zackrawrr"
|
||||
|
||||
"agurin"
|
||||
"asmongold"
|
||||
"Broeki"
|
||||
"Broxah"
|
||||
# "agurin"
|
||||
# "asmongold"
|
||||
# "Caedrel"
|
||||
"chrissyofficial"
|
||||
"EintrachtSpandau"
|
||||
# "EintrachtSpandau"
|
||||
"GamesDoneQuick"
|
||||
"Odoamne"
|
||||
"iwdominate"
|
||||
"imls"
|
||||
"gdolphn"
|
||||
"GRONKH"
|
||||
"handofblood"
|
||||
"HisWattson"
|
||||
"imls"
|
||||
"iskall85"
|
||||
"Jankos"
|
||||
"Karni"
|
||||
"KuruHS"
|
||||
"kutcherlol"
|
||||
"LCK"
|
||||
"LCS"
|
||||
# "KuruHS"
|
||||
"LEC"
|
||||
"lol_nemesis"
|
||||
"loltyler1"
|
||||
"LPL"
|
||||
"maxim"
|
||||
"NASA"
|
||||
"NNOPrime"
|
||||
# "NoWay4u_Sir"
|
||||
# "NASA"
|
||||
"NoWay4u_Sir"
|
||||
"OfficialMikeShinoda"
|
||||
"ow_esports"
|
||||
"PrimeGaming"
|
||||
"PrimeLeague"
|
||||
"Rekkles"
|
||||
"riotgames"
|
||||
"Sola"
|
||||
"thebausffs"
|
||||
"ThePrimeagen"
|
||||
"Tolkin"
|
||||
"Trick2g"
|
||||
"TSM_ImperialHal"
|
||||
"Xisuma"
|
||||
# "zackrawrr"
|
||||
# "TSM_ImperialHal"
|
||||
"velja_lol"
|
||||
# "Xisuma"
|
||||
"zackrawrr"
|
||||
];
|
||||
tabber = channel-name: {
|
||||
highlightsEnabled = true;
|
||||
@@ -62,10 +46,16 @@ let
|
||||
};
|
||||
};
|
||||
in {
|
||||
sops.secrets."streamlink/twitch-oauth" = { path = "%r/secrets/streamlink/twich-oauth"; };
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [ chatterino2 ];
|
||||
packages = with pkgs; [
|
||||
chatterino2
|
||||
streamlink
|
||||
# mpv
|
||||
];
|
||||
file = {
|
||||
".local/share/chatterino/Settings/settings.json".text = with secrets.chatterino; ''
|
||||
".local/share/chatterino/Settings/settings.json".text = with secrets.chatterino; /* json */ ''
|
||||
{
|
||||
"accounts": {
|
||||
"current": "${username}",
|
||||
@@ -87,20 +77,27 @@ in {
|
||||
"separateMessages": true,
|
||||
"showTimestamps": false,
|
||||
"timestampFormat": "h =mm",
|
||||
"usernameDisplayMode": 1
|
||||
"usernameDisplayMode": 1,
|
||||
"findAllUsernames": true
|
||||
},
|
||||
"showReplyButton": false,
|
||||
"showTabCloseButton": false,
|
||||
"showTabLiveButton": false,
|
||||
"splitheader": {
|
||||
"showGame": true,
|
||||
"showTitle": true,
|
||||
"showUptime": true,
|
||||
"showViewerCount": true
|
||||
},
|
||||
"tabVisibility": 1,
|
||||
"theme": {
|
||||
"name": "Black"
|
||||
}
|
||||
"tabStyle": "compact",
|
||||
"tabVisibility": 0,
|
||||
"theme": { "name": "nxtheme.json" }
|
||||
},
|
||||
"behaviour": {
|
||||
"autocopletion": {
|
||||
"ShowUsernameCompeltionMenu": false,
|
||||
"userCompletinOnlyWithAt": true
|
||||
},
|
||||
"pauseOnHoverDuration": 5.0,
|
||||
"showJoins": false,
|
||||
"usernameRightClickBehavior": 0,
|
||||
@@ -112,615 +109,89 @@ in {
|
||||
},
|
||||
"highlighting": {
|
||||
"badges": [
|
||||
{
|
||||
"alert": false,
|
||||
"color": "#7f7f3f49",
|
||||
"displayName": "Broadcaster",
|
||||
"name": "broadcaster",
|
||||
"showInMentions": false,
|
||||
"sound": false,
|
||||
"soundUrl": ""
|
||||
},
|
||||
{
|
||||
"alert": false,
|
||||
"color": "#7f7f3f49",
|
||||
"displayName": "Admin",
|
||||
"name": "admin",
|
||||
"showInMentions": false,
|
||||
"sound": false,
|
||||
"soundUrl": ""
|
||||
},
|
||||
{
|
||||
"alert": false,
|
||||
"color": "#7f7f3f49",
|
||||
"displayName": "Staff",
|
||||
"name": "staff",
|
||||
"showInMentions": false,
|
||||
"sound": false,
|
||||
"soundUrl": ""
|
||||
},
|
||||
{
|
||||
"alert": false,
|
||||
"displayName": "Moderator",
|
||||
"name": "moderator",
|
||||
"showInMentions": false,
|
||||
"sound": false,
|
||||
"soundUrl": ""
|
||||
},
|
||||
{
|
||||
"alert": false,
|
||||
"color": "#7f7f3578",
|
||||
"displayName": "VIP",
|
||||
"name": "vip",
|
||||
"showInMentions": false,
|
||||
"sound": false,
|
||||
"soundUrl": ""
|
||||
}
|
||||
{ "alert": false, "color": "#7f7f3f49", "displayName": "Broadcaster", "name": "broadcaster", "showInMentions": false, "sound": false, "soundUrl": "" },
|
||||
{ "alert": false, "color": "#7f7f3f49", "displayName": "Admin", "name": "admin", "showInMentions": false, "sound": false, "soundUrl": "" },
|
||||
{ "alert": false, "color": "#7f7f3f49", "displayName": "Staff", "name": "staff", "showInMentions": false, "sound": false, "soundUrl": "" },
|
||||
{ "alert": false, "color": "#7f7f3f49", "displayName": "Moderator", "name": "moderator", "showInMentions": false, "sound": false, "soundUrl": "" },
|
||||
{ "alert": false, "color": "#7f7f3578", "displayName": "VIP", "name": "vip", "showInMentions": false, "sound": false, "soundUrl": "" }
|
||||
],
|
||||
"selfMessageHighlight": {
|
||||
"color": "#73008cff",
|
||||
"enabled": true
|
||||
}
|
||||
"selfMessageHighlight": { "color": "#73008cff", "enabled": true }
|
||||
},
|
||||
"hotkeys": {
|
||||
"addedDefaults": [
|
||||
"change channel",
|
||||
"close popup window",
|
||||
"create clip",
|
||||
"delete",
|
||||
"emote picker",
|
||||
"focus down",
|
||||
"focus left",
|
||||
"focus right",
|
||||
"focus up",
|
||||
"go to end of input",
|
||||
"go to end of input with selection",
|
||||
"go to start of input",
|
||||
"go to start of input with selection",
|
||||
"new popup window",
|
||||
"new popup window from tab",
|
||||
"new split",
|
||||
"new tab",
|
||||
"next message",
|
||||
"open debug popup",
|
||||
"open quick switcher",
|
||||
"open settings",
|
||||
"popup accept",
|
||||
"popup focus search box",
|
||||
"popup reject",
|
||||
"popup scroll down",
|
||||
"popup scroll up",
|
||||
"popup select last tab",
|
||||
"popup select next tab",
|
||||
"popup select previous tab",
|
||||
"popup select tab #1",
|
||||
"popup select tab #2",
|
||||
"popup select tab #3",
|
||||
"popup select tab #4",
|
||||
"popup select tab #5",
|
||||
"popup select tab #6",
|
||||
"popup select tab #7",
|
||||
"popup select tab #8",
|
||||
"previous message",
|
||||
"reconnect",
|
||||
"reload emotes",
|
||||
"remove tab",
|
||||
"reopen split",
|
||||
"scroll page down",
|
||||
"scroll page up",
|
||||
"scroll to bottom",
|
||||
"scroll to top",
|
||||
"select last tab",
|
||||
"select next tab",
|
||||
"select previous tab",
|
||||
"select tab #1",
|
||||
"select tab #2",
|
||||
"select tab #3",
|
||||
"select tab #4",
|
||||
"select tab #5",
|
||||
"select tab #6",
|
||||
"select tab #7",
|
||||
"select tab #8",
|
||||
"send message",
|
||||
"send message and keep text",
|
||||
"show global search",
|
||||
"show search",
|
||||
"toggle live tabs only",
|
||||
"toggle local r9k",
|
||||
"toggle tab visibility",
|
||||
"zoom in",
|
||||
"zoom out",
|
||||
"zoom reset"
|
||||
],
|
||||
"change channel": {
|
||||
"action": "changeChannel",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Ctrl+R"
|
||||
},
|
||||
"close popup window": {
|
||||
"action": "delete",
|
||||
"arguments": [],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Esc"
|
||||
},
|
||||
"create clip": {
|
||||
"action": "createClip",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Alt+X"
|
||||
},
|
||||
"delete": {
|
||||
"action": "delete",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Ctrl+W"
|
||||
},
|
||||
"emote picker": {
|
||||
"action": "openEmotesPopup",
|
||||
"arguments": [],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Ctrl+E"
|
||||
},
|
||||
"focus down": {
|
||||
"action": "focus",
|
||||
"arguments": [
|
||||
"down"
|
||||
],
|
||||
"category": "split",
|
||||
"keySequence": "Alt+Down"
|
||||
},
|
||||
"focus left": {
|
||||
"action": "focus",
|
||||
"arguments": [
|
||||
"left"
|
||||
],
|
||||
"category": "split",
|
||||
"keySequence": "Alt+Left"
|
||||
},
|
||||
"focus right": {
|
||||
"action": "focus",
|
||||
"arguments": [
|
||||
"right"
|
||||
],
|
||||
"category": "split",
|
||||
"keySequence": "Alt+Right"
|
||||
},
|
||||
"focus up": {
|
||||
"action": "focus",
|
||||
"arguments": [
|
||||
"up"
|
||||
],
|
||||
"category": "split",
|
||||
"keySequence": "Alt+Up"
|
||||
},
|
||||
"go to end of input": {
|
||||
"action": "cursorToEnd",
|
||||
"arguments": [
|
||||
"withoutSelection"
|
||||
],
|
||||
"category": "splitInput",
|
||||
"keySequence": "End"
|
||||
},
|
||||
"go to end of input with selection": {
|
||||
"action": "cursorToEnd",
|
||||
"arguments": [
|
||||
"withSelection"
|
||||
],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Shift+End"
|
||||
},
|
||||
"go to start of input": {
|
||||
"action": "cursorToStart",
|
||||
"arguments": [
|
||||
"withoutSelection"
|
||||
],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Home"
|
||||
},
|
||||
"go to start of input with selection": {
|
||||
"action": "cursorToStart",
|
||||
"arguments": [
|
||||
"withSelection"
|
||||
],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Shift+Home"
|
||||
},
|
||||
"new popup window": {
|
||||
"action": "popup",
|
||||
"arguments": [
|
||||
"split"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+N"
|
||||
},
|
||||
"new popup window from tab": {
|
||||
"action": "popup",
|
||||
"arguments": [
|
||||
"window"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+Shift+N"
|
||||
},
|
||||
"new split": {
|
||||
"action": "newSplit",
|
||||
"arguments": [],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+T"
|
||||
},
|
||||
"new tab": {
|
||||
"action": "newTab",
|
||||
"arguments": [],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+Shift+T"
|
||||
},
|
||||
"next message": {
|
||||
"action": "nextMessage",
|
||||
"arguments": [],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Down"
|
||||
},
|
||||
"open debug popup": {
|
||||
"action": "debug",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "F10"
|
||||
},
|
||||
"open quick switcher": {
|
||||
"action": "openQuickSwitcher",
|
||||
"arguments": [],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+K"
|
||||
},
|
||||
"open settings": {
|
||||
"action": "openSettings",
|
||||
"arguments": [],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+P"
|
||||
},
|
||||
"popup accept": {
|
||||
"action": "accept",
|
||||
"arguments": [],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Return"
|
||||
},
|
||||
"popup focus search box": {
|
||||
"action": "search",
|
||||
"arguments": [],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+F"
|
||||
},
|
||||
"popup reject": {
|
||||
"action": "reject",
|
||||
"arguments": [],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Esc"
|
||||
},
|
||||
"popup scroll down": {
|
||||
"action": "scrollPage",
|
||||
"arguments": [
|
||||
"down"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "PgDown"
|
||||
},
|
||||
"popup scroll up": {
|
||||
"action": "scrollPage",
|
||||
"arguments": [
|
||||
"up"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "PgUp"
|
||||
},
|
||||
"popup select last tab": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"last"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+9"
|
||||
},
|
||||
"popup select next tab": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"next"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+Tab"
|
||||
},
|
||||
"popup select previous tab": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"previous"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+Shift+Tab"
|
||||
},
|
||||
"popup select tab #1": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"0"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+1"
|
||||
},
|
||||
"popup select tab #2": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"1"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+2"
|
||||
},
|
||||
"popup select tab #3": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"2"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+3"
|
||||
},
|
||||
"popup select tab #4": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"3"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+4"
|
||||
},
|
||||
"popup select tab #5": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"4"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+5"
|
||||
},
|
||||
"popup select tab #6": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"5"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+6"
|
||||
},
|
||||
"popup select tab #7": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"6"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+7"
|
||||
},
|
||||
"popup select tab #8": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"7"
|
||||
],
|
||||
"category": "popupWindow",
|
||||
"keySequence": "Ctrl+8"
|
||||
},
|
||||
"previous message": {
|
||||
"action": "previousMessage",
|
||||
"arguments": [],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Up"
|
||||
},
|
||||
"reconnect": {
|
||||
"action": "reconnect",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Ctrl+F5"
|
||||
},
|
||||
"reload emotes": {
|
||||
"action": "reloadEmotes",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "F5"
|
||||
},
|
||||
"remove tab": {
|
||||
"action": "removeTab",
|
||||
"arguments": [],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+Shift+W"
|
||||
},
|
||||
"reopen split": {
|
||||
"action": "reopenSplit",
|
||||
"arguments": [],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+G"
|
||||
},
|
||||
"scroll page down": {
|
||||
"action": "scrollPage",
|
||||
"arguments": [
|
||||
"down"
|
||||
],
|
||||
"category": "split",
|
||||
"keySequence": "PgDown"
|
||||
},
|
||||
"scroll page up": {
|
||||
"action": "scrollPage",
|
||||
"arguments": [
|
||||
"up"
|
||||
],
|
||||
"category": "split",
|
||||
"keySequence": "PgUp"
|
||||
},
|
||||
"scroll to bottom": {
|
||||
"action": "scrollToBottom",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Ctrl+End"
|
||||
},
|
||||
"scroll to top": {
|
||||
"action": "scrollToTop",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Ctrl+Home"
|
||||
},
|
||||
"select last tab": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"last"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+9"
|
||||
},
|
||||
"select next tab": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"next"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+Tab"
|
||||
},
|
||||
"select previous tab": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"previous"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+Shift+Tab"
|
||||
},
|
||||
"select tab #1": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"0"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+1"
|
||||
},
|
||||
"select tab #2": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"1"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+2"
|
||||
},
|
||||
"select tab #3": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"2"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+3"
|
||||
},
|
||||
"select tab #4": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"3"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+4"
|
||||
},
|
||||
"select tab #5": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"4"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+5"
|
||||
},
|
||||
"select tab #6": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"5"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+6"
|
||||
},
|
||||
"select tab #7": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"6"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+7"
|
||||
},
|
||||
"select tab #8": {
|
||||
"action": "openTab",
|
||||
"arguments": [
|
||||
"7"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+8"
|
||||
},
|
||||
"send message": {
|
||||
"action": "sendMessage",
|
||||
"arguments": [],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Return"
|
||||
},
|
||||
"send message and keep text": {
|
||||
"action": "sendMessage",
|
||||
"arguments": [
|
||||
"keepInput"
|
||||
],
|
||||
"category": "splitInput",
|
||||
"keySequence": "Ctrl+Return"
|
||||
},
|
||||
"show global search": {
|
||||
"action": "showGlobalSearch",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Ctrl+Shift+F"
|
||||
},
|
||||
"show search": {
|
||||
"action": "showSearch",
|
||||
"arguments": [],
|
||||
"category": "split",
|
||||
"keySequence": "Ctrl+F"
|
||||
},
|
||||
"toggle live tabs only": {
|
||||
"action": "setTabVisibility",
|
||||
"arguments": [
|
||||
"toggleLiveOnly"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+Shift+L"
|
||||
},
|
||||
"toggle local r9k": {
|
||||
"action": "toggleLocalR9K",
|
||||
"arguments": [],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+H"
|
||||
},
|
||||
"toggle tab visibility": {
|
||||
"action": "setTabVisibility",
|
||||
"arguments": [
|
||||
"toggle"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+U"
|
||||
},
|
||||
"zoom in": {
|
||||
"action": "zoom",
|
||||
"arguments": [
|
||||
"in"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl++"
|
||||
},
|
||||
"zoom out": {
|
||||
"action": "zoom",
|
||||
"arguments": [
|
||||
"out"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+-"
|
||||
},
|
||||
"zoom reset": {
|
||||
"action": "zoom",
|
||||
"arguments": [
|
||||
"reset"
|
||||
],
|
||||
"category": "window",
|
||||
"keySequence": "Ctrl+0"
|
||||
}
|
||||
"addedDefaults": [ "change channel", "close popup window", "create clip", "delete", "emote picker", "focus down", "focus left", "focus right", "focus up", "go to end of input", "go to end of input with selection", "go to start of input", "go to start of input with selection", "new popup window", "new popup window from tab", "new split", "new tab", "next message", "open debug popup", "open overlay", "open quick switcher", "open settings", "popup accept", "popup focus search box", "popup reject", "popup scroll down", "popup scroll up", "popup select last tab", "popup select next tab", "popup select previous tab", "popup select tab #1", "popup select tab #2", "popup select tab #3", "popup select tab #4", "popup select tab #5", "popup select tab #6", "popup select tab #7", "popup select tab #8", "previous message", "reconnect", "reload emotes", "remove tab", "reopen split", "scroll page down", "scroll page up", "scroll to bottom", "scroll to top", "select last tab", "select next tab", "select previous tab", "select tab #1", "select tab #2", "select tab #3", "select tab #4", "select tab #5", "select tab #6", "select tab #7", "select tab #8", "send message", "send message and keep text", "show global search", "show search", "toggle live tabs only", "toggle local r9k", "toggle overlay click-through", "toggle tab visibility", "zoom in", "zoom out", "zoom reset" ],
|
||||
|
||||
"change channel": { "action": "changeChannel", "arguments": [], "category": "split", "keySequence": "Ctrl+R" },
|
||||
"close popup window": { "action": "delete", "arguments": [], "category": "popupWindow", "keySequence": "Esc" },
|
||||
"create clip": { "action": "createClip", "arguments": [], "category": "split", "keySequence": "Alt+X" },
|
||||
"delete": { "action": "delete", "arguments": [], "category": "split", "keySequence": "Ctrl+W" },
|
||||
"emote picker": { "action": "openEmotesPopup", "arguments": [], "category": "splitInput", "keySequence": "Ctrl+E" },
|
||||
"focus down": { "action": "focus", "arguments": [ "down" ], "category": "split", "keySequence": "Alt+Down" },
|
||||
"focus left": { "action": "focus", "arguments": [ "left" ], "category": "split", "keySequence": "Alt+Left" },
|
||||
"focus right": { "action": "focus", "arguments": [ "right" ], "category": "split", "keySequence": "Alt+Right" },
|
||||
"focus up": { "action": "focus", "arguments": [ "up" ], "category": "split", "keySequence": "Alt+Up" },
|
||||
"go to end of input": { "action": "cursorToEnd", "arguments": [ "withoutSelection" ], "category": "splitInput", "keySequence": "End" },
|
||||
"go to end of input with selection": { "action": "cursorToEnd", "arguments": [ "withSelection" ], "category": "splitInput", "keySequence": "Shift+End" },
|
||||
"go to start of input": { "action": "cursorToStart", "arguments": [ "withoutSelection" ], "category": "splitInput", "keySequence": "Home" },
|
||||
"go to start of input with selection": { "action": "cursorToStart", "arguments": [ "withSelection" ], "category": "splitInput", "keySequence": "Shift+Home" },
|
||||
"new popup window": { "action": "popup", "arguments": [ "split" ], "category": "window", "keySequence": "Ctrl+N" },
|
||||
"new popup window from tab": { "action": "popup", "arguments": [ "window" ], "category": "window", "keySequence": "Ctrl+Shift+N" },
|
||||
"new split": { "action": "newSplit", "arguments": [], "category": "window", "keySequence": "Ctrl+T" },
|
||||
"new tab": { "action": "newTab", "arguments": [], "category": "window", "keySequence": "Ctrl+Shift+T" },
|
||||
"next message": { "action": "nextMessage", "arguments": [], "category": "splitInput", "keySequence": "Down" },
|
||||
"open debug popup": { "action": "debug", "arguments": [], "category": "split", "keySequence": "F10" },
|
||||
"open overlay": { "action": "popupOverlay", "arguments": [], "category": "split", "keySequence": "Ctrl+Alt+N" },
|
||||
"open quick switcher": { "action": "openQuickSwitcher", "arguments": [], "category": "window", "keySequence": "Ctrl+K" },
|
||||
"open settings": { "action": "openSettings", "arguments": [], "category": "window", "keySequence": "Ctrl+P" },
|
||||
"popup accept": { "action": "accept", "arguments": [], "category": "popupWindow", "keySequence": "Return" },
|
||||
"popup focus search box": { "action": "search", "arguments": [], "category": "popupWindow", "keySequence": "Ctrl+F" },
|
||||
"popup reject": { "action": "reject", "arguments": [], "category": "popupWindow", "keySequence": "Esc" },
|
||||
"popup scroll down": { "action": "scrollPage", "arguments": [ "down" ], "category": "popupWindow", "keySequence": "PgDown" },
|
||||
"popup scroll up": { "action": "scrollPage", "arguments": [ "up" ], "category": "popupWindow", "keySequence": "PgUp" },
|
||||
"popup select last tab": { "action": "openTab", "arguments": [ "last" ], "category": "popupWindow", "keySequence": "Ctrl+9" },
|
||||
"popup select next tab": { "action": "openTab", "arguments": [ "next" ], "category": "popupWindow", "keySequence": "Ctrl+Tab" },
|
||||
"popup select previous tab": { "action": "openTab", "arguments": [ "previous" ], "category": "popupWindow", "keySequence": "Ctrl+Shift+Tab" },
|
||||
"popup select tab #1": { "action": "openTab", "arguments": [ "0" ], "category": "popupWindow", "keySequence": "Ctrl+1" },
|
||||
"popup select tab #2": { "action": "openTab", "arguments": [ "1" ], "category": "popupWindow", "keySequence": "Ctrl+2" },
|
||||
"popup select tab #3": { "action": "openTab", "arguments": [ "2" ], "category": "popupWindow", "keySequence": "Ctrl+3" },
|
||||
"popup select tab #4": { "action": "openTab", "arguments": [ "3" ], "category": "popupWindow", "keySequence": "Ctrl+4" },
|
||||
"popup select tab #5": { "action": "openTab", "arguments": [ "4" ], "category": "popupWindow", "keySequence": "Ctrl+5" },
|
||||
"popup select tab #6": { "action": "openTab", "arguments": [ "5" ], "category": "popupWindow", "keySequence": "Ctrl+6" },
|
||||
"popup select tab #7": { "action": "openTab", "arguments": [ "6" ], "category": "popupWindow", "keySequence": "Ctrl+7" },
|
||||
"popup select tab #8": { "action": "openTab", "arguments": [ "7" ], "category": "popupWindow", "keySequence": "Ctrl+8" },
|
||||
"previous message": { "action": "previousMessage", "arguments": [], "category": "splitInput", "keySequence": "Up" },
|
||||
"reconnect": { "action": "reconnect", "arguments": [], "category": "split", "keySequence": "Ctrl+F5" },
|
||||
"reload emotes": { "action": "reloadEmotes", "arguments": [], "category": "split", "keySequence": "F5" },
|
||||
"remove tab": { "action": "removeTab", "arguments": [], "category": "window", "keySequence": "Ctrl+Shift+W" },
|
||||
"reopen split": { "action": "reopenSplit", "arguments": [], "category": "window", "keySequence": "Ctrl+G" },
|
||||
"scroll page down": { "action": "scrollPage", "arguments": [ "down" ], "category": "split", "keySequence": "PgDown" },
|
||||
"scroll page up": { "action": "scrollPage", "arguments": [ "up" ], "category": "split", "keySequence": "PgUp" },
|
||||
"scroll to bottom": { "action": "scrollToBottom", "arguments": [], "category": "split", "keySequence": "Ctrl+End" },
|
||||
"scroll to top": { "action": "scrollToTop", "arguments": [], "category": "split", "keySequence": "Ctrl+Home" },
|
||||
"select last tab": { "action": "openTab", "arguments": [ "last" ], "category": "window", "keySequence": "Ctrl+9" },
|
||||
"select next tab": { "action": "openTab", "arguments": [ "next" ], "category": "window", "keySequence": "Ctrl+Tab" },
|
||||
"select previous tab": { "action": "openTab", "arguments": [ "previous" ], "category": "window", "keySequence": "Ctrl+Shift+Tab" },
|
||||
"select tab #1": { "action": "openTab", "arguments": [ "0" ], "category": "window", "keySequence": "Ctrl+1" },
|
||||
"select tab #2": { "action": "openTab", "arguments": [ "1" ], "category": "window", "keySequence": "Ctrl+2" },
|
||||
"select tab #3": { "action": "openTab", "arguments": [ "2" ], "category": "window", "keySequence": "Ctrl+3" },
|
||||
"select tab #4": { "action": "openTab", "arguments": [ "3" ], "category": "window", "keySequence": "Ctrl+4" },
|
||||
"select tab #5": { "action": "openTab", "arguments": [ "4" ], "category": "window", "keySequence": "Ctrl+5" },
|
||||
"select tab #6": { "action": "openTab", "arguments": [ "5" ], "category": "window", "keySequence": "Ctrl+6" },
|
||||
"select tab #7": { "action": "openTab", "arguments": [ "6" ], "category": "window", "keySequence": "Ctrl+7" },
|
||||
"select tab #8": { "action": "openTab", "arguments": [ "7" ], "category": "window", "keySequence": "Ctrl+8" },
|
||||
"send message": { "action": "sendMessage", "arguments": [], "category": "splitInput", "keySequence": "Return" },
|
||||
"send message and keep text": { "action": "sendMessage", "arguments": [ "keepInput" ], "category": "splitInput", "keySequence": "Ctrl+Return" },
|
||||
"show global search": { "action": "showGlobalSearch", "arguments": [], "category": "split", "keySequence": "Ctrl+Shift+F" },
|
||||
"show search": { "action": "showSearch", "arguments": [], "category": "split", "keySequence": "Ctrl+F" },
|
||||
"toggle local r9k": { "action": "toggleLocalR9K", "arguments": [], "category": "window", "keySequence": "Ctrl+H" },
|
||||
"toggle overlay click-through": { "action": "toggleOverlayInertia", "arguments": [ "all" ], "category": "split", "keySequence": "Ctrl+Shift+U" },
|
||||
"toggle tab visibility": { "action": "setTabVisibility", "arguments": [ "toggle" ], "category": "window", "keySequence": "Ctrl+U" },
|
||||
"zoom in": { "action": "zoom", "arguments": [ "in" ], "category": "window", "keySequence": "Ctrl++" },
|
||||
"zoom out": { "action": "zoom", "arguments": [ "out" ], "category": "window", "keySequence": "Ctrl+-" },
|
||||
"zoom reset": { "action": "zoom", "arguments": [ "reset" ], "category": "window", "keySequence": "Ctrl+0" }
|
||||
},
|
||||
"misc": {
|
||||
"currentVersion": "2.5.1",
|
||||
"askOnTabVisibilityToggle": false,
|
||||
"currentVersion": "2.5.3",
|
||||
"lockNotebookLayout": false
|
||||
},
|
||||
"similarity": {
|
||||
@@ -732,12 +203,17 @@ in {
|
||||
"ui": {
|
||||
"lastSelectChannelTab": 0,
|
||||
"lastSelectIrcConn": -1
|
||||
},
|
||||
"external": {
|
||||
"streamlink": {
|
||||
"quality": "",
|
||||
"options": "--config ${hyper.home}.config/streamlink/config"
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
".local/share/chatterino/Settings/window-layout.json".text = builtins.toJSON {
|
||||
windows = [
|
||||
{
|
||||
windows = [{
|
||||
emotePopup = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
@@ -749,9 +225,116 @@ in {
|
||||
width = 943;
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
];
|
||||
}];
|
||||
};
|
||||
".local/share/chatterino/Themes/nxtheme.json".text = with rice.color; let
|
||||
# tr = builtins.toString (rice.lib.float-to-drune rice.transparency);
|
||||
nh = rice.lib.nohash;
|
||||
in /* json */ ''
|
||||
{
|
||||
"colors": {
|
||||
"accent": "${accent.base}",
|
||||
"messages": {
|
||||
"backgrounds": {
|
||||
"alternate": "${rice.lib.alter-luminace-hex accent.dark (-0.2)}",
|
||||
"regular": "${background}"
|
||||
},
|
||||
"disabled": "#99000000",
|
||||
"highlightAnimationEnd": "#00e6e6e6",
|
||||
"highlightAnimationStart": "#6ee6e6e6",
|
||||
"selection": "#40ffffff",
|
||||
"textColors": {
|
||||
"caret": "#ffffff",
|
||||
"chatPlaceholder": "#5d5555",
|
||||
"link": "#4286f4",
|
||||
"regular": "#ffffff",
|
||||
"system": "#8c7f7f"
|
||||
}
|
||||
},
|
||||
"scrollbars": {
|
||||
"background": "#00000000",
|
||||
"thumb": "${secondary.dark}",
|
||||
"thumbSelected": "${secondary.base}"
|
||||
},
|
||||
"splits": {
|
||||
"background": "${background}",
|
||||
"dropPreview": "#300094ff",
|
||||
"dropPreviewBorder": "${border}",
|
||||
"dropTargetRect": "${background}",
|
||||
"dropTargetRectBorder": "${border2}",
|
||||
"header": {
|
||||
"background": "${background}", "focusedBackground": "${accent.dark}",
|
||||
"border": "${background}", "focusedBorder": "${secondary.base}",
|
||||
"text": "${tertiary.base}", "focusedText": "${tertiary.bright}"
|
||||
},
|
||||
"input": {
|
||||
"background": "${background}",
|
||||
"text": "${foreground}"
|
||||
},
|
||||
"messageSeperator": "${accent.dark}",
|
||||
"resizeHandle": "#70${nh accent.base}",
|
||||
"resizeHandleBackground": "#20${nh secondary.dark}"
|
||||
},
|
||||
"tabs": {
|
||||
"liveIndicator": "${special.base}",
|
||||
"rerunIndicator": "${accent.base}",
|
||||
"dividerLine": "${background}",
|
||||
"highlighted": {
|
||||
"backgrounds": { "hover": "${accent.dark}", "regular": "${secondary.dark}", "unfocused": "${black.dark}" },
|
||||
"line": { "hover": "${secondary.base}", "regular": "${accent.base}", "unfocused": "${accent.dark}" },
|
||||
"text": "${accent.base}"
|
||||
},
|
||||
"newMessage": {
|
||||
"backgrounds": { "hover": "${accent.dark}", "regular": "${secondary.dark}", "unfocused": "${black.dark}" },
|
||||
"line": { "hover": "${secondary.base}", "regular": "${accent.base}", "unfocused": "${accent.dark}" },
|
||||
"text": "${accent.base}"
|
||||
},
|
||||
"regular": {
|
||||
"backgrounds": { "hover": "${accent.dark}", "regular": "${background}", "unfocused": "${background}" },
|
||||
"line": { "hover": "${secondary.base}", "regular": "${accent.dark}", "unfocused": "${background}" },
|
||||
"text": "${accent.base}"
|
||||
},
|
||||
"selected": {
|
||||
"backgrounds": { "hover": "${accent.dark}", "regular": "${secondary.dark}", "unfocused": "${secondary.dark}" },
|
||||
"line": { "hover": "${accent.bright}", "regular": "${accent.base}", "unfocused": "${accent.dark}" },
|
||||
"text": "${foreground}"
|
||||
}
|
||||
},
|
||||
"window": {
|
||||
"background": "${background}",
|
||||
"text": "${foreground}"
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"iconTheme": "light"
|
||||
},
|
||||
"ctcMeta": {
|
||||
"name": "nxtheme",
|
||||
"createdAt": "1970-01-01T00:00:00Z",
|
||||
"modifiedAt": "1970-01-01T00:00:00Z",
|
||||
"simpleTabSettings": false,
|
||||
"checkeredRow": true,
|
||||
"messageSeparator": false
|
||||
}
|
||||
}
|
||||
'';
|
||||
".local/share/chatterino/Settings/commands.json".text = ''
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"name": "/sl",
|
||||
"func": "/streamlink",
|
||||
"showInMsgContextMenu": false
|
||||
}
|
||||
]
|
||||
}
|
||||
'';
|
||||
".config/streamlink/config".text = /* ini */ ''
|
||||
twitch-api-header=Authorization=OAuth ${secrets.streamlink.twitch-oauth}
|
||||
player=mpv
|
||||
twitch-low-latency
|
||||
default-stream=best
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
7
home-modules/clipboard.nix
Normal file
7
home-modules/clipboard.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
services.clipman = {
|
||||
package = pkgs.clipman;
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
@@ -5,17 +5,18 @@
|
||||
<div class="color-container" style="border-color: ${color-set.base}">
|
||||
<div class="color-box" style="background: ${color-set.dark}; height: ${builtins.toString size}px;">
|
||||
<p style="color: ${color-set.bright}"> ${color-name}.dark </p>
|
||||
<p style="color: ${color-set.bright}"> ${color-set.dark} </p>
|
||||
</div>
|
||||
<div class="color-box" style="background: ${color-set.base}; height: ${builtins.toString size}px;">
|
||||
<p class="dynamic-text"> ${color-name}.base </p>
|
||||
<p class="dynamic-text"> ${color-set.base} </p>
|
||||
</div>
|
||||
<div class="color-box" style="background: ${color-set.bright}; height: ${builtins.toString size}px;">
|
||||
<p style="color: ${color-set.dark}"> ${color-name}.bright </p>
|
||||
<p style="color: ${color-set.dark}"> ${color-set.bright} </p>
|
||||
</div>
|
||||
</div>
|
||||
'';
|
||||
|
||||
|
||||
in /* html */ ''
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
@@ -37,7 +38,7 @@
|
||||
color: ${foreground};
|
||||
width: fit-content;
|
||||
margin: 10px auto 10px auto;
|
||||
background: ${background};
|
||||
background: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
|
||||
border: ${builtins.toString rice.border-width}px solid ${border};
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
padding: ${builtins.toString rice.gap-size}px;
|
||||
@@ -46,7 +47,7 @@
|
||||
margin: ${builtins.toString rice.gap-size}px;
|
||||
}
|
||||
.color-container {
|
||||
font-family: ${rice.font.code.name2};
|
||||
font-family: ${rice.font.code.name};
|
||||
display: flex;
|
||||
gap: ${builtins.toString rice.gap-size}px;
|
||||
margin: ${builtins.toString rice.gap-size}px;
|
||||
@@ -66,18 +67,20 @@
|
||||
${cb accent "accent" 100}
|
||||
${cb secondary "secondary" 100}
|
||||
${cb tertiary "tertiary" 100}
|
||||
${cb weird "weird" 75}
|
||||
${cb special "special" 75}
|
||||
${cb positive "positive" 30}
|
||||
${cb negative "negative" 30}
|
||||
${cb black "black" 25}
|
||||
${cb white "white" 25}
|
||||
${cb blue "blue" 25}
|
||||
${cb cyan "cyan" 25}
|
||||
${cb green "green" 25}
|
||||
${cb magenta "magenta" 25}
|
||||
${cb red "red" 25}
|
||||
${cb yellow "yellow" 25}
|
||||
${cb weird "weird" 100}
|
||||
${cb special "special" 100}
|
||||
<br>
|
||||
${cb positive "positive" 70}
|
||||
${cb negative "negative" 70}
|
||||
<br>
|
||||
${cb black "black" 50}
|
||||
${cb white "white" 50}
|
||||
${cb blue "blue" 50}
|
||||
${cb cyan "cyan" 50}
|
||||
${cb green "green" 50}
|
||||
${cb magenta "magenta" 50}
|
||||
${cb red "red" 50}
|
||||
${cb yellow "yellow" 50}
|
||||
</body>
|
||||
<script>
|
||||
function getLuminance(color) {
|
||||
|
||||
2
home-modules/direnv.nix
Executable file → Normal file
2
home-modules/direnv.nix
Executable file → Normal file
@@ -1,4 +1,4 @@
|
||||
{ lib, user, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
programs = {
|
||||
direnv = {
|
||||
|
||||
381
home-modules/discord.nix
Executable file → Normal file
381
home-modules/discord.nix
Executable file → Normal file
@@ -1,199 +1,200 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
vesktop
|
||||
# discord
|
||||
];
|
||||
|
||||
file.".config/vesktop/settings/settings.json".text = let
|
||||
settingsSyncVersion = "1729179678715";
|
||||
in /* json */ ''{
|
||||
"notifyAboutUpdates": true,
|
||||
"autoUpdate": false,
|
||||
"autoUpdateNotification": true,
|
||||
"useQuickCss": true,
|
||||
"themeLinks": [
|
||||
"https://luckfire.github.io/amoled-cord/src/amoled-cord.css"
|
||||
],
|
||||
"enabledThemes": [],
|
||||
"enableReactDevtools": false,
|
||||
"frameless": false,
|
||||
"transparent": true,
|
||||
"winCtrlQ": false,
|
||||
"macosTranslucency": false,
|
||||
"disableMinSize": false,
|
||||
"winNativeTitleBar": false,
|
||||
"plugins": {
|
||||
"BadgeAPI": { "enabled": true },
|
||||
"CommandsAPI": { "enabled": true },
|
||||
"ContextMenuAPI": { "enabled": true },
|
||||
"MemberListDecoratorsAPI": { "enabled": false },
|
||||
"MessageAccessoriesAPI": { "enabled": false },
|
||||
"MessageDecorationsAPI": { "enabled": false },
|
||||
"MessageEventsAPI": { "enabled": false },
|
||||
"MessagePopoverAPI": { "enabled": false },
|
||||
"NoticesAPI": { "enabled": true },
|
||||
"ServerListAPI": { "enabled": false },
|
||||
"NoTrack": { "enabled": true },
|
||||
"Settings": {
|
||||
"enabled": true,
|
||||
"settingsLocation": "aboveActivity"
|
||||
},
|
||||
"SupportHelper": { "enabled": true },
|
||||
"ChatInputButtonAPI": { "enabled": false },
|
||||
"AlwaysAnimate": { "enabled": true },
|
||||
"AlwaysTrust": { "enabled": true },
|
||||
"AnonymiseFileNames": { "enabled": false },
|
||||
"WebRichPresence (arRPC)": { "enabled": false },
|
||||
"BANger": { "enabled": false },
|
||||
"BetterFolders": { "enabled": false },
|
||||
"BetterGifAltText": { "enabled": false },
|
||||
"BetterGifPicker": { "enabled": false },
|
||||
"BetterNotesBox": { "enabled": false },
|
||||
"BetterRoleDot": { "enabled": false },
|
||||
"BetterUploadButton": { "enabled": false },
|
||||
"BiggerStreamPreview": { "enabled": false },
|
||||
"BlurNSFW": { "enabled": false },
|
||||
"CallTimer": { "enabled": false },
|
||||
"ClearURLs": { "enabled": false },
|
||||
"ClientTheme": { "enabled": false },
|
||||
"ColorSighted": { "enabled": false },
|
||||
"ConsoleShortcuts": { "enabled": false },
|
||||
"CopyUserURLs": { "enabled": false },
|
||||
"CrashHandler": { "enabled": true },
|
||||
"CustomRPC": { "enabled": false },
|
||||
"Dearrow": { "enabled": false },
|
||||
"Decor": { "enabled": false },
|
||||
"DisableCallIdle": { "enabled": false },
|
||||
"EmoteCloner": { "enabled": false },
|
||||
"Experiments": { "enabled": false },
|
||||
"F8Break": { "enabled": false },
|
||||
"FakeNitro": { "enabled": false },
|
||||
"FakeProfileThemes": { "enabled": true },
|
||||
"FavoriteEmojiFirst": { "enabled": false },
|
||||
"FavoriteGifSearch": { "enabled": false },
|
||||
"FixCodeblockGap": { "enabled": false },
|
||||
"FixSpotifyEmbeds": { "enabled": false },
|
||||
"FixYoutubeEmbeds": { "enabled": false },
|
||||
"ForceOwnerCrown": { "enabled": false },
|
||||
"FriendInvites": { "enabled": false },
|
||||
"GameActivityToggle": { "enabled": false },
|
||||
"GifPaste": { "enabled": false },
|
||||
"GreetStickerPicker": { "enabled": false },
|
||||
"HideAttachments": { "enabled": false },
|
||||
"iLoveSpam": { "enabled": false },
|
||||
"IgnoreActivities": { "enabled": false },
|
||||
"ImageZoom": { "enabled": false },
|
||||
"InvisibleChat": { "enabled": false },
|
||||
"KeepCurrentChannel": { "enabled": false },
|
||||
"LastFMRichPresence": { "enabled": false },
|
||||
"LoadingQuotes": { "enabled": false },
|
||||
"MemberCount": { "enabled": false },
|
||||
"MessageClickActions": { "enabled": false },
|
||||
"MessageLinkEmbeds": { "enabled": false },
|
||||
"MessageLogger": { "enabled": false },
|
||||
"MessageTags": { "enabled": false },
|
||||
"MoreCommands": { "enabled": false },
|
||||
"MoreKaomoji": { "enabled": false },
|
||||
"MoreUserTags": { "enabled": false },
|
||||
"Moyai": { "enabled": false },
|
||||
"MutualGroupDMs": { "enabled": false },
|
||||
"NewGuildSettings": { "enabled": false },
|
||||
"NoBlockedMessages": { "enabled": false },
|
||||
"NoDevtoolsWarning": { "enabled": false },
|
||||
"NoF1": { "enabled": false },
|
||||
"NoMosaic": { "enabled": false },
|
||||
"NoPendingCount": { "enabled": false },
|
||||
"NoProfileThemes": { "enabled": false },
|
||||
"NoReplyMention": { "enabled": false },
|
||||
"NoScreensharePreview": { "enabled": false },
|
||||
"NoTypingAnimation": { "enabled": false },
|
||||
"NoUnblockToJump": { "enabled": false },
|
||||
"NormalizeMessageLinks": { "enabled": false },
|
||||
"NotificationVolume": { "enabled": false },
|
||||
"NSFWGateBypass": { "enabled": false },
|
||||
"OnePingPerDM": { "enabled": false },
|
||||
"oneko": { "enabled": false },
|
||||
"OpenInApp": { "enabled": false },
|
||||
"Party mode 🎉": { "enabled": false },
|
||||
"PermissionFreeWill": { "enabled": false },
|
||||
"PermissionsViewer": { "enabled": false },
|
||||
"petpet": { "enabled": false },
|
||||
"PictureInPicture": { "enabled": false },
|
||||
"PinDMs": { "enabled": false },
|
||||
"PlainFolderIcon": { "enabled": false },
|
||||
"PlatformIndicators": { "enabled": false },
|
||||
"PreviewMessage": { "enabled": false },
|
||||
"PronounDB": { "enabled": false },
|
||||
"QuickMention": { "enabled": false },
|
||||
"QuickReply": { "enabled": false },
|
||||
"ReactErrorDecoder": { "enabled": false },
|
||||
"ReadAllNotificationsButton": { "enabled": false },
|
||||
"RelationshipNotifier": { "enabled": false },
|
||||
"RevealAllSpoilers": { "enabled": false },
|
||||
"ReverseImageSearch": { "enabled": false },
|
||||
"ReviewDB": { "enabled": false },
|
||||
"RoleColorEverywhere": { "enabled": true },
|
||||
"SearchReply": { "enabled": false },
|
||||
"SecretRingToneEnabler": { "enabled": false },
|
||||
"SendTimestamps": { "enabled": false },
|
||||
"ServerListIndicators": { "enabled": false },
|
||||
"ServerProfile": { "enabled": false },
|
||||
"ShikiCodeblocks": { "enabled": false },
|
||||
"ShowAllMessageButtons": { "enabled": false },
|
||||
"ShowConnections": { "enabled": false },
|
||||
"ShowHiddenChannels": { "enabled": false },
|
||||
"ShowMeYourName": { "enabled": false },
|
||||
"ShowTimeouts": { "enabled": false },
|
||||
"SilentMessageToggle": { "enabled": false },
|
||||
"SilentTyping": { "enabled": false },
|
||||
"SortFriendRequests": { "enabled": false },
|
||||
"SpotifyControls": { "enabled": false },
|
||||
"SpotifyCrack": { "enabled": false },
|
||||
"SpotifyShareCommands": { "enabled": false },
|
||||
"StartupTimings": { "enabled": false },
|
||||
"SuperReactionTweaks": { "enabled": false },
|
||||
"TextReplace": { "enabled": false },
|
||||
"ThemeAttributes": { "enabled": false },
|
||||
"TimeBarAllActivities": { "enabled": false },
|
||||
"Translate": { "enabled": false },
|
||||
"TypingIndicator": { "enabled": false },
|
||||
"TypingTweaks": { "enabled": false },
|
||||
"Unindent": { "enabled": false },
|
||||
"UnsuppressEmbeds": { "enabled": false },
|
||||
"UrbanDictionary": { "enabled": false },
|
||||
"UserVoiceShow": { "enabled": false },
|
||||
"USRBG": { "enabled": false },
|
||||
"ValidUser": { "enabled": false },
|
||||
"VoiceChatDoubleClick": { "enabled": false },
|
||||
"VcNarrator": { "enabled": false },
|
||||
"VencordToolbox": { "enabled": false },
|
||||
"ViewIcons": { "enabled": false },
|
||||
"ViewRaw": { "enabled": false },
|
||||
"VoiceMessages": { "enabled": false },
|
||||
"WebContextMenus": {
|
||||
"enabled": true,
|
||||
"addBack": true },
|
||||
"WebKeybinds": { "enabled": true },
|
||||
"WhoReacted": { "enabled": false },
|
||||
"Wikisearch": { "enabled": false },
|
||||
"XSOverlay": { "enabled": false }
|
||||
},
|
||||
"notifications": {
|
||||
"timeout": 5000,
|
||||
"position": "bottom-right",
|
||||
"useNative": "not-focused",
|
||||
"logLimit": 50
|
||||
},
|
||||
"cloud": {
|
||||
"authenticated": false,
|
||||
"url": "https://api.vencord.dev/",
|
||||
"settingsSync": false,
|
||||
"settingsSyncVersion": ${settingsSyncVersion}
|
||||
}
|
||||
}
|
||||
'';
|
||||
# file.".config/vesktop/settings/settings.json".text = let
|
||||
# settingsSyncVersion = "1729179678715";
|
||||
# in /* json */ ''{
|
||||
# "notifyAboutUpdates": true,
|
||||
# "autoUpdate": false,
|
||||
# "autoUpdateNotification": true,
|
||||
# "useQuickCss": true,
|
||||
# "themeLinks": [
|
||||
# "https://luckfire.github.io/amoled-cord/src/amoled-cord.css"
|
||||
# ],
|
||||
# "enabledThemes": [],
|
||||
# "enableReactDevtools": false,
|
||||
# "frameless": false,
|
||||
# "transparent": true,
|
||||
# "winCtrlQ": false,
|
||||
# "macosTranslucency": false,
|
||||
# "disableMinSize": false,
|
||||
# "winNativeTitleBar": false,
|
||||
# "plugins": {
|
||||
# "BadgeAPI": { "enabled": true },
|
||||
# "CommandsAPI": { "enabled": true },
|
||||
# "ContextMenuAPI": { "enabled": true },
|
||||
# "MemberListDecoratorsAPI": { "enabled": false },
|
||||
# "MessageAccessoriesAPI": { "enabled": false },
|
||||
# "MessageDecorationsAPI": { "enabled": false },
|
||||
# "MessageEventsAPI": { "enabled": false },
|
||||
# "MessagePopoverAPI": { "enabled": false },
|
||||
# "NoticesAPI": { "enabled": true },
|
||||
# "ServerListAPI": { "enabled": false },
|
||||
# "NoTrack": { "enabled": true },
|
||||
# "Settings": {
|
||||
# "enabled": true,
|
||||
# "settingsLocation": "aboveActivity"
|
||||
# },
|
||||
# "SupportHelper": { "enabled": true },
|
||||
# "ChatInputButtonAPI": { "enabled": false },
|
||||
# "AlwaysAnimate": { "enabled": true },
|
||||
# "AlwaysTrust": { "enabled": true },
|
||||
# "AnonymiseFileNames": { "enabled": false },
|
||||
# "WebRichPresence (arRPC)": { "enabled": false },
|
||||
# "BANger": { "enabled": false },
|
||||
# "BetterFolders": { "enabled": false },
|
||||
# "BetterGifAltText": { "enabled": false },
|
||||
# "BetterGifPicker": { "enabled": false },
|
||||
# "BetterNotesBox": { "enabled": false },
|
||||
# "BetterRoleDot": { "enabled": false },
|
||||
# "BetterUploadButton": { "enabled": false },
|
||||
# "BiggerStreamPreview": { "enabled": false },
|
||||
# "BlurNSFW": { "enabled": false },
|
||||
# "CallTimer": { "enabled": false },
|
||||
# "ClearURLs": { "enabled": false },
|
||||
# "ClientTheme": { "enabled": false },
|
||||
# "ColorSighted": { "enabled": false },
|
||||
# "ConsoleShortcuts": { "enabled": false },
|
||||
# "CopyUserURLs": { "enabled": false },
|
||||
# "CrashHandler": { "enabled": true },
|
||||
# "CustomRPC": { "enabled": false },
|
||||
# "Dearrow": { "enabled": false },
|
||||
# "Decor": { "enabled": false },
|
||||
# "DisableCallIdle": { "enabled": false },
|
||||
# "EmoteCloner": { "enabled": false },
|
||||
# "Experiments": { "enabled": false },
|
||||
# "F8Break": { "enabled": false },
|
||||
# "FakeNitro": { "enabled": false },
|
||||
# "FakeProfileThemes": { "enabled": true },
|
||||
# "FavoriteEmojiFirst": { "enabled": false },
|
||||
# "FavoriteGifSearch": { "enabled": false },
|
||||
# "FixCodeblockGap": { "enabled": false },
|
||||
# "FixSpotifyEmbeds": { "enabled": false },
|
||||
# "FixYoutubeEmbeds": { "enabled": false },
|
||||
# "ForceOwnerCrown": { "enabled": false },
|
||||
# "FriendInvites": { "enabled": false },
|
||||
# "GameActivityToggle": { "enabled": false },
|
||||
# "GifPaste": { "enabled": false },
|
||||
# "GreetStickerPicker": { "enabled": false },
|
||||
# "HideAttachments": { "enabled": false },
|
||||
# "iLoveSpam": { "enabled": false },
|
||||
# "IgnoreActivities": { "enabled": false },
|
||||
# "ImageZoom": { "enabled": false },
|
||||
# "InvisibleChat": { "enabled": false },
|
||||
# "KeepCurrentChannel": { "enabled": false },
|
||||
# "LastFMRichPresence": { "enabled": false },
|
||||
# "LoadingQuotes": { "enabled": false },
|
||||
# "MemberCount": { "enabled": false },
|
||||
# "MessageClickActions": { "enabled": false },
|
||||
# "MessageLinkEmbeds": { "enabled": false },
|
||||
# "MessageLogger": { "enabled": false },
|
||||
# "MessageTags": { "enabled": false },
|
||||
# "MoreCommands": { "enabled": false },
|
||||
# "MoreKaomoji": { "enabled": false },
|
||||
# "MoreUserTags": { "enabled": false },
|
||||
# "Moyai": { "enabled": false },
|
||||
# "MutualGroupDMs": { "enabled": false },
|
||||
# "NewGuildSettings": { "enabled": false },
|
||||
# "NoBlockedMessages": { "enabled": false },
|
||||
# "NoDevtoolsWarning": { "enabled": false },
|
||||
# "NoF1": { "enabled": false },
|
||||
# "NoMosaic": { "enabled": false },
|
||||
# "NoPendingCount": { "enabled": false },
|
||||
# "NoProfileThemes": { "enabled": false },
|
||||
# "NoReplyMention": { "enabled": false },
|
||||
# "NoScreensharePreview": { "enabled": false },
|
||||
# "NoTypingAnimation": { "enabled": false },
|
||||
# "NoUnblockToJump": { "enabled": false },
|
||||
# "NormalizeMessageLinks": { "enabled": false },
|
||||
# "NotificationVolume": { "enabled": false },
|
||||
# "NSFWGateBypass": { "enabled": false },
|
||||
# "OnePingPerDM": { "enabled": false },
|
||||
# "oneko": { "enabled": false },
|
||||
# "OpenInApp": { "enabled": false },
|
||||
# "Party mode 🎉": { "enabled": false },
|
||||
# "PermissionFreeWill": { "enabled": false },
|
||||
# "PermissionsViewer": { "enabled": false },
|
||||
# "petpet": { "enabled": false },
|
||||
# "PictureInPicture": { "enabled": false },
|
||||
# "PinDMs": { "enabled": false },
|
||||
# "PlainFolderIcon": { "enabled": false },
|
||||
# "PlatformIndicators": { "enabled": false },
|
||||
# "PreviewMessage": { "enabled": false },
|
||||
# "PronounDB": { "enabled": false },
|
||||
# "QuickMention": { "enabled": false },
|
||||
# "QuickReply": { "enabled": false },
|
||||
# "ReactErrorDecoder": { "enabled": false },
|
||||
# "ReadAllNotificationsButton": { "enabled": false },
|
||||
# "RelationshipNotifier": { "enabled": false },
|
||||
# "RevealAllSpoilers": { "enabled": false },
|
||||
# "ReverseImageSearch": { "enabled": false },
|
||||
# "ReviewDB": { "enabled": false },
|
||||
# "RoleColorEverywhere": { "enabled": true },
|
||||
# "SearchReply": { "enabled": false },
|
||||
# "SecretRingToneEnabler": { "enabled": false },
|
||||
# "SendTimestamps": { "enabled": false },
|
||||
# "ServerListIndicators": { "enabled": false },
|
||||
# "ServerProfile": { "enabled": false },
|
||||
# "ShikiCodeblocks": { "enabled": false },
|
||||
# "ShowAllMessageButtons": { "enabled": false },
|
||||
# "ShowConnections": { "enabled": false },
|
||||
# "ShowHiddenChannels": { "enabled": false },
|
||||
# "ShowMeYourName": { "enabled": false },
|
||||
# "ShowTimeouts": { "enabled": false },
|
||||
# "SilentMessageToggle": { "enabled": false },
|
||||
# "SilentTyping": { "enabled": false },
|
||||
# "SortFriendRequests": { "enabled": false },
|
||||
# "SpotifyControls": { "enabled": false },
|
||||
# "SpotifyCrack": { "enabled": false },
|
||||
# "SpotifyShareCommands": { "enabled": false },
|
||||
# "StartupTimings": { "enabled": false },
|
||||
# "SuperReactionTweaks": { "enabled": false },
|
||||
# "TextReplace": { "enabled": false },
|
||||
# "ThemeAttributes": { "enabled": false },
|
||||
# "TimeBarAllActivities": { "enabled": false },
|
||||
# "Translate": { "enabled": false },
|
||||
# "TypingIndicator": { "enabled": false },
|
||||
# "TypingTweaks": { "enabled": false },
|
||||
# "Unindent": { "enabled": false },
|
||||
# "UnsuppressEmbeds": { "enabled": false },
|
||||
# "UrbanDictionary": { "enabled": false },
|
||||
# "UserVoiceShow": { "enabled": false },
|
||||
# "USRBG": { "enabled": false },
|
||||
# "ValidUser": { "enabled": false },
|
||||
# "VoiceChatDoubleClick": { "enabled": false },
|
||||
# "VcNarrator": { "enabled": false },
|
||||
# "VencordToolbox": { "enabled": false },
|
||||
# "ViewIcons": { "enabled": false },
|
||||
# "ViewRaw": { "enabled": false },
|
||||
# "VoiceMessages": { "enabled": false },
|
||||
# "WebContextMenus": {
|
||||
# "enabled": true,
|
||||
# "addBack": true },
|
||||
# "WebKeybinds": { "enabled": true },
|
||||
# "WhoReacted": { "enabled": false },
|
||||
# "Wikisearch": { "enabled": false },
|
||||
# "XSOverlay": { "enabled": false }
|
||||
# },
|
||||
# "notifications": {
|
||||
# "timeout": 5000,
|
||||
# "position": "bottom-right",
|
||||
# "useNative": "not-focused",
|
||||
# "logLimit": 50
|
||||
# },
|
||||
# "cloud": {
|
||||
# "authenticated": false,
|
||||
# "url": "https://api.vencord.dev/",
|
||||
# "settingsSync": false,
|
||||
# "settingsSyncVersion": ${settingsSyncVersion}
|
||||
# }
|
||||
# }
|
||||
# '';
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
123
home-modules/email.nix
Executable file → Normal file
123
home-modules/email.nix
Executable file → Normal file
@@ -1,27 +1,19 @@
|
||||
{ pkgs, lib, host, user, rice, secrets, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
thunderbird
|
||||
];
|
||||
|
||||
|
||||
programs.thunderbird = let
|
||||
inherit (lib.generators) toJSON;
|
||||
extensions = toJSON {} {
|
||||
"default-theme@mozilla.org" = "5787f490-29b8-436e-a111-640da8590790";
|
||||
"google@search.mozilla.org" = "cc340383-7068-4b32-a10f-9f19334bfebc";
|
||||
"ddg@search.mozilla.org" = "0c340210-f7ab-48e8-9778-600ed5d00160";
|
||||
"amazondotcom@search.mozilla.org" = "881d8fdf-5772-4e33-81ff-faac2d1fa92c";
|
||||
"wikipedia@search.mozilla.org" = "7ea3d39d-3eea-430f-9bd7-f902d8124d45";
|
||||
"bing@search.mozilla.org" = "f480cce8-68af-4082-908e-f8996153352b";
|
||||
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
||||
"lightningcalendartabs@jlx.84" = "12d48e41-412e-4d09-835a-fa6fb8c180eb";
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
profiles = {
|
||||
"${user}" = {
|
||||
"${hyper.user}" = {
|
||||
isDefault = true;
|
||||
settings = with rice.color; {
|
||||
"calendar.alarms.showmissed" = false;
|
||||
@@ -49,13 +41,47 @@ lib.mkIf (host != "NxACE")
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
};
|
||||
userChrome = with rice.color; /* css */ ''
|
||||
* {
|
||||
color: ${rice.lib.hex-to-rgb-comma-string foreground} !important;
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
body,
|
||||
#navigation-toolbox,
|
||||
#calendarContent,
|
||||
#calSidebar,
|
||||
#tabpanelcontainer,
|
||||
#spacesToolbar,
|
||||
#tabs-toolbar,
|
||||
#calMinimonth,
|
||||
#primaryButtonSidePanel *,
|
||||
.minimonth-week,
|
||||
.multiday-header-corner, .day-column-heading, calendar-header-container, calendar-event-column, .multiday-hour-box,
|
||||
#view-box,
|
||||
#tabs-toolbar,
|
||||
#status-bar,
|
||||
.calview-toggle,
|
||||
#calview-toggle-item,
|
||||
#folderPaneHeaderBar,
|
||||
#folderPane,
|
||||
#threadPaneHeaderBar,
|
||||
#threadTree,
|
||||
#tabs-toolbar {
|
||||
color: ${foreground} !important;
|
||||
font-family: ${rice.font.base.name} !important;
|
||||
background-color: transparent !important;
|
||||
background-image: none !important;
|
||||
border: none !important;
|
||||
-moz-appearance: none !important;
|
||||
}
|
||||
treechildren::-moz-tree-row(odd), treechildren::-moz-tree-row(even) {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
.minimonth-nav-section {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
border: ${builtins.toString rice.border-width}px solid ${border};
|
||||
}
|
||||
.button,
|
||||
.button-primary,
|
||||
.tab-content[selected] {
|
||||
background-color: ${accent.base};
|
||||
color: ${background};
|
||||
background-image: none;
|
||||
}
|
||||
html {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
}
|
||||
'';
|
||||
};
|
||||
@@ -63,8 +89,7 @@ lib.mkIf (host != "NxACE")
|
||||
};
|
||||
|
||||
|
||||
accounts.email.accounts =
|
||||
let
|
||||
accounts.email.accounts = let
|
||||
OAuth2Settings = id: {
|
||||
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
||||
"mail.server.server_${id}.authMethod" = 10;
|
||||
@@ -112,37 +137,37 @@ lib.mkIf (host != "NxACE")
|
||||
};
|
||||
};
|
||||
|
||||
hsmw = with secrets.email.hsmw; {
|
||||
address = "${un}@hs-mittweida.de";
|
||||
userName = "${un}@hs-mittweida.de";
|
||||
realName = "Lennart J. Kurzweg";
|
||||
imap = {
|
||||
port = 993;
|
||||
host = "xc.hs-mittweida.de";
|
||||
};
|
||||
smtp = {
|
||||
port = 587;
|
||||
host = "xc.hs-mittweida.de";
|
||||
tls.useStartTls = true;
|
||||
};
|
||||
signature = {
|
||||
text = ''
|
||||
MatNr: ${mnr}
|
||||
SemGr: ${semgr}
|
||||
About Me: https://nx2.site/about-me
|
||||
Contact: https://nx2.site/contact
|
||||
GPG: https://nx2.site/gpg
|
||||
'';
|
||||
showSignature = "append";
|
||||
};
|
||||
thunderbird = {
|
||||
enable = true;
|
||||
profiles = [ "nx2" ];
|
||||
settings = id: {
|
||||
"mail.server.server_${id}.fcc_folder" = "imap://${un}%40hs-mittweida.de@xc.hs-mittweida.de/Sent";
|
||||
};
|
||||
};
|
||||
};
|
||||
# hsmw = with secrets.email.hsmw; {
|
||||
# address = "${un}@hs-mittweida.de";
|
||||
# userName = "${un}@hs-mittweida.de";
|
||||
# realName = "Lennart J. Kurzweg";
|
||||
# imap = {
|
||||
# port = 993;
|
||||
# host = "xc.hs-mittweida.de";
|
||||
# };
|
||||
# smtp = {
|
||||
# port = 587;
|
||||
# host = "xc.hs-mittweida.de";
|
||||
# tls.useStartTls = true;
|
||||
# };
|
||||
# signature = {
|
||||
# text = ''
|
||||
# MatNr: ${mnr}
|
||||
# SemGr: ${semgr}
|
||||
# About Me: https://nx2.site/about-me
|
||||
# Contact: https://nx2.site/contact
|
||||
# GPG: https://nx2.site/gpg
|
||||
# '';
|
||||
# showSignature = "append";
|
||||
# };
|
||||
# thunderbird = {
|
||||
# enable = true;
|
||||
# profiles = [ "nx2" ];
|
||||
# settings = id: {
|
||||
# "mail.server.server_${id}.fcc_folder" = "imap://${un}%40hs-mittweida.de@xc.hs-mittweida.de/Sent";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
tuda = with secrets.email.tuda; {
|
||||
address = "${un}@stud.tu-darmstadt.de";
|
||||
userName = tuid;
|
||||
|
||||
12
home-modules/figlet.nix
Normal file
12
home-modules/figlet.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ pkgs, hyper, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
figlet
|
||||
(pkgs.writeShellScriptBin "fgl" ''
|
||||
figlet -f ${hyper.home}/.local/share/figlet/nx2.flf -w 9999
|
||||
'')
|
||||
];
|
||||
file.".local/share/figlet/nx2.flf".text = builtins.readFile ./assets/nx2.flf;
|
||||
};
|
||||
}
|
||||
@@ -1,11 +1,18 @@
|
||||
# { pkgs-unstable, secrets, user, system, inputs, ...}:
|
||||
{ rice, user, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
# browser.tabs.allow_transparent_browser
|
||||
# https://www.reddit.com/r/FirefoxCSS/comments/1dqws4b/firefox_128_will_allow_the_main_browser_content/
|
||||
{
|
||||
home.file = with rice.color; let
|
||||
programs.firefox.profiles."{hyper.user}".settings = {
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
firefox
|
||||
];
|
||||
file = with rice.color; let
|
||||
blur = builtins.toString 20;
|
||||
in {
|
||||
".mozilla/firefox/${user}/chrome/userChrome.css".text = /* css */ ''
|
||||
".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = /* css */ ''
|
||||
:root{
|
||||
/* Popup panels */
|
||||
--arrowpanel-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
@@ -60,13 +67,13 @@
|
||||
|
||||
/* New tab page */
|
||||
--newtab-background-color : ${background} !important;
|
||||
--newtab-background-color-secondary : ${background} !important;
|
||||
--newtab-background-color-secondary : ${secondary.dark} !important;
|
||||
--newtab-text-primary-color : ${foreground} !important;
|
||||
--newtab-text-secondary-color : ${secondary.base} !important;
|
||||
--newtab-search-icon-color : ${accent.base} !important;
|
||||
|
||||
--tabpanel-background-color : transparent !important;
|
||||
background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
background : linear-gradient(180deg,rgba(${rice.lib.hex-to-rgb-comma-string secondary.dark}, ${builtins.toString rice.transparency}) 0%, rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) 100%) !important;
|
||||
}
|
||||
.tabbrowser-tab[selected="true"] {
|
||||
color: ${background} !important;
|
||||
@@ -91,7 +98,7 @@
|
||||
}
|
||||
'';
|
||||
|
||||
".mozilla/firefox/${user}/chrome/userContent.css".text = /* css */ ''
|
||||
".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = /* css */ ''
|
||||
/* Removes the white loading page */
|
||||
/* url(about:newtab), url(about:home) */
|
||||
@-moz-document url(about:blank) {
|
||||
@@ -110,20 +117,14 @@
|
||||
|
||||
/* new-tab */
|
||||
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
|
||||
:root{
|
||||
--newtab-background-color-secondary: ${background} !important;
|
||||
}
|
||||
body, html {
|
||||
background: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(youtube.com) {
|
||||
#background, #chips-wrapper, ytd-mini-guide-entry-renderer {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
body, html, ytd-app, ytd-mini-guide-renderer, div#content-container, #guide-content.ytd-app, #guide-wrapper, div#contentContainer {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
.tile, .search-handoff-button {
|
||||
border: ${builtins.toString rice.border-width}px solid ${border} !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +141,6 @@
|
||||
@-moz-document domain(reddit.com) {
|
||||
header {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(20px);
|
||||
}
|
||||
body, html, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar{
|
||||
background-color: transparent !important;
|
||||
@@ -171,6 +171,24 @@
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root .theme-system {
|
||||
--color-bg: transtparent !important;
|
||||
--color-text: ${rice.color.foreground}
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(developer.mozilla.org) {
|
||||
html, body {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.top-navigation, .article-actions-container {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(github.com) {
|
||||
body, html, header, #repository-container-header, .bgColor-muted, section {
|
||||
background-color: transparent !important;
|
||||
@@ -182,7 +200,8 @@
|
||||
background-color: transparent !important;
|
||||
}
|
||||
header, footer {
|
||||
background-color: rgba(0,0,0,0.5) !important;
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
@@ -196,13 +215,51 @@
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(nx2.site) {
|
||||
@-moz-document url-prefix("https://nx2.site/") {
|
||||
html {
|
||||
background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important;
|
||||
background-repeat: repeat !important;
|
||||
background-size: 2vmin 2vmin !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document url-prefix("pw.nx2.site") {
|
||||
html {
|
||||
background: black;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document url-prefix("pw.nx2.site") {
|
||||
html {
|
||||
background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important;
|
||||
background-repeat: repeat !important;
|
||||
background-size: 2vmin 2vmin !important;
|
||||
}
|
||||
body, .tw-bg-background-alt3, main, .card-header, .card-body, .modal-body {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.modal-open, .modal-header, form.modal-content, .modal-footer {
|
||||
background-color: rgba(0,0,0,0.8) !important;
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
.cdk-virtual-scroll-content-wrapper, .card, .tw-bg-background, .modal-content {
|
||||
background-color: rgba(0,0,0,0.8) !important;
|
||||
border-radius: 10px !important;
|
||||
border: ${toString rice.border-width}px solid ${border} !important;
|
||||
}
|
||||
}
|
||||
|
||||
'';
|
||||
# @-moz-document domain(chatgpt.com) {
|
||||
# body, html , .bg-token-sidebar-surface-primary {
|
||||
# background-color: transparent !important;
|
||||
# }
|
||||
# .bg-token-main-surface-primary {
|
||||
# background-color: rgba(0,0,0,1) !important;
|
||||
# backdrop-filter: blur(100px) !important;
|
||||
# border-radius: ${builtins.toString rice.rounding}px !important;
|
||||
# }
|
||||
# }
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
48
home-modules/fish.nix
Executable file → Normal file
48
home-modules/fish.nix
Executable file → Normal file
@@ -1,4 +1,4 @@
|
||||
{ pkgs, lib, rice, user, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
fish
|
||||
@@ -17,18 +17,18 @@
|
||||
⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM
|
||||
⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT
|
||||
|
||||
" | lolcat --force)
|
||||
" | lolcat --force 2> /dev/null)
|
||||
|
||||
msg="
|
||||
$(echo -e "$logo" | sed -n 3p): $(cat /etc/*-release | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev)
|
||||
$(echo -e "$logo" | sed -n 4p): ''${XDG_CURRENT_DESKTOP^}
|
||||
$(echo -e "$logo" | sed -n 5p): ''${TERM^}
|
||||
$(echo -e "$logo" | sed -n 6p): $(bash --version | head --lines 1 | cut -f -4 -d' ' | sed -E 's-(.*?), version (.*?)\(.*-\1 \2-g')
|
||||
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev)
|
||||
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\U&/')
|
||||
$(echo -e "$logo" | sed -n 8p): ''$(uname -r)
|
||||
$(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g')
|
||||
$(echo -e "$logo" | sed -n 10p): $(yazi --version | yazi --version | sed -E 's-(.*?) \(.*-\1-g')
|
||||
$(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1)
|
||||
$(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g' | sed 's/./\U&/')
|
||||
$(echo -e "$logo" | sed -n 10p): $(yazi --version | sed -E 's-(.*?) \(.*-\1-g')
|
||||
$(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1 | sed 's/./\U&/')
|
||||
"
|
||||
echo -e "$msg"
|
||||
'')
|
||||
@@ -38,14 +38,17 @@
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
ls = "eza --icons --git --smart-group --group-directories-first";
|
||||
ll = "eza --icons --git --smart-group --group-directories-first --long";
|
||||
la = "eza --icons --git --smart-group --group-directories-first --all";
|
||||
lla = "eza --icons --git --smart-group --group-directories-first --all --long";
|
||||
lt = "eza --icons --git --smart-group --group-directories-first --long --tree";
|
||||
ltd = "eza --icons --git --smart-group --group-directories-first --long --tree -D";
|
||||
lt2 = "eza --icons --git --smart-group --group-directories-first --long --tree -L 2";
|
||||
shellAliases = let
|
||||
base-eza = "eza --icons --git --smart-group --group-directories-first";
|
||||
in {
|
||||
ls = "${base-eza}";
|
||||
ll = "${base-eza} --long";
|
||||
lg = "${base-eza} --group --long";
|
||||
la = "${base-eza} --all";
|
||||
lla = "${base-eza} --all --long";
|
||||
lt = "${base-eza} --long --tree";
|
||||
ltd = "${base-eza} --long --tree -D";
|
||||
lt2 = "${base-eza} --long --tree -L 2";
|
||||
sr = "sudo reboot";
|
||||
nf = "neofetch";
|
||||
nxf = "nxfetch";
|
||||
@@ -77,31 +80,36 @@
|
||||
gsw = "git switch";
|
||||
gft = "git fetch";
|
||||
ns = "nix-shell";
|
||||
nd = "nix develop -c fish";
|
||||
lzd = "lazydocker";
|
||||
d = "docker";
|
||||
dcmp = "docker compose";
|
||||
stui = "sudo systemctl-tui";
|
||||
# nxsent = ''sent -c \${rice.color.foreground} -b \${rice.color.background}'';
|
||||
|
||||
# ya = "yazi"; # function
|
||||
# nxfiglet = "figlet";
|
||||
};
|
||||
interactiveShellInit = ''
|
||||
interactiveShellInit = /* fish */ ''
|
||||
set -g fish_greeting
|
||||
if not set -q IN_NIX_SHELL
|
||||
nxfetch
|
||||
# yazi
|
||||
if set -q SESSION_FROM_DE
|
||||
set -e SESSION_FROM_DE
|
||||
set tmp (mktemp -t "yazi-cwd.XXXXX")
|
||||
yazi $argv --cwd-file="$tmp"
|
||||
yazi --cwd-file="$tmp"
|
||||
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
||||
cd -- "$cwd"
|
||||
builtin cd -- "$cwd"
|
||||
end
|
||||
rm -f -- "$tmp"
|
||||
end
|
||||
nxfetch
|
||||
set -e SESSION_FROM_DE
|
||||
end
|
||||
'';
|
||||
functions = {
|
||||
take = /* bash */ ''
|
||||
mkdir $argv
|
||||
cd $argv
|
||||
'';
|
||||
# gpg = '';
|
||||
# set bold \e[1m
|
||||
# set green \e[32m
|
||||
|
||||
23
home-modules/games.nix
Executable file → Normal file
23
home-modules/games.nix
Executable file → Normal file
@@ -1,7 +1,20 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host == "NxNORTH")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
mindustry-wayland
|
||||
];
|
||||
home = {
|
||||
packages = (with pkgs.unstable; [
|
||||
protonup
|
||||
mangohud
|
||||
|
||||
prismlauncher
|
||||
|
||||
# heroic
|
||||
|
||||
# mindustry-wayland
|
||||
]) ++ [ pkgs.heroic ];
|
||||
sessionVariables = {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
4
home-modules/gestures.nix
Executable file → Normal file
4
home-modules/gestures.nix
Executable file → Normal file
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host == "NxXPS")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host == "NxXPS")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
libinput-gestures
|
||||
|
||||
48
home-modules/ghostty.nix
Normal file
48
home-modules/ghostty.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
package = pkgs.ghostty;
|
||||
settings = with rice.color; {
|
||||
background = background;
|
||||
background-opacity = builtins.toString rice.transparency;
|
||||
clipboard-paste-protection = false;
|
||||
clipboard-read = "allow";
|
||||
clipboard-trim-trailing-spaces = true;
|
||||
confirm-close-surface = false;
|
||||
cursor-color = special.bright;
|
||||
cursor-opacity = 0.8;
|
||||
font-family = "${rice.font.code.name}";
|
||||
foreground = foreground;
|
||||
keybind = [
|
||||
"ctrl+comma=reload_config"
|
||||
"ctrl+equal=increase_font_size:1"
|
||||
"ctrl+minus=decrease_font_size:1"
|
||||
"ctrl+shift+v=paste_from_clipboard"
|
||||
];
|
||||
palette = with rice; [
|
||||
"0=${black.base}"
|
||||
"8=${black.bright}"
|
||||
"1=${red.base}"
|
||||
"9=${red.bright}"
|
||||
"2=${green.base}"
|
||||
"10=${green.bright}"
|
||||
"3=${yellow.base}"
|
||||
"11=${yellow.bright}"
|
||||
"4=${blue.base}"
|
||||
"12=${blue.bright}"
|
||||
"5=${magenta.base}"
|
||||
"13=${magenta.bright}"
|
||||
"6=${cyan.base}"
|
||||
"14=${cyan.bright}"
|
||||
"7=${white.base}"
|
||||
"15=${white.bright}"
|
||||
];
|
||||
selection-background = accent.base;
|
||||
selection-foreground = background;
|
||||
window-decoration = false;
|
||||
window-padding-x = 5;
|
||||
window-padding-y = 5;
|
||||
};
|
||||
};
|
||||
}
|
||||
10
home-modules/gimp.nix
Normal file
10
home-modules/gimp.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# (gimp-with-plugins.override {
|
||||
# plugins = with gimpPlugins; [ bimp ];
|
||||
# })
|
||||
gimp
|
||||
];
|
||||
}
|
||||
|
||||
42
home-modules/git.nix
Executable file → Normal file
42
home-modules/git.nix
Executable file → Normal file
@@ -1,42 +1,15 @@
|
||||
{ pkgs, rice, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
delta
|
||||
|
||||
(pkgs.writeShellScriptBin "git_monitor" ''
|
||||
#!/bin/bash
|
||||
|
||||
# List of directories to check
|
||||
directories=(
|
||||
"$HOME/nix-dots"
|
||||
"$HOME/obsidian-vault"
|
||||
"$HOME/Pictures/wallpapers"
|
||||
)
|
||||
echo ""
|
||||
for dir in "''${directories[@]}"; do
|
||||
if [ -d "$dir" ]; then
|
||||
cd "$dir" || { echo "Cannot change directory to $dir"; exit 1; }
|
||||
echo "$(echo $dir | rev | cut -f 1 -d'/' | rev):"
|
||||
if [[ $* == *--fetch* ]]; then
|
||||
git fetch
|
||||
fi
|
||||
gst
|
||||
echo ""
|
||||
cd - > /dev/null || { echo "Cannot change back to the original directory"; exit 1; }
|
||||
else
|
||||
echo "Directory $dir does not exist."
|
||||
fi
|
||||
done
|
||||
'')
|
||||
|
||||
(writeShellScriptBin "gst" "awk -vOFS='' 'NR==FNR {all[i++] = $0; difffiles[$1] = $0; next;} ! ($2 in difffiles) {print; next;} {gsub($2, difffiles[$2]); print;} END {if (NR != FNR) {exit;} for (i in all) {print all[i];}}' <(git diff --color --stat=$(($(tput cols) - 3)) HEAD | sed '$d; s/^ //') <(git -c color.status=always status -sb)")
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.gitFull;
|
||||
userName = ''Lennart J. Kurzweg (Nx2)'';
|
||||
userEmail = "git@nx2.site";
|
||||
userEmail = "git@${hyper.domain}";
|
||||
delta = {
|
||||
enable = true;
|
||||
options = {
|
||||
@@ -46,6 +19,15 @@
|
||||
whitespace-error-style = "22 reverse";
|
||||
};
|
||||
};
|
||||
extraConfig = {
|
||||
credential = {
|
||||
"https://git.da.dicos.de".username = lib.mkIf (hyper.host =="NxWSL") "lkurzweg";
|
||||
"https://git.da.dicos.de".password = lib.mkIf (hyper.host =="NxWSL") "Test";
|
||||
};
|
||||
url."ssh://git@git.da.dicos.de/".insteadOf = lib.mkIf (hyper.host =="NxWSL") "https://git.da.dicos.de/";
|
||||
url."ssh://git@github.com/".insteadOf = "https://github.com/";
|
||||
pull.rebase = false; # true
|
||||
};
|
||||
};
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
# there also is a system module
|
||||
home.packages = (with pkgs; [
|
||||
home.packages = with pkgs; [
|
||||
gnupg
|
||||
gpg-tui
|
||||
]) ++ ( with pkgs-unstable; [
|
||||
pinentry-all
|
||||
]);
|
||||
];
|
||||
|
||||
# services.pcscd.enable = true;
|
||||
services.gpg-agent = let
|
||||
min2sec = min: (min * 60);
|
||||
in {
|
||||
@@ -21,48 +19,35 @@
|
||||
enableFishIntegration = true;
|
||||
defaultCacheTtlSsh = min2sec 60;
|
||||
defaultCacheTtl = min2sec 30;
|
||||
# pinentryPackage = pkgs.pinentry-curses;
|
||||
pinentry = {
|
||||
package = pkgs.pinentry;
|
||||
program = "pinentry";
|
||||
};
|
||||
extraConfig = ''
|
||||
allow-loopback-pinentry
|
||||
'';
|
||||
};
|
||||
|
||||
home.file.".gnupg/gpg.conf".text = ''
|
||||
# Use AES256, 192, or 128 as cipher
|
||||
personal-cipher-preferences AES256 AES192 AES
|
||||
# Use SHA512, 384, or 256 as digest
|
||||
personal-digest-preferences SHA512 SHA384 SHA256
|
||||
# Use ZLIB, BZIP2, ZIP, or no compression
|
||||
personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
|
||||
# Default preferences for new keys
|
||||
default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed
|
||||
# SHA512 as digest to sign keys
|
||||
cert-digest-algo SHA512
|
||||
# SHA512 as digest for symmetric ops
|
||||
s2k-digest-algo SHA512
|
||||
# AES256 as cipher for symmetric ops
|
||||
s2k-cipher-algo AES256
|
||||
# UTF-8 support for compatibility
|
||||
charset utf-8
|
||||
# No comments in messages
|
||||
no-comments
|
||||
# No version in output
|
||||
no-emit-version
|
||||
# Disable banner
|
||||
no-greeting
|
||||
# Long key id format
|
||||
keyid-format 0xlong
|
||||
# Display UID validity
|
||||
list-options show-uid-validity
|
||||
verify-options show-uid-validity
|
||||
# Display all keys and their fingerprints
|
||||
with-fingerprint
|
||||
# Display key origins and updates
|
||||
#with-key-origin
|
||||
# Cross-certify subkeys are present and valid
|
||||
require-cross-certification
|
||||
# Disable caching of passphrase for symmetrical ops
|
||||
no-symkey-cache
|
||||
# Output ASCII instead of binary
|
||||
armor
|
||||
# Enable smartcard
|
||||
# use-agent
|
||||
use-agent
|
||||
pinentry-mode loopback
|
||||
'';
|
||||
}
|
||||
|
||||
196
home-modules/gtk.nix
Executable file → Normal file
196
home-modules/gtk.nix
Executable file → Normal file
@@ -1,4 +1,5 @@
|
||||
{ config, pkgs, lib, rice, user, ... }: let
|
||||
{ pkgs, ... }@all: with all;
|
||||
let
|
||||
# theme-name = "Colloid-Pink-Dark-Compact";
|
||||
# theme-package = pkgs.colloid-gtk-theme.override {
|
||||
# themeVariants = [ "pink" ];
|
||||
@@ -6,18 +7,134 @@
|
||||
# sizeVariants = [ "compact" ];
|
||||
# tweaks = [ "black" ];
|
||||
# };
|
||||
theme-name = "catppuccin-macchiato-pink-compact+rimless,black";
|
||||
theme-package = pkgs.catppuccin-gtk.override {
|
||||
accents = [ "pink" ];
|
||||
size = "compact";
|
||||
tweaks = [ "rimless" "black" ];
|
||||
variant = "macchiato";
|
||||
};
|
||||
|
||||
# theme-name = "catppuccin-macchiato-pink-compact+rimless,black";
|
||||
# theme-package = pkgs.catppuccin-gtk.override {
|
||||
# accents = [ "pink" ];
|
||||
# size = "compact";
|
||||
# tweaks = [ "rimless" "black" ];
|
||||
# variant = "macchiato";
|
||||
# };
|
||||
theme-name = "Materia-dark-compact";
|
||||
theme-package = pkgs.materia-theme-transparent;
|
||||
# theme-name = "numix";
|
||||
# theme-name = "adw-gtk3-dark";
|
||||
# theme-package = pkgs.adw-gtk3;
|
||||
# theme-package = let
|
||||
# theme-string = with rice.color; let
|
||||
# h = rice.lib.nohash;
|
||||
# d = rice.lib.float-to-drune;
|
||||
# in /* ini */ ''
|
||||
# BG=${h background}
|
||||
# FG=${h foreground}
|
||||
# SEL_BG=${h accent.base}
|
||||
# SEL_FG=${h black.base}
|
||||
# ACCENT_BG=${h accent.base}
|
||||
# TXT_BG=${h black.dark}
|
||||
# TXT_FG=${h foreground}
|
||||
# HDR_BG=${h background}
|
||||
# HDR_FG=${h foreground}
|
||||
# BTN_BG=${h accent.dark}
|
||||
# BTN_FG=${h foreground}
|
||||
# HDR_BTN_BG=${h accent.dark}
|
||||
# HDR_BTN_FG=${h foreground}
|
||||
# WM_BORDER_FOCUS=${h border}
|
||||
# WM_BORDER_UNFOCUS=${h accent.dark}
|
||||
# ROUNDNESS=${builtins.toString rice.rounding}
|
||||
# ROUNDNESS_GTK2_HIDPI=${builtins.toString rice.rounding}
|
||||
# OUTLINE_WIDTH=${builtins.toString rice.border-width}
|
||||
# BTN_OUTLINE_OFFSET=-3
|
||||
# BTN_OUTLINE_WIDTH=1
|
||||
# SPACING=${builtins.toString rice.gap-size}
|
||||
# GRADIENT=0.0
|
||||
# CINNAMON_OPACITY=${builtins.toString rice.transparency}
|
||||
# INACTIVE_FG=${h foreground}
|
||||
# INACTIVE_TXT_FG=${h foreground}
|
||||
# INACTIVE_HDR_FG=${h foreground}
|
||||
# ICONS_DARK=${h accent.dark}
|
||||
# ICONS_MEDIUM=${h accent.base}
|
||||
# ICONS_LIGHT=${h accent.bright}
|
||||
# ICONS_LIGHT_FOLDER=${h accent.base}
|
||||
# ICONS_SYMBOLIC_ACTION=${h accent.base}
|
||||
# ICONS_SYMBOLIC_PANEL=${h accent.base}
|
||||
# ICONS_STYLE=icons_papirus
|
||||
# CARET1_FG=${h white.dark}
|
||||
# CARET2_FG=${h black.bright}
|
||||
# CARET_SIZE=0.04
|
||||
# MENU_BG=${h accent.dark}
|
||||
# MENU_FG=${h foreground}
|
||||
# OUTLINE_WIDTH=${builtins.toString rice.border-width}
|
||||
# SPOTIFY_PROTO_BG=${h accent.dark}
|
||||
# SPOTIFY_PROTO_FG=${h foreground}
|
||||
# SPOTIFY_PROTO_SEL=${h blue.base}
|
||||
# BASE16_GENERATE_DARK=False
|
||||
# BASE16_INVERT_TERMINAL=False
|
||||
# BASE16_MILD_TERMINAL=False
|
||||
# UNITY_DEFAULT_LAUNCHER_STYLE=False
|
||||
# '';
|
||||
# # theme-source-pkg = pkgs.materia-theme;
|
||||
# theme-source-pkg = pkgs.themix-gui;
|
||||
# in pkgs.stdenv.mkDerivation {
|
||||
# name = "oomox-gtk";
|
||||
# version = theme-source-pkg.version;
|
||||
# src = theme-source-pkg.src;
|
||||
# dontBuild = true;
|
||||
# nativeBuildInputs = with pkgs; [
|
||||
# glib
|
||||
# libxml2
|
||||
# bc
|
||||
# ];
|
||||
# buildInputs = with pkgs; [
|
||||
# gnome-themes-extra
|
||||
# gdk-pixbuf
|
||||
# librsvg
|
||||
# sassc
|
||||
# inkscape
|
||||
# optipng
|
||||
# ];
|
||||
# propagatedUserEnvPkgs = with pkgs; [
|
||||
# gtk-engine-murrine
|
||||
# ];
|
||||
# # installPhase = ''
|
||||
# # mkdir -p $out/share/themes/materia
|
||||
# # patchShebangs .
|
||||
# # ./change_color.sh -o materia -t $out/share/themes <(echo -e "${theme-string}")
|
||||
# # '';
|
||||
# installPhase = ''
|
||||
# mkdir -p $out/share/icons/icons_papirus
|
||||
# mkdir -p $out/share/icons/icons_numix
|
||||
# mkdir -p $out/share/icons/icons_suruplus
|
||||
# echo "${theme-string}" > $out/oomox.colors
|
||||
# pushd plugins/icons_papirus
|
||||
# patchShebangs .
|
||||
# ./change_color.sh -o icons_papirus -d $out/share/icons/icons_papirus $out/oomox.colors
|
||||
# popd
|
||||
# pushd plugins/icons_numix
|
||||
# patchShebangs .
|
||||
# ./change_color.sh -o icons_numix -d $out/share/icons/icons_numix $out/oomox.colors
|
||||
# popd
|
||||
# pushd plugins/icons_suruplus
|
||||
# patchShebangs .
|
||||
# ./change_color.sh -o icons_suruplus -d $out/share/icons/icons_suruplus $out/oomox.colors
|
||||
# popd
|
||||
# mkdir -p $out/share/themes/numix
|
||||
# pushd plugins/theme_oomox
|
||||
# patchShebangs .
|
||||
# HOME=$out ./change_color.sh -o numix -m all -t $out/share/themes $out/oomox.colors
|
||||
# popd
|
||||
# '';
|
||||
# meta = {
|
||||
# description = "custom theme utility";
|
||||
# homepage = "https://github.com/themix-project/themix-gui";
|
||||
# maintainers = [ ];
|
||||
# };
|
||||
# };
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
# gnome.gnome-themes-extra
|
||||
# gnome.adwaita-icon-theme
|
||||
gnome.gnome-tweaks
|
||||
adwaita-icon-theme
|
||||
gnome-tweaks
|
||||
gtk3
|
||||
gtk4
|
||||
# catppuccin-gtk
|
||||
@@ -25,46 +142,57 @@ in {
|
||||
] ++ [
|
||||
# pkgs-unstable.themix-gui
|
||||
];
|
||||
|
||||
|
||||
home.sessionVariables.GTK_THEME = theme-name;
|
||||
|
||||
sessionVariables.GTK_THEME = theme-name;
|
||||
pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
} // rice.cursor;
|
||||
};
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = theme-name;
|
||||
package = theme-package;
|
||||
};
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||
gtk3 = {
|
||||
extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
# extraCss = with rice.color; /* css */ ''
|
||||
# wnck-pager {
|
||||
# color: ${black.bright};
|
||||
# background-color: ${background};
|
||||
# }
|
||||
|
||||
# wnck-pager:selected {
|
||||
# color: ${background};
|
||||
# background-color: ${accent.base};
|
||||
# }
|
||||
# '';
|
||||
# window.background {
|
||||
# background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
|
||||
# }
|
||||
# .background, .view, .surface, .frame, box, window.decoration, stack {
|
||||
# background-color: transparent;
|
||||
# }
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
gtk4 = {
|
||||
extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
extraCss = config.gtk.gtk3.extraCss;
|
||||
};
|
||||
cursorTheme = rice.cursor;
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
} // rice.cursor;
|
||||
|
||||
xdg.configFile = {
|
||||
"gtk-4.0/assets".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/assets";
|
||||
"gtk-4.0/gtk.css".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/gtk.css";
|
||||
"gtk-4.0/gtk-dark.css".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/gtk-dark.css";
|
||||
"gtk-4.0/assets".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/assets";
|
||||
"gtk-4.0/gtk.css".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/gtk.css";
|
||||
"gtk-4.0/gtk-dark.css".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/gtk-dark.css";
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
gtk-theme = theme-name;
|
||||
# gtk-theme = theme-name;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,21 @@
|
||||
{ pkgs, pkgs-unstable,lib, rice, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
# nixfmt-classic # nix formater
|
||||
# nil # nix language server
|
||||
# nixd # specified in nixd.nix
|
||||
python311Packages.python-lsp-server
|
||||
ruff
|
||||
ruff-lsp
|
||||
pyright
|
||||
gopls
|
||||
delve
|
||||
jdt-language-server
|
||||
lldb # debugger for llvm stuff
|
||||
yaml-language-server # yaml
|
||||
marksman # markdown
|
||||
vale-ls # style-checker lsp (needs vale)
|
||||
ltex-ls # Ltex (language tool)
|
||||
] ++ (with pkgs-unstable; [
|
||||
vscode-langservers-extracted
|
||||
bash-language-server
|
||||
helix
|
||||
]);
|
||||
];
|
||||
sessionVariables = {
|
||||
EDITOR = "hx";
|
||||
VISUAL = "hx";
|
||||
@@ -26,57 +24,191 @@
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
package = pkgs-unstable.helix;
|
||||
package = pkgs.unstable.helix;
|
||||
settings = {
|
||||
# theme = "base16_terminal";
|
||||
theme = "base16";
|
||||
editor = {
|
||||
scrolloff = 5;
|
||||
mouse = true;
|
||||
# default-yank-register = "\"";
|
||||
middle-click-paste = false;
|
||||
scroll-lines = 3;
|
||||
shell = ["sh" "-c"];
|
||||
line-number = "relative";
|
||||
cursorline = true;
|
||||
cursorcolumn = true;
|
||||
# continue-comments = false;
|
||||
auto-completion = true;
|
||||
# path-completion = true;
|
||||
auto-format = false;
|
||||
idle-timeout = 250;
|
||||
completion-timeout = 5;
|
||||
preview-completion-insert = true;
|
||||
completion-trigger-len = 1;
|
||||
auto-info = true;
|
||||
true-color = true; # is detected automatically if set to false
|
||||
undercurl = false; # is detected automatically if set to false
|
||||
rulers = [];
|
||||
bufferline = "always";
|
||||
color-modes = true;
|
||||
text-width = 120;
|
||||
workspace-lsp-roots = [];
|
||||
default-line-ending = "native";
|
||||
insert-final-newline = false;
|
||||
popup-border = "all";
|
||||
indent-heuristic = "hybrid";
|
||||
jump-label-alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
# clip-board-provider = # selected automatically
|
||||
# end-of-line-diagnostics = "hint";
|
||||
statusline = {
|
||||
left = [ "mode"
|
||||
"spinner"
|
||||
"file-name"
|
||||
"read-only-indicator"
|
||||
"file-type"
|
||||
"version-control"
|
||||
];
|
||||
center = [
|
||||
"position-percentage"
|
||||
"total-line-numbers"
|
||||
"register"
|
||||
];
|
||||
right = [
|
||||
"spinner"
|
||||
"diagnostics"
|
||||
"selections"
|
||||
"primary-selection-length"
|
||||
"register"
|
||||
"position"
|
||||
"file-encoding"
|
||||
];
|
||||
# separator = " ";
|
||||
mode = {
|
||||
normal = "NORMAL";
|
||||
insert = "INSERT";
|
||||
select = "SELECT";
|
||||
};
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
display-messages = false;
|
||||
auto-signature-help = true;
|
||||
display-inlay-hints = true;
|
||||
};
|
||||
cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
soft-wrap = {
|
||||
enable = true;
|
||||
file-picker = {
|
||||
hidden = false; # Enables ignoring hidden files
|
||||
follow-symlinks = true; # Follow symlinks instead of ignoring them
|
||||
deduplicate-links = true; # Ignore symlinks that point at files already shown in the picker
|
||||
parents = true; # Enables reading ignore files from parent directories
|
||||
ignore = true; # Enables reading .ignore files
|
||||
git-ignore = true; # Enables reading .gitignore files
|
||||
git-global = true; # Enables reading global .gitignore, whose path is specified in git's config: core.excludesfile option
|
||||
git-exclude = true; # Enables reading .git/info/exclude files
|
||||
# max-depth unset = ; # Set with an integer value for maximum depth to recurse
|
||||
};
|
||||
auto-pairs = {
|
||||
"(" = ")";
|
||||
"{" = "}";
|
||||
"[" = "]";
|
||||
"\"" = "\"";
|
||||
"`" = "`";
|
||||
"<" = ">";
|
||||
# "/* " = " */";
|
||||
};
|
||||
auto-save = {
|
||||
focus-lost = false;
|
||||
after-delay = {
|
||||
enable = false;
|
||||
timeout = 3000;
|
||||
};
|
||||
};
|
||||
search = {
|
||||
smart-case = true;
|
||||
wrap-around = true;
|
||||
};
|
||||
whitespace = {
|
||||
render = {
|
||||
skip-levels = "none";
|
||||
space = "none";
|
||||
nbsp = "none";
|
||||
nnbsp = "none";
|
||||
tab = "none";
|
||||
newline = "none";
|
||||
tabpad = "none";
|
||||
};
|
||||
characters = {
|
||||
skip-levels = 1;
|
||||
space = "·";
|
||||
nbsp = "⍽";
|
||||
nnbsp = "␣";
|
||||
tab = "→";
|
||||
newline = "⏎";
|
||||
tabpad = "·";
|
||||
};
|
||||
};
|
||||
line-number = "relative";
|
||||
color-modes = true;
|
||||
bufferline = "always";
|
||||
popup-border = "all";
|
||||
completion-trigger-len = 1;
|
||||
completion-timeout = 5;
|
||||
file-picker.hidden = false;
|
||||
middle-click-paste = false;
|
||||
cursorline = true;
|
||||
indent-guides = {
|
||||
render = true;
|
||||
character = "╎";
|
||||
skip-levels = 0;
|
||||
};
|
||||
lsp.display-inlay-hints = true;
|
||||
statusline.center = [ "position-percentage" ];
|
||||
true-color = true;
|
||||
whitespace.characters = {
|
||||
newline = "↴";
|
||||
tab = "⇥";
|
||||
skip-levels = 1;
|
||||
gutters = [
|
||||
"diagnostics"
|
||||
"spacer"
|
||||
"line-numbers"
|
||||
"spacer"
|
||||
"diff"
|
||||
];
|
||||
# line-numbers = {};
|
||||
# layout.minwidth = 3;
|
||||
# diagnostics = {};
|
||||
# diff = {};
|
||||
# spacer = {};
|
||||
soft-wrap = {
|
||||
enable = true;
|
||||
max-wrap = 20;
|
||||
max-indent-retain = 40;
|
||||
wrap-indicator = "↪";
|
||||
wrap-at-text-width = false;
|
||||
};
|
||||
smart-tab = {
|
||||
enable = false;
|
||||
supersede-menu = false;
|
||||
};
|
||||
inline-diagnostics = {
|
||||
cursor-line = "warning";
|
||||
other-lines = "disable";
|
||||
prefix-len = 1;
|
||||
# max-wrap = set above
|
||||
max-diagnostics = 20;
|
||||
};
|
||||
};
|
||||
keys.normal = {
|
||||
keys = {
|
||||
normal = {
|
||||
"C-g" = [ ":new" ":insert-output lazygit" ":buffer-close!" ":redraw" ];
|
||||
"C-i" = [ ":pipe fgl" "toggle_comments" ];
|
||||
"A-`" = [ "no_op" ];
|
||||
"`" = [ "no_op" ];
|
||||
"ö" = { "s" = [ "switch_case" ]; "u" = [ "switch_to_uppercase" ]; "l" = [ "switch_to_lowercase" ]; };
|
||||
};
|
||||
select = {
|
||||
"ö" = { "s" = [ "switch_case" ]; "u" = [ "switch_to_uppercase" ]; "l" = [ "switch_to_lowercase" ]; };
|
||||
};
|
||||
keys.normal."ö" = {
|
||||
"s" = [ "switch_case" ];
|
||||
"u" = [ "switch_to_uppercase" ];
|
||||
"l" = [ "switch_to_lowercase" ];
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "nix";
|
||||
language-servers = [ "nixd" "nil" ];
|
||||
language-servers = [
|
||||
"nixd"
|
||||
# "llm"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "latex";
|
||||
@@ -89,7 +221,6 @@
|
||||
file-types = [ "md" "MD" ];
|
||||
scope = "text.<name>";
|
||||
}
|
||||
|
||||
{
|
||||
name = "python";
|
||||
language-servers = [ "pyright" "ruff" ];
|
||||
@@ -122,6 +253,16 @@
|
||||
}];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "go";
|
||||
language-servers = [
|
||||
"gopls"
|
||||
# "llm"
|
||||
];
|
||||
# formatter = {
|
||||
# command = "gofmt";
|
||||
# };
|
||||
}
|
||||
];
|
||||
language-server = {
|
||||
"nixd" = {
|
||||
@@ -137,20 +278,19 @@
|
||||
command = "ruff-lsp";
|
||||
config.settings.args = [
|
||||
# Set line length
|
||||
# "--line-length"
|
||||
# "79"
|
||||
|
||||
# Enable some ruff rules
|
||||
# "--select"
|
||||
# (
|
||||
# "F,W,E,I,N,D200,D201,D202,D203,D204,D205,D206,D207,D208,D209,D210,D211,"
|
||||
# + "D212,D213,D214,D215,D300,D301,D400,D401,D402,D403,D404,D405,D406,"
|
||||
# + "D407,D408,D409,D410,D411,D412,D413,D414,D415,D416,D417,D418,D419,"
|
||||
# + "UP,YTT,TRIO,ASYNC,B,A,COM,C4,DTZ,T10,DJ,EXE,FA,ISC,ICN001,G010,"
|
||||
# + "G101,G201,G202,INP,PIE,Q,RSE,RET,SLOT,SIM,TCH,INT,ARG,PTH,TD001,"
|
||||
# + "TD004,TD005,TD006,TD007,PD,PL,TRY004,TRY200,TRY201,TRY302,TRY400,"
|
||||
# + "TRY401,FLY,NPY,AIR,PERF,FURB,LOG,RUF"
|
||||
# )
|
||||
"--line-length"
|
||||
"240"
|
||||
# Enable custom ruff rules
|
||||
# "--select" lib.concatStringsSep [ ]
|
||||
];
|
||||
};
|
||||
"llm" = {
|
||||
command = lib.getExe pkgs.helix-gpt;
|
||||
args = [
|
||||
"--handler"
|
||||
"ollama"
|
||||
"--ollamaModel"
|
||||
"codellama:7b"
|
||||
];
|
||||
};
|
||||
};
|
||||
@@ -159,15 +299,15 @@
|
||||
base16 = with rice.color; {
|
||||
"attributes" = foreground;
|
||||
"comment" = {
|
||||
"fg" = white.dark;
|
||||
"modifiers" = [ "italic" ];
|
||||
fg = black.bright;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"constant" = accent.bright;
|
||||
"constant.character.escape" = special.bright;
|
||||
"constant.numeric" = foreground;
|
||||
"constructor" = weird.base;
|
||||
"debug" = yellow.base;
|
||||
"diagnostic.modifiers" = [ "underlined" ];
|
||||
"diagnostic.modifiers" = [ "underline" ];
|
||||
"diff.delta" = blue.bright;
|
||||
"diff.minus" = negative.bright;
|
||||
"diff.plus" = positive.bright;
|
||||
@@ -176,6 +316,7 @@
|
||||
"hint" = tertiary.bright;
|
||||
"info" = foreground;
|
||||
"keyword" = special.base;
|
||||
"keyword.modifiers" = [ "italic" ];
|
||||
"label" = foreground;
|
||||
"namespace" = weird.bright;
|
||||
"operator" = foreground;
|
||||
@@ -188,131 +329,127 @@
|
||||
|
||||
"markup.heading" = accent.base;
|
||||
"markup.bold" = {
|
||||
"fg" = tertiary.bright;
|
||||
"modifiers" = [ "bold" ];
|
||||
fg = tertiary.bright;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"italic" = {
|
||||
"fg" = secondary.bright;
|
||||
"modifiers" = [ "italic" ];
|
||||
fg = secondary.bright;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.linktext" = accent.base;
|
||||
"markup.linkurl" = {
|
||||
"fg" = tertiary.dark;
|
||||
"modifiers" = [ "underlined" ];
|
||||
fg = tertiary.dark;
|
||||
modifiers = [ "underlined" ];
|
||||
};
|
||||
"markup.list" = accent.bright;
|
||||
"markup.quote" = weird.bright;
|
||||
"markup.raw" = special.bright;
|
||||
"markup.strikethrough" = {
|
||||
"modifiers" = [ "crossed_out" ];
|
||||
};
|
||||
"markup.strikethrough".modifiers = [ "crossed_out" ];
|
||||
|
||||
"diagnostic.hint" = {
|
||||
"underline" = { style = "curl"; };
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
"underline" = { style = "curl"; };
|
||||
};
|
||||
"diagnostic.warning" = {
|
||||
"underline" = { style = "curl"; };
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
"underline" = { style = "curl"; };
|
||||
};
|
||||
"diagnostic.hint".underline.style = "curl";
|
||||
"diagnostic.info".underline.style = "curl";
|
||||
"diagnostic.warning".underline.style = "curl";
|
||||
"diagnostic.error".underline.style = "curl";
|
||||
|
||||
"ui.background" = { # general background of the editor window
|
||||
"bg" = background;
|
||||
# bg = background;
|
||||
};
|
||||
"ui.bufferline" = { # the top line ("tab"-line)
|
||||
"fg" = accent.base;
|
||||
"bg" = black.base;
|
||||
fg = accent.base;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.bufferline.active" = { # the active "tab"
|
||||
"fg" = background;
|
||||
"bg" = accent.base;
|
||||
"modifiers" = [ "bold" ];
|
||||
fg = background;
|
||||
bg = accent.base;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.cursor" = { # the cursor in Normal mode
|
||||
"fg" = foreground;
|
||||
"modifiers" = [ "reversed" ];
|
||||
fg = foreground;
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
"ui.cursorline.primary" = { # the line on which the cursor is on
|
||||
"bg" = black.base;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.cursor.match" = { # Matching bracket etc.
|
||||
"bg" = green.dark;
|
||||
"modifiers" = [ ];
|
||||
bg = green.dark;
|
||||
modifiers = [ ];
|
||||
};
|
||||
"ui.gutter" = {
|
||||
"bg" = black.base;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.help" = {
|
||||
"fg" = green.base;
|
||||
"bg" = black.base;
|
||||
fg = green.base;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.linenr" = {
|
||||
"fg" = white.dark;
|
||||
"bg" = black.base;
|
||||
fg = white.dark;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.linenr.selected" = {
|
||||
"fg" = accent.bright;
|
||||
"modifiers" = [ "bold" ];
|
||||
fg = accent.bright;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.menu" = {
|
||||
"fg" = accent.base;
|
||||
"bg" = black.base;
|
||||
fg = accent.base;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.menu.scroll" = {
|
||||
"fg" = yellow.dark;
|
||||
"bg" = background;
|
||||
fg = yellow.dark;
|
||||
bg = background;
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
"fg" = red.base;
|
||||
"bg" = blue.dark;
|
||||
fg = red.base;
|
||||
bg = blue.dark;
|
||||
};
|
||||
"ui.popup" = {
|
||||
"bg" = black.base;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.selection" = {
|
||||
"bg" = white.dark;
|
||||
bg = white.dark;
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
"bg" = black.bright;
|
||||
bg = black.bright;
|
||||
};
|
||||
"ui.statusline" = {
|
||||
"fg" = blue.bright;
|
||||
"bg" = black.base;
|
||||
fg = blue.bright;
|
||||
bg = black.base;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
"fg" = red.bright;
|
||||
"bg" = red.dark;
|
||||
fg = red.bright;
|
||||
bg = red.dark;
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
"fg" = green.bright;
|
||||
"bg" = green.dark;
|
||||
fg = green.bright;
|
||||
bg = green.dark;
|
||||
};
|
||||
"ui.statusline.normal" = {
|
||||
"fg" = yellow.bright;
|
||||
"bg" = yellow.dark;
|
||||
fg = yellow.bright;
|
||||
bg = yellow.dark;
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
"fg" = cyan.bright;
|
||||
"bg" = cyan.dark;
|
||||
fg = cyan.bright;
|
||||
bg = cyan.dark;
|
||||
};
|
||||
"ui.text" = foreground;
|
||||
"ui.text.focus" = accent.base;
|
||||
"ui.virtual.indent-guide" = {
|
||||
"fg" = black.bright;
|
||||
fg = black.bright;
|
||||
};
|
||||
"ui.virtual.inlay-hint" = {
|
||||
"fg" = weird.bright;
|
||||
"bg" = weird.dark;
|
||||
fg = background;
|
||||
bg = tertiary.dark;
|
||||
};
|
||||
"ui.virtual.ruler" = {
|
||||
"bg" = background;
|
||||
bg = background;
|
||||
};
|
||||
"ui.virtual.jump-label" = {
|
||||
fg = special.base;
|
||||
underline = {
|
||||
style = "dotted";
|
||||
};
|
||||
};
|
||||
"ui.window" = {
|
||||
"bg" = black.base;
|
||||
bg = black.base;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
148
home-modules/hyprland-autoname-workspaces.nix
Executable file → Normal file
148
home-modules/hyprland-autoname-workspaces.nix
Executable file → Normal file
@@ -1,61 +1,83 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [ hyprland-autoname-workspaces ];
|
||||
file.".config/hyprland-autoname-workspaces/config.toml".text = ''
|
||||
version = "1.1.14"
|
||||
file.".config/hyprland-autoname-workspaces/config.toml".text = let
|
||||
icons = /* toml */ ''
|
||||
DEFAULT = "{class}"
|
||||
"Alacritty" = ""
|
||||
"Bitwarden" = ""
|
||||
"blueman-manager" = ""
|
||||
"chatterino" = ""
|
||||
"Chromium" = ""
|
||||
"chromium-browser" = ""
|
||||
"code" = ""
|
||||
"code-oss" = ""
|
||||
"codium" = ""
|
||||
"codium-url-handler" = ""
|
||||
"com.mitchellh.ghostty" = ""
|
||||
"com.obsproject.Studio" = ""
|
||||
"discord" = ""
|
||||
"Element" = ""
|
||||
"epicgameslauncher.exe" = ""
|
||||
".*.exe" = ""
|
||||
"firefox" = ""
|
||||
"galaxyclient.exe" = ""
|
||||
"\\.?[gG]imp-.*" = ""
|
||||
"F?imv.*" = ""
|
||||
"KiCad" = ""
|
||||
"kitty" = ""
|
||||
"libreoffice-calc" = ""
|
||||
"libreoffice-writer" = ""
|
||||
"lutris" = ""
|
||||
"mpv" = ""
|
||||
"obsidian" = ""
|
||||
"org.inkscape.Inkscape" = ""
|
||||
"org.remmina.Remmina" = ""
|
||||
"org.prismlauncher.*" = ""
|
||||
"pavucontrol" = ""
|
||||
"pcbnew" = ""
|
||||
"Signal" = ""
|
||||
"spotify" = ""
|
||||
"Spotify" = ""
|
||||
"steam" = ""
|
||||
"thunar" = ""
|
||||
"thunderbird" = ""
|
||||
"Tor Browser" = ""
|
||||
"vesktop" = ""
|
||||
"virt-manager" = ""
|
||||
"VirtualBox" = ""
|
||||
"VirtualBox Machine" = ""
|
||||
"VirtualBox Manager" = ""
|
||||
"VSCodium" = ""
|
||||
"Xsane" = ""
|
||||
"zathura" = ""
|
||||
"zoom" = ""
|
||||
'';
|
||||
in /* toml */ ''
|
||||
version = "1.1.15"
|
||||
|
||||
[format]
|
||||
dedup = false
|
||||
dedup_inactive_fullscreen = false
|
||||
delim = " "
|
||||
workspace = "{id}:{clients}"
|
||||
workspace_empty = "{id}"
|
||||
client = "{icon}"
|
||||
client_fullscreen = "F{icon}"
|
||||
client_active = "<u>{icon}</u>"
|
||||
client_dup = "{icon}x{counter}"
|
||||
client_dup_active = "<u>{icon}</u>{delim}{icon}x{counter_unfocused}"
|
||||
client_dup_fullscreen = "F{icon}{delim}{icon}x{counter_unfocused}"
|
||||
|
||||
[exclude]
|
||||
"steam" = "^(Friends List.*)?$"
|
||||
"fcitx" = ".*"
|
||||
|
||||
[class]
|
||||
VirtualBox = ""
|
||||
steam = ""
|
||||
"VirtualBox Manager" = ""
|
||||
"com.obsproject.Studio" = ""
|
||||
"[Ff]irefox" = ""
|
||||
"[Tt]hunderbird" = ""
|
||||
pcbnew = ""
|
||||
".*.exe" = ""
|
||||
Element = ""
|
||||
Signal = ""
|
||||
Gimp = ""
|
||||
VSCodium = ""
|
||||
"[sS]potify" = ""
|
||||
virt-manager = ""
|
||||
lutris = ""
|
||||
DEFAULT = "{class}"
|
||||
"epicgameslauncher.exe" = ""
|
||||
"[Cc]ode" = ""
|
||||
"galaxyclient.exe" = ""
|
||||
pavucontrol = ""
|
||||
"Tor Browser" = ""
|
||||
mpv = ""
|
||||
chatterino = ""
|
||||
libreoffice-writer = ""
|
||||
kitty = ""
|
||||
"cyberpunk2077.exe" = ""
|
||||
KiCad = ""
|
||||
"[tT]hunar" = ""
|
||||
"riotclientux.exe" = ""
|
||||
libreoffice-calc = ""
|
||||
"org.remmina.Remmina" = ""
|
||||
"org.inkscape.Inkscape" = ""
|
||||
"VirtualBox Machine" = ""
|
||||
Bitwarden = ""
|
||||
"[gG]imp-.*" = ""
|
||||
Chromium = ""
|
||||
obsidian = ""
|
||||
"leagueclientux.exe" = ""
|
||||
zathura = ""
|
||||
code-oss = ""
|
||||
codium-url-handler = ""
|
||||
discord = ""
|
||||
vesktop = ""
|
||||
blueman-manager = ""
|
||||
Alacritty = ""
|
||||
zoom = ""
|
||||
spotify = ""
|
||||
${icons}
|
||||
|
||||
[class_active]
|
||||
"(?i)ExampleOneTerm" = "icon"
|
||||
|
||||
[initial_class]
|
||||
|
||||
@@ -73,35 +95,11 @@
|
||||
|
||||
[initial_title_in_class]
|
||||
|
||||
[initial_title]
|
||||
"Spotify Premium" = ""
|
||||
|
||||
[initial_title_in_class_active]
|
||||
|
||||
[initial_title_in_initial_class]
|
||||
|
||||
[initial_title_in_initial_class_active]
|
||||
|
||||
[exclude]
|
||||
aProgram = "^$"
|
||||
"" = "^$"
|
||||
"(?i)fcitx" = ".*"
|
||||
"[Ss]team" = "^(Friends List.*)?$"
|
||||
"explorer.exe" = ".*"
|
||||
"(?i)TestApp" = ""
|
||||
|
||||
[format]
|
||||
dedup = false
|
||||
dedup_inactive_fullscreen = false
|
||||
delim = " "
|
||||
workspace = "{id}:{clients}"
|
||||
workspace_empty = "{id}"
|
||||
client = "{icon}"
|
||||
client_fullscreen = "{icon}"
|
||||
client_active = "{icon}"
|
||||
client_dup = "{icon}{counter_sup}"
|
||||
client_dup_active = "*{icon}*{delim}{icon}{counter_unfocused_sup}"
|
||||
client_dup_fullscreen = "[{icon}]{delim}{icon}{counter_unfocused_sup}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
734
home-modules/hyprland.nix
Executable file → Normal file
734
home-modules/hyprland.nix
Executable file → Normal file
@@ -1,67 +1,34 @@
|
||||
{config, pkgs, pkgs-unstable, inputs, host, user, nvidia, rice, lib, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
let
|
||||
animation-speed = "5";
|
||||
transparency = builtins.toString rice.transparency;
|
||||
terminal = "ghostty";
|
||||
terminal-exec = "ghostty --command=";
|
||||
monitors = {
|
||||
xps = {
|
||||
main = {
|
||||
name = "eDP-1";
|
||||
resolution = "1920x1200";
|
||||
position = "0x0";
|
||||
scale = "1.0";
|
||||
};
|
||||
second = {
|
||||
name = "DP-3";
|
||||
resolution = "1920x1080";
|
||||
position = "1920x0";
|
||||
scale = "1.0";
|
||||
};
|
||||
main = { name = "eDP-1"; resolution = "1920x1200"; position = "0x1080"; scale = "1.0"; };
|
||||
second = { name = "desc:Sony SONY TV 0x01010101"; resolution = "1920x1080"; position = "0x0"; scale = "1.0"; };
|
||||
};
|
||||
north = {
|
||||
main = {
|
||||
name = "DP-4";
|
||||
resolution = "2560x1440";
|
||||
position = "1920x0";
|
||||
scale = "1.0";
|
||||
};
|
||||
left = {
|
||||
name = "HDMI-A-2";
|
||||
resolution = "1920x1080";
|
||||
position = "0x360";
|
||||
scale = "1.0";
|
||||
};
|
||||
# right = {
|
||||
# name = "HDMI-A-2";
|
||||
# resolution = "1920x1080";
|
||||
# position = "4480x360";
|
||||
# scale = "1.0";
|
||||
# };
|
||||
main = { name = "desc:Iiyama North America PL3270Q na"; resolution = "2560x1440"; position = "1920x0"; scale = "1.0"; };
|
||||
left = { name = "desc:Philips Consumer Electronics Company 273PLPH AU11423002132"; resolution = "1920x1080"; position = "0x0"; scale = "1.0"; };
|
||||
# right = { name = "HDMI-A-2"; resolution = "1920x1080"; position = "4480x360"; scale = "1.0"; };
|
||||
};
|
||||
ace = {
|
||||
main = {
|
||||
name = "HDMI-A-1";
|
||||
resolution = "3840x2160";
|
||||
position = "0x0";
|
||||
scale = "2.0";
|
||||
};
|
||||
main = { name = "HDMI-A-1"; resolution = "3840x2160"; position = "0x0"; scale = "2.0"; };
|
||||
};
|
||||
};
|
||||
in {
|
||||
home.packages = (with pkgs; [
|
||||
# hyprland itself is a system package
|
||||
home.packages = with pkgs; [
|
||||
hyprland-protocols
|
||||
hyprlock
|
||||
hypridle
|
||||
hyprshot
|
||||
hyprpicker
|
||||
hyprcursor
|
||||
|
||||
grim
|
||||
slurp
|
||||
|
||||
# ]) ++ (with pkgs-unstable; [
|
||||
|
||||
]) ++ (with inputs; [
|
||||
hyprswitch.packages.x86_64-linux.default
|
||||
]);
|
||||
];
|
||||
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
@@ -75,15 +42,16 @@ in {
|
||||
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo
|
||||
# inputs.hyprfocus.packages.${pkgs.system}.hyprfocus
|
||||
# inputs.hycov.packages.${pkgs.system}.hycov
|
||||
# inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
|
||||
pkgs.hyprlandPlugins.hyprspace
|
||||
# inputs.hyprspace.packages.${pkgs.system}.Hyprspace
|
||||
];
|
||||
|
||||
settings = {
|
||||
monitor =
|
||||
if host == "NxXPS" then (with monitors.xps; [
|
||||
if hyper.host == "NxXPS" then (with monitors.xps; [
|
||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||
"${second.name}, ${second.resolution}, ${second.position}, ${second.scale}"
|
||||
]) else (if host == "NxNORTH" then (with monitors.north; [
|
||||
]) else (if hyper.host == "NxNORTH" then (with monitors.north; [
|
||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||
"${left.name}, ${left.resolution}, ${left.position}, ${left.scale}"
|
||||
# "${right.name}, ${right.resolution}, ${right.position}, ${right.scale}"
|
||||
@@ -91,15 +59,13 @@ in {
|
||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||
]));
|
||||
|
||||
workspace =
|
||||
let
|
||||
d1 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
d2 = if host == "NxXPS" then monitors.xps.second.name else (if host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
||||
d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
# d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
||||
workspace = let
|
||||
d1 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
d2 = if hyper.host == "NxXPS" then monitors.xps.second.name else (if hyper.host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
||||
d3 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||
# d3 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.hyper.host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
||||
compact = "gapsin:0, gapsout:0, bordersize:1, rounding:false";
|
||||
in
|
||||
[
|
||||
in [
|
||||
"11, monitor:${d1}, default:true"
|
||||
"12, monitor:${d1}"
|
||||
"13, monitor:${d1}"
|
||||
@@ -120,8 +86,8 @@ in {
|
||||
"27, monitor:${d2}"
|
||||
"28, monitor:${d2}"
|
||||
"29, monitor:${d2}"
|
||||
"20, monitor:${d2}"
|
||||
"31, monitor:${d3}, default:${let x = if host == "NxNORTH" then "true" else "false"; in x}"
|
||||
"20, monitor:${d2}, ${compact}"
|
||||
"31, monitor:${d3}, default:${let x = if hyper.host == "NxNORTH" then "true" else "false"; in x}"
|
||||
"32, monitor:${d3}"
|
||||
"33, monitor:${d3}"
|
||||
"34, monitor:${d3}"
|
||||
@@ -131,6 +97,10 @@ in {
|
||||
"38, monitor:${d3}"
|
||||
"39, monitor:${d3}"
|
||||
"30, monitor:${d3}, ${compact}"
|
||||
] ++ [
|
||||
# no gaps when only
|
||||
"w[tv1], gapsout:0, gapsin:0"
|
||||
"f[1], gapsout:0, gapsin:0"
|
||||
];
|
||||
|
||||
# "device:logitech-wireless-mouse-mx-master-1" = {
|
||||
@@ -138,7 +108,7 @@ in {
|
||||
# };
|
||||
|
||||
|
||||
env = if nvidia.enable == true then [
|
||||
env = if hyper.nvidia.enable == true then [
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"GBM_BACKEND,nvidia-drm"
|
||||
@@ -174,12 +144,12 @@ in {
|
||||
|
||||
decoration = {
|
||||
rounding = rice.rounding;
|
||||
drop_shadow = false;
|
||||
shadow_range = "20";
|
||||
shadow_offset = "0 0";
|
||||
shadow_render_power = "4";
|
||||
"col.shadow" = "rgba(${rice.lib.nohash rice.color.red.base}ff)";
|
||||
"col.shadow_inactive" = "rgba(${rice.lib.nohash rice.color.black.base}ff)";
|
||||
# drop_shadow = false;
|
||||
# shadow_range = "20";
|
||||
# shadow_offset = "0 0";
|
||||
# shadow_render_power = "4";
|
||||
# "col.shadow" = "rgba(${rice.lib.nohash rice.color.red.base}ff)";
|
||||
# "col.shadow_inactive" = "rgba(${rice.lib.nohash rice.color.black.base}ff)";
|
||||
|
||||
active_opacity = "1.0";
|
||||
inactive_opacity = "1.0";
|
||||
@@ -191,7 +161,7 @@ in {
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = "3";
|
||||
size = "10";
|
||||
passes = "2";
|
||||
xray = false;
|
||||
vibrancy = 0.5;
|
||||
@@ -201,10 +171,11 @@ in {
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
# bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
|
||||
bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
|
||||
# bezier = "myBezier, 0.83, 0, 0.17, 1"; # io
|
||||
bezier = "myBezier, 0.33, 1, 0.68, 1";
|
||||
animation = let direction = if host == "NxXPS" then "slide" else "slidevert"; in [
|
||||
# bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||
# bezier = "myBezier, 0.33, 1, 0.68, 1";
|
||||
animation = let direction = if hyper.host == "NxXPS" then "slide" else "slidevert"; in [
|
||||
"windows, 1, ${animation-speed}, myBezier, slide"
|
||||
"border, 1, ${animation-speed}, myBezier"
|
||||
"fade, 1, ${animation-speed}, myBezier"
|
||||
@@ -228,7 +199,6 @@ in {
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true; # you probably want this
|
||||
no_gaps_when_only = true;
|
||||
};
|
||||
|
||||
# master = {
|
||||
@@ -247,7 +217,6 @@ in {
|
||||
"/usr/lib/polkit-kde-authentication-agent-1 "
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"syncthing -no-browser"
|
||||
"mako"
|
||||
"fcitx5"
|
||||
# "ibus engine xkb:de::deu"
|
||||
"libinput-gestures"
|
||||
@@ -255,57 +224,69 @@ in {
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"opacity ${transparency},class:^(com.chatterino.*)$"
|
||||
"opacity ${transparency},class:^(chatterino)$"
|
||||
"bordercolor rgba(${rice.lib.nohash rice.color.magenta.bright}ff), pinned:1"
|
||||
];
|
||||
|
||||
windowrule = [
|
||||
# "opacity ${transparency}, firefox"
|
||||
"opacity ${transparency}, code-oss"
|
||||
"opacity ${transparency}, VSCodium"
|
||||
"opacity ${transparency}, Code"
|
||||
# "opacity ${transparency}, sent"
|
||||
"opacity ${transparency}, neovide"
|
||||
"opacity ${transparency}, obsidian"
|
||||
# "opacity ${transparency}, zathura"
|
||||
# "bordercolor rgba(${rice.lib.nohash rice.color.foreground}ff) rgba(${rice.lib.nohash rice.color.background}${rice.lib.float-to-drune rice.transparency}), Alacritty"
|
||||
# "bordercolor rgba(${rice.lib.nohash rice.color.foreground}ff) rgba(${rice.lib.nohash rice.color.background}${rice.lib.float-to-drune rice.transparency}), Kitty"
|
||||
"opacity ${transparency}, discord"
|
||||
"opacity ${transparency}, vesktop"
|
||||
"opacity ${transparency}, Element"
|
||||
"opacity ${transparency}, thunderbird"
|
||||
"opacity ${transparency}, lutris"
|
||||
"opacity ${transparency}, element"
|
||||
"opacity ${transparency}, ^([sS]potify)$"
|
||||
"opacity ${transparency}, virt-manager"
|
||||
"opacity ${transparency}, thunar"
|
||||
"opacity ${transparency}, title:^(wlogout)$"
|
||||
"opaque, title:^(GNU Image Manipulation Program)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"float, title:^(Ibus-ui.*)$"
|
||||
"float, ^(ibus-ui.*)$"
|
||||
"float, ^(ibus-ui-gtk3)$"
|
||||
"float, title:^(Ibus-ui-gtk3)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"float, org.kde.polkit-kde-authentication-agent-1"
|
||||
"float, title:^(wlogout)$"
|
||||
"float, imv"
|
||||
"float, title:^(Page Info — .*)$"
|
||||
"bordersize 0, floating:0, onworkspace:w[tv1]"
|
||||
"rounding 0, floating:0, onworkspace:w[tv1]"
|
||||
"bordersize 0, floating:0, onworkspace:f[1]"
|
||||
"rounding 0, floating:0, onworkspace:f[1]"
|
||||
] ++ [
|
||||
"center 1,class:^(gimp)$"
|
||||
|
||||
"float, class:^(ibus-ui.*)$"
|
||||
"float, class:^(ibus-ui-gtk3)$"
|
||||
"float, class:^(imv)$"
|
||||
"float, class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||
"float, class:^(presenter)$" # sent
|
||||
"float, class:^(thunderbird)$"
|
||||
"float, title:^(Compact folders)$"
|
||||
"tile, sent"
|
||||
"fullscreen, wlogout"
|
||||
"fullscreen, sent"
|
||||
"workspace 14, lutris"
|
||||
"workspace 100, title:^(Apex Legends)$"
|
||||
"workspace 100, ^(cyberpunk2077.exe)$"
|
||||
"workspace 100, title:^(No Man.s Sky)$"
|
||||
"workspace 100, gamescope"
|
||||
"float, title:^(Ibus-ui.*)$"
|
||||
"float, title:^(Ibus-ui-gtk3)$"
|
||||
"float, title:^(Page Info — .*)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"float, title:^(wlogout)$"
|
||||
|
||||
"fullscreen, class:^(imv)$"
|
||||
"fullscreen, class:^(sent)$"
|
||||
"fullscreen, class:^(wlogout)$"
|
||||
|
||||
"noanim, class:^(imv)$"
|
||||
"noanim, class:^(presenter)$" # sent
|
||||
|
||||
"opacity ${transparency}, class:^(Code)$"
|
||||
"opacity ${transparency}, class:^(code-oss)$"
|
||||
"opacity ${transparency}, class:^(discord)$"
|
||||
"opacity ${transparency}, class:^(vesktop)$"
|
||||
# "opacity ${transparency}, class:^(Element)$"
|
||||
"opacity ${transparency}, class:^(lutris)$"
|
||||
"opacity ${transparency}, class:^(neovide)$"
|
||||
# "opacity ${transparency}, class:^(obsidian)$"
|
||||
"opacity ${transparency}, class:^(vesktop)$"
|
||||
"opacity ${transparency}, class:^(VSCodium)$"
|
||||
"opacity ${transparency}, title:^(wlogout)$"
|
||||
|
||||
"opaque, title:^(GNU Image Manipulation Program)$"
|
||||
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
|
||||
"tile, class:^(sent)$"
|
||||
|
||||
"workspace 100, class:^(gamescope)$"
|
||||
|
||||
"float, title:^(terminal-file-picker)$"
|
||||
"dimaround, title:^(terminal-file-picker)$"
|
||||
"center, title:^(terminal-file-picker)$"
|
||||
"size 80% 80%, title:^(terminal-file-picker)$"
|
||||
];
|
||||
|
||||
|
||||
layerrule = [
|
||||
"blur,waybar"
|
||||
"blur,bar-0" # hyprpanel
|
||||
"blur,bar-1"
|
||||
"blur,bar-2"
|
||||
"blur,bar-3"
|
||||
"blur,bar-4"
|
||||
"dimaround,rofi"
|
||||
"blur,rofi"
|
||||
"xray,rofi"
|
||||
@@ -322,24 +303,23 @@ in {
|
||||
###########################################################################
|
||||
## ROW 0:
|
||||
bind = [
|
||||
"SUPER SHIFT, Escape, exit, "
|
||||
"SUPER, F1, workspace, 100"
|
||||
"SUPER SHIFT, F1, movetoworkspace, 100"
|
||||
# "SUPER, F2,"
|
||||
"SUPER, F3, toggleopaque"
|
||||
# "SUPER, F4,"
|
||||
"SUPER, F5, exec, nx_gcal_event force-lookup"
|
||||
"SUPER SHIFT, F5, exec, nx_gcal_event reauthenticate"
|
||||
"SUPER, F6, exec, kitty -e 'htop'"
|
||||
"SUPER, F7, exec, kitty -e 'nmtui'"
|
||||
''SUPER, F8, exec, find ~/Pictures/wallpapers/* -type f -not -path "~/Pictures/wallpapers/.git/*" | sort -R | head -n 1 | xargs swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120''
|
||||
''SUPER, F9, exec, kitty -e sh -c 'change_colors_json $(swww query | sed -n 1p | sed -e "s-.*image: --g") && nh home switch && firefox /home/${user}/.config/color-pallete.html' ''
|
||||
''SUPER SHIFT, F9, exec, firefox /home/${user}/.config/color-pallete.html ''
|
||||
# "SUPER, F3, toggleopaque"
|
||||
"SUPER, F4, exec, rm /tmp/caldav_event_cache.json && notify-send 'NxCaldavEvent' 'Cleared saved event cache!' ''"
|
||||
# "SUPER, F5, exec, nx_gcal_event force-lookup"
|
||||
# "SUPER SHIFT, F5, exec, nx_gcal_event reauthenticate"
|
||||
"SUPER, F6, exec, ${terminal-exec}'htop'"
|
||||
"SUPER, F7, exec, ${terminal-exec}'nmtui'"
|
||||
''SUPER, F8, exec, find ~/Pictures/wallpapers/* -type f -not -path "~/Pictures/wallpapers/.git/*" | sort -R | head -n 1 | xargs -d '\n' swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 --transition-duration 2''
|
||||
"SUPER, F9, execr, submap_indicator set ' '"
|
||||
"SUPER, F9, submap, color"
|
||||
# "SUPER, F10, hyprload,update"
|
||||
"SUPER, F11, exec, waybar"
|
||||
"SUPER SHIFT, F11, exec, pkill waybar "
|
||||
"SUPER, F12, exec, hyprland-autoname-workspaces"
|
||||
"SUPER SHIFT, F12, exec, pkill -9 hyprland-autoname-workspaces "
|
||||
"SUPER SHIFT, F12, exec, pkill -9 hyprland-aut"
|
||||
|
||||
###########################################################################
|
||||
## ROW 1:
|
||||
@@ -373,38 +353,40 @@ in {
|
||||
###########################################################################
|
||||
## ROW 2:
|
||||
|
||||
#bind = SUPER, TAB, hycov:toggleoverview
|
||||
# "SUPER, TAB, overview:toggle"
|
||||
# "SUPER, TAB, hycov:toggleoverview"
|
||||
"SUPER, TAB, overview:toggle"
|
||||
# "SUPER, TAB, hyprexpo:expo, toggle"
|
||||
"ALT, TAB, focuscurrentorlast"
|
||||
# "SUPER, TAB, exec, hyprswitch --daemon"
|
||||
"SUPER, Q, killactive"
|
||||
"SUPER, W, exec, waybar_mode set ' '"
|
||||
"SUPER, W, exec, submap_indicator set ' '"
|
||||
"SUPER, W, submap, browserSM "
|
||||
"SUPER, E, exec, element-desktop"
|
||||
"SUPER, R, exec, rofi -show drun"
|
||||
# "SUPER, T, exec, alacritty"
|
||||
# "SUPER SHIFT, T, exec, alacritty -e sh -c "ssh nxace""
|
||||
"SUPER, T, exec, SESSION_FROM_DE=TRUE kitty"
|
||||
"SUPER SHIFT, T, exec, kitty -e sh -c 'ssh nxace'"
|
||||
# "SUPER, Z, "
|
||||
"SUPER, U, exec, thunderbird "
|
||||
"SUPER, I, exec, kitty -e fish -c 'hx ~/nix-dots/ && fish'"
|
||||
"SUPER SHIFT, I, exec, kitty -e fish -c 'nh home switch || read'"
|
||||
"SUPER CTRL, I, exec, kitty -e fish -c 'nh os switch || read'"
|
||||
"SUPER, T, exec, SESSION_FROM_DE=TRUE ${terminal}"
|
||||
"SUPER SHIFT, T, exec, ${terminal-exec}'ssh nxace'"
|
||||
"SUPER, Z, exec, zathura"
|
||||
"SUPER, U, exec, [tile] thunderbird "
|
||||
"SUPER, I, exec, ${terminal-exec}'hx ~/nix-dots/ && fish'"
|
||||
"SUPER SHIFT, I, exec, ${terminal-exec}'nh home switch || read'"
|
||||
"SUPER CTRL, I, exec, ${terminal-exec}'nh os switch || read'"
|
||||
"SUPER, O, exec, obsidian "
|
||||
"SUPER, P, pin "
|
||||
# "SUPER, Ü,"
|
||||
# "SUPER, +,"
|
||||
# "SUPER, Enter,"
|
||||
"SUPER, Enter, exec, SESSION_FROM_DE=TRUE ${terminal}"
|
||||
|
||||
|
||||
###########################################################################
|
||||
## ROW 3:
|
||||
|
||||
"SUPER, A, execr, waybar_mode set ' '"
|
||||
"SUPER, A, execr, submap_indicator set ' '"
|
||||
"SUPER, A, submap, scrL"
|
||||
"SUPER, S, exec, spotify"
|
||||
"SUPER, D, exec, vesktop"
|
||||
# "SUPER, D, exec, discord"
|
||||
"SUPER, F, fullscreen"
|
||||
# "SUPER, G,"
|
||||
"SUPER, H, movefocus, l"
|
||||
@@ -419,11 +401,12 @@ in {
|
||||
## ROW 4:
|
||||
|
||||
# "SUPER, <, overview:toggle"
|
||||
"SUPER, Y, execr, waybar_mode set ' '"
|
||||
"SUPER, Y, execr, submap_indicator set ' '"
|
||||
"SUPER, Y, submap, scrR"
|
||||
"SUPER, X, exec, pkill wlogout || wlogout --protocol layer-shell -b 3"
|
||||
# "SUPER, C, exec, /home/nx2/scripts/quickconfig/quickconfig.sh "
|
||||
"SUPER, C, exec, chatterino"
|
||||
"SUPER SHIFT, C, exec, hyprpicker -n -a"
|
||||
"SUPER, V, togglefloating, "
|
||||
"SUPER, B, exec, bitwarden"
|
||||
"SUPER, N, togglesplit"
|
||||
@@ -437,7 +420,7 @@ in {
|
||||
|
||||
# bindr = SUPER, Ctrl, exec, # ??
|
||||
# bindr = SUPERALT, Alt_L, exec,
|
||||
"SUPER, Space, cyclenext"
|
||||
# "SUPER, Space, cyclenext"
|
||||
"SUPER SHIFT, Space, swapnext"
|
||||
# "SUPER, , "
|
||||
# "SUPER, , "
|
||||
@@ -457,7 +440,9 @@ in {
|
||||
###########################################################################
|
||||
## MEGA KEYS:
|
||||
|
||||
'' , Print, exec, grim -g "$(slurp)"''
|
||||
", Print, execr, submap_indicator set ' '"
|
||||
", Print, submap, screenshot"
|
||||
|
||||
# "SUPER, Next, resizeactive, 5% 5%" # binde
|
||||
# "SUPER, Prior, resizeactive, -5% -5%" # binde
|
||||
|
||||
@@ -494,6 +479,39 @@ in {
|
||||
"SUPER, Next, resizeactive, 10% 10%"
|
||||
"SUPER, Prior, resizeactive, -10% -10%"
|
||||
];
|
||||
plugin = {
|
||||
overview = {
|
||||
# panelHeight =
|
||||
# panelBorderWidth =
|
||||
onBottom = false; # whether if panel should be on bottom instead of top
|
||||
# workspaceMargin = # spacing of workspaces with eachother and the edge of the panel
|
||||
# reservedArea = # padding on top of the panel, for Macbook camera notch
|
||||
workspaceBorderSize = rice.border-width; #
|
||||
centerAligned = true; # whether if workspaces should be aligned at the center (KDE / macOS style) or at the left (Windows style)
|
||||
hideBackgroundLayers = true; # do not draw background and bottom layers in overview
|
||||
hideTopLayers = false; # do not draw top layers in overview
|
||||
hideOverlayLayers = false; # do not draw overlay layers in overview
|
||||
hideRealLayers = false; # whether to hide layers in actual workspace
|
||||
drawActiveWorkspace = true; # draw the active workspace in overview as-is
|
||||
overrideGaps = false; # whether if overview should override the layout gaps in the current workspace using the following values
|
||||
# gapsIn = #
|
||||
# gapsOut = #
|
||||
affectStrut = false; # whether the panel should push window aside, disabling this option also
|
||||
|
||||
dots_center = true;
|
||||
autoDrag = true; # mouse click always drags window when overview is open
|
||||
autoScroll = true; # mouse scroll on active workspace area always switch workspace
|
||||
exitOnClick = true; # mouse click without dragging exits overview
|
||||
switchOnDrop = true; # switch to the workspace when a window is droppped into it
|
||||
exitOnSwitch = true; # overview exits when overview is switched by clicking on workspace view or by switchOnDrop
|
||||
showNewWorkspace = false; # add a new empty workspace at the end of workspaces view
|
||||
showEmptyWorkspace = false; # show empty workspaces that are inbetween non-empty workspaces
|
||||
showSpecialWorkspace = false; # defaults to false
|
||||
disableGestures = true;
|
||||
reverseSwipe = true; # reverses the direction of swipe gesture, for macOS peeps?
|
||||
exitKey = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -504,396 +522,102 @@ in {
|
||||
# 'Y8b. 88 88 88''Yb. 88 88 8888888 888888P' 'Y8b.
|
||||
# db 8D 88. .88 88 8D 88 88 88' '88 88 db 8D
|
||||
# '8888Y' 'Y8888P' Y8888P' YP YP 88 YP YP '8888Y'
|
||||
extraConfig = ''
|
||||
extraConfig = let
|
||||
action_simple = { mods ? "", key, cmd }: ''
|
||||
bind=${mods},${key},execr,submap_indicator unset
|
||||
bind=${mods},${key},${cmd}
|
||||
bind=${mods},${key},submap,reset
|
||||
'';
|
||||
extra_workspace = { key, wsnumber }: ''
|
||||
bind=,${key},execr,submap_indicator unset
|
||||
bind=,${key},workspace,${wsnumber}
|
||||
bind=,${key},submap,reset
|
||||
bind=SUPER,${key},execr,submap_indicator unset
|
||||
bind=SUPER,${key},workspace,${wsnumber}
|
||||
bind=SUPER,${key},submap,reset
|
||||
bind=SUPER SHIFT,${key},execr, submap_indicator unset
|
||||
bind=SUPER SHIFT,${key},movetoworkspace,${wsnumber}
|
||||
bind=SUPER SHIFT,${key},submap,reset
|
||||
'';
|
||||
in ''
|
||||
submap = browserSM
|
||||
bind = , W, exec, waybar_mode unset
|
||||
bind = , W, exec, hyprctl dispatch exec firefox
|
||||
bind = , W, submap, reset
|
||||
|
||||
bind = , Y, exec, waybar_mode unset
|
||||
bind = , Y, exec, firefox https://youtube.com
|
||||
bind = , Y, submap, reset
|
||||
|
||||
bind = , T, exec, waybar_mode unset
|
||||
bind = , T, exec, hyprctl dispatch exec firefox https://twitch.tv
|
||||
bind = , T, submap, reset
|
||||
|
||||
bind = , R, exec, waybar_mode unset
|
||||
bind = , R, exec, firefox https://reddit.com
|
||||
bind = , R, submap, reset
|
||||
|
||||
bind = , C, exec, waybar_mode unset
|
||||
bind = , C, exec, firefox https://calendar.google.com
|
||||
bind = , C, submap, reset
|
||||
|
||||
bind = , Ü, exec, waybar_mode unset
|
||||
bind = , Ü, exec, firefox https://translate.google.com
|
||||
bind = , Ü, submap, reset
|
||||
|
||||
bind = , N, exec, waybar_mode unset
|
||||
bind = , N, exec, firefox https://Netflix.com
|
||||
bind = , N, submap, reset
|
||||
|
||||
bind = , A, exec, waybar_mode unset
|
||||
bind = , A, exec, firefox https://www.amazon.de/b?node=3010075031&ref_=nav_ya_signin
|
||||
bind = , A, submap, reset
|
||||
|
||||
bind = , D, exec, waybar_mode unset
|
||||
bind = , D, exec, firefox https://www.disneyplus.com/home
|
||||
bind = , D, submap, reset
|
||||
|
||||
bind = , H, exec, waybar_mode unset
|
||||
bind = , H, exec, firefox https://www.hs-mittweida.de
|
||||
bind = , H, submap, reset
|
||||
|
||||
bind = , X, exec, waybar_mode unset
|
||||
bind = , X, exec, firefox https://nx2.site
|
||||
bind = , X, submap, reset
|
||||
|
||||
bind = , L, exec, waybar_mode unset
|
||||
bind = , L, exec, firefox https://feddit.de
|
||||
bind = , L, submap, reset
|
||||
|
||||
bind = , I, exec, waybar_mode unset
|
||||
bind = , I, exec, firefox https://www.imdb.com
|
||||
bind = , I, submap, reset
|
||||
|
||||
bind = , M, exec, waybar_mode unset
|
||||
bind = , M, exec, firefox https://ieji.de/home
|
||||
bind = , M, submap, reset
|
||||
|
||||
bind = , S, exec, waybar_mode unset
|
||||
bind = , S, exec, firefox 127.0.0.1:8384/
|
||||
bind = , S, submap, reset
|
||||
|
||||
bind = , Escape, exec, waybar_mode unset
|
||||
bind = , Escape, submap, reset
|
||||
${action_simple { key = "A"; cmd = "exec,firefox https://www.amazon.de/b?node=3010075031&ref_=nav_ya_signin";}}
|
||||
${action_simple { key = "C"; cmd = "exec,firefox https://calendar.google.com";}}
|
||||
${action_simple { key = "D"; cmd = "exec,firefox https://www.disneyplus.com/home";}}
|
||||
${action_simple { key = "H"; cmd = "exec,firefox https://www.hs-mittweida.de";}}
|
||||
${action_simple { key = "I"; cmd = "exec,firefox https://www.imdb.com";}}
|
||||
${action_simple { key = "L"; cmd = "exec,firefox https://feddit.de";}}
|
||||
${action_simple { key = "M"; cmd = "exec,firefox https://ieji.de/home";}}
|
||||
${action_simple { key = "N"; cmd = "exec,firefox https://Netflix.com";}}
|
||||
${action_simple { key = "R"; cmd = "exec,firefox https://reddit.com";}}
|
||||
${action_simple { key = "S"; cmd = "exec,firefox 127.0.0.1:8384/";}}
|
||||
${action_simple { key = "T"; cmd = "exec,hyprctl dispatch exec firefox https://twitch.tv";}}
|
||||
${action_simple { key = "udiaeresis"; cmd = "exec,firefox https://translate.google.com";}}
|
||||
${action_simple { key = "W"; cmd = "exec,hyprctl dispatch exec firefox";}}
|
||||
${action_simple { key = "X"; cmd = "exec,firefox https://nx2.site";}}
|
||||
${action_simple { key = "Y"; cmd = "exec,firefox https://youtube.com";}}
|
||||
${action_simple { key = "P"; cmd = "exec,firefox https://pw.nx2.site";}}
|
||||
${action_simple { key = "P"; cmd = "exec,firefox https://pw.nx2.site";}}
|
||||
bind=,Z,exec,submap_indicator set ' '
|
||||
bind=,Z,submap,tuda
|
||||
bind=,Z,submap,reset
|
||||
bind=,Escape,exec,submap_indicator unset
|
||||
bind=,Escape,submap,reset
|
||||
submap = reset
|
||||
|
||||
|
||||
submap = scrL
|
||||
bind = , 1, execr, waybar_mode unset
|
||||
bind = , 1, workspace, 21
|
||||
bind = , 1, submap, reset
|
||||
bind = SUPER, 1, execr, waybar_mode unset
|
||||
bind = SUPER, 1, workspace, 21
|
||||
bind = SUPER, 1, submap, reset
|
||||
bind = SUPER SHIFT, 1, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 1, movetoworkspace, 21
|
||||
bind = SUPER SHIFT, 1, submap, reset
|
||||
|
||||
bind = , 2, execr, waybar_mode unset
|
||||
bind = , 2, workspace, 22
|
||||
bind = , 2, submap, reset
|
||||
bind = SUPER, 2, execr, waybar_mode unset
|
||||
bind = SUPER, 2, workspace, 22
|
||||
bind = SUPER, 2, submap, reset
|
||||
bind = SUPER SHIFT, 2, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 2, movetoworkspace, 22
|
||||
bind = SUPER SHIFT, 2, submap, reset
|
||||
|
||||
bind = , 3, execr, waybar_mode unset
|
||||
bind = , 3, workspace, 23
|
||||
bind = , 3, submap, reset
|
||||
bind = SUPER, 3, execr, waybar_mode unset
|
||||
bind = SUPER, 3, workspace, 23
|
||||
bind = SUPER, 3, submap, reset
|
||||
bind = SUPER SHIFT, 3, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 3, movetoworkspace, 23
|
||||
bind = SUPER SHIFT, 3, submap, reset
|
||||
|
||||
bind = , 4, execr, waybar_mode unset
|
||||
bind = , 4, workspace, 24
|
||||
bind = , 4, submap, reset
|
||||
bind = SUPER, 4, execr, waybar_mode unset
|
||||
bind = SUPER, 4, workspace, 24
|
||||
bind = SUPER, 4, submap, reset
|
||||
bind = SUPER SHIFT, 4, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 4, movetoworkspace, 24
|
||||
bind = SUPER SHIFT, 4, submap, reset
|
||||
|
||||
bind = , 5, execr, waybar_mode unset
|
||||
bind = , 5, workspace, 25
|
||||
bind = , 5, submap, reset
|
||||
bind = SUPER, 5, execr, waybar_mode unset
|
||||
bind = SUPER, 5, workspace, 25
|
||||
bind = SUPER, 5, submap, reset
|
||||
bind = SUPER SHIFT, 5, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 5, movetoworkspace, 25
|
||||
bind = SUPER SHIFT, 5, submap, reset
|
||||
|
||||
bind = , 6, execr, waybar_mode unset
|
||||
bind = , 6, workspace, 26
|
||||
bind = , 6, submap, reset
|
||||
bind = SUPER, 6, execr, waybar_mode unset
|
||||
bind = SUPER, 6, workspace, 26
|
||||
bind = SUPER, 6, submap, reset
|
||||
bind = SUPER SHIFT, 6, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 6, movetoworkspace, 26
|
||||
bind = SUPER SHIFT, 6, submap, reset
|
||||
|
||||
bind = , 7, execr, waybar_mode unset
|
||||
bind = , 7, workspace, 27
|
||||
bind = , 7, submap, reset
|
||||
bind = SUPER, 7, execr, waybar_mode unset
|
||||
bind = SUPER, 7, workspace, 27
|
||||
bind = SUPER, 7, submap, reset
|
||||
bind = SUPER SHIFT, 7, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 7, movetoworkspace, 27
|
||||
bind = SUPER SHIFT, 7, submap, reset
|
||||
|
||||
bind = , 8, execr, waybar_mode unset
|
||||
bind = , 8, workspace, 28
|
||||
bind = , 8, submap, reset
|
||||
bind = SUPER, 8, execr, waybar_mode unset
|
||||
bind = SUPER, 8, workspace, 28
|
||||
bind = SUPER, 8, submap, reset
|
||||
bind = SUPER SHIFT, 8, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 8, movetoworkspace, 28
|
||||
bind = SUPER SHIFT, 8, submap, reset
|
||||
|
||||
bind = , 9, execr, waybar_mode unset
|
||||
bind = , 9, workspace, 29
|
||||
bind = , 9, submap, reset
|
||||
bind = SUPER, 9, execr, waybar_mode unset
|
||||
bind = SUPER, 9, workspace, 29
|
||||
bind = SUPER, 9, submap, reset
|
||||
bind = SUPER SHIFT, 9, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 9, movetoworkspace, 29
|
||||
bind = SUPER SHIFT, 9, submap, reset
|
||||
|
||||
bind = , 0, execr, waybar_mode unset
|
||||
bind = , 0, workspace, 20
|
||||
bind = , 0, submap, reset
|
||||
bind = SUPER, 0, execr, waybar_mode unset
|
||||
bind = SUPER, 0, workspace, 20
|
||||
bind = SUPER, 0, submap, reset
|
||||
bind = SUPER SHIFT, 0, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 0, movetoworkspace, 20
|
||||
bind = SUPER SHIFT, 0, submap, reset
|
||||
|
||||
|
||||
bind = , A, execr, waybar_mode unset
|
||||
${builtins.concatStringsSep "\n" (builtins.map (num: extra_workspace { key = builtins.toString num; wsnumber = "2" + builtins.toString num;}) [1 2 3 4 5 6 7 8 9 0])}
|
||||
bind = , A, execr, submap_indicator unset
|
||||
bind = , A, submap, reset
|
||||
bind = , Escape, execr, waybar_mode unset
|
||||
bind = , Escape, execr, submap_indicator unset
|
||||
bind = , Escape, submap, reset
|
||||
submap = reset
|
||||
|
||||
|
||||
submap = scrR
|
||||
bind = , 1, execr, waybar_mode unset
|
||||
bind = , 1, workspace, 31
|
||||
bind = , 1, submap, reset
|
||||
bind = SUPER, 1, execr, waybar_mode unset
|
||||
bind = SUPER, 1, workspace, 31
|
||||
bind = SUPER, 1, submap, reset
|
||||
bind = SUPER SHIFT, 1, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 1, movetoworkspace, 31
|
||||
bind = SUPER SHIFT, 1, submap, reset
|
||||
|
||||
bind = , 2, execr, waybar_mode unset
|
||||
bind = , 2, workspace, 32
|
||||
bind = , 2, submap, reset
|
||||
bind = SUPER, 2, execr, waybar_mode unset
|
||||
bind = SUPER, 2, workspace, 32
|
||||
bind = SUPER, 2, submap, reset
|
||||
bind = SUPER SHIFT, 2, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 2, movetoworkspace, 32
|
||||
bind = SUPER SHIFT, 2, submap, reset
|
||||
|
||||
bind = , 3, execr, waybar_mode unset
|
||||
bind = , 3, workspace, 33
|
||||
bind = , 3, submap, reset
|
||||
bind = SUPER, 3, execr, waybar_mode unset
|
||||
bind = SUPER, 3, workspace, 33
|
||||
bind = SUPER, 3, submap, reset
|
||||
bind = SUPER SHIFT, 3, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 3, movetoworkspace, 33
|
||||
bind = SUPER SHIFT, 3, submap, reset
|
||||
|
||||
bind = , 4, execr, waybar_mode unset
|
||||
bind = , 4, workspace, 34
|
||||
bind = , 4, submap, reset
|
||||
bind = SUPER, 4, execr, waybar_mode unset
|
||||
bind = SUPER, 4, workspace, 34
|
||||
bind = SUPER, 4, submap, reset
|
||||
bind = SUPER SHIFT, 4, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 4, movetoworkspace, 34
|
||||
bind = SUPER SHIFT, 4, submap, reset
|
||||
|
||||
bind = , 5, execr, waybar_mode unset
|
||||
bind = , 5, workspace, 35
|
||||
bind = , 5, submap, reset
|
||||
bind = SUPER, 5, execr, waybar_mode unset
|
||||
bind = SUPER, 5, workspace, 35
|
||||
bind = SUPER, 5, submap, reset
|
||||
bind = SUPER SHIFT, 5, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 5, movetoworkspace, 35
|
||||
bind = SUPER SHIFT, 5, submap, reset
|
||||
|
||||
bind = , 6, execr, waybar_mode unset
|
||||
bind = , 6, workspace, 36
|
||||
bind = , 6, submap, reset
|
||||
bind = SUPER, 6, execr, waybar_mode unset
|
||||
bind = SUPER, 6, workspace, 36
|
||||
bind = SUPER, 6, submap, reset
|
||||
bind = SUPER SHIFT, 6, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 6, movetoworkspace, 36
|
||||
bind = SUPER SHIFT, 6, submap, reset
|
||||
|
||||
bind = , 7, execr, waybar_mode unset
|
||||
bind = , 7, workspace, 37
|
||||
bind = , 7, submap, reset
|
||||
bind = SUPER, 7, execr, waybar_mode unset
|
||||
bind = SUPER, 7, workspace, 37
|
||||
bind = SUPER, 7, submap, reset
|
||||
bind = SUPER SHIFT, 7, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 7, movetoworkspace, 37
|
||||
bind = SUPER SHIFT, 7, submap, reset
|
||||
|
||||
bind = , 8, execr, waybar_mode unset
|
||||
bind = , 8, workspace, 38
|
||||
bind = , 8, submap, reset
|
||||
bind = SUPER, 8, execr, waybar_mode unset
|
||||
bind = SUPER, 8, workspace, 38
|
||||
bind = SUPER, 8, submap, reset
|
||||
bind = SUPER SHIFT, 8, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 8, movetoworkspace, 38
|
||||
bind = SUPER SHIFT, 8, submap, reset
|
||||
|
||||
bind = , 9, execr, waybar_mode unset
|
||||
bind = , 9, workspace, 39
|
||||
bind = , 9, submap, reset
|
||||
bind = SUPER, 9, execr, waybar_mode unset
|
||||
bind = SUPER, 9, workspace, 39
|
||||
bind = SUPER, 9, submap, reset
|
||||
bind = SUPER SHIFT, 9, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 9, movetoworkspace, 39
|
||||
bind = SUPER SHIFT, 9, submap, reset
|
||||
|
||||
bind = , 0, execr, waybar_mode unset
|
||||
bind = , 0, workspace, 30
|
||||
bind = , 0, submap, reset
|
||||
bind = SUPER, 0, execr, waybar_mode unset
|
||||
bind = SUPER, 0, workspace, 30
|
||||
bind = SUPER, 0, submap, reset
|
||||
bind = SUPER SHIFT, 0, execr, waybar_mode unset
|
||||
bind = SUPER SHIFT, 0, movetoworkspace, 30
|
||||
bind = SUPER SHIFT, 0, submap, reset
|
||||
|
||||
bind = , Y, execr, waybar_mode unset
|
||||
${builtins.concatStringsSep "\n" (builtins.map (num: extra_workspace { key = builtins.toString num; wsnumber = "3" + builtins.toString num;}) [1 2 3 4 5 6 7 8 9 0])}
|
||||
bind = , Y, execr, submap_indicator unset
|
||||
bind = , Y, submap, reset
|
||||
bind = , Escape, execr, waybar_mode unset
|
||||
bind = , Escape, execr, submap_indicator unset
|
||||
bind = , Escape, submap, reset
|
||||
submap = reset
|
||||
|
||||
submap = color
|
||||
${action_simple { key = "W"; cmd = ''exec,swww query | sed -n 1p | sed -E 's-.*image: (.*)-"\1"-g' | xargs change_colors_json img && notify-send 'NxTheme' 'change_colors_json img successfull' ''; }}
|
||||
${action_simple { key = "M"; cmd = ''exec,change_colors_json manual && notify-send 'NxTheme' 'change_colors_json manual successfull' ''; }}
|
||||
${action_simple { key = "D"; cmd = ''exec,firefox ${hyper.home}/.config/color-pallete.html''; }}
|
||||
bind = , Escape, execr, submap_indicator unset
|
||||
bind = , Escape, submap, reset
|
||||
submap = reset
|
||||
|
||||
submap = tuda
|
||||
${action_simple { key = "T"; cmd = ''exec,firefox https://www.tucan.tu-darmstadt.de/''; }}
|
||||
${action_simple { key = "M"; cmd = ''exec,firefox https://moodle.tu-darmstadt.de/''; }}
|
||||
${action_simple { key = "I"; cmd = ''exec,firefox https://moodle.informatik.tu-darmstadt.de/''; }}
|
||||
bind = , Escape, execr, submap_indicator unset
|
||||
bind = , Escape, submap, reset
|
||||
submap = reset
|
||||
|
||||
|
||||
plugin {
|
||||
hyprexpo {
|
||||
columns = 5
|
||||
gap_size = ${builtins.toString rice.gap-size}
|
||||
bg_col = rgb(${builtins.substring 1 6 rice.color.background})
|
||||
workspace_method = first 10 # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
|
||||
enable_gesture = false # laptop touchpad, 4 fingers
|
||||
gesture_distance = 300 # how far is the "max"
|
||||
gesture_positive = true # positive = swipe down. Negative = swipe up.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
plugin {
|
||||
overview {
|
||||
panelColor = rgba(00000088)
|
||||
workspaceActiveBackground = rgba(00ff00ff)
|
||||
workspaceInactiveBackground = rgba(0000ffff)
|
||||
# workspaceActiveBorder =
|
||||
# workspaceInactiveBorder =
|
||||
dragAlpha = 0.5
|
||||
panelHeight = 200
|
||||
workspaceMargin = 30
|
||||
workspaceBorderSize = 3
|
||||
centerAligned = true
|
||||
overrideGaps = false
|
||||
gapsIn = 0
|
||||
gapsOut = 0
|
||||
hideBackgroundLayers = false
|
||||
drawActiveWorkspace = true
|
||||
autoDrag = true
|
||||
autoScroll = true
|
||||
exitOnClick = false
|
||||
switchOnDrop = false
|
||||
exitOnSwitch = trueß
|
||||
showNewWorkspace = true
|
||||
showEmptyWorkspace = false
|
||||
}
|
||||
}
|
||||
|
||||
# allows repeated switching with same keypress that starts the submap
|
||||
binde = SUPER, TAB, exec, hyprswitch --daemon --do-initial-execute
|
||||
bind = SUPER, TAB, submap, switch
|
||||
bind = SUPER, TAB, exec, waybar_mode set "sw"
|
||||
|
||||
# allows repeated switching with same keypress that starts the submap
|
||||
binde = SUPER SHIFT, TAB, exec, hyprswitch --daemon --do-initial-execute -r
|
||||
bind = SUPER SHIFT, TAB, submap, switch
|
||||
bind = SUPER, TAB, exec, waybar_mode set "swr"
|
||||
|
||||
submap = switch
|
||||
# allow repeated window switching in submap (same keys as repeating while starting)
|
||||
binde = SUPER, TAB, exec, hyprswitch --daemon
|
||||
binde = SUPER SHIFT, TAB, exec, hyprswitch --daemon -r
|
||||
|
||||
# switch to specific window offset
|
||||
bind = , 1, exec, hyprswitch --daemon --offset=1
|
||||
bind = , 2, exec, hyprswitch --daemon --offset=2
|
||||
bind = , 3, exec, hyprswitch --daemon --offset=3
|
||||
bind = , 4, exec, hyprswitch --daemon --offset=4
|
||||
bind = , 5, exec, hyprswitch --daemon --offset=5
|
||||
bind = , 6, exec, hyprswitch --daemon --offset=6
|
||||
bind = , 7, exec, hyprswitch --daemon --offset=7
|
||||
bind = , 8, exec, hyprswitch --daemon --offset=8
|
||||
bind = , 8, exec, hyprswitch --daemon --offset=8
|
||||
bind = , 9, exec, hyprswitch --daemon --offset=9
|
||||
|
||||
bind = SUPER $reverse, 1, exec, hyprswitch --daemon --offset=1 -r
|
||||
bind = SUPER $reverse, 2, exec, hyprswitch --daemon --offset=2 -r
|
||||
bind = SUPER $reverse, 3, exec, hyprswitch --daemon --offset=3 -r
|
||||
bind = SUPER $reverse, 4, exec, hyprswitch --daemon --offset=4 -r
|
||||
bind = SUPER $reverse, 5, exec, hyprswitch --daemon --offset=5 -r
|
||||
bind = SUPER $reverse, 6, exec, hyprswitch --daemon --offset=6 -r
|
||||
bind = SUPER $reverse, 7, exec, hyprswitch --daemon --offset=7 -r
|
||||
bind = SUPER $reverse, 8, exec, hyprswitch --daemon --offset=8 -r
|
||||
bind = SUPER $reverse, 9, exec, hyprswitch --daemon --offset=9 -r
|
||||
bind = SUPER $reverse, 5, exec, hyprswitch --daemon --offset=5 -r
|
||||
|
||||
|
||||
# exit submap and stop hyprswitch
|
||||
bindrt = SUPER, SUPER_L, exec, hyprswitch --stop-daemon
|
||||
bindrt = SUPER, SUPER_L, submap, reset
|
||||
bindrt = SUPER, SUPER_L, exec, waybar_mode unset
|
||||
|
||||
# if it somehow doesn't close on releasing $switch_release, escape can kill
|
||||
bindr = ,escape, exec, pkill hyprswitch
|
||||
bindr = ,escape, submap, reset
|
||||
submap = screenshot
|
||||
${action_simple { key = "W"; cmd = ''exec,hyprshot -m window''; }}
|
||||
${action_simple { key = "M"; cmd = ''exec,hyprshot -m output''; }}
|
||||
${action_simple { key = "R"; cmd = ''exec,hyprshot -m region''; }}
|
||||
bind = , Escape, execr, submap_indicator unset
|
||||
bind = , Escape, submap, reset
|
||||
submap = reset
|
||||
|
||||
'';
|
||||
};
|
||||
|
||||
home.file =
|
||||
let
|
||||
m = if host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
||||
in
|
||||
{
|
||||
home.file = let
|
||||
m = if hyper.host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
||||
in {
|
||||
".config/hypr/hyprlock.conf".text = ''
|
||||
background {
|
||||
monitor = ${m}
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
path = /home/nx2/Pictures/nix-wall.png
|
||||
path = /home/nx2/Pictures/wallpapers/nix-wall.png
|
||||
blur_size = 4
|
||||
blur_passes = 3 # 0 disables blurring
|
||||
noise = 0.0117
|
||||
|
||||
2
home-modules/kitty.nix
Executable file → Normal file
2
home-modules/kitty.nix
Executable file → Normal file
@@ -3,7 +3,7 @@
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font = {
|
||||
name = rice.font.code.name2;
|
||||
name = rice.font.code.name;
|
||||
package = rice.font.code.package;
|
||||
};
|
||||
settings = with rice.color; {
|
||||
|
||||
4
home-modules/latex.nix
Executable file → Normal file
4
home-modules/latex.nix
Executable file → Normal file
@@ -1,5 +1,5 @@
|
||||
{ config, pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
texlab # LSP
|
||||
|
||||
20
home-modules/mako.nix
Executable file → Normal file
20
home-modules/mako.nix
Executable file → Normal file
@@ -1,16 +1,18 @@
|
||||
{ pkgs, rice, ... }:
|
||||
{ config, pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [ libnotify ];
|
||||
services.mako = with rice; {
|
||||
enable = true;
|
||||
defaultTimeout = 5000; # in ms
|
||||
backgroundColor = color.background;
|
||||
textColor = color.foreground;
|
||||
borderColor = color.border;
|
||||
borderSize = border-width;
|
||||
font = font.code.name2;
|
||||
borderRadius = rounding;
|
||||
enable = if config.programs.hyprpanel.enable then false else true;
|
||||
settings = {
|
||||
default-timeout = 5000; # in ms
|
||||
background-color = color.background;
|
||||
text-color = color.foreground;
|
||||
font = font.code.name;
|
||||
border-size = border-width;
|
||||
border-radius = rounding;
|
||||
border-color = color.border;
|
||||
anchor = "top-right";
|
||||
margin = builtins.toString (gap-size * 2) ;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, host, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# cinny-desktop
|
||||
@@ -79,7 +79,7 @@
|
||||
nx2site.ssl_verify = on
|
||||
nx2site.username = "nx2"
|
||||
nx2site.password = "''${sec.data.matrix_nx2site_password}"
|
||||
nx2site.device_name = "Weechat@${host}"
|
||||
nx2site.device_name = "Weechat@${hyper.host}"
|
||||
nx2site.autoreconnect_delay = 10
|
||||
nx2site.sso_helper_listening_port = 0
|
||||
'';
|
||||
|
||||
80
home-modules/mpv.nix
Normal file
80
home-modules/mpv.nix
Normal file
@@ -0,0 +1,80 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
package = pkgs.mpv;
|
||||
config = {
|
||||
# osc = false; # Disables the on-screen controller (seekbar, volume, etc.)
|
||||
# osd-bar = false; # Disables the on-screen display progress bar
|
||||
demuxer-max-back-bytes = 4294967296; # Sets the maximum number of bytes to buffer for seeking backwards
|
||||
demuxer-max-bytes = 4294967296; # Sets the maximum number of bytes to buffer for seeking forwards
|
||||
interpolation = true; # Enables frame interpolation for smoother playback
|
||||
video-sync = "display-resample"; # Synchronizes video playback to the display's refresh rate
|
||||
sub-visibility = true; # Hides subtitles by default
|
||||
sub-auto = "fuzzy"; # Automatically loads subtitles if their filename is similar to the video file
|
||||
sub-font = rice.font.base.name;
|
||||
# sub-blur = 10; # this blurs the whole thing, text aswell
|
||||
sub-color = rice.color.accent.bright;
|
||||
sub-back-color = "${rice.color.background}${rice.lib.float-to-drune 0.8}"; # does not seem to work
|
||||
# sub-border-size = 0;
|
||||
sub-border-style = "opaque-box";
|
||||
background-color = "${rice.color.background}"; # transparency breaks blur on hyprland sometimes, so just rgb
|
||||
alang = "en,eng,de,ger"; # Sets preferred audio languages in order
|
||||
slang = "en,eng,de,ger"; # Sets preferred subtitle languages in order
|
||||
vlang = "en,eng,de,ger"; # Sets preferred video languages in order
|
||||
save-position-on-quit = true; # Saves the playback position when quitting
|
||||
ignore-path-in-watch-later-config = true; # Ignores the path in the watch-later configuration
|
||||
ytdl-format = "bestvideo[height<=?1080]+bestaudio/best"; # Sets the format for downloading YouTube videos
|
||||
vo = pkgs.lib.mkIf hyper.nvidia.enable "gpu";
|
||||
hwdec = if hyper.nvidia.enable then "no" else "no"; # bugged
|
||||
};
|
||||
scripts = with pkgs.mpvScripts; [
|
||||
mpris # use media keys
|
||||
thumbfast # thumbnails on timeline hover
|
||||
# uosc # custom ui
|
||||
sponsorblock
|
||||
];
|
||||
bindings = {
|
||||
"O" = ''no-osd cycle-values glsl-shaders "~~/shaders/invert.glsl" ""; show-text "Invert Shader"'';
|
||||
# "tab" = ''script-binding uosc/toggle-ui'';
|
||||
# "space" = ''cycle pause; script-binding uosc/flash-pause-indicator'';
|
||||
# "right" = ''seek 5'';
|
||||
# "left" = ''seek -5'';
|
||||
# "shift+right" = ''seek 30; script-binding uosc/flash-timeline'';
|
||||
# "shift+left" = ''seek -30; script-binding uosc/flash-timeline'';
|
||||
# "m" = ''no-osd cycle mute; script-binding uosc/flash-volume'';
|
||||
# "up" = ''no-osd add volume 10; script-binding uosc/flash-volume'';
|
||||
# "down" = ''no-osd add volume -10; script-binding uosc/flash-volume'';
|
||||
# "[" = ''no-osd add speed -0.25; script-binding uosc/flash-speed'';
|
||||
# "]" = ''no-osd add speed 0.25; script-binding uosc/flash-speed'';
|
||||
# "\\" = ''no-osd set speed 1; script-binding uosc/flash-speed'';
|
||||
# ">" = ''script-binding uosc/next; script-message-to uosc flash-elements top_bar,timeline'';
|
||||
# "<" = ''script-binding uosc/prev; script-message-to uosc flash-elements top_bar,timeline>'';
|
||||
};
|
||||
scriptOpts = {
|
||||
thumbfast = {
|
||||
spawn_first = true;
|
||||
network = true;
|
||||
hwdec = true;
|
||||
};
|
||||
uosc = {
|
||||
timeline_size = 25;
|
||||
timeline_persistency = "paused,audio";
|
||||
progress = "always";
|
||||
progress_size = 4;
|
||||
progress_line_width = 4;
|
||||
controls = "subtitles,<has_many_audio>audio,<has_many_video>video,<has_many_edition>editions,<stream>stream-quality";
|
||||
top_bar = "never";
|
||||
refine = "text_width";
|
||||
};
|
||||
};
|
||||
};
|
||||
xdg.configFile."mpv/shaders/invert.glsl".text = /* glsl */ ''
|
||||
//!HOOK LUMA
|
||||
//!BIND HOOKED
|
||||
vec4 hook()
|
||||
{
|
||||
float luma = LUMA_texOff(0).x;
|
||||
return vec4(1.0 - luma);
|
||||
}
|
||||
'';
|
||||
}
|
||||
6
home-modules/nh.nix
Executable file → Normal file
6
home-modules/nh.nix
Executable file → Normal file
@@ -1,13 +1,13 @@
|
||||
{ config, pkgs-unstable, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs-unstable; [
|
||||
packages = with pkgs; [
|
||||
nh
|
||||
nix-output-monitor
|
||||
nvd
|
||||
];
|
||||
sessionVariables = {
|
||||
FLAKE = "${config.home.homeDirectory}/nix-dots";
|
||||
NH_FLAKE = "${hyper.home}/nix-dots";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nixd
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, nvidia, ... }:
|
||||
lib.mkIf (nvidia.enable == true)
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.nvidia.enable == true)
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
|
||||
2
home-modules/nx-gcal-event.nix
Executable file → Normal file
2
home-modules/nx-gcal-event.nix
Executable file → Normal file
@@ -1,4 +1,4 @@
|
||||
{ config, pkgs, secrets, ... }: let
|
||||
{ pkgs, ... }@all: with all;
|
||||
sep = " ";
|
||||
in {
|
||||
home = {
|
||||
|
||||
66
home-modules/nx2site-backup.nix
Normal file
66
home-modules/nx2site-backup.nix
Normal file
@@ -0,0 +1,66 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "nx_backup";
|
||||
runtimeInputs = [ ];
|
||||
text = let
|
||||
web-root = hyper.webroot;
|
||||
gitea-backup = "/var/backup/gitea";
|
||||
postgres-backup = "/var/backup/postgresql";
|
||||
in /* bash */ ''
|
||||
DIRECTORIES=(
|
||||
"${web-root}"
|
||||
"${gitea-backup}"
|
||||
"${postgres-backup}"
|
||||
)
|
||||
|
||||
NOW=$(date +%Y_%m_%d-%H_%M)
|
||||
TEMP_BAK_DIR=$(mktemp -d)
|
||||
TEMP_WORKING_DIR=$(mktemp -d)
|
||||
ZIP_NAME="nx2site-backup-''${NOW}.zip"
|
||||
ZIP_FILE="$TEMP_WORKING_DIR/$ZIP_NAME"
|
||||
ENCRYPTED_NAME="''${ZIP_NAME}.asc"
|
||||
ENCRYPTED_FILE="$TEMP_WORKING_DIR/$ENCRYPTED_NAME"
|
||||
DESTINATION="/vault/$ENCRYPTED_NAME"
|
||||
WEBROOT="${web-root}"
|
||||
|
||||
echo "Fixing Permissions of Gitea dump"
|
||||
sudo chmod -R g+r "${gitea-backup}"
|
||||
|
||||
echo "Fixing Permissions of Postgres dump"
|
||||
sudo chmod -R g+r "${postgres-backup}"
|
||||
sudo chmod g+x "${postgres-backup}"
|
||||
echo "Fixing Ownership of Postgres dump"
|
||||
sudo chown -R postgres:postgres "${postgres-backup}"
|
||||
|
||||
echo "Copying files to backup to tempoary directory $TEMP_BAK_DIR ..."
|
||||
for DIR in "''${DIRECTORIES[@]}"; do
|
||||
rsync -aR "$DIR" "$TEMP_BAK_DIR"
|
||||
done
|
||||
|
||||
# Create the zip file
|
||||
echo "Adding files to $ZIP_NAME ..."
|
||||
zip -qr "$ZIP_FILE" "$TEMP_BAK_DIR"
|
||||
|
||||
# Encrypt the zip file using GPG
|
||||
echo "Encryping file with gpg"
|
||||
gpg -e -r gpg@nx2.site -o "$ENCRYPTED_FILE" "$ZIP_FILE"
|
||||
|
||||
echo "Moving file to Destination $DESTINATION"
|
||||
mv "$ENCRYPTED_FILE" "$DESTINATION"
|
||||
|
||||
echo "Updating latest-bakup path in $WEBROOT"
|
||||
echo "$DESTINATION" > "$WEBROOT/latest-backup"
|
||||
|
||||
echo "Cleaning up tempoary files and directories"
|
||||
rm -rf "$TEMP_BAK_DIR" "$TEMP_WORKING_DIR" "$ZIP_FILE"
|
||||
|
||||
echo "Backup and encryption complete: $DESTINATION"
|
||||
|
||||
echo "Space remaining:"
|
||||
dysk
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
(writeShellApplication {
|
||||
|
||||
51
home-modules/nxgs.nix
Normal file
51
home-modules/nxgs.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
ghostscript
|
||||
(writeShellApplication rec {
|
||||
name = "nxgs";
|
||||
text = /* bash */ ''
|
||||
print_help() {
|
||||
echo "Usage: ${name} {flip <file(s)>|rotate <file(s)>|merge <Out File Name> <files>}"
|
||||
}
|
||||
if [ $# -lt 1 ]; then
|
||||
print_help; exit 1;
|
||||
fi
|
||||
case "$1" in
|
||||
flip)
|
||||
for FILE in "''${@:2}"; do
|
||||
NXGSTEMP=$(mktemp)
|
||||
gs -o "$NXGSTEMP" -sDEVICE=pdfwrite -c "<</Orientation 2>> setpagedevice" -f "$FILE"
|
||||
mv "$NXGSTEMP" "$FILE"
|
||||
done
|
||||
;;
|
||||
rotate)
|
||||
for FILE in "''${@:2}"; do
|
||||
NXGSTEMP=$(mktemp)
|
||||
gs -o "$NXGSTEMP" -sDEVICE=pdfwrite -c "<</Orientation 1>> setpagedevice" -f "$FILE"
|
||||
mv "$NXGSTEMP" "$FILE"
|
||||
done
|
||||
;;
|
||||
merge)
|
||||
gs -dBATCH -dNOPAUSE -q -sOUTPUTFILE="$3" -sDEVICE=pdfwrite "''${@:3}"
|
||||
;;
|
||||
interactive-merge)
|
||||
echo -n "Enter Name of the merged file without extension: "; read -r MERGED
|
||||
NXGSTEMP=$(mktemp)
|
||||
echo "''${@:2}" | tr " " "\n" > "$NXGSTEMP"
|
||||
$EDITOR "$NXGSTEMP"
|
||||
mapfile -t FILES < "$NXGSTEMP"
|
||||
gs -dBATCH -dNOPAUSE -q -sOUTPUTFILE="''${MERGED}.pdf" -sDEVICE=pdfwrite "''${FILES[@]}"
|
||||
rm "$NXGSTEMP"
|
||||
;;
|
||||
*)
|
||||
echo "Error: Unknown command '$1'"
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
# home.packages = with pkgs; [
|
||||
# obs-studio
|
||||
|
||||
2
home-modules/office.nix
Executable file → Normal file
2
home-modules/office.nix
Executable file → Normal file
@@ -1,4 +1,4 @@
|
||||
{ config, pkgs, lib, user, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
libreoffice
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
ollama
|
||||
(writers.writePython3Bin "ooo" {
|
||||
libraries = [ pkgs.python3Packages.ollama ];
|
||||
flakeIgnore = [ "E501" "E305" "E701" "E704" "E302" "E114" "F841" "E121" ];
|
||||
@@ -15,10 +16,10 @@ if len(sys.argv) < 2:
|
||||
system_message = sys.argv[1]
|
||||
input_text = sys.stdin.read()
|
||||
try:
|
||||
response = ollama.chat(model='llama3.1:8b', messages=[
|
||||
response = ollama.chat(model='gemma3:4b', messages=[
|
||||
{
|
||||
'role': 'system',
|
||||
'content': "You are a text transformer. Follow the folling instruction:\n\n" + system_message + "\n\nOnly output the transformed text. Do not add any addidional conversation around the output. Just the result.",
|
||||
'content': system_message,
|
||||
},
|
||||
{
|
||||
'role': 'user',
|
||||
|
||||
29
home-modules/opencode.nix
Normal file
29
home-modules/opencode.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
latest.opencode
|
||||
];
|
||||
file.".config/opencode/opencode.json".text = let
|
||||
model = "qwen2.5-coder:7b";
|
||||
in builtins.toJSON {
|
||||
"$schema" = "https://opencode.ai/config.json";
|
||||
model = "ollama/${model}";
|
||||
theme = "matrix";
|
||||
provider = {
|
||||
ollama = {
|
||||
name = "Ollama (local)";
|
||||
npm = "@ai-sdk/openai-compatible";
|
||||
options = {
|
||||
baseURL = "http://localhost:11434/v1";
|
||||
};
|
||||
models = {
|
||||
"${model}" = {
|
||||
tools = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
pandoc
|
||||
|
||||
16
home-modules/pkgs-list/desktop.nix
Normal file
16
home-modules/pkgs-list/desktop.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [
|
||||
brightnessctl
|
||||
blueman
|
||||
fontpreview
|
||||
gtk3
|
||||
gsettings-desktop-schemas
|
||||
imv
|
||||
pavucontrol
|
||||
# playerctl
|
||||
swww
|
||||
wev
|
||||
wl-clipboard
|
||||
xclip
|
||||
];
|
||||
}
|
||||
15
home-modules/pkgs-list/programs.nix
Normal file
15
home-modules/pkgs-list/programs.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ pkgs, hyper, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
chromium
|
||||
element-desktop
|
||||
qbittorrent
|
||||
unstable.spotify
|
||||
wl-clipboard
|
||||
xfce.thunar
|
||||
] ++ (if (hyper.host != "NxACE") then [
|
||||
signal-desktop
|
||||
obsidian
|
||||
zoom-us
|
||||
inkscape
|
||||
] else []);
|
||||
}
|
||||
38
home-modules/pkgs-list/shell.nix
Normal file
38
home-modules/pkgs-list/shell.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
cmake
|
||||
dig
|
||||
du-dust
|
||||
dysk
|
||||
exiftool
|
||||
eza
|
||||
ffmpeg
|
||||
figlet
|
||||
fzf
|
||||
gh
|
||||
glib
|
||||
glow
|
||||
gnumake
|
||||
htop
|
||||
imagemagick
|
||||
jq
|
||||
lolcat
|
||||
lynx
|
||||
mediainfo
|
||||
neofetch
|
||||
pastel
|
||||
pdfgrep
|
||||
pipes
|
||||
pv
|
||||
reflex
|
||||
ripgrep
|
||||
screen
|
||||
speedtest-go
|
||||
sssnake
|
||||
systemctl-tui
|
||||
tldr
|
||||
w3m
|
||||
yt-dlp
|
||||
];
|
||||
}
|
||||
6
home-modules/pnx.nix
Executable file → Normal file
6
home-modules/pnx.nix
Executable file → Normal file
@@ -1,5 +1,5 @@
|
||||
{ pkgs, lib, host, secrets, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.remmina
|
||||
@@ -7,7 +7,7 @@ lib.mkIf (host != "NxACE")
|
||||
|
||||
(pkgs.writeShellScriptBin "connect_to_pnx" ''
|
||||
pushd ~/.vpn/
|
||||
sudo openvpn --config /home/nx2/.vpn/ljk-pnx.ovpn --auth-user-pass ~/.vpn/ljk-pnx-pass.txt #gets put there by home-manager
|
||||
sudo openvpn --config ${hyper.home}/.vpn/ljk-pnx.ovpn --auth-user-pass ~/.vpn/ljk-pnx-pass.txt #gets put there by home-manager
|
||||
popd
|
||||
'')
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
{ pkgs, pkgs-unstable, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
erlang
|
||||
rebar3
|
||||
] ++ (with pkgs-unstable; [
|
||||
gleam
|
||||
]);
|
||||
];
|
||||
}
|
||||
|
||||
8
home-modules/programming/glsl.nix
Normal file
8
home-modules/programming/glsl.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
glsl_analyzer
|
||||
];
|
||||
};
|
||||
}
|
||||
8
home-modules/programming/go.nix
Normal file
8
home-modules/programming/go.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
go
|
||||
];
|
||||
};
|
||||
}
|
||||
8
home-modules/programming/java.nix
Normal file
8
home-modules/programming/java.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
jdk
|
||||
];
|
||||
};
|
||||
}
|
||||
7
home-modules/programming/js.nix
Normal file
7
home-modules/programming/js.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nodejs
|
||||
typescript-language-server
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ pkgs, lib, host, ... }:
|
||||
lib.mkIf (host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nodejs
|
||||
];
|
||||
}
|
||||
10
home-modules/programming/python.nix
Executable file → Normal file
10
home-modules/programming/python.nix
Executable file → Normal file
@@ -1,18 +1,20 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = let
|
||||
python-with-packages = pkgs.python3.withPackages (pp: with pp; [
|
||||
ipython
|
||||
pipdeptree
|
||||
requests
|
||||
google google-api-python-client google-auth-httplib2 google-auth-oauthlib
|
||||
debugpy
|
||||
black
|
||||
]);
|
||||
in {
|
||||
packages = [
|
||||
python-with-packages
|
||||
];
|
||||
] ++ (with pkgs; [
|
||||
python311Packages.python-lsp-server
|
||||
ruff
|
||||
pyright
|
||||
]);
|
||||
sessionVariables = {
|
||||
PYTHONPATH = "${python-with-packages}/${python-with-packages.sitePackages}";
|
||||
};
|
||||
|
||||
6
home-modules/qt.nix
Executable file → Normal file
6
home-modules/qt.nix
Executable file → Normal file
@@ -1,6 +1,8 @@
|
||||
{ pkgs, lib, user, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
qt = {
|
||||
platformTheme = "gtk";
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "adwaita-dark";
|
||||
};
|
||||
}
|
||||
|
||||
33
home-modules/rclone.nix
Normal file
33
home-modules/rclone.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [ rclone ];
|
||||
sops.secrets."nx2site/copyparty/user-password/${hyper.user}".path = "%r/secrets/copyparty/user-password/${hyper.user}";
|
||||
programs.rclone = {
|
||||
enable = true;
|
||||
package = pkgs.rclone;
|
||||
remotes = {
|
||||
"file.${hyper.domain}" = {
|
||||
config = {
|
||||
type = "webdav";
|
||||
vendor = "owncloud"; # copyparty
|
||||
url = "https://file.${hyper.domain}/";
|
||||
user = hyper.user;
|
||||
pacer_min_sleep = "0.01ms";
|
||||
};
|
||||
mounts = {
|
||||
"" = {
|
||||
enable = true;
|
||||
mountPoint = "${hyper.home}/file.nx2.site/";
|
||||
options = {
|
||||
vfs-cache-mode = "writes";
|
||||
dir-cache-time = "5s";
|
||||
};
|
||||
};
|
||||
};
|
||||
secrets = {
|
||||
pass = "/run/user/1000/secrets/copyparty/user-password/${hyper.user}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
5
home-modules/rofi.nix
Executable file → Normal file
5
home-modules/rofi.nix
Executable file → Normal file
@@ -1,4 +1,5 @@
|
||||
{ pkgs, rice, ... }: {
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
rofi-wayland
|
||||
];
|
||||
@@ -14,7 +15,7 @@
|
||||
}
|
||||
|
||||
* {
|
||||
font: "${rice.font.code.name2} 12";
|
||||
font: "${rice.font.code.name} 12";
|
||||
foreground: ${foreground};
|
||||
background-color: ${background}${trdr};
|
||||
padding: 0px;
|
||||
|
||||
6
home-modules/scanning.nix
Normal file
6
home-modules/scanning.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
xsane
|
||||
];
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
{ pkgs, rice, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
let
|
||||
my-sent = pkgs.sent.override {
|
||||
patches = [
|
||||
./sent.patch
|
||||
# /home/${user}/.local/share/sent.patch
|
||||
# (builtins.toFile "/home/${user}/
|
||||
];
|
||||
};
|
||||
in
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ user, inputs, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
];
|
||||
|
||||
sops = {
|
||||
# age.keyFile = "/home/${user}/.config/sops/age/keys.txt";
|
||||
gnupg.home = "/home/${user}/.gnupg";
|
||||
age.keyFile = lib.mkIf (hyper.host == "NxACE") "${hyper.home}.age_nx2_key_13.txt";
|
||||
gnupg.home = lib.mkIf (hyper.host != "NxACE") "${hyper.home}.gnupg";
|
||||
defaultSopsFile = ../sops-secrets.yaml;
|
||||
|
||||
# %r is $XDG_RUNTIME_DIR
|
||||
|
||||
18
home-modules/ssh.nix
Executable file → Normal file
18
home-modules/ssh.nix
Executable file → Normal file
@@ -1,27 +1,27 @@
|
||||
{ pkgs, domain, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [ sshfs ];
|
||||
file.".ssh/config".text = ''
|
||||
HOST nxace
|
||||
HostName ssh.${domain}
|
||||
User nx2
|
||||
HostName ssh.${hyper.domain}
|
||||
User ${hyper.user}
|
||||
Port 50022
|
||||
|
||||
HOST nxacel
|
||||
HostName 192.168.178.32
|
||||
User nx2
|
||||
HostName 10.0.1.1
|
||||
User ${hyper.user}
|
||||
Port 50022
|
||||
|
||||
HOST nxrpil
|
||||
HostName 192.168.178.31
|
||||
User nx2
|
||||
HostName 10.0.1.31
|
||||
User ${hyper.user}
|
||||
Port 22
|
||||
|
||||
HOST nxgit
|
||||
HostName ssh.${domain}
|
||||
HostName ssh.${hyper.domain}
|
||||
User git
|
||||
Port 20022
|
||||
Port 50022
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
3
home-modules/starship.nix
Executable file → Normal file
3
home-modules/starship.nix
Executable file → Normal file
@@ -1,7 +1,8 @@
|
||||
{ lib, rice, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
package = pkgs.starship;
|
||||
# enableBashIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
settings = with rice.color; {
|
||||
|
||||
3
home-modules/tts.nix
Executable file → Normal file
3
home-modules/tts.nix
Executable file → Normal file
@@ -1,5 +1,4 @@
|
||||
{ pkgs, lib, user, ... }:
|
||||
lib.mkIf (user != "tv")
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
(writeShellApplication {
|
||||
|
||||
8
home-modules/typst.nix
Normal file
8
home-modules/typst.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host != "NxACE")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
typst
|
||||
tinymist
|
||||
];
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }: let
|
||||
{ pkgs, ... }@all: with all; let
|
||||
vws = pkgs.vale.withStyles (s: [ s.alex s.google ]);
|
||||
in {
|
||||
home = {
|
||||
|
||||
4
home-modules/virt-manager.nix
Executable file → Normal file
4
home-modules/virt-manager.nix
Executable file → Normal file
@@ -1,5 +1,5 @@
|
||||
{ config, pkgs, lib, host, ... }:
|
||||
lib.mkIf (host == "NxNORTH")
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host == "NxNORTH")
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
virt-manager
|
||||
|
||||
107
home-modules/vscode.nix
Executable file → Normal file
107
home-modules/vscode.nix
Executable file → Normal file
@@ -1,6 +1,6 @@
|
||||
{ config, pkgs, lib, user, host, rice, allowed, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
config = lib.mkIf (host != "NxACE") {
|
||||
config = lib.mkIf (hyper.host != "NxACE") {
|
||||
home.packages = [
|
||||
pkgs.vscodium
|
||||
pkgs.nixpkgs-fmt
|
||||
@@ -8,6 +8,36 @@
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
profiles.default ={
|
||||
userSettings = {
|
||||
workbench.colorTheme = "Just Black";
|
||||
editor.fontFamily = "'${rice.font.code.name}', 'monospace', monospace";
|
||||
remote.SSH.useLocalServer = false;
|
||||
};
|
||||
keybindings = [
|
||||
{
|
||||
key = "ctrl+d";
|
||||
command = "editor.action.deleteLines";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
key = "ctrl+shift+d";
|
||||
command = "editor.action.duplicateSelection";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl d is not set twice
|
||||
key = "";
|
||||
command = "editor.action.addSelectionToNextFindMatch";
|
||||
when = "editorFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl shift d is not set twice
|
||||
key = "";
|
||||
command = "workbench.view.debug";
|
||||
}
|
||||
];
|
||||
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
ms-python.python
|
||||
@@ -23,8 +53,6 @@
|
||||
mads-hartmann.bash-ide-vscode
|
||||
bungcip.better-toml
|
||||
arrterian.nix-env-selector
|
||||
# ms-vscode-remote.remote-ssh
|
||||
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
{
|
||||
name = "just-black";
|
||||
@@ -50,66 +78,27 @@
|
||||
version = "0.5.16";
|
||||
sha256 = "sha256-oHwtlbB18ctEnfStDOpJ+2/Kq41JZog8FVhTa1/s7m0=";
|
||||
}
|
||||
# {
|
||||
# name = "remote-ssh-edit";
|
||||
# publisher = "ms-vscode-remote";
|
||||
# version = "0.86.0";
|
||||
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
|
||||
# }
|
||||
# {
|
||||
# name = "remote-ssh";
|
||||
# publisher = "ms-vscode-remote";
|
||||
# version = "0.110.2024030715";
|
||||
# sha256 = "sha256-gkxrBwPRDdLFaxc1/vYFBsv4Z0JOhDzb8LrLhkToC/g=";
|
||||
# }
|
||||
];
|
||||
userSettings = {
|
||||
workbench.colorTheme = "Just Black";
|
||||
editor.fontFamily = "'${rice.font.code.name2}', 'monospace', monospace";
|
||||
remote.SSH.useLocalServer = false;
|
||||
};
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
keybindings = [
|
||||
{
|
||||
key = "ctrl+d";
|
||||
command = "editor.action.deleteLines";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
key = "ctrl+shift+d";
|
||||
command = "editor.action.duplicateSelection";
|
||||
when = "textInputFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl d is not set twice
|
||||
key = "";
|
||||
command = "editor.action.addSelectionToNextFindMatch";
|
||||
when = "editorFocus";
|
||||
}
|
||||
{
|
||||
# unset so that ctrl shift d is not set twice
|
||||
key = "";
|
||||
command = "workbench.view.debug";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = if host != "NxACE" then [
|
||||
# Make vscode settings writable
|
||||
(import
|
||||
(builtins.fetchurl {
|
||||
url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix";
|
||||
sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8";
|
||||
})
|
||||
{ inherit config lib; })
|
||||
# imports = if hyper.host != "NxACE" then [
|
||||
# # Make vscode settings writable
|
||||
# (import
|
||||
# (builtins.fetchurl {
|
||||
# url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix";
|
||||
# sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8";
|
||||
# })
|
||||
# { inherit config pkgs; lib = lib; })
|
||||
|
||||
(import
|
||||
(builtins.fetchurl {
|
||||
url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix";
|
||||
sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f";
|
||||
})
|
||||
{ inherit config lib pkgs; })
|
||||
] else [];
|
||||
# (import
|
||||
# (builtins.fetchurl {
|
||||
# url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix";
|
||||
# sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f";
|
||||
# })
|
||||
# { inherit config pkgs; lib = lib; })
|
||||
# ] else [];
|
||||
}
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
{ pkgs-unstable, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs-unstable; [
|
||||
home.packages = with pkgs; [
|
||||
(writers.writePython3Bin "change_colors_json" {
|
||||
libraries = with python3Packages; [ numpy pillow scikit-learn ];
|
||||
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
||||
} /*python */ ''
|
||||
from colorsys import hls_to_rgb, rgb_to_hls
|
||||
import json
|
||||
import sys
|
||||
from typing import Literal, cast
|
||||
from numpy.typing import NDArray
|
||||
from sklearn.cluster import KMeans
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
from colorsys import hls_to_rgb, rgb_to_hls
|
||||
import json
|
||||
import sys
|
||||
import subprocess
|
||||
from time import sleep
|
||||
from typing import Literal, cast
|
||||
from numpy.typing import NDArray
|
||||
from sklearn.cluster import KMeans
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
|
||||
def fc(c: int) -> str:
|
||||
def fc(c: int) -> str:
|
||||
assert c < 256
|
||||
s = str(hex(c))[2:]
|
||||
if c < 16:
|
||||
@@ -24,8 +26,8 @@ def fc(c: int) -> str:
|
||||
else:
|
||||
return s
|
||||
|
||||
class Color(object):
|
||||
def __init__(self, rgb: tuple[int, ...], frequency: float):
|
||||
class Color(object):
|
||||
def __init__(self, rgb: tuple[int, ...], frequency: float = 1):
|
||||
assert len(rgb) == 3, "RGB values must be a tuple of length 3"
|
||||
self.rgb = cast(tuple[int, int, int], rgb)
|
||||
self.freq: float = frequency
|
||||
@@ -41,7 +43,7 @@ class Color(object):
|
||||
def luminance(self) -> float:
|
||||
return np.dot(np.array([0.2126, 0.7152, 0.0722]), self.rgb)
|
||||
|
||||
def k_means_extraction(arr: NDArray[float], height: int, width: int, palette_size: int) -> list[Color]:
|
||||
def k_means_extraction(arr: NDArray[float], height: int, width: int, palette_size: int) -> list[Color]:
|
||||
arr = np.reshape(arr, (width * height, -1))
|
||||
model = KMeans(n_clusters=palette_size, n_init="auto", init="k-means++", random_state=2024)
|
||||
labels = model.fit_predict(arr)
|
||||
@@ -54,7 +56,7 @@ def k_means_extraction(arr: NDArray[float], height: int, width: int, palette_siz
|
||||
return colors
|
||||
|
||||
|
||||
class Palette:
|
||||
class Palette:
|
||||
def __init__(self, colors: list[Color]):
|
||||
self.colors = colors
|
||||
self.frequencies = [c.freq for c in colors]
|
||||
@@ -65,20 +67,20 @@ class Palette:
|
||||
def __len__(self) -> int:
|
||||
return self.number_of_colors
|
||||
|
||||
def ensure_color(c: Color, alter_sat: bool) -> list[int]:
|
||||
def ensure_color(c: Color, alter_sat: bool) -> list[int]:
|
||||
hue, lum, sat = c.hls
|
||||
if alter_sat:
|
||||
new_sat = min((sat**0.5) + 0.4, 1)
|
||||
else:
|
||||
new_sat = sat
|
||||
new_lum = max(lum, 0.5)
|
||||
new_lum = 0.6
|
||||
r, g, b = hls_to_rgb(h=hue, l=new_lum, s=new_sat)
|
||||
return [int(r*255), int(g*255), int(b*255)]
|
||||
|
||||
def list_to_hex(ilist: list[int]) -> str:
|
||||
def list_to_hex(ilist: list[int]) -> str:
|
||||
return f"#{fc(ilist[0])}{fc(ilist[1])}{fc(ilist[2])}"
|
||||
|
||||
def alter_hue(ilist: list[int], hue: int) -> list[int]:
|
||||
def alter_hue(ilist: list[int], hue: int) -> list[int]:
|
||||
assert hue >= 0 and hue <= 360
|
||||
r, g, b = ilist
|
||||
h, l, s = rgb_to_hls((r/255), (g/255), (b/255))
|
||||
@@ -86,19 +88,19 @@ def alter_hue(ilist: list[int], hue: int) -> list[int]:
|
||||
r, g, b = hls_to_rgb(h=new_hue, l=l, s=s)
|
||||
return [int(r*255), int(g*255), int(b*255)]
|
||||
|
||||
def alter_l(ilist: list[int], l_in_1_0: float) -> list[int]:
|
||||
def alter_l(ilist: list[int], l_in_1_0: float) -> list[int]:
|
||||
assert l_in_1_0 >= 0 and l_in_1_0 <= 1
|
||||
r, g, b = ilist
|
||||
h, _, s = rgb_to_hls((r/255), (g/255), (b/255))
|
||||
r, g, b = hls_to_rgb(h=h, l=l_in_1_0, s=s)
|
||||
return [int(r*255), int(g*255), int(b*255)]
|
||||
|
||||
def extract_colors(
|
||||
def extract_colors(
|
||||
image: str,
|
||||
palette_size: int = 5,
|
||||
resize: bool = True,
|
||||
sort_mode: Literal["luminance", "frequency"] | None = None,
|
||||
) -> Palette:
|
||||
) -> Palette:
|
||||
|
||||
img = Image.open(image).convert("RGB")
|
||||
|
||||
@@ -115,14 +117,25 @@ def extract_colors(
|
||||
colors.sort(reverse=True)
|
||||
|
||||
return Palette(colors)
|
||||
if __name__ == "__main__":
|
||||
img = sys.argv[1]
|
||||
|
||||
def hyprpicker() -> Color:
|
||||
ret = str(subprocess.run(["bash", "-c", "${pkgs.hyprpicker}/bin/hyprpicker -n -f rgb | tail -n 1"], capture_output=True).stdout)[2:-3]
|
||||
return Color([int(c) for c in ret.split(" ")])
|
||||
|
||||
if __name__ == "__main__":
|
||||
if sys.argv[1] == "img":
|
||||
img = sys.argv[2]
|
||||
palette = extract_colors(image=img, palette_size=3)
|
||||
|
||||
accent = ensure_color(c=palette[0], alter_sat=False)
|
||||
secondary = ensure_color(c=palette[1], alter_sat=True)
|
||||
tertiary = ensure_color(c=palette[2], alter_sat=False)
|
||||
elif sys.argv[1] == "manual":
|
||||
accent = ensure_color(c=hyprpicker(), alter_sat=False)
|
||||
sleep(0.1)
|
||||
secondary = ensure_color(c=hyprpicker(), alter_sat=True)
|
||||
sleep(0.1)
|
||||
tertiary = ensure_color(c=hyprpicker(), alter_sat=False)
|
||||
|
||||
weird = alter_hue(ilist=accent, hue=80)
|
||||
special = alter_hue(ilist=accent, hue=180)
|
||||
foreground = alter_l(accent, 0.9)
|
||||
@@ -144,6 +157,6 @@ if __name__ == "__main__":
|
||||
|
||||
with open("/home/nx2/nix-dots/flake-modules/colors.json", "w") as f:
|
||||
f.write(json.dumps(d, indent=4))
|
||||
'')
|
||||
'')
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,250 +0,0 @@
|
||||
{ lib, pkgs, user, rice, ... }: let
|
||||
sep = " ";
|
||||
in {
|
||||
home.packages =
|
||||
let
|
||||
waybar_mode_script = /*bash*/ ''
|
||||
print_help() {
|
||||
echo "Usage: waybar_mode {set <string>|unset}"
|
||||
}
|
||||
if [ $# -lt 1 ]; then
|
||||
print_help; exit 1;
|
||||
fi
|
||||
case "$1" in
|
||||
set)
|
||||
# Check if there is a second argument for the 'set' operation
|
||||
if [ $# -eq 2 ]; then
|
||||
echo "$2" > /tmp/waybar-mode
|
||||
pkill -RTMIN+8 waybar
|
||||
else
|
||||
echo "Error: 'set' operation requires exactly one string argument."
|
||||
print_help
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
unset)
|
||||
echo "" > /tmp/waybar-mode
|
||||
pkill -RTMIN+8 waybar
|
||||
;;
|
||||
*)
|
||||
echo "Error: Unknown command '$1'"
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
'';
|
||||
cclock_script = /*bash*/ ''
|
||||
ord=$(date +"%e" | awk '{printf("%d%s\n", $1, ($1==11||$1==12||$1==13)?"th":((($1%10)==1)?"st":((($1%10)==2)?"nd":((($1%10)==3)?"rd":"th"))))}')
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "${sep}$(date +'%A the')" "$ord" "of" "$(date +'%B')" " ${sep}$(date +'%R')"
|
||||
elif [ "$1" = "--no-icons" ]; then
|
||||
echo "$(date +'%A the')" "$ord" "of" "$(date +'%B')" "$(date +'%R')"
|
||||
fi
|
||||
'';
|
||||
in
|
||||
with pkgs; [
|
||||
(writeShellApplication { name = "waybar_mode"; text = waybar_mode_script;})
|
||||
(writeShellApplication { name = "cclock"; text = cclock_script;})
|
||||
];
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar;
|
||||
settings = {
|
||||
bar = {
|
||||
# height = 20;
|
||||
layer = "top";
|
||||
position = "bottom";
|
||||
margin-top = 0;
|
||||
# margin-left = rice.gap-size;
|
||||
# margin-bottom = rice.gap-size;
|
||||
# margin-right = rice.gap-size;
|
||||
margin-left = 0;
|
||||
margin-bottom = 0;
|
||||
margin-right = 0;
|
||||
spacing = 10;
|
||||
modules-left = [
|
||||
# "cpu"
|
||||
# "memory"
|
||||
"wireplumber"
|
||||
"backlight"
|
||||
"battery"
|
||||
"network"
|
||||
"hyprland/window"
|
||||
];
|
||||
modules-center = [
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
modules-right = [
|
||||
"custom/mode"
|
||||
"custom/ctimeremaining"
|
||||
"custom/cclock"
|
||||
"tray"
|
||||
];
|
||||
"hyprland/workspaces" = {
|
||||
on-click = "activate";
|
||||
format = "{name}";
|
||||
all-outputs = false;
|
||||
active-only = false;
|
||||
};
|
||||
"hyprland/window" = {
|
||||
# format = "${sep}{}";
|
||||
format = "{}";
|
||||
separate-outputs = true;
|
||||
};
|
||||
"custom/cclock" = {
|
||||
exec = "cclock";
|
||||
restart-interval = 60;
|
||||
};
|
||||
# "custom/ctimeremaining" = {
|
||||
# exec = "nx_gcal_event lookup";
|
||||
# restart-interval = 60;
|
||||
# };
|
||||
"custom/mode" = {
|
||||
exec = "cat /tmp/waybar-mode";
|
||||
interval = "once";
|
||||
signal = 8;
|
||||
};
|
||||
|
||||
cpu = {
|
||||
interval = 1;
|
||||
format = "${sep}{}%";
|
||||
max-length = 10;
|
||||
};
|
||||
memory = {
|
||||
interval = 5;
|
||||
format = "${sep}{avail:.0f}G free";
|
||||
};
|
||||
battery = {
|
||||
interval = 60;
|
||||
tooltip = false;
|
||||
format = "{icon}${sep}{capacity}%";
|
||||
states = {
|
||||
warning = 15;
|
||||
critical = 5;
|
||||
};
|
||||
format-icons = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
format-charging = "{icon}${sep}+{capacity}%";
|
||||
format-plugged = "{icon}${sep}P{capacity}%";
|
||||
format-full = "{icon}${sep}F{capacity}%";
|
||||
};
|
||||
backlight = {
|
||||
device = "eDP-1";
|
||||
format = "{icon}${sep}{percent}%";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
network = {
|
||||
format-wifi = "${sep}{essid}";
|
||||
format-ethernet = "${sep}Wired";
|
||||
format-disconnected = "${sep}Disconnected";
|
||||
};
|
||||
wireplumber = {
|
||||
format = "${sep}{volume}%";
|
||||
format-muted = "${sep}--%";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = with rice.color; let f = rice.lib.hex-to-rgb-comma-string; in ''
|
||||
* {
|
||||
font-family: ${rice.font.code.name2};
|
||||
font-size: 1em;
|
||||
min-height: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(${f background},${builtins.toString rice.transparency});
|
||||
transition-duration: 5s;
|
||||
transition-property: background-color;
|
||||
/* border: ${builtins.toString rice.border-width}px solid rgb(${f border}); */
|
||||
/* margin: ${builtins.toString rice.gap-size}px; */
|
||||
/* border-radius: ${builtins.toString rice.rounding}px; */
|
||||
}
|
||||
|
||||
#clock,
|
||||
#custom-cclock,
|
||||
#custom-mode,
|
||||
#battery,
|
||||
#cpu,
|
||||
#tray,
|
||||
#disk,
|
||||
#backlight,
|
||||
#network,
|
||||
#wireplumber,
|
||||
#memory,
|
||||
#window,
|
||||
#workspaces {
|
||||
padding: 0px 3px;
|
||||
margin-top: 0.3em;
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
color: rgb(${f accent.bright});
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: rgb(${f accent.base});
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: rgb(${f background});
|
||||
background-color: rgba(${f accent.base},${builtins.toString rice.transparency});
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: rgb(${f tertiary.bright});
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: rgba(${f magenta.base},${builtins.toString rice.transparency});
|
||||
}
|
||||
|
||||
#custom-mode {
|
||||
color: rgb(${f red.base});
|
||||
}
|
||||
|
||||
#window, #custom-ctimeremaining {
|
||||
font-family: ${rice.font.base.name}, ${rice.font.code.name2};
|
||||
color: rgb(${f tertiary.bright});
|
||||
}
|
||||
|
||||
#wireplumber.muted {
|
||||
color: rgb(${f tertiary.bright});
|
||||
}
|
||||
#wireplumber {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: rgb(${f green.base});;
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: rgb(${f red.dark});;
|
||||
background: rgb(${f red.bright});
|
||||
}
|
||||
#battery.charging { color: rgb(${f green.base}); }
|
||||
'';
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
};
|
||||
}
|
||||
2
home-modules/wlogout.nix
Executable file → Normal file
2
home-modules/wlogout.nix
Executable file → Normal file
@@ -1,4 +1,4 @@
|
||||
{ pkgs, rice,... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [ wlogout ];
|
||||
|
||||
32
home-modules/xdg.nix
Normal file
32
home-modules/xdg.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
xdg = {
|
||||
enable = true;
|
||||
configHome = "${hyper.home}.config";
|
||||
cacheHome = "${hyper.home}.cache";
|
||||
dataHome = "${hyper.home}.local/share";
|
||||
stateHome = "${hyper.home}.local/state";
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = let
|
||||
browser = "firefox.desktop";
|
||||
image = "imv.desktop";
|
||||
in {
|
||||
"default-web-browser" = [ browser ];
|
||||
"text/html" = [ browser ];
|
||||
"text/htm" = [ browser ];
|
||||
"x-scheme-handler/http" = [ browser ];
|
||||
"x-scheme-handler/https" = [ browser ];
|
||||
"x-scheme-handler/about" = [ browser ];
|
||||
"x-scheme-handler/unknown" = [ browser ];
|
||||
"x-scheme-handler/mailto" = "thunderbird.desktop";
|
||||
"image/png" = image;
|
||||
"image/jpg" = image;
|
||||
"image/jpeg" = image;
|
||||
"image/webp" = image;
|
||||
"image/gif" = image;
|
||||
"application/pdf" = "zathura.desktop";
|
||||
"inode/directory" = "thunar.desktop";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user