Compare commits
403 Commits
gitea
...
e73b7333fc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e73b7333fc | ||
|
|
fcfc125373 | ||
|
|
3418cfd8f3 | ||
|
|
2585c76039 | ||
|
|
04f10a4afd | ||
|
|
651458875c | ||
|
|
9d04a09de8 | ||
|
|
0eaa052cd5 | ||
|
|
64a54b2cd6 | ||
|
|
55a22804c5 | ||
|
|
d85386bf9c | ||
|
|
1698d0f851 | ||
|
|
18d93e6b0c | ||
|
|
91020c0072 | ||
|
|
e6c5cd5ead | ||
|
|
068fd19353 | ||
|
|
6f7449839d | ||
|
|
9e2eb410ab | ||
|
|
fb974329e7 | ||
|
|
7a70d7dae3 | ||
|
|
e7c1c255bc | ||
|
|
52fe355b0a | ||
|
|
29a917ed37 | ||
|
|
7655e7b3bd | ||
|
|
858a8b77ec | ||
|
|
ba199f9568 | ||
|
|
5f3a3a6f30 | ||
|
|
9472550aaa | ||
|
|
1b7fe7f7ca | ||
|
|
b64abba7e5 | ||
|
|
df06425803 | ||
|
|
6befb22a59 | ||
|
|
b4cd70b5f6 | ||
|
|
78975da970 | ||
|
|
90c093fcef | ||
|
|
40eefbf948 | ||
|
|
042e8c7ee7 | ||
|
|
685a34fcbb | ||
|
|
812555c467 | ||
|
|
ffddb4773b | ||
|
|
98c0a26209 | ||
|
|
e25ad7891d | ||
|
|
470922dce2 | ||
|
|
b0cb61f05e | ||
|
|
e8373d6293 | ||
|
|
ff5de39a19 | ||
|
|
1fc8b2a7cb | ||
|
|
e19ed3ece1 | ||
|
|
4c178e57fa | ||
|
|
f7de7f740d | ||
|
|
6809a6494f | ||
|
|
21fee7056a | ||
|
|
d581209fdf | ||
|
|
67c1f6fb25 | ||
|
|
c1ca5b2cf5 | ||
|
|
3818645825 | ||
|
|
8e84355efd | ||
|
|
f11db2239e | ||
|
|
ebfd72baa8 | ||
|
|
6804f98b99 | ||
|
|
418dcad22c | ||
|
|
31925a5074 | ||
|
|
d3a407f1a5 | ||
|
|
122a4c6cd8 | ||
|
|
5fda879078 | ||
|
|
7b3d4e5dfd | ||
|
|
61984aecf9 | ||
|
|
e422234758 | ||
|
|
b7eb065442 | ||
|
|
60b4066e9b | ||
|
|
cea416b457 | ||
|
|
9d28a08cd4 | ||
|
|
6a4f270959 | ||
|
|
a4d6b98b4b | ||
|
|
ea3d4937ff | ||
|
|
aa6962cb0d | ||
|
|
fa168f01a6 | ||
|
|
511dac22a8 | ||
|
|
74fd62d6dc | ||
|
|
d8704de501 | ||
|
|
9f49dbbd98 | ||
|
|
caf48a81dd | ||
|
|
9399657469 | ||
|
|
10a50773e1 | ||
|
|
d81aa406a4 | ||
|
|
0f17b0c56e | ||
|
|
9b999bae90 | ||
|
|
1da06c73d1 | ||
|
|
84f7003bb6 | ||
|
|
4a83be441b | ||
|
|
e98cc3f4c5 | ||
|
|
07c637749a | ||
|
|
579887e825 | ||
|
|
a2003bc5aa | ||
|
|
d0964c01a7 | ||
|
|
04b2b7da33 | ||
|
|
f4f9e36b16 | ||
|
|
99b534a6a5 | ||
|
|
03131c8a65 | ||
|
|
7565b3163a | ||
|
|
960e786ee5 | ||
|
|
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
|
||||
|
||||
|
||||
10
.sops.yaml
10
.sops.yaml
@@ -1,7 +1,10 @@
|
||||
keys:
|
||||
- &users:
|
||||
- &nx2backup age1sgzc2jh8af30a3cp6g7l4hyzusqrn3x3xw7frghc4akvjaplwa3stfemxc
|
||||
- &nx2 22FB2CC03DC5292AB81CF67D0AF27B383170E634
|
||||
- &nx2_key_13 age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq
|
||||
- &xps-home age1pn4utvwpqdrswn0xurfdexn5nks9cd06jxzwg3m3m6za25ap4vxqxd0p3k
|
||||
- &ace-home age1ur5zpr325cv7w0yn49azz9f48xsxd73w2sytt22yrnw5qs9r34nsv3vl05
|
||||
- &north-home age1jr72q042ccgxpdgdaaev0arzc0vh3r02etv2tzhhsejl0mfaxs3q9hhlaz
|
||||
- &hosts:
|
||||
- &north age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e
|
||||
- &xps age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6
|
||||
@@ -13,6 +16,9 @@ creation_rules:
|
||||
- *north
|
||||
- *xps
|
||||
- *ace
|
||||
- *nx2backup
|
||||
- *nx2_key_13
|
||||
- *xps-home
|
||||
- *ace-home
|
||||
- *north-home
|
||||
pgp:
|
||||
- *nx2
|
||||
|
||||
124
configuration.nix
Executable file → Normal file
124
configuration.nix
Executable file → Normal file
@@ -1,127 +1,73 @@
|
||||
{ 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/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.systemPackages = import ./system-modules/base-packages.nix pkgs;
|
||||
|
||||
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 = ''
|
||||
if [[ "$USER" == "${hyper.user}" ]]; then
|
||||
source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
fi
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
|
||||
{
|
||||
unfree = [
|
||||
"cursor"
|
||||
"discord"
|
||||
"spotify"
|
||||
"obsidian"
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
"zoom-us"
|
||||
"zoom"
|
||||
|
||||
@@ -35,6 +38,8 @@
|
||||
"libnvjitlink"
|
||||
"libcusparse"
|
||||
"libnpp"
|
||||
|
||||
"vscode-extension-mhutchie-git-graph"
|
||||
];
|
||||
|
||||
inecure = [
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"base": {
|
||||
"foreground": "#eedce2",
|
||||
"background": "#221016"
|
||||
"foreground": "#eddbef",
|
||||
"background": "#100711"
|
||||
},
|
||||
"to_alter": {
|
||||
"accent": "#ac5271",
|
||||
"secondary": "#f20c5b",
|
||||
"tertiary": "#d5a287",
|
||||
"special": "#51ac8d",
|
||||
"weird": "#0cf2a3"
|
||||
"accent": "#ba71c0",
|
||||
"secondary": "#3266ff",
|
||||
"tertiary": "#4bb6e6",
|
||||
"special": "#76c071",
|
||||
"weird": "#c08571"
|
||||
}
|
||||
}
|
||||
@@ -6,15 +6,28 @@ pkgs: rec {
|
||||
rounding = 3;
|
||||
gap-size = 5;
|
||||
border-width = 2;
|
||||
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; };
|
||||
color = let
|
||||
dark = (-0.4);
|
||||
darker = (-0.6);
|
||||
bright = 0.4;
|
||||
brighter = 0.7;
|
||||
alter-set = let f = lib.alter-luminace-hex; in color-name: color-value: {
|
||||
base = color-value;
|
||||
dark = f color-value dark;
|
||||
darker = f color-value darker;
|
||||
bright = f color-value bright;
|
||||
brighter = f color-value brighter;
|
||||
};
|
||||
alter = let f = lib.alter-luminace-hex; in color-value: {
|
||||
base = color-value;
|
||||
dark = f color-value dark;
|
||||
darker = f color-value darker;
|
||||
bright = f color-value bright;
|
||||
brighter = f color-value brighter;
|
||||
};
|
||||
# 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,14 +39,15 @@ 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;
|
||||
# tertiary = magenta;
|
||||
# special = yellow;
|
||||
# weird = green;
|
||||
subtle = { darker = "#111111"; dark = "#444444"; base = "#777777"; bright = "#999999"; brighter = "#cccccc"; };
|
||||
positive = alter "#00dd00";
|
||||
negative = alter "#dd0000";
|
||||
border = accent.base;
|
||||
@@ -41,18 +55,16 @@ 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" ]; });
|
||||
code = rec {
|
||||
name = "JetBrainsMono Nerd Font";
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
regular-path = "${package}/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFont-Regular.ttf";
|
||||
};
|
||||
base = {
|
||||
# name = "NewComputerModern08";
|
||||
# package = pkgs.newcomputermodern;
|
||||
name = "Atkinson Hyperlegible";
|
||||
package = pkgs.atkinson-hyperlegible;
|
||||
package = pkgs.atkinson-hyperlegible-next;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
|
||||
775
flake.lock
generated
Executable file → Normal file
775
flake.lock
generated
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
150
flake.nix
Executable file → Normal file
150
flake.nix
Executable file → Normal file
@@ -2,70 +2,140 @@
|
||||
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
||||
|
||||
inputs = {
|
||||
nixpkgs = { url = "nixpkgs/nixos-24.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"; };
|
||||
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; };
|
||||
nixpkgs.url = "nixpkgs/nixos-25.05";
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
nixpkgs-latest.url = "github:nixos/nixpkgs?ref=master";
|
||||
nixpkgs24.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||
|
||||
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"; };
|
||||
|
||||
# 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";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager24 ={
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs24";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-latest, home-manager, ... }@inputs: let
|
||||
nix-on-droid = {
|
||||
url = "github:nix-community/nix-on-droid/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs24";
|
||||
inputs.home-manager.follows = "home-manager24";
|
||||
};
|
||||
|
||||
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.4.2";
|
||||
|
||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
hyprland-plugins = {
|
||||
url = "github:hyprwm/hyprland-plugins";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
|
||||
yazi.url = "github:sxyazi/yazi";
|
||||
|
||||
copyparty.url = "github:9001/copyparty";
|
||||
};
|
||||
|
||||
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 {
|
||||
system = "x86_64-linux";
|
||||
user = "nx2";
|
||||
domain = "nx2.site";
|
||||
home = "/home/${user}";
|
||||
webroot = "/var/lib/hugo/nx2site/public";
|
||||
};
|
||||
|
||||
config = { allowUnfree = true; allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
||||
get-pkgs = { host, system?system, nixpkgs?inputs.nixpkgs, version?"25.05" }: import nixpkgs {
|
||||
inherit system config;
|
||||
overlays = [(final: prev: {
|
||||
unstable = import nixpkgs-unstable { inherit system config; };
|
||||
latest = import nixpkgs-latest { inherit system config; };
|
||||
inherit version;
|
||||
})] ++ (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 = get-pkgs { inherit 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 = get-pkgs { inherit host; };
|
||||
modules = [ ./wsl.nix ];
|
||||
specialArgs = let
|
||||
hyper = hyper-base // { inherit host; };
|
||||
rice = import ./flake-modules/rice.nix pkgs;
|
||||
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; };
|
||||
NxDCS = make-nixos-wsl-system "NxDCS";
|
||||
};
|
||||
|
||||
nixOnDroidConfigurations = let
|
||||
makeNODConfiguration = host: nix-on-droid.lib.nixOnDroidConfiguration rec {
|
||||
pkgs = let
|
||||
options = { inherit host; system = "aarch64-linux"; };
|
||||
in (get-pkgs options) //
|
||||
(get-pkgs (options // { version = "24.05"; nixpkgs = nixpkgs24; } )
|
||||
);
|
||||
modules = [ ./nod.nix ];
|
||||
home-manager-path = home-manager24.outPath;
|
||||
extraSpecialArgs = let
|
||||
hyper = hyper-base // {
|
||||
inherit host;
|
||||
system = "aarch64-linux";
|
||||
user = "nix-on-droid";
|
||||
home = "/data/data/com.termux.nix/files/home";
|
||||
};
|
||||
rice = import ./flake-modules/rice.nix pkgs;
|
||||
in { inherit inputs hyper rice; };
|
||||
};
|
||||
in { NxS23U = makeNODConfiguration "NxS23U"; };
|
||||
|
||||
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 = get-pkgs { inherit 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 = get-pkgs { inherit 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}@NxDCS" = make-shell-configuration "NxDCS" 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
|
||||
'';})
|
||||
];
|
||||
}
|
||||
515
home-modules/bar/hyprpanel.nix
Normal file
515
home-modules/bar/hyprpanel.nix
Normal file
@@ -0,0 +1,515 @@
|
||||
{ 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': ${accent.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";
|
||||
label = " {}";
|
||||
interval = 60000;
|
||||
hideOnEmpty = false;
|
||||
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"
|
||||
# "microphone"
|
||||
# "cpu"
|
||||
# "cputemp"
|
||||
# "ram"
|
||||
(pkgs.lib.mkIf (hyper.host == "NxXPS") "battery")
|
||||
# "bluetooth"
|
||||
"network"
|
||||
"windowtitle"
|
||||
"media"
|
||||
];
|
||||
"middle" = [ "workspaces" ];
|
||||
"right" = [
|
||||
"submap"
|
||||
"custom/caldav_event"
|
||||
"custom/cclock"
|
||||
"notifications"
|
||||
"systray"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
"bar.bluetooth.label" = true;
|
||||
|
||||
"bar.customModules.submap.disabledIcon" = "";
|
||||
"bar.customModules.submap.disabledText" = "";
|
||||
"bar.customModules.submap.enabledIcon" = "";
|
||||
"bar.customModules.submap.enabledText" = "[SUBMAP]";
|
||||
"bar.customModules.submap.icon" = false;
|
||||
"bar.customModules.submap.label" = true;
|
||||
"bar.customModules.submap.showSubmapIcon" = false;
|
||||
"bar.customModules.submap.showSubmapName" = false;
|
||||
|
||||
"bar.workspaces.applicationIconEmptyWorkspace" = "";
|
||||
"bar.workspaces.applicationIconOncePerWorkspace" = false;
|
||||
"bar.workspaces.numbered_active_indicator" = "color";
|
||||
"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;
|
||||
"theme.bar.buttons.battery.icon_background" = background;
|
||||
"theme.bar.buttons.battery.icon" = accent.base;
|
||||
"theme.bar.buttons.battery.text" = accent.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" = accent.base;
|
||||
"theme.bar.buttons.workspaces.background" = background;
|
||||
"theme.bar.buttons.workspaces.border" = accent.base;
|
||||
"theme.bar.buttons.workspaces.hover" = foreground;
|
||||
"theme.bar.buttons.workspaces.numbered_active_highlighted" = accent.base;
|
||||
"theme.bar.buttons.workspaces.numbered_active_highlighted_text_color" = accent.dark;
|
||||
"theme.bar.buttons.workspaces.numbered_active_highlight_padding" = "0.4em";
|
||||
"theme.bar.buttons.workspaces.numbered_active_underline_color" = accent.bright;
|
||||
"theme.bar.buttons.workspaces.numbered_inactive_padding" = "0.4em";
|
||||
"theme.bar.buttons.workspaces.occupied" = secondary.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.base;
|
||||
"theme.bar.menus.menu.notifications.pager.label" = accent.bright;
|
||||
"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" = border;
|
||||
"theme.notification.close_button.background" = accent.dark;
|
||||
"theme.notification.close_button.label" = accent.base;
|
||||
"theme.notification.label" = accent.bright;
|
||||
"theme.notification.labelicon" = accent.base;
|
||||
"theme.notification.opacity" = 100;
|
||||
"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}); }
|
||||
'';
|
||||
};
|
||||
}
|
||||
13
home-modules/bash.nix
Executable file → Normal file
13
home-modules/bash.nix
Executable file → Normal file
@@ -1,6 +1,10 @@
|
||||
{ ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.bash = {
|
||||
programs.bash = let
|
||||
init = /* bash */ ''
|
||||
source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
'';
|
||||
in {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
ll = "ls -l";
|
||||
@@ -15,5 +19,10 @@
|
||||
"checkjobs"
|
||||
];
|
||||
enableCompletion = false;
|
||||
|
||||
} // pkgs.lib.mkIf (pkgs.version != "24.05") {
|
||||
shellInit = init;
|
||||
} // pkgs.lib.mkIf (pkgs.version != "25.05") {
|
||||
profileExtra = init;
|
||||
};
|
||||
}
|
||||
|
||||
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 = "Worlds";
|
||||
url = "https://zlypher.github.io/lol-events/cal/league-of-legends-world-championship.ical";
|
||||
color = "#A4C3DE";
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
{
|
||||
name = "Feiertage Hessen";
|
||||
url = "https://ics.tools/Feiertage/hessen.ics";
|
||||
color = "#303030";
|
||||
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;
|
||||
});
|
||||
}
|
||||
879
home-modules/chatterino.nix
Executable file → Normal file
879
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"
|
||||
"GamesDoneQuick"
|
||||
# "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"
|
||||
"OfficialMikeShinoda"
|
||||
"ow_esports"
|
||||
"PrimeGaming"
|
||||
"PrimeLeague"
|
||||
# "NASA"
|
||||
"NoWay4u_Sir"
|
||||
# "OfficialMikeShinoda"
|
||||
"Rekkles"
|
||||
"riotgames"
|
||||
"Sola"
|
||||
"thebausffs"
|
||||
"ThePrimeagen"
|
||||
"Tolkin"
|
||||
"Trick2g"
|
||||
"TSM_ImperialHal"
|
||||
"Xisuma"
|
||||
# "zackrawrr"
|
||||
"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;
|
||||
};
|
||||
}
|
||||
@@ -3,19 +3,30 @@
|
||||
home.file.".config/color-pallete.html".text = with rice.color; let
|
||||
cb = color-set: color-name: size: /* html */ ''
|
||||
<div class="color-container" style="border-color: ${color-set.base}">
|
||||
<div class="color-box" style="background: ${color-set.darker}; height: ${builtins.toString size}px;">
|
||||
<p style="color: ${color-set.bright}"> ${color-name}.darker </p>
|
||||
<p sktyle="color: ${color-set.bright}"> ${color-set.darker} </p>
|
||||
</div>
|
||||
<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.brighter}"> ${color-name}.dark </p>
|
||||
<p style="color: ${color-set.brighter}"> ${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.darker}"> ${color-name}.bright </p>
|
||||
<p style="color: ${color-set.darker}"> ${color-set.bright} </p>
|
||||
</div>
|
||||
<div class="color-box" style="background: ${color-set.brighter}; height: ${builtins.toString size}px;">
|
||||
<p style="color: ${color-set.dark}"> ${color-name}.brighter </p>
|
||||
<p style="color: ${color-set.dark}"> ${color-set.brighter} </p>
|
||||
</div>
|
||||
</div>
|
||||
'';
|
||||
|
||||
|
||||
rgb = rice.lib.hex-to-rgb-comma-string;
|
||||
s = builtins.toString;
|
||||
in /* html */ ''
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
@@ -29,27 +40,26 @@
|
||||
padding: 0px;
|
||||
}
|
||||
html {
|
||||
background: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
|
||||
padding: auto;
|
||||
background: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: ${rice.font.base.name};
|
||||
color: ${foreground};
|
||||
width: fit-content;
|
||||
margin: 10px auto 10px auto;
|
||||
background: ${background};
|
||||
border: ${builtins.toString rice.border-width}px solid ${border};
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
padding: ${builtins.toString rice.gap-size}px;
|
||||
background: rgba(${rgb background},${s rice.transparency});
|
||||
border: ${s rice.border-width}px solid ${border};
|
||||
border-radius: ${s rice.rounding}px;
|
||||
padding: ${s rice.gap-size}px;
|
||||
}
|
||||
h1 {
|
||||
margin: ${builtins.toString rice.gap-size}px;
|
||||
margin: ${s 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;
|
||||
gap: ${s rice.gap-size}px;
|
||||
margin: ${s rice.gap-size}px;
|
||||
}
|
||||
.color-box {
|
||||
width: 200px;
|
||||
@@ -57,7 +67,7 @@
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
border-radius: ${s rice.rounding}px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
@@ -66,18 +76,21 @@
|
||||
${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" 80}
|
||||
${cb special "special" 80}
|
||||
${cb subtle "subtle" 80}
|
||||
<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}
|
||||
# }
|
||||
# }
|
||||
# '';
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
121
home-modules/email.nix
Executable file → Normal file
121
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,12 +41,46 @@ 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) {
|
||||
.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,208 +1,16 @@
|
||||
# { pkgs-unstable, secrets, user, system, inputs, ...}:
|
||||
{ rice, user, ... }:
|
||||
# browser.tabs.allow_transparent_browser
|
||||
{
|
||||
home.file = with rice.color; let
|
||||
blur = builtins.toString 20;
|
||||
in {
|
||||
".mozilla/firefox/${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;
|
||||
--arrowpanel-border-color : ${border} !important;
|
||||
--arrowpanel-color : ${secondary.base} !important;
|
||||
--arrowpanel-dimmed : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important;
|
||||
--arrowpanel-dimmed-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.6) !important;
|
||||
--arrowpanel-dimmed-even-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.8) !important;
|
||||
|
||||
/* Autocomplete */
|
||||
--autocomplete-popup-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--autocomplete-popup-color : ${foreground} !important;
|
||||
--autocomplete-popup-highlight-background: ${accent.base} !important;
|
||||
--autocomplete-popup-highlight-color : ${foreground} !important;
|
||||
|
||||
/* Toolbar background */
|
||||
--toolbar-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important;
|
||||
--toolbar-non-lwt-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-non-lwt-bgimage : none !important;
|
||||
--toolbar-color : ${foreground} !important;
|
||||
|
||||
/* Tabs */
|
||||
--tab-selected-bgcolor : ${accent.base} !important;
|
||||
--tabs-border-color : ${border} !important;
|
||||
--tab-line-color : ${accent.base} !important;
|
||||
--tab-loader-size : 16px !important;
|
||||
|
||||
/* Sidebar */
|
||||
--lwt-sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--lwt-sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-border-color : ${border} !important;
|
||||
|
||||
/* URL bar */
|
||||
--urlbar-popup-url-color : ${foreground} !important;
|
||||
--urlbar-popup-action-color : ${secondary.base} !important;
|
||||
--toolbar-field-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-focus-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-color : ${accent.base} !important;
|
||||
--toolbar-field-focus-color : ${foreground} !important;
|
||||
--toolbar-field-focus-border-color : ${accent.base} !important;
|
||||
|
||||
/* Buttons */
|
||||
--toolbarbutton-icon-fill : ${foreground} !important;
|
||||
--toolbarbutton-hover-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.2) !important;
|
||||
--toolbarbutton-active-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.4) !important;
|
||||
|
||||
/* Notification and panel */
|
||||
--panel-disabled-color : rgba(${rice.lib.hex-to-rgb-comma-string foreground},0.3) !important;
|
||||
--panel-separator-color : ${border} !important;
|
||||
|
||||
/* New tab page */
|
||||
--newtab-background-color : ${background} !important;
|
||||
--newtab-background-color-secondary : ${background} !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;
|
||||
}
|
||||
.tabbrowser-tab[selected="true"] {
|
||||
color: ${background} !important;
|
||||
}
|
||||
|
||||
#appcontent {
|
||||
background: transparent !important;
|
||||
}
|
||||
#navigator-toolbox {
|
||||
--tabs-border-color: transparent !important;
|
||||
}
|
||||
#toolbar-menubar, #TabsToolbar, #PersonalToolbar, #navigator-toolbox, #sidebar-box {
|
||||
background-color: transparent !important;
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
window, #nav-bar{
|
||||
background-color: transparent !important;
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
'';
|
||||
|
||||
".mozilla/firefox/${user}/chrome/userContent.css".text = /* css */ ''
|
||||
/* Removes the white loading page */
|
||||
/* url(about:newtab), url(about:home) */
|
||||
@-moz-document url(about:blank) {
|
||||
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
|
||||
background: ${background} !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Sets up minimal incognito scrollbar */
|
||||
@-moz-document url(about:privatebrowsing) {
|
||||
:root{
|
||||
scrollbar-width: thin !important;
|
||||
scrollbar-color: rgb(161, 161, 161) transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* new-tab */
|
||||
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
|
||||
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};
|
||||
}
|
||||
}
|
||||
|
||||
@-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(${blur}px);
|
||||
}
|
||||
body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree{
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-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;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(google.com) {
|
||||
.sfbg {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
}
|
||||
body, html, div#search > * {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
.g, .appbar {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
div#rso {
|
||||
* {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
}
|
||||
div#cnt > div {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(github.com) {
|
||||
body, html, header, #repository-container-header, .bgColor-muted, section {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(mynixos.com) {
|
||||
body, html {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
header, footer {
|
||||
background-color: rgba(0,0,0,0.5) !important;
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(moodle.informatik.tu-darmstadt.de) {
|
||||
body, html , .main-inner, .main-inner * {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.bg-primary {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.5) !important!
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(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;
|
||||
}
|
||||
}
|
||||
'';
|
||||
{ pkgs, ... }@all: with all; {
|
||||
programs.firefox.profiles."{hyper.user}".settings = {
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
firefox
|
||||
];
|
||||
file = {
|
||||
".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = import ./userChrome.nix rice;
|
||||
".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = import ./userContent.nix rice;
|
||||
};
|
||||
};
|
||||
}
|
||||
# browser.tabs.allow_transparent_browser
|
||||
# https://www.reddit.com/r/FirefoxCSS/comments/1dqws4b/firefox_128_will_allow_the_main_browser_content/
|
||||
|
||||
19
home-modules/firefox/firefox.nix
Normal file
19
home-modules/firefox/firefox.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ 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/
|
||||
{
|
||||
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;
|
||||
f = rice.lib.hex-to-rgb-comma-string;
|
||||
in {
|
||||
".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = import ./userChrome.nix rice;
|
||||
".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = import ./userContent.nix rice; };
|
||||
};
|
||||
}
|
||||
92
home-modules/firefox/userChrome.nix
Normal file
92
home-modules/firefox/userChrome.nix
Normal file
@@ -0,0 +1,92 @@
|
||||
rice: with rice.color; let
|
||||
f = rice.lib.hex-to-rgb-comma-string;
|
||||
# blur = builtins.toString 20;
|
||||
in /* css */ ''
|
||||
:root{
|
||||
/* Popup panels */
|
||||
--arrowpanel-background : rgba(${f background}, ${builtins.toString rice.transparency}) !important;
|
||||
--arrowpanel-border-color : ${border} !important;
|
||||
--arrowpanel-color : ${secondary.base} !important;
|
||||
--arrowpanel-dimmed : rgba(${f background},0.4) !important;
|
||||
--arrowpanel-dimmed-further : rgba(${f background},0.6) !important;
|
||||
--arrowpanel-dimmed-even-further : rgba(${f background},0.8) !important;
|
||||
|
||||
/* Autocomplete */
|
||||
--autocomplete-popup-background : rgba(${f background}, ${builtins.toString rice.transparency}) !important;
|
||||
--autocomplete-popup-color : ${foreground} !important;
|
||||
--autocomplete-popup-highlight-background: ${accent.base} !important;
|
||||
--autocomplete-popup-highlight-color : ${foreground} !important;
|
||||
|
||||
/* Toolbar background */
|
||||
--toolbar-bgcolor : transparent !important;
|
||||
--toolbar-non-lwt-bgcolor : rgba(${f background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-non-lwt-bgimage : none !important;
|
||||
--toolbar-color : ${foreground} !important;
|
||||
|
||||
/* Tabs */
|
||||
--tab-selected-bgcolor : ${accent.base} !important;
|
||||
--tabs-border-color : ${border} !important;
|
||||
--tab-line-color : ${accent.base} !important;
|
||||
--tab-loader-size : 16px !important;
|
||||
|
||||
/* Sidebar */
|
||||
--lwt-sidebar-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important;
|
||||
--lwt-sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important;
|
||||
--sidebar-text-color : ${foreground} !important;
|
||||
--sidebar-border-color : ${border} !important;
|
||||
|
||||
/* URL bar */
|
||||
--urlbar-popup-url-color : ${foreground} !important;
|
||||
--urlbar-popup-action-color : ${secondary.base} !important;
|
||||
--toolbar-field-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-focus-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important;
|
||||
--toolbar-field-color : ${accent.base} !important;
|
||||
--toolbar-field-focus-color : ${foreground} !important;
|
||||
--toolbar-field-focus-border-color : ${accent.base} !important;
|
||||
|
||||
/* Buttons */
|
||||
--toolbarbutton-icon-fill : ${foreground} !important;
|
||||
--toolbarbutton-hover-background : rgba(${f accent.base}, 0.2) !important;
|
||||
--toolbarbutton-active-background : rgba(${f accent.base}, 0.4) !important;
|
||||
|
||||
/* Notification and panel */
|
||||
--panel-disabled-color : rgba(${f foreground},0.3) !important;
|
||||
--panel-separator-color : ${border} !important;
|
||||
|
||||
/* New tab page */
|
||||
--newtab-background-color : transparent !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;
|
||||
--newtab-background-card : ${accent.dark} !important;
|
||||
--tabpanel-background-color : transparent !important;
|
||||
|
||||
background : linear-gradient(180deg,rgba(${f secondary.dark}, ${builtins.toString rice.transparency}) 0%, rgba(${f accent.dark}, ${builtins.toString rice.transparency}) 100%) !important;
|
||||
}
|
||||
.tabbrowser-tab[selected="true"] {
|
||||
color: ${background} !important;
|
||||
}
|
||||
hbox#browser {
|
||||
backround-color: transparent: !important;
|
||||
}
|
||||
|
||||
#appcontent {
|
||||
background: transparent !important;
|
||||
}
|
||||
#navigator-toolbox {
|
||||
--tabs-border-color: transparent !important;
|
||||
}
|
||||
#toolbar-menubar, #TabsToolbar, #PersonalToolbar, #navigator-toolbox, #sidebar-box {
|
||||
background-color: transparent !important;
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
window, #nav-bar{
|
||||
background-color: transparent !important;
|
||||
-moz-appearance: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
''
|
||||
226
home-modules/firefox/userContent.nix
Normal file
226
home-modules/firefox/userContent.nix
Normal file
@@ -0,0 +1,226 @@
|
||||
rice: with rice.color; let
|
||||
f = rice.lib.hex-to-rgb-comma-string;
|
||||
blur = builtins.toString 20;
|
||||
in /* css */ ''
|
||||
/* Removes the white loading page */
|
||||
/* url(about:newtab), url(about:home) */
|
||||
@-moz-document url(about:blank) {
|
||||
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
|
||||
background: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Sets up minimal incognito scrollbar */
|
||||
@-moz-document url(about:privatebrowsing) {
|
||||
:root{
|
||||
scrollbar-width: thin !important;
|
||||
scrollbar-color: rgb(161, 161, 161) transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* new-tab */
|
||||
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
|
||||
:root{
|
||||
--newtab-background-color-secondary: rgba(${f background},0.5) !important;
|
||||
}
|
||||
body, html {
|
||||
background: transparent !important;
|
||||
}
|
||||
.tile, .search-handoff-button {
|
||||
border: ${builtins.toString rice.border-width}px solid ${border} !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(reddit.com) {
|
||||
header {
|
||||
background-color: rgba(${f background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
}
|
||||
body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree, #flex-left-nav-container {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
#main-content {
|
||||
background-color: rgba(${f background},0.5)!important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@-moz-document domain(reddit.com) {
|
||||
header {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
}
|
||||
body, html, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar{
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(google.com) {
|
||||
.sfbg {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(${blur}px);
|
||||
}
|
||||
body, html, div#search > * {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
.g, .appbar {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
div#rso {
|
||||
* {
|
||||
background-color: transparent !important;
|
||||
border: ${builtins.toString rice.border-width} solid ${border};
|
||||
}
|
||||
}
|
||||
div#cnt > div {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
}
|
||||
@-moz-document domain(youtube.com) {
|
||||
body, html, div#content, ytd-app, #frosted-glass.with-chipbar.ytd-app, ytd-shorts[is-dark] #cinematic-shorts-scrim.ytd-shorts {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
#background.ytd-masthead, div#background {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
}
|
||||
* {
|
||||
--yt-spec-base-background: transparent;
|
||||
--yt-spec-raised-background: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||
--yt-spec-menu-background: rgba(${rice.lib.hex-to-rgb-comma-string accent.dark}, ${builtins.toString rice.transparency}) !important;
|
||||
--yt-spec-inverted-background: rgba(${rice.lib.hex-to-rgb-comma-string secondary.dark}, ${builtins.toString rice.transparency}) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(mynixos.com) {
|
||||
body, html {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
header, footer {
|
||||
background-color: rgba(0,0,0,1) !important;
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-document domain(moodle.informatik.tu-darmstadt.de) {
|
||||
body, html , .main-inner, .main-inner * {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.bg-primary {
|
||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string accent.base},0.5) !important;
|
||||
}
|
||||
}
|
||||
@-moz-document domain(wikipedia.org) {
|
||||
body, html, div.mw-page-container, .vector-header, .mw-header {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
:root {
|
||||
--color-base: ${foreground} !important;
|
||||
--color-base--hover: ${accent.bright} !important;
|
||||
--color-emphasized: ${accent.base} !important;
|
||||
--color-progressive: ${accent.base} !important;
|
||||
--color-progressive--hover: ${accent.brighter} !important;
|
||||
--color-progressive--active: ${secondary.bright} !important;
|
||||
--color-destructive: ${negative.base} !important;
|
||||
--color-destructive--hover: ${negative.brighter} !important;
|
||||
--color-destructive--active: ${negative.bright} !important;
|
||||
--color-visited: ${secondary.base} !important;
|
||||
--color-visited--hover: ${secondary.brighter} !important;
|
||||
--color-visited--active: ${secondary.bright} !important;
|
||||
--color-error: ${negative.base} !important;
|
||||
--color-error--hover: ${negative.bright} !important;
|
||||
--color-error--active: ${negative.bright} !important;
|
||||
--color-warning: ${weird.base} !important;
|
||||
--color-success: ${positive.base} !important;
|
||||
--color-notice: ${special.base} !important;
|
||||
--color-content-added: ${positive.base} !important;
|
||||
--color-content-removed: ${negative.base} !important;
|
||||
--color-base--subtle: ${accent.dark} !important;
|
||||
--box-shadow-color-base: ${black.base} !important;
|
||||
--background-color-base: transparent !important;
|
||||
--background-color-neutral: transparent !important;
|
||||
--background-color-neutral-subtle: transparent !important;
|
||||
--background-color-interactive: ${accent.darker} !important;
|
||||
--background-color-interactive--hover: ${accent.dark} !important;
|
||||
--background-color-interactive--active: ${secondary.dark} !important;
|
||||
--background-color-interactive-subtle: ${subtle.darker} !important;
|
||||
--background-color-interactive-subtle--hover: ${subtle.dark} !important;
|
||||
--background-color-interactive-subtle--active: ${subtle.base} !important;
|
||||
--border-color-base: ${border} !important;
|
||||
--border-color-emphasized: ${border2} !important;
|
||||
--border-color-subtle: ${subtle.base} !important;
|
||||
--border-color-muted: ${subtle.dark} !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@-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;
|
||||
# }
|
||||
# }
|
||||
65
home-modules/fish.nix
Executable file → Normal file
65
home-modules/fish.nix
Executable file → Normal file
@@ -1,10 +1,9 @@
|
||||
{ pkgs, lib, rice, user, ... }:
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
fish
|
||||
any-nix-shell
|
||||
|
||||
(writeShellScriptBin "nxfetch" ''
|
||||
(writeShellScriptBin "nxfetch" /* bash */ ''
|
||||
logo=$(echo -e "
|
||||
|
||||
⠀⠀⠀⠀⠰⣿⣧⠀⠀⠹⣿⣧⠀⣴⣿⠆⠀⠀⠀⠀ OS
|
||||
@@ -17,18 +16,20 @@
|
||||
⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM
|
||||
⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT
|
||||
|
||||
" | lolcat --force)
|
||||
" | lolcat --force 2> /dev/null)
|
||||
|
||||
release_line=$(cat /etc/*-release 2> /dev/null || echo 'PRETTY_NAME="[No Release]"')
|
||||
|
||||
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 3p): $(echo "$release_line" | 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 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 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\U&/')
|
||||
$(echo -e "$logo" | sed -n 8p): ''$(uname -r | sed -E 's=(.+-.+-.+-.+)-.+=\1=g')
|
||||
$(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 +39,18 @@
|
||||
|
||||
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";
|
||||
package = pkgs.fish;
|
||||
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 +82,43 @@
|
||||
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";
|
||||
wlc = "wl-copy";
|
||||
# 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
|
||||
'';
|
||||
nx_backup = let
|
||||
destination = if hyper.host == "NxNORTH" then "${hyper.home}/shared/" else "${hyper.home}/backups/";
|
||||
in pkgs.lib.mkIf (hyper.host == "NxXPS" || hyper.host == "NxNORTH") ''
|
||||
set RPATH (curl -s https://${hyper.domain}/latest-backup)
|
||||
rsync -avz --info=progress2 -e "ssh -p ${builtins.toString secrets.ssh.port}" ${hyper.user}@ssh.${hyper.domain}:"$RPATH" ${destination}
|
||||
'';
|
||||
# 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-ng
|
||||
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
|
||||
];
|
||||
}
|
||||
|
||||
43
home-modules/git.nix
Executable file → Normal file
43
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,9 +19,19 @@
|
||||
whitespace-error-style = "22 reverse";
|
||||
};
|
||||
};
|
||||
extraConfig = {
|
||||
credential = {
|
||||
"https://git.da.dicos.de".username = lib.mkIf (hyper.host =="NxDCS") "lkurzweg";
|
||||
"https://git.da.dicos.de".password = lib.mkIf (hyper.host =="NxDCS") "Test";
|
||||
};
|
||||
url."ssh://git@git.da.dicos.de/".insteadOf = lib.mkIf (hyper.host =="NxDCS") "https://git.da.dicos.de/";
|
||||
url."ssh://git@github.com/".insteadOf = "https://github.com/";
|
||||
pull.rebase = false; # true
|
||||
};
|
||||
};
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
package = pkgs.lazygit;
|
||||
settings = {
|
||||
windowSize = "normal";
|
||||
gui.theme = with rice.color; {
|
||||
|
||||
@@ -1,18 +1,36 @@
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
{
|
||||
# there also is a system module
|
||||
home.packages = (with pkgs; [
|
||||
gnupg
|
||||
gpg-tui
|
||||
]) ++ ( with pkgs-unstable; [
|
||||
pinentry-all
|
||||
]);
|
||||
|
||||
# services.pcscd.enable = true;
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [ pinentry-all ];
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
package = pkgs.gnupg;
|
||||
homedir = "${hyper.home}/vault/gnupg";
|
||||
settings = {
|
||||
armor = true;
|
||||
cert-digest-algo = "SHA512";
|
||||
charset = "utf-8";
|
||||
default-preference-list = "SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed";
|
||||
keyid-format = "0xlong";
|
||||
list-options = "show-uid-validity";
|
||||
no-comments = true;
|
||||
no-emit-version = true;
|
||||
no-greeting = true;
|
||||
no-symkey-cache = true;
|
||||
personal-cipher-preferences = "AES256 AES192 AES";
|
||||
personal-compress-preferences = "ZLIB BZIP2 ZIP Uncompressed";
|
||||
personal-digest-preferences = "SHA512 SHA384 SHA256";
|
||||
pinentry-mode = "loopback";
|
||||
require-cross-certification = true;
|
||||
s2k-cipher-algo = "AES256";
|
||||
s2k-digest-algo = "SHA512";
|
||||
use-agent = true;
|
||||
verify-options = "show-uid-validity";
|
||||
with-fingerprint = true;
|
||||
};
|
||||
};
|
||||
services.gpg-agent = let
|
||||
min2sec = min: (min * 60);
|
||||
in {
|
||||
enable = true;
|
||||
enable = false;
|
||||
verbose = true;
|
||||
sshKeys = [
|
||||
"97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey
|
||||
@@ -21,48 +39,8 @@
|
||||
enableFishIntegration = true;
|
||||
defaultCacheTtlSsh = min2sec 60;
|
||||
defaultCacheTtl = min2sec 30;
|
||||
# pinentryPackage = pkgs.pinentry-curses;
|
||||
};
|
||||
|
||||
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
|
||||
extraConfig = ''
|
||||
allow-loopback-pinentry
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
194
home-modules/gtk.nix
Executable file → Normal file
194
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,45 +142,56 @@ 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,20 @@
|
||||
{ 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,70 +23,203 @@
|
||||
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" ];
|
||||
}
|
||||
{
|
||||
name = "latex";
|
||||
language-servers = [ "texlab" "language-tool" ];
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
language-servers = [ "language-tool" "tinymist" ];
|
||||
}
|
||||
{
|
||||
name = "markdown";
|
||||
# language-servers = [ "marksman" "style-check" "language-tool" ];
|
||||
language-servers = [ "language-tool" "marksman" ];
|
||||
file-types = [ "md" "MD" ];
|
||||
scope = "text.<name>";
|
||||
}
|
||||
|
||||
{
|
||||
name = "python";
|
||||
language-servers = [ "pyright" "ruff" ];
|
||||
@@ -122,6 +252,16 @@
|
||||
}];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "go";
|
||||
language-servers = [
|
||||
"gopls"
|
||||
# "llm"
|
||||
];
|
||||
# formatter = {
|
||||
# command = "gofmt";
|
||||
# };
|
||||
}
|
||||
];
|
||||
language-server = {
|
||||
"nixd" = {
|
||||
@@ -137,20 +277,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 +298,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 +315,7 @@
|
||||
"hint" = tertiary.bright;
|
||||
"info" = foreground;
|
||||
"keyword" = special.base;
|
||||
"keyword.modifiers" = [ "italic" ];
|
||||
"label" = foreground;
|
||||
"namespace" = weird.bright;
|
||||
"operator" = foreground;
|
||||
@@ -188,131 +328,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 = subtle.base;
|
||||
bg = subtle.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}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
742
home-modules/hyprland.nix
Executable file → Normal file
742
home-modules/hyprland.nix
Executable file → Normal file
@@ -1,67 +1,33 @@
|
||||
{config, pkgs, pkgs-unstable, inputs, host, user, nvidia, rice, lib, ... }:
|
||||
let
|
||||
{ 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 = "1920x1080"; scale = "1.0"; };
|
||||
second = { name = "desc:Sony SONY TV 0x01010101"; resolution = "1920x1080"; position = "1920x0"; scale = "1.0"; };
|
||||
third = { name = "DP-6"; 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";
|
||||
# };
|
||||
};
|
||||
ace = {
|
||||
main = {
|
||||
name = "HDMI-A-1";
|
||||
resolution = "3840x2160";
|
||||
position = "0x0";
|
||||
scale = "2.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"; };
|
||||
};
|
||||
in {
|
||||
home.packages = (with pkgs; [
|
||||
# hyprland itself is a system package
|
||||
home.packages = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
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 +41,17 @@ 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; [
|
||||
"${third.name}, ${third.resolution}, ${third.position}, ${third.scale}"
|
||||
]) 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.third.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}, ${compact}"
|
||||
"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"
|
||||
];
|
||||
"bordercolor rgba(${rice.lib.nohash rice.color.special.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"
|
||||
"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)$"
|
||||
"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:^(VSCodium)$"
|
||||
"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)$"
|
||||
"opaque, fullscreen:1"
|
||||
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"float, org.kde.polkit-kde-authentication-agent-1"
|
||||
"float, title:^(wlogout)$"
|
||||
"float, imv"
|
||||
"float, title:^(Page Info — .*)$"
|
||||
"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"
|
||||
|
||||
"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)$"
|
||||
"size: 30% 30%, initialTitle:^(Select Calendar)$"
|
||||
];
|
||||
|
||||
|
||||
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, 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, O, exec, obsidian "
|
||||
"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,13 +401,14 @@ 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, B, exec, bitwarden"
|
||||
"SUPER, N, togglesplit"
|
||||
# "SUPER, M, exec, /home/nx2/scripts/meme-full-screen/meme-full-screen.sh "
|
||||
# "SUPER, comma, exec, /home/nx2/scripts/change-language.sh"
|
||||
@@ -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
|
||||
${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
|
||||
|
||||
21
home-modules/mako.nix
Executable file → Normal file
21
home-modules/mako.nix
Executable file → Normal file
@@ -1,16 +1,17 @@
|
||||
{ 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; let
|
||||
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; [
|
||||
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
|
||||
|
||||
18
home-modules/pkgs-list/desktop.nix
Normal file
18
home-modules/pkgs-list/desktop.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [
|
||||
xdg-desktop-portal
|
||||
brightnessctl
|
||||
blueman
|
||||
fontpreview
|
||||
gtk3
|
||||
gsettings-desktop-schemas
|
||||
imv
|
||||
pavucontrol
|
||||
playerctl
|
||||
swww
|
||||
wev
|
||||
wl-clipboard
|
||||
xclip
|
||||
wlr-randr
|
||||
];
|
||||
}
|
||||
20
home-modules/pkgs-list/programs.nix
Normal file
20
home-modules/pkgs-list/programs.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ pkgs, hyper, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
chromium
|
||||
gnome-clocks
|
||||
gnome-calculator
|
||||
gnome-characters
|
||||
gnome-2048
|
||||
element-desktop
|
||||
qbittorrent
|
||||
wl-clipboard
|
||||
xfce.thunar
|
||||
] ++ (if (hyper.host != "NxACE") then [
|
||||
signal-desktop
|
||||
unstable.code-cursor-fhs
|
||||
obsidian
|
||||
zoom-us
|
||||
inkscape
|
||||
audacity
|
||||
] else []);
|
||||
}
|
||||
40
home-modules/pkgs-list/shell.nix
Normal file
40
home-modules/pkgs-list/shell.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
cmake
|
||||
cmatrix
|
||||
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
|
||||
which
|
||||
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
|
||||
'')
|
||||
|
||||
|
||||
12
home-modules/programming.nix
Normal file
12
home-modules/programming.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./programming/c.nix
|
||||
./programming/gleam.nix
|
||||
./programming/glsl.nix
|
||||
./programming/go.nix
|
||||
./programming/java.nix
|
||||
./programming/js.nix
|
||||
./programming/python.nix
|
||||
./programming/rust.nix
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
7
home-modules/programming/go.nix
Normal file
7
home-modules/programming/go.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
programs.go = {
|
||||
enable = true;
|
||||
package = pkgs.go;
|
||||
goPath = "${config.xdg.dataHome}/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}";
|
||||
};
|
||||
|
||||
11
home-modules/programming/rust.nix
Normal file
11
home-modules/programming/rust.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
cargo
|
||||
clippy
|
||||
rustc
|
||||
rustfmt
|
||||
rust-analyzer
|
||||
];
|
||||
};
|
||||
}
|
||||
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";
|
||||
};
|
||||
}
|
||||
|
||||
31
home-modules/rclone.nix
Normal file
31
home-modules/rclone.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{ 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,23 +1,7 @@
|
||||
{ user, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
];
|
||||
|
||||
{ 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 = "${hyper.home}/vault/age/sopsnix-${hyper.host}-home.key";
|
||||
defaultSopsFile = ../sops-secrets.yaml;
|
||||
|
||||
# %r is $XDG_RUNTIME_DIR
|
||||
secrets = {
|
||||
"example" = {
|
||||
path = "%r/secrets/example";
|
||||
};
|
||||
# "sops-age-private-key" = { # Bootstrapping doens't work
|
||||
# mode = "0400";
|
||||
# path = "/home/${user}/.config/sops/age/keys.txt";
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
56
home-modules/spotify.nix
Normal file
56
home-modules/spotify.nix
Normal file
@@ -0,0 +1,56 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
unstable.spotify
|
||||
];
|
||||
services.librespot = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.librespot;
|
||||
};
|
||||
sops.secrets."spotify/spotiy-player-clinet-id" = { path = "%r/secrets/spotify/spotiy-player-clinet-id"; };
|
||||
programs.spotify-player = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.spotify-player;
|
||||
settings = {
|
||||
border_type = "Rounded";
|
||||
client_id_command = "cat $XDG_RUNTIME_DIR/secrets/spotify/spotiy-player-clinet-id";
|
||||
copy_command.command = "wl-copy";
|
||||
cover_img_length = 20;
|
||||
cover_img_scale = 1; # if this is not 1 it doesnt fit in the box (for me)
|
||||
cover_img_width = 9; # this ratio depends on your terminal font
|
||||
device.normalization = true;
|
||||
genre_num = 32; # all of them
|
||||
liked_icon = "";
|
||||
name = "spotify-player-${hyper.host}";
|
||||
pause_icon = "";
|
||||
playback_window_position = "Bottom";
|
||||
play_icon = "";
|
||||
progress_bar_position = "Right"; # "Bottom"
|
||||
progress_bar_type = "Rectangle"; # "Line"
|
||||
theme = "${hyper.user}";
|
||||
};
|
||||
themes = [{
|
||||
name = "${hyper.user}";
|
||||
component_style = with rice.color; {
|
||||
block_title = { fg = accent.bright; };
|
||||
border = { fg = border; };
|
||||
current_playing = { fg = special.base; bg = special.darker; modifiers = ["Italic"]; };
|
||||
like = { fg = positive.base; };
|
||||
lyrics_played = { fg = subtle.base; };
|
||||
lyrics_playing = { fg = special.base; };
|
||||
page_desc = { fg = secondary.base; };
|
||||
playback_album = { fg = secondary.base; };
|
||||
playback_artists = { fg = secondary.base; };
|
||||
playback_genres = { fg = subtle.base; };
|
||||
playback_metadata = { fg = accent.base; bg = background; };
|
||||
playback_progress_bar = { fg = accent.brighter; bg = accent.dark; modifiers = ["Bold"]; };
|
||||
playback_status = { fg = accent.bright; };
|
||||
playback_track = { fg = accent.bright; modifiers = ["Bold"]; };
|
||||
secondary_row = { fg = secondary.base; };
|
||||
selection = { bg = accent.dark; };
|
||||
table_header = { fg = tertiary.bright; };
|
||||
# playback_progress_bar_unfilled (Specific to progress_bar_type as Line) = "";
|
||||
};
|
||||
}];
|
||||
};
|
||||
}
|
||||
60
home-modules/ssh.nix
Executable file → Normal file
60
home-modules/ssh.nix
Executable file → Normal file
@@ -1,27 +1,37 @@
|
||||
{ pkgs, domain, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [ sshfs ];
|
||||
file.".ssh/config".text = ''
|
||||
HOST nxace
|
||||
HostName ssh.${domain}
|
||||
User nx2
|
||||
Port 50022
|
||||
|
||||
HOST nxacel
|
||||
HostName 192.168.178.32
|
||||
User nx2
|
||||
Port 50022
|
||||
|
||||
HOST nxrpil
|
||||
HostName 192.168.178.31
|
||||
User nx2
|
||||
Port 22
|
||||
|
||||
HOST nxgit
|
||||
HostName ssh.${domain}
|
||||
User git
|
||||
Port 20022
|
||||
'';
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [ sshfs ];
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
package = pkgs.openssh;
|
||||
addKeysToAgent = "yes";
|
||||
matchBlocks = let
|
||||
nxace = name: {
|
||||
host = name;
|
||||
hostname = "ssh.${hyper.domain}";
|
||||
user = "nx2";
|
||||
port = 50022;
|
||||
identityFile = "${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}";
|
||||
};
|
||||
in {
|
||||
"*".identityFile = [
|
||||
"${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}"
|
||||
"${hyper.home}/vault/ssh/github-noggynoggy-${hyper.host}"
|
||||
"${hyper.home}/vault/ssh/tg-dm-informatik-tuda"
|
||||
];
|
||||
"github.com".identityFile = [ "${hyper.home}/vault/ssh/github-noggynoggy-${hyper.host}" ];
|
||||
"nxace" = nxace "nxace";
|
||||
"nxacel" = (nxace "nxacel") // { hostname = "10.0.1.1"; };
|
||||
"nxrpli" = (nxace "nxrpil") // { hostname = "10.0.1.31"; port = 22; };
|
||||
"nxgit" = (nxace "nxgit") // {
|
||||
user = "git";
|
||||
identityFile = "${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}";
|
||||
# addKeysToAgent = "1h";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.ssh-agent = {
|
||||
enable = true;
|
||||
# socket = "ssh-agent"; # suffix to $XDG_RUNTIME_DIR
|
||||
# package = pkgs.openssh;
|
||||
};
|
||||
}
|
||||
|
||||
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 = {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user