Compare commits

...

105 Commits

Author SHA1 Message Date
Lennart J. Kurzweg (Nx2)
18719bdc2e Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-02-23 18:41:46 +01:00
Lennart J. Kurzweg (Nx2)
68a6a18fcf xps colors 2026-02-23 18:41:35 +01:00
Lennart J. Kurzweg (Nx2)
7c6907f077 fix hypr gestures 2026-02-23 18:41:30 +01:00
Lennart J. Kurzweg (Nx2)
db6dc48ebf switch to ly 2026-02-23 18:40:55 +01:00
Lennart J. Kurzweg (Nx2)
ae6b0e483f tuda vpn 2026-02-23 18:40:35 +01:00
Lennart J. Kurzweg (Nx2)
f54754c792 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-02-10 08:47:43 +00:00
Lennart J. Kurzweg (Nx2)
30a3308b6b rename flg to nxflg 2026-02-10 08:46:48 +00:00
Lennart J. Kurzweg (Nx2)
39c03c6c62 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-02-06 13:26:33 +01:00
Lennart J. Kurzweg (Nx2)
ee28eadb3b fix typo 2026-02-06 13:26:31 +01:00
Lennart J. Kurzweg (Nx2)
edbc5c0393 fix terminal file chooser (tm2) 2026-02-03 13:28:30 +01:00
Lennart J. Kurzweg (Nx2)
68ec133681 logitiech solaar 2026-02-03 13:28:20 +01:00
Lennart J. Kurzweg (Nx2)
87292666b1 hyprland shader (deactivated) 2026-02-03 13:28:09 +01:00
Lennart J. Kurzweg (Nx2)
7d1ca1d174 flake bump 2026-02-01 21:52:27 +01:00
Lennart J. Kurzweg (Nx2)
3fcf02646a Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-02-01 21:51:36 +01:00
Lennart J. Kurzweg (Nx2)
485a554e10 flake bump 2026-02-01 21:51:15 +01:00
Lennart J. Kurzweg (Nx2)
f02686b687 delete ralley 2026-02-01 21:51:10 +01:00
Lennart J. Kurzweg (Nx2)
070695fa4d baikal (deactivated) 2026-02-01 21:50:49 +01:00
Lennart J. Kurzweg (Nx2)
951d03e0b7 unstable yt-dlp 2026-02-01 21:49:19 +01:00
Lennart J. Kurzweg (Nx2)
0dd8e27fcb flake bump 2026-01-30 12:40:29 +01:00
Lennart J. Kurzweg (Nx2)
66ef93c612 clone yazi 2026-01-27 16:45:54 +01:00
Lennart J. Kurzweg (Nx2)
627604d3f7 north color 2026-01-27 15:53:32 +01:00
Lennart J. Kurzweg (Nx2)
2598b7562f TERMINAL var 2026-01-27 15:53:27 +01:00
Lennart J. Kurzweg (Nx2)
b1c16c99ec better yazi 2026-01-27 15:53:19 +01:00
Lennart J. Kurzweg (Nx2)
47cce625be better helix 2026-01-27 15:53:14 +01:00
Lennart J. Kurzweg (Nx2)
9a2eeb694e tab text color fix 2026-01-27 15:52:57 +01:00
Lennart J. Kurzweg (Nx2)
3b84087084 reddit search chrome 2026-01-27 15:52:49 +01:00
Lennart J. Kurzweg (Nx2)
ccff2e66bb chatterino token 2026-01-27 15:52:22 +01:00
Lennart J. Kurzweg (Nx2)
cad9c3e5f5 pretty ssh nxace 2026-01-21 19:13:27 +01:00
Lennart J. Kurzweg (Nx2)
b913c05267 nixld 2026-01-21 19:13:09 +01:00
Lennart J. Kurzweg (Nx2)
21a1efa978 nicer yazi 2026-01-21 19:13:01 +01:00
Lennart J. Kurzweg (Nx2)
f9ea18fd81 nicer helix 2026-01-21 19:12:11 +01:00
Lennart J. Kurzweg (Nx2)
def172c79d ghostts extend 2026-01-21 19:12:01 +01:00
Lennart J. Kurzweg (Nx2)
ec2ea43523 north colors 2026-01-21 19:11:20 +01:00
Lennart J. Kurzweg (Nx2)
03e3f877a6 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-01-17 22:48:45 +01:00
Lennart J. Kurzweg (Nx2)
28cd7a1ac3 north colors 2026-01-17 22:47:57 +01:00
Lennart J. Kurzweg (Nx2)
03a53b006b yazi in ~ 2026-01-17 22:47:53 +01:00
Lennart J. Kurzweg (Nx2)
2bac83ec14 wsl fixes 2026-01-17 19:17:04 +00:00
Lennart J. Kurzweg (Nx2)
0953c65a9f Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-01-17 17:25:23 +00:00
Lennart J. Kurzweg (Nx2)
02231f2693 wsl fix 2026-01-17 17:25:14 +00:00
Lennart J. Kurzweg (Nx2)
48f246429b uv 2026-01-17 17:24:56 +00:00
Lennart J. Kurzweg (Nx2)
bff8042d85 asciinema 2026-01-17 17:24:51 +00:00
Lennart J. Kurzweg (Nx2)
040f988530 lec 2026-01-17 15:00:14 +01:00
Lennart J. Kurzweg (Nx2)
3be3a7a80a cooler yazi 2026-01-17 14:59:12 +01:00
Lennart J. Kurzweg (Nx2)
8a5604e87b fix termfilechooser (tm) 2026-01-17 14:35:26 +01:00
Lennart J. Kurzweg (Nx2)
336eadc732 north colors 2026-01-15 17:30:46 +01:00
Lennart J. Kurzweg (Nx2)
511d46f527 yazi theme fix 2026-01-15 17:30:35 +01:00
Lennart J. Kurzweg (Nx2)
42685cce35 fix refactor for north 2026-01-15 16:09:56 +01:00
Lennart J. Kurzweg (Nx2)
bb754e99f7 fix termfilechooser 2026-01-15 16:09:11 +01:00
Lennart J. Kurzweg (Nx2)
4f57d39171 caldav-event 1line 2026-01-15 16:08:03 +01:00
Lennart J. Kurzweg (Nx2)
4ed036b5d0 more refactoring 2026-01-13 15:06:37 +01:00
Lennart J. Kurzweg (Nx2)
6d8a7e7194 mf ace 2026-01-13 00:52:38 +01:00
Lennart J. Kurzweg (Nx2)
f2dae2ee81 massive refactor 2026-01-13 00:35:27 +01:00
Lennart J. Kurzweg (Nx2)
b23cc9ce7c LEC 2026-01-12 03:01:11 +01:00
Lennart J. Kurzweg (Nx2)
f25ff57b5b nxace no element 2026-01-12 02:58:36 +01:00
Lennart J. Kurzweg (Nx2)
1403c57356 update python lsp 2026-01-12 02:56:14 +01:00
Lennart J. Kurzweg (Nx2)
fe2a7569c3 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-01-12 02:42:26 +01:00
Lennart J. Kurzweg (Nx2)
66977c7f04 update chatterino version 2026-01-12 02:38:32 +01:00
Lennart J. Kurzweg (Nx2)
879239cfd0 fix qtwebengine problem 2026-01-12 02:37:50 +01:00
Lennart J. Kurzweg (Nx2)
9ce989abe1 helix color adjustments 2026-01-12 02:36:57 +01:00
Lennart J. Kurzweg (Nx2)
eca9490eea Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-01-04 14:37:01 +01:00
Lennart J. Kurzweg (Nx2)
c41e9f4f17 qtwebengine is cooked 2026-01-04 14:36:56 +01:00
Lennart J. Kurzweg (Nx2)
adc912624d nxace 25.11 fixes 2026-01-04 14:36:21 +01:00
Lennart J. Kurzweg (Nx2)
4bddec49af mpv reset hotkey 2026-01-04 14:35:56 +01:00
Lennart J. Kurzweg (Nx2)
b89f7960df libreoffice 2026-01-04 14:35:18 +01:00
Lennart J. Kurzweg (Nx2)
6c5e125452 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-01-04 14:24:59 +01:00
Lennart J. Kurzweg (Nx2)
59bde2cc37 email update 2026-01-04 14:24:49 +01:00
Lennart J. Kurzweg (Nx2)
4d2f244d4b mynixos 2026-01-04 14:24:19 +01:00
Lennart J. Kurzweg (Nx2)
f03e92a7ce ssh key order fix 2025-12-03 14:14:30 +01:00
Lennart J. Kurzweg (Nx2)
1e20d645eb 25.11 fixes 2025-12-03 14:13:17 +01:00
Lennart J. Kurzweg (Nx2)
edda49ee66 25.11 2025-12-03 01:59:12 +01:00
Lennart J. Kurzweg (Nx2)
5d65da4fca Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-25 15:03:08 +01:00
Lennart J. Kurzweg (Nx2)
9914f62871 rofi selected readability 2025-11-25 15:02:59 +01:00
Lennart J. Kurzweg (Nx2)
ff91701431 dcs fix 2025-11-24 09:31:15 +00:00
Lennart J. Kurzweg (Nx2)
f49d802bc2 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-24 09:04:53 +00:00
Lennart J. Kurzweg (Nx2)
0f83584124 dcs ssh 2025-11-24 09:04:11 +00:00
Lennart J. Kurzweg (Nx2)
744688e2a5 yazi fix 2025-11-23 23:29:27 +01:00
Lennart J. Kurzweg (Nx2)
47b0e9125a yazi fix 2025-11-23 23:11:17 +01:00
Lennart J. Kurzweg (Nx2)
8cda4ed98a flake bump 2025-11-23 23:10:55 +01:00
Lennart J. Kurzweg (Nx2)
8683e608e6 more screenshot options 2025-11-23 23:10:48 +01:00
Lennart J. Kurzweg (Nx2)
3603fbdf41 spash change 2025-11-23 23:07:16 +01:00
Lennart J. Kurzweg (Nx2)
43c8782c6c new chatterrino token 2025-11-23 18:01:56 +01:00
Lennart J. Kurzweg (Nx2)
fe89a049bd antigarvity + flake bump 2025-11-23 18:01:47 +01:00
Lennart J. Kurzweg (Nx2)
5bd5c97e4e Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-19 12:54:46 +01:00
Lennart J. Kurzweg (Nx2)
1b8155c9c9 no hyprland overview 2025-11-18 23:21:32 +01:00
Lennart J. Kurzweg (Nx2)
79b2493f23 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-18 18:53:57 +01:00
Lennart J. Kurzweg (Nx2)
3a6e1ce3c6 rofi not fully transparent 2025-11-18 16:43:08 +01:00
Lennart J. Kurzweg (Nx2)
c621faf09a games syntac fix 2025-11-18 16:34:35 +01:00
Lennart J. Kurzweg (Nx2)
51d7589975 more games 2025-11-18 16:30:58 +01:00
Lennart J. Kurzweg (Nx2)
4761258eed fix hyper pkgs version 2025-11-18 16:14:27 +01:00
Lennart J. Kurzweg (Nx2)
487f3ff6f0 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-18 16:05:42 +01:00
Lennart J. Kurzweg (Nx2)
f1f591368d flake bump 2025-11-18 16:01:21 +01:00
Lennart J. Kurzweg (Nx2)
ed74ebac4e calendar update 2025-11-18 16:01:05 +01:00
Lennart J. Kurzweg (Nx2)
bfae6a5800 error proof caldav_event 2025-11-18 16:00:48 +01:00
Lennart J. Kurzweg (Nx2)
1115e3e4a4 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-18 15:58:32 +01:00
Lennart J. Kurzweg (Nx2)
3b48f4d623 s23u ssh key 2025-11-18 15:58:30 +01:00
Lennart J. Kurzweg (Nx2)
aa62213ef6 pasue lec 2025-11-18 15:58:17 +01:00
Lennart J. Kurzweg (Nx2)
28f3fc54c9 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-18 15:09:19 +01:00
Lennart J. Kurzweg (Nx2)
ea753c0ebb fix nxf 2025-11-18 15:09:10 +01:00
Lennart J. Kurzweg (Nx2)
79851fa223 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-18 14:43:28 +01:00
Lennart J. Kurzweg (Nx2)
f35d0efada Merge branch 'nod' 2025-11-18 12:19:34 +01:00
Lennart J. Kurzweg (Nx2)
c39663adee no autoname workspaces 2025-11-18 12:18:22 +01:00
Lennart J. Kurzweg (Nx2)
8057a6f2ee hyprland better blur 2025-11-18 12:17:57 +01:00
Lennart J. Kurzweg (Nx2)
68ac093e4a Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2025-11-06 00:42:28 +01:00
Lennart J. Kurzweg (Nx2)
8f7d685a8b rofi refactor 2025-11-06 00:42:19 +01:00
Lennart J. Kurzweg (Nx2)
851846197d xps dynamic monitors 2025-11-06 00:41:05 +01:00
69 changed files with 4348 additions and 1008 deletions

View File

@@ -1,6 +1,6 @@
# ❄️ NixOS Dotfiles
![Screenshot of my desktop](splash.png)
![Screenshot of my desktop](splash.webp)
## Information

View File

@@ -1,4 +1,4 @@
{ ... }@all: with all; {
{ pkgs, ... }@all: with all; {
imports = [
inputs.sops-nix.nixosModules.sops
./system-modules/adb.nix
@@ -18,12 +18,12 @@
./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/nix.nix
./system-modules/nvidia.nix
./system-modules/obs.nix
./system-modules/ollama.nix
@@ -42,12 +42,13 @@
./system-modules/users.nix
./system-modules/virtualisation.nix
./system-modules/ydotool.nix
] ++ (if (hyper.host == "NxACE") then [
] ++ (if hyper.isServer then [
./system-modules/nx2site.nix
./system-modules/hugo.nix
./system-modules/postgres.nix
./system-modules/nx2site/proxy.nix
./system-modules/nx2site/audiobookshelf.nix
# ./system-modules/nx2site/baikal.nix
./system-modules/nx2site/copyparty.nix
./system-modules/nx2site/gitea.nix
./system-modules/nx2site/open-web-calendar.nix
@@ -58,13 +59,12 @@
./system-modules/calendar/lec.nix
./system-modules/calendar/lr.nix
./system-modules/calendar/dicos.nix
] else [
]);
] else [ ]);
environment.systemPackages = import ./system-modules/base-packages.nix pkgs;
systemd.extraConfig = "DefaultLimitNOFILE=2048";
system.stateVersion = hyper.pkgs-version;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
system.stateVersion = hyper.main-pkgs-version;
programs.nix-ld.enable = true;
programs.bash.shellInit = ''
if [[ "$USER" == "${hyper.user}" ]]; then
source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh

View File

@@ -1,48 +1,31 @@
pkgs: rec {
predicate = pkg: (
builtins.elem (pkgs.lib.getName pkg) unfree.packages || builtins.all (
license: license.free || builtins.elem license.shortName unfree.licenses
) (if builtins.isList pkg.meta.license then pkg.meta.license else [ pkg.meta.license ])
);
unfree = {
packages = [
"antigravity"
"cursor"
"discord"
"obsidian"
"spotify"
"steam"
"steam-unwrapped"
"vscode-extension-mhutchie-git-graph"
"zoom"
"zoom-us"
{
unfree = [
"cursor"
"discord"
"spotify"
"obsidian"
"steam"
"steam-unwrapped"
"zoom-us"
"zoom"
# since the predicate ist to be set in the flake and not in a module
# it is impossible to make the list dynamic and respect nvidia.enable
"nvidia-x11"
"nvidia-settings"
"nvidia-persistenced"
"cudatoolkit"
"cuda-merged"
"cuda_cuobjdump"
"cuda_gdb"
"cuda_nvcc"
"cuda_nvdisasm"
"cuda_nvprune"
"cuda_cccl"
"cuda_cudart"
"cuda_cupti"
"cuda_cuxxfilt"
"cuda_nvml_dev"
"cuda_nvrtc"
"cuda_nvtx"
"cuda_profiler_api"
"cuda_sanitizer_api"
"libcublas"
"libcufft"
"libcurand"
"libcusolver"
"libnvjitlink"
"libcusparse"
"libnpp"
"vscode-extension-mhutchie-git-graph"
];
inecure = [
# "electron-25.9.0"
];
"nvidia-x11"
"nvidia-settings"
];
licenses = [
"CUDA EULA"
"cuDNN EULA"
"cuTENSOR EULA"
"NVidia OptiX EULA"
];
};
# insecure = [ ];
}

View File

@@ -1,13 +1,54 @@
{
"base": {
"foreground": "#eddbef",
"background": "#100711"
"NxXPS": {
"base": {
"foreground": "#fecccc",
"background": "#190000"
},
"to_alter": {
"accent": "#ff3232",
"secondary": "#6632ff",
"tertiary": "#dd32dd",
"special": "#31feff",
"weird": "#baff31"
}
},
"to_alter": {
"accent": "#ba71c0",
"secondary": "#3266ff",
"tertiary": "#4bb6e6",
"special": "#76c071",
"weird": "#c08571"
"NxACE": {
"base": {
"foreground": "#dddddd",
"background": "#111111"
},
"to_alter": {
"accent": "#ff6666",
"secondary": "#ff8866",
"tertiary": "#ff6688",
"special": "#8888ff",
"weird": "#88ff66"
}
},
"NxNORTH": {
"base": {
"foreground": "#e7ccfe",
"background": "#0d0019"
},
"to_alter": {
"accent": "#9f35fc",
"secondary": "#324cff",
"tertiary": "#4a62e7",
"special": "#91fc34",
"weird": "#fc344f"
}
},
"NxDCS": {
"base": {
"foreground": "#ddcccc",
"background": "#080707"
},
"to_alter": {
"accent": "#d23f36",
"secondary": "#355273",
"tertiary": "#1b789b",
"special": "#66dd66",
"weird": "#dddd66"
}
}
}

46
flake-modules/hyper.nix Normal file
View File

@@ -0,0 +1,46 @@
let hyper-base = rec {
host = "BaseHost";
system = "x86_64-linux";
user = "nx2";
domain = "nx2.site";
home = "/home/${user}";
webroot = "/var/lib/hugo/nx2site/public";
main-pkgs-version = "25.11";
isServer = false;
isMobile = false;
isPersonal = false;
isNOD = false;
isWorkstation = false;
nvidia = {
enable = false;
prime = false;
};
}; in host: if host == "NxNORTH" then hyper-base // { inherit host;
nvidia = {
enable = true;
prime = false;
};
isPersonal = true;
isWorkstation = true;
} else if host == "NxXPS" then hyper-base // { inherit host;
nvidia = {
enable = true;
prime = true;
};
isMobile = true;
isPersonal = true;
isWorkstation = true;
} else if host == "NxACE" then hyper-base // { inherit host;
isServer = true;
} else if host == "NxDCS" then hyper-base // { inherit host;
isWorkstation = true;
isMobile = true;
} else if host == "NxS23U" then hyper-base // { inherit host;
isMobile = true;
isNOD = true;
isPersonal = true;
main-pkgs-version = "24.05";
system = "aarch64-linux";
user = "nix-on-droid";
home = "/data/data/com.termux.nix/files/home";
} else assert false "unkown host"; {}

View File

@@ -1,4 +0,0 @@
{
enable = false;
prime = false;
}

View File

@@ -0,0 +1,43 @@
lib: let
# takes in "ff0044" (no hash!) and returns { r = "ff", g = "00", b = "44" }
slice-hex = hex: with builtins; { r = substring 0 2 hex; g = substring 2 2 hex; b = substring 4 2 hex; };
# takes in "44" and returns 64
drune-to-255 = drune: with builtins; (rune-to-num (substring 0 1 drune)) * 16 + (rune-to-num (substring 1 1 drune));
num-to-drune = num: "${num-to-rune (num / 16)}${num-to-rune (num - ((num / 16) * 16))}";
# takes in "D" and returns 13
# inspiration from https://github.com/bertof/nix-rice
rune-to-num = rune: let
dict = { "0" = 0; "1" = 1; "2" = 2; "3" = 3; "4" = 4; "5" = 5; "6" = 6; "7" = 7; "8" = 8; "9" = 9; "A" = 10; "B" = 11; "C" = 12; "D" = 13; "E" = 14; "F" = 15; };
in assert(builtins.hasAttr (lib.strings.toUpper rune) dict); builtins.getAttr (lib.strings.toUpper rune) dict;
# takes in 15 and returns "F"
num-to-rune = num: let
num-string = builtins.toString num;
dict = { "0" = "0"; "1" = "1"; "2" = "2"; "3" = "3"; "4" = "4"; "5" = "5"; "6" = "6"; "7" = "7"; "8" = "8"; "9" = "9"; "10" = "A"; "11" = "B"; "12" = "C"; "13" = "D"; "14" = "E"; "15" = "F"; };
in assert(builtins.hasAttr num-string dict); builtins.getAttr num-string dict;
# Keeps num between 0 and 255
# Make sure to pass in an int not a float
cap-255 = num: (if (num>255) then 255 else if (num<0) then 0 else num);
nohash = hex: with builtins; assert((stringLength hex) == 7); substring 1 6 hex;
in {
## USEFUL FUNCTIONS
# takes in a string like "#ff0044" and returns "ff0044" symbol
inherit nohash;
# This takes in something like "#ff0044" and returns "255,0,64"
hex-to-rgb-comma-string = hex: with (slice-hex (nohash hex)); with builtins; assert(isString hex); "${toString (drune-to-255 r)},${toString (drune-to-255 g)},${toString (drune-to-255 b)}";
# This is useful if you have a float (like a transparency value) and want a drune representation of it
# So 0.0 -> "00" and 1.0 -> "FF"
float-to-drune = f: with builtins; assert(isFloat f); "${num-to-rune (floor((255*f) / 16))}${num-to-rune (floor(255*f) - (floor((255*f) / 16) * 16))}";
# Takes in hex and a float. 0.5 is +50% brightness and (-0.5) is -50% brightness.
# So "#ff0044": 0.3 -> "#ff0055"
alter-luminace-hex = hex: amount: let
color-num = with (slice-hex (nohash hex)); { r = drune-to-255 r; g = drune-to-255 g; b = drune-to-255 b; };
alter = num: (num-to-drune (cap-255 (builtins.floor ((125 * amount) + (num * (1+amount))) )));
in with color-num; "#${alter r}${alter g}${alter b}";
}

29
flake-modules/pkgs.nix Normal file
View File

@@ -0,0 +1,29 @@
inputs: simple-pkgs: hyper: let
args = {
system = hyper.system;
config = {
allowUnfreePredicate = (import ./allowed.nix simple-pkgs).predicate;
cudaSupport = hyper.nvidia.enable;
cudaForwardCompat = hyper.nvidia.enable;
};
};
overlays = [(final: prev: {
unstable = import inputs.nixpkgs-unstable args;
latest = import inputs.nixpkgs-latest args;
pkgs-version = hyper.main-pkgs-version;
})] ++ (if hyper.isServer then [
inputs.copyparty.overlays.default
] else []);
in if !hyper.isNOD then
(import inputs.nixpkgs (args // { inherit overlays; }))
else (
(import inputs.nixpkgs (args // { inherit overlays; })) // # normal as base
(import inputs.nixpkgs24 (args // { # overwrite with old versions
overlays = [(final: prev: {
pkgs-version = "24.05";
})];
}))
)

View File

@@ -1,6 +1,6 @@
pkgs: rec {
pkgs: hyper: rec {
lib = import ../nxlib/ricelib.nix pkgs.lib;
lib = import ./nxlib/ricelib.nix pkgs.lib;
transparency = 0.8;
rounding = 3;
@@ -36,17 +36,12 @@ pkgs: rec {
red = "#dd4444"; # "#dd1111" "#00aa00";
yellow = "#dddd44"; # "#dddd11" "#ffff00";
};
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)).to_alter;
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json)).base;
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json))."${hyper.host}".to_alter;
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json))."${hyper.host}".base;
fcolor = facolor // fbcolor;
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";
@@ -61,8 +56,6 @@ pkgs: rec {
regular-path = "${package}/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFont-Regular.ttf";
};
base = {
# name = "NewComputerModern08";
# package = pkgs.newcomputermodern;
name = "Atkinson Hyperlegible";
package = pkgs.atkinson-hyperlegible-next;
};

337
flake.lock generated
View File

@@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1760101617,
"narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=",
"lastModified": 1769428758,
"narHash": "sha256-0G/GzF7lkWs/yl82bXuisSqPn6sf8YGTnbEdFOXvOfU=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "1826a9923881320306231b1c2090379ebf9fa4f8",
"rev": "def5e74c97370f15949a67c62e61f1459fcb0e15",
"type": "github"
},
"original": {
@@ -39,11 +39,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1761517857,
"narHash": "sha256-1xYv73nGA+Lm/hKRqjiUyuBzabaRwmeDxBCIMve5CWU=",
"lastModified": 1769889994,
"narHash": "sha256-uEn3WcpPHe3sMJMgIJ0XW3f4/+TRzZpNgv4vu5/gjmA=",
"owner": "9001",
"repo": "copyparty",
"rev": "e9ab040ce8e72e299a3d8fbd109865b1e218eb57",
"rev": "9b436eb52e5cfe7a0a8e59dd9f1a37351f3a2abd",
"type": "github"
},
"original": {
@@ -70,15 +70,15 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "edolstra",
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
@@ -102,11 +102,11 @@
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
@@ -220,16 +220,16 @@
]
},
"locked": {
"lastModified": 1758463745,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"lastModified": 1769580047,
"narHash": "sha256-tNqCP/+2+peAXXQ2V8RwsBkenlfWMERb+Uy6xmevyhM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"rev": "366d78c2856de6ab3411c15c1cb4fb4c2bf5c826",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"ref": "release-25.11",
"repo": "home-manager",
"type": "github"
}
@@ -300,11 +300,11 @@
]
},
"locked": {
"lastModified": 1760445448,
"narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=",
"lastModified": 1769284023,
"narHash": "sha256-xG34vwYJ79rA2wVC8KFuM8r36urJTG6/csXx7LiiSYU=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "50fb9f069219f338a11cf0bcccb9e58357d67757",
"rev": "13c536659d46893596412d180449353a900a1d31",
"type": "github"
},
"original": {
@@ -318,22 +318,23 @@
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-guiutils": "hyprland-guiutils",
"hyprland-protocols": "hyprland-protocols",
"hyprland-qtutils": "hyprland-qtutils",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1761249114,
"narHash": "sha256-KDy8Vtlwe+7Z053HtD4fCRqlHBt0Kils0Zea4D77R7o=",
"lastModified": 1769965155,
"narHash": "sha256-SNj94JmMJ0duRNaZqThIky1bVcT3EJqwGFvYN7ZI+g0=",
"ref": "refs/heads/main",
"rev": "aa5a239ac92a6bd6947cce2ca3911606df392cb6",
"revCount": 6522,
"rev": "a0ec2e4daf8e508761f6bc53fc163fbb92ac7aa1",
"revCount": 6857,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -344,33 +345,49 @@
"url": "https://github.com/hyprwm/Hyprland"
}
},
"hyprland-plugins": {
"hyprland-guiutils": {
"inputs": {
"hyprland": [
"hyprland"
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland-plugins",
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland-plugins",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1761653710,
"narHash": "sha256-MhHSU9m/9HSckJ61OXcom/6F92NQf3s1QfLbRUApalc=",
"lastModified": 1767023960,
"narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "e689220b1740aa99ca67fa06055792f82fa9ed85",
"repo": "hyprland-guiutils",
"rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-plugins",
"repo": "hyprland-guiutils",
"type": "github"
}
},
@@ -386,11 +403,11 @@
]
},
"locked": {
"lastModified": 1759610243,
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
"lastModified": 1765214753,
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
"type": "github"
},
"original": {
@@ -399,74 +416,6 @@
"type": "github"
}
},
"hyprland-qt-support": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprland-qtutils",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"hyprland-qtutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-qtutils",
"systems"
]
},
"locked": {
"lastModified": 1749154592,
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"type": "github"
}
},
"hyprland-qtutils": {
"inputs": {
"hyprland-qt-support": "hyprland-qt-support",
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-qtutils",
"hyprlang",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1759080228,
"narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
@@ -483,11 +432,11 @@
]
},
"locked": {
"lastModified": 1758927902,
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
"lastModified": 1767983607,
"narHash": "sha256-8C2co8NYfR4oMOUEsPROOJ9JHrv9/ktbJJ6X1WsTbXc=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
"rev": "d4037379e6057246b408bbcf796cf3e9838af5b2",
"type": "github"
},
"original": {
@@ -496,6 +445,58 @@
"type": "github"
}
},
"hyprtoolkit": {
"inputs": {
"aquamarine": [
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
]
},
"locked": {
"lastModified": 1764592794,
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
@@ -508,11 +509,11 @@
]
},
"locked": {
"lastModified": 1759619523,
"narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=",
"lastModified": 1766253372,
"narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef",
"rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9",
"type": "github"
},
"original": {
@@ -533,11 +534,11 @@
]
},
"locked": {
"lastModified": 1755184602,
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"lastModified": 1763640274,
"narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671",
"type": "github"
},
"original": {
@@ -546,6 +547,35 @@
"type": "github"
}
},
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1769202094,
"narHash": "sha256-gdJr/vWWLRW85ucatSjoBULPB2dqBJd/53CZmQ9t91Q=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "a45ca05050d22629b3c7969a926d37870d7dd75c",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github"
}
},
"lanzaboote": {
"inputs": {
"crane": "crane",
@@ -627,11 +657,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1761563673,
"narHash": "sha256-d+1TpVAmRjcNBfjZsh2yQSdwUfN7Xgz1blJ185g73+A=",
"lastModified": 1769217863,
"narHash": "sha256-RY9kJDXD6+2Td/59LkZ0PFSereCXHdBX9wIkbYjRKCY=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "a518cf710e5ebb935518dc7ac98e07e7ee5014c3",
"rev": "38a5250e57f583662eac3b944830e4b9e169e965",
"type": "github"
},
"original": {
@@ -690,11 +720,11 @@
},
"nixpkgs-latest": {
"locked": {
"lastModified": 1761810199,
"narHash": "sha256-iMLB/90mK7lncjk3GVYlAmN1K+D6/7JVhOSau3O7eK0=",
"lastModified": 1769978241,
"narHash": "sha256-VSbH5Ot7yuZxy/LOvbLo52+i2xnDl01tmMqfjTQM07I=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d03f6e8ae73c291f8088abf52ae378c448a2cce3",
"rev": "149597f1631fffdeb1ff8fe3b6822615821ee562",
"type": "github"
},
"original": {
@@ -722,11 +752,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1761672384,
"narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
"lastModified": 1769789167,
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
"rev": "62c8382960464ceb98ea593cb8321a2cf8f9e3e5",
"type": "github"
},
"original": {
@@ -753,11 +783,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1761114652,
"narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
"lastModified": 1769461804,
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
"type": "github"
},
"original": {
@@ -785,11 +815,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1761373498,
"narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
"type": "github"
},
"original": {
@@ -801,26 +831,26 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1761468971,
"narHash": "sha256-vY2OLVg5ZTobdroQKQQSipSIkHlxOTrIF1fsMzPh8w8=",
"lastModified": 1769900590,
"narHash": "sha256-I7Lmgj3owOTBGuauy9FL6qdpeK2umDoe07lM4V+PnyA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "78e34d1667d32d8a0ffc3eba4591ff256e80576e",
"rev": "41e216c0ca66c83b12ab7a98cc326b5db01db646",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-25.05",
"ref": "nixos-25.11",
"type": "indirect"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1756288264,
"narHash": "sha256-Om8adB1lfkU7D33VpR+/haZ2gI5r3Q+ZbIPzE5sYnwE=",
"lastModified": 1768875095,
"narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ddd1826f294a0ee5fdc198ab72c8306a0ea73aa9",
"rev": "ed142ab1b3a092c4d149245d0c4126a5d7ea00b0",
"type": "github"
},
"original": {
@@ -894,11 +924,11 @@
]
},
"locked": {
"lastModified": 1760663237,
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"lastModified": 1769069492,
"narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23",
"type": "github"
},
"original": {
@@ -940,7 +970,6 @@
"home-manager": "home-manager",
"home-manager24": "home-manager24",
"hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins",
"lanzaboote": "lanzaboote",
"nix-on-droid": "nix-on-droid",
"nixos-wsl": "nixos-wsl",
@@ -981,11 +1010,11 @@
]
},
"locked": {
"lastModified": 1756348497,
"narHash": "sha256-xJp3VnoYh4kpsaKFO/7SsGbwOz7pI1ZmjbqpXEuR2cw=",
"lastModified": 1769091129,
"narHash": "sha256-Jj/vIHjiu4OdDIrDXZ3xOPCJrMZZKzhE2UIVXV/NYzY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "0adf92c70d23fb4f703aea5d3ebb51ac65994f7f",
"rev": "131e22d6a6d54ab72aeef6a5a661ab7005b4c596",
"type": "github"
},
"original": {
@@ -1017,11 +1046,11 @@
]
},
"locked": {
"lastModified": 1760998189,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"lastModified": 1769921679,
"narHash": "sha256-twBMKGQvaztZQxFxbZnkg7y/50BW9yjtCBWwdjtOZew=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"rev": "1e89149dcfc229e7e2ae24a8030f124a31e4f24f",
"type": "github"
},
"original": {
@@ -1088,11 +1117,11 @@
]
},
"locked": {
"lastModified": 1760713634,
"narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=",
"lastModified": 1761431178,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "753bbbdf6a052994da94062e5b753288cef28dfb",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
"type": "github"
},
"original": {
@@ -1108,11 +1137,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1761655046,
"narHash": "sha256-lG7eQqs8HDmmOl6vFkJ1iDlQBR+jY30uD4YtvWulCZc=",
"lastModified": 1769971982,
"narHash": "sha256-dc8lG9CxtrIk+tOsQx8TJKULQBG27Hoio4O4M/6CxFM=",
"owner": "sxyazi",
"repo": "yazi",
"rev": "564b8851961a7545a93ebf04c0f8dd5778d0eccb",
"rev": "6757fed5aa82bfdcd5ecd52e8f374dc286220cc0",
"type": "github"
},
"original": {

132
flake.nix
View File

@@ -2,140 +2,90 @@
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
inputs = {
nixpkgs.url = "nixpkgs/nixos-25.05";
nixpkgs.url = "nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
nixpkgs-latest.url = "github:nixos/nixpkgs?ref=master";
nixpkgs24.url = "github:NixOS/nixpkgs/nixos-24.05";
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";
};
home-manager = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; };
home-manager24 = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs24"; };
nix-on-droid = {
url = "github:nix-community/nix-on-droid/release-24.05";
inputs.nixpkgs.follows = "nixpkgs24";
inputs.home-manager.follows = "home-manager24";
inputs = { nixpkgs.follows = "nixpkgs24"; 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";
};
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";
};
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 []);
};
nvidia-base = import ./flake-modules/nvidia.nix;
secrets = import ./git-crypt/secrets.nix;
rice = import ./flake-modules/rice.nix simple-pkgs;
get-pkgs = import ./flake-modules/pkgs.nix inputs simple-pkgs;
get-hyper = import ./flake-modules/hyper.nix;
secrets = import ./git-crypt/secrets.nix;
get-rice = import ./flake-modules/rice.nix simple-pkgs;
in {
nixosConfigurations = let
make-nixos-system = host: nvidia-settings: nixpkgs.lib.nixosSystem {
pkgs = get-pkgs { inherit host; };
make-nixos-system = host: let
hyper = get-hyper host;
rice = get-rice hyper;
in nixpkgs.lib.nixosSystem {
pkgs = get-pkgs hyper;
modules = [ ./configuration.nix ];
specialArgs = let
hyper = hyper-base // { inherit host; nvidia = (nvidia-base // nvidia-settings); };
in { inherit inputs hyper rice secrets; };
specialArgs = { inherit inputs hyper rice secrets; };
};
make-nixos-wsl-system = host: nixpkgs.lib.nixosSystem {
pkgs = get-pkgs { inherit host; };
make-nixos-wsl-system = host: let hyper = get-hyper host; in nixpkgs.lib.nixosSystem {
pkgs = get-pkgs hyper;
modules = [ ./wsl.nix ];
specialArgs = let
hyper = hyper-base // { inherit host; };
rice = import ./flake-modules/rice.nix pkgs;
in { inherit inputs hyper rice; };
specialArgs = { inherit inputs hyper rice; };
};
in {
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";
NxNORTH = make-nixos-system "NxNORTH";
NxXPS = make-nixos-system "NxXPS";
NxACE = make-nixos-system "NxACE";
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; } )
);
hyper = get-hyper host;
pkgs = get-pkgs hyper;
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; };
extraSpecialArgs = { inherit inputs hyper rice; };
};
in { NxS23U = makeNODConfiguration "NxS23U"; };
homeConfigurations = let
make-home-configuration = host: user: nvidia-settings: home-manager.lib.homeManagerConfiguration {
pkgs = get-pkgs { inherit host; };
make-home-configuration = host: let
hyper = get-hyper host;
rice = get-rice hyper;
in home-manager.lib.homeManagerConfiguration {
pkgs = get-pkgs hyper;
modules = [ ./home.nix ];
extraSpecialArgs = let
hyper = hyper-base // { inherit host; nvidia = nvidia-base // nvidia-settings; };
in { inherit inputs hyper rice secrets; };
extraSpecialArgs = { inherit inputs hyper rice secrets; };
};
make-shell-configuration = host: user: home-manager.lib.homeManagerConfiguration {
pkgs = get-pkgs { inherit host; };
make-shell-configuration = host: let
hyper = get-hyper host;
rice = get-rice hyper;
in home-manager.lib.homeManagerConfiguration {
pkgs = get-pkgs hyper;
modules = [ ./shell-only.nix ];
extraSpecialArgs = let
hyper = hyper-base // { inherit host; };
in { inherit inputs hyper rice secrets; };
extraSpecialArgs = { inherit inputs hyper rice secrets; };
};
in {
"${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;
"nx2@NxXPS" = make-home-configuration "NxXPS";
"nx2@NxNORTH" = make-home-configuration "NxNORTH";
"nx2@NxACE" = make-home-configuration "NxACE";
"nx2@NxDCS" = make-shell-configuration "NxDCS";
};
};
}

Binary file not shown.

View File

@@ -59,6 +59,8 @@ def get_ongoing_or_next_event(url, username, password):
for calendar in calendars:
for event in calendar.search(start=now):
if "VEVENT" not in event.data:
continue
calendar_parsed = Calendar(event.data)
for ics_event in calendar_parsed.events:
event_dict = {}
@@ -73,7 +75,7 @@ def get_ongoing_or_next_event(url, username, password):
return next_event_dict
except Exception as e:
print(f"Error accessing {url}: {e}")
print(f"Error accessing {url}: {str(e)}".splitlines()[0])
return None
def is_expired(event_dict: dict):
@@ -120,7 +122,7 @@ if __name__ == "__main__":
else:
time_string = "in " + hour_string + "and " + minu_string
print(f"\'{event_dict['event_name']}\' {action_string} {time_string}")
print(f"\'{event_dict['event_name']}\' {action_string} {time_string}".splitlines()[0])
'')
];
}

View File

@@ -22,7 +22,7 @@
} // pkgs.lib.mkIf (pkgs.version != "24.05") {
shellInit = init;
} // pkgs.lib.mkIf (pkgs.version != "25.05") {
} // pkgs.lib.mkIf (pkgs.version != "25.11") {
profileExtra = init;
};
}

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }@all: with all;
{
home.packages = with pkgs; [
bitwarden
bitwarden-desktop
];
}

View File

@@ -40,20 +40,6 @@
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";

View File

@@ -7,18 +7,19 @@ let
# "Caedrel"
# "EintrachtSpandau"
# "GamesDoneQuick"
"Odoamne"
# "Odoamne"
"iwdominate"
"imls"
# "imls"
"gdolphn"
"GRONKH"
"handofblood"
"HisWattson"
"Jankos"
# "Jankos"
# "KuruHS"
"LEC"
"lol_nemesis"
# "NASA"
"nattynattlol"
"NoWay4u_Sir"
# "OfficialMikeShinoda"
"Rekkles"
@@ -191,7 +192,7 @@ in {
},
"misc": {
"askOnTabVisibilityToggle": false,
"currentVersion": "2.5.3",
"currentVersion": "2.5.4",
"lockNotebookLayout": false
},
"similarity": {

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }@all: with all;
lib.mkIf (hyper.host != "NxACE")
{
{ pkgs, ... }@all: with all; lib.mkIf (hyper.isPersonal) {
home.packages = with pkgs; [
thunderbird
];
@@ -136,36 +134,22 @@ lib.mkIf (hyper.host != "NxACE")
settings = OAuth2Settings;
};
};
# hsmw = with secrets.email.hsmw; {
# address = "${un}@hs-mittweida.de";
# userName = "${un}@hs-mittweida.de";
# pnx-nix = {
# address = secrets.email.pnx.mail;
# realName = "Lennart J. Kurzweg";
# imap = {
# port = 993;
# host = "xc.hs-mittweida.de";
# };
# smtp = {
# port = 587;
# host = "xc.hs-mittweida.de";
# tls.useStartTls = true;
# };
# flavor = "outlook.office365.com";
# signature = {
# text = ''
# MatNr: ${mnr}
# SemGr: ${semgr}
# About Me: https://nx2.site/about-me
# Contact: https://nx2.site/contact
# GPG: https://nx2.site/gpg
# Phönix Metallbau GmbH
# Tel: 036374 2270
# '';
# showSignature = "append";
# };
# thunderbird = {
# thunderbird = mkIf config.thunderbird.enable {
# enable = true;
# profiles = [ "nx2" ];
# settings = id: {
# "mail.server.server_${id}.fcc_folder" = "imap://${un}%40hs-mittweida.de@xc.hs-mittweida.de/Sent";
# };
# # The id given as argument is an automatically generated account identifier.
# # settings = OAuth2Settings;
# };
# };
tuda = with secrets.email.tuda; {
@@ -205,3 +189,35 @@ lib.mkIf (hyper.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";
# };
# };
# };

View File

@@ -3,7 +3,7 @@
home = {
packages = with pkgs; [
figlet
(pkgs.writeShellScriptBin "fgl" ''
(pkgs.writeShellScriptBin "nxfgl" ''
figlet -f ${hyper.home}/.local/share/figlet/nx2.flf -w 9999
'')
];

View File

@@ -65,7 +65,8 @@ in /* css */ ''
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"] {
.tabbrowser-tab[selected="true"], .tab-text[selected=""],
.tab-close-button[selected=""] {
color: ${background} !important;
}
hbox#browser {

View File

@@ -39,6 +39,9 @@ in /* css */ ''
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;
}
#search-dropdown-results-container {
background: rgba(${f background},0.8) !important;
}
#main-content {
background-color: rgba(${f background},0.5)!important;
}
@@ -122,7 +125,7 @@ in /* css */ ''
background-color: transparent !important;
}
header, footer {
background-color: rgba(0,0,0,1) !important;
background-color: rgba(0,0,0,0.5) !important;
backdrop-filter: blur(100px);
border-radius: ${builtins.toString rice.rounding}px;
}

View File

@@ -25,11 +25,11 @@
$(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 | sed 's/./\U&/')
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\&/')
$(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 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g' | awk '{print toupper(substr($0,1,1)) substr($0,2)}')
$(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 "$logo" | sed -n 11p): $(starship --version | head -n 1 | awk '{print toupper(substr($0,1,1)) substr($0,2)}')
"
echo -e "$msg"
'')
@@ -96,16 +96,17 @@
interactiveShellInit = /* fish */ ''
set -g fish_greeting
if not set -q IN_NIX_SHELL
if set -q SESSION_FROM_DE
if set -q SESSION_FROM_DE; or set -q SESSION_CLONED_FROM_YAZI
set -e SESSION_FROM_DE
set -e SESSION_CLONED_FROM_YAZI
set tmp (mktemp -t "yazi-cwd.XXXXX")
yazi --cwd-file="$tmp"
yazi --cwd-file="$tmp" ~
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
builtin cd -- "$cwd"
end
rm -f -- "$tmp"
end
nxfetch
set -e SESSION_FROM_DE
end
'';
functions = {
@@ -115,10 +116,21 @@
'';
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") ''
in pkgs.lib.mkIf (hyper.isPersonal) /* fish */ ''
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}
'';
nx_yazi_into_fish = /* fish */ ''
set tmp (mktemp -t "yazi-cwd.XXXXX")
echo "$PWD" > "$tmp"
yazi --cwd-file="$tmp"
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
builtin cd -- "$cwd"
end
rm -f "$tmp"
set -g SESSION_CLONED_FROM_YAZI TRUE
'';
# gpg = '';
# set bold \e[1m
# set green \e[32m

View File

@@ -1,20 +1,19 @@
{ pkgs, ... }@all: with all;
lib.mkIf (hyper.host == "NxNORTH")
{
{ pkgs, ... }@all: with all; {
home = {
packages = (with pkgs.unstable; [
protonup-ng
mangohud
prismlauncher
# heroic
packages = (with pkgs; [
unstable.protonup-ng
unstable.mangohud
]) ++ (if hyper.host == "NxNORTH" then (with pkgs; [
unstable.prismlauncher
heroic
# mindustry-wayland
]) ++ [ pkgs.heroic ];
sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
};
]) else if hyper.host == "NxXPS" then (with pkgs; [
heroic
]) else if hyper.host == "NxACE" then (with pkgs; [
heroic
]) else []);
sessionVariables.STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
};
}

View File

@@ -5,6 +5,7 @@
package = pkgs.ghostty;
settings = with rice.color; {
background = background;
window-padding-color = "extend";
background-opacity = builtins.toString rice.transparency;
clipboard-paste-protection = false;
clipboard-read = "allow";

View File

@@ -1,9 +1,5 @@
{ pkgs, ... }@all: with all;
{
{ pkgs, ... }@all: with all; {
home.packages = with pkgs; [
# (gimp-with-plugins.override {
# plugins = with gimpPlugins; [ bimp ];
# })
gimp
];
}

View File

@@ -5,13 +5,27 @@
(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@${hyper.domain}";
programs = {
git = {
enable = true;
package = pkgs.gitFull;
settings = {
user = {
Name = ''Lennart J. Kurzweg (Nx2)'';
Email = "git@${hyper.domain}";
};
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
};
};
delta = {
enable = true;
enableGitIntegration = true;
options = {
line-numbers = true;
side-by-side = false;
@@ -19,36 +33,27 @@
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; {
lightTheme = false;
activeBorderColor = [ foreground "bold" ];
inactiveBorderColor = [ border ];
optionsTextColor = [ tertiary.base ];
selectedLineBgColor = [ secondary.base ];
selectedRangeByColor = [ weird.bright ];
showRandomTip = true;
animateExplosion = true;
cherryPickedCommitFgColor = [ accent.base ]; # Foreground color of copied commit
cherryPickedCommitBgColor = [ secondary.dark ]; # Background color of copied commit
markedBaseCommitFgColor = [ accent.base ]; # Foreground color of marked base commit (for rebase)
markedBaseCommitBgColor = [ secondary.dark ]; # Background color of marked base commit (for rebase)
unstagedChangesColor = [ negative.base ]; # Color for file with unstaged changes
defaultFgColor = [ "default" ]; # Default text color
lazygit = {
enable = true;
package = pkgs.lazygit;
settings = {
windowSize = "normal";
gui.theme = with rice.color; {
lightTheme = false;
activeBorderColor = [ foreground "bold" ];
inactiveBorderColor = [ border ];
optionsTextColor = [ tertiary.base ];
selectedLineBgColor = [ secondary.base ];
selectedRangeByColor = [ weird.bright ];
showRandomTip = true;
animateExplosion = true;
cherryPickedCommitFgColor = [ accent.base ]; # Foreground color of copied commit
cherryPickedCommitBgColor = [ secondary.dark ]; # Background color of copied commit
markedBaseCommitFgColor = [ accent.base ]; # Foreground color of marked base commit (for rebase)
markedBaseCommitBgColor = [ secondary.dark ]; # Background color of marked base commit (for rebase)
unstagedChangesColor = [ negative.base ]; # Color for file with unstaged changes
defaultFgColor = [ "default" ]; # Default text color
};
};
};
};

View File

@@ -1,5 +1,10 @@
{ pkgs, ... }@all: with all; {
home.packages = with pkgs; [ pinentry-all ];
home.packages = with pkgs; [
# pinentry-all
# pinentry-curses
pinentry-gtk2
# pinentry-tty
];
programs.gpg = {
enable = true;
package = pkgs.gnupg;

View File

@@ -212,7 +212,8 @@
}
{
name = "typst";
language-servers = [ "language-tool" "tinymist" ];
language-servers = [ "tinymist" ];
# language-servers = [ "language-tool" "tinymist" ];
}
{
name = "markdown";
@@ -298,37 +299,46 @@
base16 = with rice.color; {
"attributes" = foreground;
"comment" = {
fg = black.bright;
fg = subtle.base;
modifiers = [ "italic" ];
};
"constant" = accent.bright;
"constant.character.escape" = special.bright;
"constant.numeric" = foreground;
"constructor" = weird.base;
"constructor" = secondary.bright;
"debug" = yellow.base;
"diagnostic.modifiers" = [ "underline" ];
"diff.delta" = blue.bright;
"diff.delta" = subtle.bright;
"diff.minus" = negative.bright;
"diff.plus" = positive.bright;
"error" = red.base;
"error" = negative.base;
"function" = secondary.bright;
"hint" = tertiary.bright;
"info" = foreground;
"keyword" = special.base;
"keyword.modifiers" = [ "italic" ];
"keyword" = {
fg = special.base;
modifiers = [ "bold" ];
};
"label" = foreground;
"namespace" = weird.bright;
"operator" = foreground;
"special" = special.base;
"string" = secondary.bright;
"type" = red.base;
"variable" = accent.base;
"variableother.member" = foreground;
"warning" = red.base;
"type" = {
fg = tertiary.base;
};
"variable" = { fg = accent.base; };
"variable.builtin" = { fg = accent.base; bg = subtle.darker; };
"variable.parameter" = { fg = accent.base; bg = accent.darker; };
"warning" = yellow.base;
"markup.heading" = accent.base;
"markup.heading" = {
fg = accent.base;
bg = accent.darker;
modifiers = [ "bold" ];
};
"markup.bold" = {
fg = tertiary.bright;
fg = secondary.bright;
modifiers = [ "bold" ];
};
"italic" = {
@@ -338,7 +348,7 @@
"markup.linktext" = accent.base;
"markup.linkurl" = {
fg = tertiary.dark;
modifiers = [ "underlined" ];
underline.style = "line";
};
"markup.list" = accent.bright;
"markup.quote" = weird.bright;
@@ -355,7 +365,7 @@
};
"ui.bufferline" = { # the top line ("tab"-line)
fg = accent.base;
bg = black.base;
bg = accent.darker;
};
"ui.bufferline.active" = { # the active "tab"
fg = background;
@@ -367,22 +377,22 @@
modifiers = [ "reversed" ];
};
"ui.cursorline.primary" = { # the line on which the cursor is on
bg = black.base;
bg = secondary.darker;
};
"ui.cursor.match" = { # Matching bracket etc.
bg = green.dark;
bg = special.dark;
modifiers = [ ];
};
"ui.gutter" = {
bg = black.base;
bg = accent.darker;
};
"ui.help" = {
fg = green.base;
bg = black.base;
fg = accent.base;
bg = accent.darker;
};
"ui.linenr" = {
fg = white.dark;
bg = black.base;
fg = accent.bright;
bg = accent.darker;
};
"ui.linenr.selected" = {
fg = accent.bright;
@@ -390,32 +400,32 @@
};
"ui.menu" = {
fg = accent.base;
bg = black.base;
bg = accent.darker;
};
"ui.menu.scroll" = {
fg = yellow.dark;
fg = subtle.base;
bg = background;
};
"ui.menu.selected" = {
fg = red.base;
bg = blue.dark;
fg = secondary.bright;
bg = secondary.darker;
};
"ui.popup" = {
bg = black.base;
bg = accent.darker;
};
"ui.selection" = {
bg = white.dark;
bg = accent.dark;
};
"ui.selection.primary" = {
bg = black.bright;
bg = accent.dark;
};
"ui.statusline" = {
fg = blue.bright;
bg = black.base;
fg = accent.bright;
bg = accent.darker;
};
"ui.statusline.inactive" = {
fg = red.bright;
bg = red.dark;
fg = secondary.bright;
bg = secondary.dark;
};
"ui.statusline.insert" = {
fg = green.bright;
@@ -432,7 +442,7 @@
"ui.text" = foreground;
"ui.text.focus" = accent.base;
"ui.virtual.indent-guide" = {
fg = black.bright;
fg = subtle.dark;
};
"ui.virtual.inlay-hint" = {
fg = subtle.base;
@@ -443,12 +453,12 @@
};
"ui.virtual.jump-label" = {
fg = special.base;
underline = {
style = "dotted";
};
bg = special.dark;
underline.style = "dotted";
modifiers = [ "bold" ];
};
"ui.window" = {
bg = black.base;
bg = accent.darker;
};
};
};

View File

@@ -6,6 +6,7 @@
monitors = {
xps = {
main = { name = "eDP-1"; resolution = "1920x1200"; position = "1920x1080"; scale = "1.0"; };
# main = { name = "eDP-1"; resolution = "1920x1080"; 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"; };
};
@@ -51,6 +52,7 @@ in {
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
"${second.name}, ${second.resolution}, ${second.position}, ${second.scale}"
"${third.name}, ${third.resolution}, ${third.position}, ${third.scale}"
" ,preferred, auto, 1, mirror, eDP-1"
]) 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}"
@@ -159,10 +161,12 @@ in {
dim_strength = "0.2";
dim_around = "0.8";
# screen_shader = "/home/nx2/.config/hypr/shaders/e.glsl";
blur = {
enabled = true;
size = "10";
passes = "2";
size = "2";
passes = "4";
xray = false;
vibrancy = 0.5;
ignore_opacity = true;
@@ -184,10 +188,10 @@ in {
};
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = "4";
workspace_swipe_distance = "300";
# workspace_swipe_touch = true;
workspace_swipe_invert = true;
# workspace_swipe_touch_invert = true;
workspace_swipe_min_speed_to_force = "30";
workspace_swipe_cancel_ratio = "0.5";
workspace_swipe_create_new = false;
@@ -197,6 +201,14 @@ in {
workspace_swipe_use_r = false;
};
gesture = [
"4, horizontal, workspace"
# "3, down, mod: ALT, close"
# "3, up, mod: SUPER, scale: 1.5, fullscreen"
# "3, left, scale: 1.5, float"
];
dwindle = {
preserve_split = true; # you probably want this
};
@@ -213,13 +225,14 @@ in {
exec-once = [
"waybar"
"swww-daemon"
"hyprland-autoname-workspaces"
# "hyprland-autoname-workspaces"
"/usr/lib/polkit-kde-authentication-agent-1 "
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"syncthing -no-browser"
"fcitx5"
# "ibus engine xkb:de::deu"
"libinput-gestures"
"systemctl --user start hyprpanel"
# "hyprswitch --daemon"
];
@@ -276,7 +289,8 @@ in {
"dimaround, title:^(terminal-file-picker)$"
"center, title:^(terminal-file-picker)$"
"size 80% 80%, title:^(terminal-file-picker)$"
"size: 30% 30%, initialTitle:^(Select Calendar)$"
"size 30% 30%, initialTitle:^(Select Calendar)$"
];
@@ -354,7 +368,7 @@ in {
## ROW 2:
# "SUPER, TAB, hycov:toggleoverview"
"SUPER, TAB, overview:toggle"
# "SUPER, TAB, overview:toggle"
# "SUPER, TAB, hyprexpo:expo, toggle"
"ALT, TAB, focuscurrentorlast"
# "SUPER, TAB, exec, hyprswitch --daemon"
@@ -366,7 +380,7 @@ in {
# "SUPER, T, exec, alacritty"
# "SUPER SHIFT, T, exec, alacritty -e sh -c "ssh nxace""
"SUPER, T, exec, SESSION_FROM_DE=TRUE ${terminal}"
"SUPER SHIFT, T, exec, ${terminal-exec}'ssh nxace'"
''SUPER SHIFT, T, exec, ${terminal-exec}'echo -e "\\e]11;#${rice.color.secondary.darker}\\e\\\\" && ssh nxace' '' # yes this is a double hash.
"SUPER, Z, exec, zathura"
"SUPER, U, exec, [tile] thunderbird "
"SUPER, I, exec, ${terminal-exec}'hx ~/nix-dots/ && fish'"
@@ -478,6 +492,10 @@ in {
# "SUPER, TAB, exec, hyprswitch --daemon --do-initial-execute"
"SUPER, Next, resizeactive, 10% 10%"
"SUPER, Prior, resizeactive, -10% -10%"
"SUPER ALT, j, resizeactive, 0% 10%"
"SUPER ALT, k, resizeactive, 0% -10%"
"SUPER ALT, l, resizeactive, 10% -10%"
"SUPER ALT, h, resizeactive, -10% 0%"
];
plugin = {
overview = {
@@ -601,7 +619,9 @@ in {
submap = screenshot
${action_simple { key = "W"; cmd = ''exec,hyprshot -m window''; }}
${action_simple { key = "M"; cmd = ''exec,hyprshot -m output''; }}
${action_simple { key = "S"; cmd = ''exec,hyprshot -m output''; }}
${action_simple { key = "R"; cmd = ''exec,hyprshot -m region''; }}
${action_simple { key = "A"; cmd = ''exec,hyprshot -m region''; }}
bind = , Escape, execr, submap_indicator unset
bind = , Escape, submap, reset
submap = reset

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }@all: with all;
lib.mkIf (hyper.host != "NxACE")
{
{ pkgs, ... }@all: with all; {
home.packages = with pkgs; [
texlab # LSP
(texlive.combine { inherit (texlive) scheme-full xifthen ifmtarg framed paralist titlesec xcolor; })

View File

@@ -0,0 +1,5 @@
{ pkgs, ... }@all: with all; {
home.packages = with pkgs; [
solaar
];
}

View File

@@ -32,9 +32,11 @@
thumbfast # thumbnails on timeline hover
# uosc # custom ui
sponsorblock
# visualizer
];
bindings = {
"O" = ''no-osd cycle-values glsl-shaders "~~/shaders/invert.glsl" ""; show-text "Invert Shader"'';
"F5" = ''set contrast 0;set brightness 0;set gamma 0;set saturation 0;set hue 0;set sub-pos 100;set sub-scale 1;set panscan 0;set zoom 0;show-text default'';
# "tab" = ''script-binding uosc/toggle-ui'';
# "space" = ''cycle pause; script-binding uosc/flash-pause-indicator'';
# "right" = ''seek 5'';

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }@all: with all;
{
{ pkgs, ... }@all: with all; {
home.packages = [
(pkgs.writeShellApplication {
name = "nx_backup";

View File

@@ -1,29 +1,60 @@
{ 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;
};
};
};
};
programs.opencode = {
enable = true;
package = pkgs.opencode;
themes.theme = with rice.color; let
dl = color: { dark = color; light = color; };
in {
accent = dl accent.base;
background = dl background;
backgroundElement = dl subtle.dark;
backgroundPanel = dl subtle.darker;
border = dl subtle.base;
borderActive = dl border;
borderSubtle = dl subtle.dark;
diffAdded = dl positive.base;
diffAddedBg = dl positive.darker;
diffAddedLineNumberBg = dl positive.dark;
diffContext = dl foreground;
diffContextBg = dl subtle.dark;
diffHighlightAdded = dl positive.bright;
diffHighlightRemoved = dl negative.bright;
diffHunkHeader = dl foreground;
diffLineNumber = dl subtle.base;
diffRemoved = dl negative.base;
diffRemovedBg = dl negative.darker;
diffRemovedLineNumberBg = dl negative.dark;
error = dl negative.dark;
info = dl special.base;
markdownBlockQuote = dl accent.base;
markdownCode = dl secondary.base;
markdownCodeBlock = dl secondary.base;
markdownEmph = dl accent.base;
markdownHeading = dl accent.base;
markdownHorizontalRule = dl border;
markdownImage = dl accent.base;
markdownImageText = dl accent.bright;
markdownLink = dl accent.base;
markdownLinkText = dl accent.bright;
markdownListEnumeration = dl foreground;
markdownListItem = dl foreground;
markdownStrong = dl accent.base;
markdownText = dl foreground;
primary = dl accent.base;
secondary = dl secondary.base;
success = dl positive.base;
syntaxComment = dl subtle.base;
syntaxFunction = dl accent.base;
syntaxKeyword = dl special.base;
syntaxNumber = dl tertiary.base;
syntaxOperator = dl accent.base;
syntaxPunctuation = dl foreground;
syntaxString = dl accent.base;
syntaxType = dl tertiary.base;
syntaxVariable = dl accent.base;
text = dl foreground;
textMuted = dl subtle.bright;
warning = dl weird.base;
};
};
}

View File

@@ -14,5 +14,6 @@
wl-clipboard
xclip
wlr-randr
cava
];
}

View File

@@ -1,20 +1,23 @@
{ pkgs, hyper, ... }: {
home.packages = with pkgs; [
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 [
]) ++ (if hyper.isWorkstation then (with pkgs; [
signal-desktop
unstable.code-cursor-fhs
latest.antigravity
element-desktop
obsidian
zoom-us
inkscape
audacity
] else []);
gemini-cli
libreoffice
]) else []);
}

View File

@@ -1,10 +1,11 @@
{ pkgs, ... }@all: with all; {
home.packages = with pkgs; [
asciinema
bat
cmake
cmatrix
dig
du-dust
dust
dysk
exiftool
eza
@@ -35,6 +36,6 @@
tldr
w3m
which
yt-dlp
unstable.yt-dlp
];
}

View File

@@ -1,7 +1,7 @@
{ ... }: {
imports = [
./programming/c.nix
./programming/gleam.nix
# ./programming/gleam.nix
./programming/glsl.nix
./programming/go.nix
./programming/java.nix

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }@all: with all;
lib.mkIf (hyper.host != "NxACE")
{
{ pkgs, ... }@all: with all; {
home.packages = with pkgs; [
erlang
rebar3

View File

@@ -2,6 +2,6 @@
programs.go = {
enable = true;
package = pkgs.go;
goPath = "${config.xdg.dataHome}/go";
env.goPath = "${config.xdg.dataHome}/go";
};
}

View File

@@ -1,17 +1,18 @@
{ pkgs, ... }@all: with all;
{
{ pkgs, ... }@all: with all; {
home = let
python-with-packages = pkgs.python3.withPackages (pp: with pp; [
ipython
requests
debugpy
# debugpy
black
uv
uv-build
]);
in {
packages = [
python-with-packages
] ++ (with pkgs; [
python311Packages.python-lsp-server
python313Packages.python-lsp-server
ruff
pyright
]);

View File

@@ -1,6 +1,7 @@
{ pkgs, ... }@all: with all; {
home = {
packages = with pkgs; [
gdb
cargo
clippy
rustc

View File

@@ -1,114 +1,46 @@
{ pkgs, ... }@all: with all;
{
home.packages = with pkgs; [
rofi-wayland
];
home.file = let
trdr = "${rice.lib.float-to-drune rice.transparency}";
in with rice.color; {
".config/rofi/config.rasi".text = ''
configuration {
show-icons: false;
display-drun: "";
disable-history: false;
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>] [<span weight='light' size='small'><i>({exec})</i></span>]";
}
* {
font: "${rice.font.code.name} 12";
foreground: ${foreground};
background-color: ${background}${trdr};
padding: 0px;
margin: 0px;
spacing: 0px;
border-width: 0px;
}
#window {
background-color: ${background}${trdr};
border: ${builtins.toString rice.border-width}px;
border-radius: ${builtins.toString rice.rounding};
border-color: ${border};
}
#mainbox {
border: 0;
padding: 0;
}
#message {
border: 0px;
}
#textbox {
text-color: ${foreground};
}
#listview {
fixed-height: 0;
border: 0px;
spacing: 0px ;
scrollbar: false;
padding: 0px;
}
#element {
border: 0;
padding: 0px;
border-radius: ${if rice.rounding > 0 then "2" else "0"}px;
}
#element.normal.normal { background-color: ${background}${trdr}; text-color: ${accent.base}; }
#element.selected.normal { background-color: ${tertiary.base}${trdr}; text-color: ${background}; }
#element.alternate.normal { background-color: ${background}${trdr}; text-color: ${secondary.base}; }
#scrollbar {
width: ${builtins.toString rice.border-width}px ;
border: 0;
handle-width: 8px ;
padding: 0;
}
#sidebar {
border: ${builtins.toString rice.border-width}px dash;
}
#button.selected {
text-color: ${foreground};
}
#inputbar {
spacing: 0;
text-color: ${background};
background-color: ${accent.base}${trdr};
padding: 0;
margine-bottom: 2px;
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
#prompt {
spacing: 0;
background-color: transparent;
text-color: ${foreground};
}
#textbox-prompt-colon {
expand: false;
str: ">";
margin: 0px 0.3em 0em 0em ;
text-color: ${background};
background-color: transparent;
}
#case-indicator {
spacing: 0;
text-color: ${foreground};
background-color: transparent;
}
#entry {
spacing: 0;
text-color: ${background};
background-color: transparent;
placeholder: "";
}
element-text, element-icon {
background-color: inherit;
text-color: inherit;
}
'';
{ pkgs, ... }@all: with all; {
home = {
packages = with pkgs; [ rofi ];
file = let # the home-manager module sucks
trdr = "${rice.lib.float-to-drune rice.transparency}";
ts = builtins.toString;
in with rice.color; {
".config/rofi/config.rasi".text = ''
configuration {
show-icons: false;
display-drun: "";
disable-history: false;
}
* {
font: "${rice.font.code.name} 12";
foreground: ${foreground};
text-color: ${foreground};
background-color: transparent;
padding: 0px;
margin: 0px;
spacing: 0px;
border-width: 0px;
}
window {
background-color: ${background}${trdr};
border: ${ts rice.border-width}px;
border-radius: ${ts rice.rounding}px;
border-color: ${ts rice.color.border};
}
listview { scrollbar: false; }
element { border-radius: ${ts rice.rounding}px; }
element.normal.normal { background-color: ${accent.darker}; text-color: ${accent.base}; }
element.selected.normal { background-color: ${accent.base}; text-color: ${accent.darker}; }
element.alternate.normal { background-color: ${secondary.darker}; text-color: ${secondary.base}; }
inputbar { children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; }
prompt { }
textbox-prompt-colon {
expand: false;
str: ">";
}
case-indicator { }
entry { placeholder: ""; }
'';
};
};
}

View File

@@ -3,30 +3,39 @@
programs.ssh = {
enable = true;
package = pkgs.openssh;
addKeysToAgent = "yes";
enableDefaultConfig = false;
matchBlocks = let
nxace = name: {
default = {
addKeysToAgent = "yes";
forwardAgent = false;
compression = false;
serverAliveInterval = 0;
serverAliveCountMax = 3;
hashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no";
controlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = "no";
};
nxace = name: default // {
host = name;
hostname = "ssh.${hyper.domain}";
user = "nx2";
port = 50022;
identityFile = "${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}";
identityFile = [ "${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}" ];
};
in {
"*".identityFile = [
"*" = default;
"ssh.nx2.site" = default // { 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";
};
"${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}"
]; };
"tg.dm.informatik.tu-darmstadt.de" = default // { identityFile = [ "${hyper.home}/vault/ssh/tg-dm-informatik-tuda" ]; };
"git.da.dicos.de" = default // { identityFile = [ "${hyper.home}/vault/ssh/dcsgit-lkurzweg-${hyper.host}" ]; };
"github.com" = default // { 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; };
};
};
services.ssh-agent = {

View File

@@ -1,8 +1,8 @@
{ pkgs, ... }@all: with all;
{
home.packages = with pkgs; [
(writers.writePython3Bin "change_colors_json" {
libraries = with python3Packages; [ numpy pillow scikit-learn ];
home.packages = [
(pkgs.writers.writePython3Bin "change_colors_json" {
libraries = with pkgs.python3Packages; [ numpy pillow scikit-learn ];
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
} /*python */ ''
from colorsys import hls_to_rgb, rgb_to_hls
@@ -141,7 +141,10 @@
foreground = alter_l(accent, 0.9)
background = alter_l(accent, 0.05)
d = {
with open("${hyper.home}/nix-dots/flake-modules/colors.json", "r") as f:
full_d = json.load(f)
full_d['${hyper.host}'] = {
"base": {
"foreground": list_to_hex(foreground),
"background": list_to_hex(background)
@@ -155,8 +158,8 @@
}
}
with open("/home/nx2/nix-dots/flake-modules/colors.json", "w") as f:
f.write(json.dumps(d, indent=4))
with open("${hyper.home}/nix-dots/flake-modules/colors.json", "w") as f:
f.write(json.dumps(full_d, indent=4))
'')
];
}

View File

@@ -1,5 +1,5 @@
{ pkgs, ... }@all: with all; let
nox-var = (pkgs.version != "24.05");
nox-var = (pkgs.pkgs-version != "24.05");
tfc = pkgs.unstable.xdg-desktop-portal-termfilechooser;
in {
home.packages = [
@@ -30,24 +30,24 @@ in {
{ on = "<C-f>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
{ on = "<PageUp>"; run = "arrow -100%"; desc = "Move cursor up one page"; }
{ on = "<PageDown>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
{ on = [ "g" "g" ]; run = "arrow top"; desc = "Move cursor to the top"; }
{ on = [ "g" "e" ]; run = "arrow bot"; desc = "Move cursor to the end"; }
{ on = [ "g" "h" ]; run = "cd ~"; desc = "Go to the home directory"; }
{ on = [ "g" "n" ]; run = "cd ~/nix-dots"; desc = "Go to the Nix-Dotfiles directory"; }
(pkgs.lib.mkIf (hyper.host == "NxACE") { on = [ "g" "s" ]; run = "cd /var/lib/hugo/nx2site"; desc = "Go to the Hugo Nx2.Site directory"; })
{ on = [ "g" "n" ]; run = "cd /nix/store"; desc = "Go to the Nix-Store"; }
{ on = [ "g" "c" ]; run = "cd ~/.config"; desc = "Go to the config directory"; }
{ on = [ "g" "l" ]; run = "cd ~/.locale"; desc = "Go to the .locale directory"; }
{ on = [ "g" "C" ]; run = "cd ~/.cache"; desc = "Go to the .cache directory"; }
{ on = [ "g" "m" ]; run = "cd ~/media"; desc = "Go to the media (udiskie mount) directory"; }
{ on = [ "g" "v" ]; run = "cd ~/Videos"; desc = "Go to the Videos directory"; }
{ on = [ "g" "t" ]; run = "cd /tmp"; desc = "Go to the /tmp directory"; }
{ on = [ "g" "d" ]; run = "cd ~/Downloads"; desc = "Go to the downloads directory"; }
{ on = [ "g" "c" ]; run = "cd ~/.config"; desc = "Go to the config directory"; }
{ on = [ "g" "D" ]; run = "cd ~/Documents"; desc = "Go to the Documents directory"; }
{ on = [ "g" "r" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
{ on = [ "g" "d" ]; run = "cd ~/Downloads"; desc = "Go to the downloads directory"; }
{ on = [ "g" "e" ]; run = "arrow bot"; desc = "Move cursor to the end"; }
{ on = [ "g" "g" ]; run = "arrow top"; desc = "Move cursor to the top"; }
{ on = [ "g" "h" ]; run = "cd ~"; desc = "Go to the home directory"; }
{ on = [ "g" "l" ]; run = "cd ~/.locale"; desc = "Go to the .locale directory"; }
{ on = [ "g" "m" ]; run = "cd ~/media"; desc = "Go to the media (udiskie mount) directory"; }
{ on = [ "g" "n" ]; run = "cd ~/nix-dots"; desc = "Go to the Nix-Dotfiles directory"; }
{ on = [ "g" "N" ]; run = "cd /nix/store"; desc = "Go to the Nix-Store"; }
{ on = [ "g" "p" ]; run = "cd ~/projects"; desc = "Go to the projects directory"; }
{ on = [ "g" "r" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
{ on = [ "g" "/" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
{ on = [ "g" "t" ]; run = "cd /tmp"; desc = "Go to the /tmp directory"; }
{ on = [ "g" "v" ]; run = "cd ~/Videos"; desc = "Go to the Videos directory"; }
{ on = [ "g" "<Space>" ]; run = "cd --interactive"; desc = "Go to a directory interactively"; }
(pkgs.lib.mkIf (hyper.isServer) { on = [ "g" "s" ]; run = "cd /var/lib/hugo/nx2site"; desc = "Go to the Hugo Nx2.Site directory"; })
# Navigation
{ on = "h"; run = "leave"; desc = "Go back to the parent directory"; }
{ on = "l"; run = "enter"; desc = "Enter the child directory"; }
@@ -70,8 +70,7 @@ in {
{ on = "O"; run = "open --interactive"; desc = "Open selected files interactively"; }
{ on = "<Enter>"; run = "open"; desc = "Open selected files"; }
{ on = "<S-Enter>"; run = "open --interactive"; desc = "Open selected files interactively"; }
{ on = "y"; run = [ ''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list''
"yank" ]; desc = "Yank selected files (copy)"; }
{ on = "y"; run = [ ''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'' "yank" ]; desc = "Yank selected files (copy)"; }
{ on = "y"; run = "yank"; desc = "Yank selected files (copy)"; }
{ on = "x"; run = "yank --cut"; desc = "Yank selected files (cut)"; }
{ on = "p"; run = "paste"; desc = "Paste yanked "; }
@@ -158,8 +157,13 @@ in {
{ on = "{"; run = "tab_swap -1"; desc = "Swap current tab with previous tab"; }
{ on = "{"; run = "tab_swap -1"; desc = "Swap current tab wittab"; }
{ on = "}"; run = "tab_swap 1"; desc = "Swap current tab with next tab"; }
{ on = "<Tab>"; run = "spot"; desc = "Show Spot View"; }
# Tasks
{ on = "w"; run = "tasks:show"; desc = "Show Task View"; }
# Magic
{ on = "<C-h>"; run = "shell 'hx .' --block"; desc = "Open current directoy in Helix"; }
{ on = "<C-g>"; run = "shell 'lazygit' --block"; desc = "Open current directoy in Lazygit"; }
{ on = "<C-y>"; run = ''shell 'ghostty --command="fish -C nx_yazi_into_fish"' --orphan ''; desc = "Open current directoy in a new ghostty window"; }
];
tasks.keymap = [
# Task
@@ -168,8 +172,8 @@ in {
{ on = "<Esc>"; run = "close"; desc = "Close Task View"; }
{ on = "c"; run = "cancel"; desc = "Cancel Task"; }
{ on = "i"; run = "inspect"; desc = "Inspect Task"; }
{ on = "j"; run = "arrow -1"; desc = "Up in list"; }
{ on = "k"; run = "arrow 1"; desc = "Down in list"; }
{ on = "k"; run = "arrow -1"; desc = "Up in list"; }
{ on = "j"; run = "arrow 1"; desc = "Down in list"; }
{ on = "u"; run = "arrow -5"; desc = "Up in list (fast)"; }
{ on = "d"; run = "arrow 5"; desc = "Down in list (fast)"; }
];
@@ -179,6 +183,19 @@ in {
{ on = "?"; run = "help"; desc = "Open help"; }
{ on = "<F1>"; run = "help"; desc = "Open help"; }
];
spot.keymap = [
# Spot
{ on = "<Tab>"; run = "close"; desc = "Close Spot View"; }
{ on = "q"; run = "close"; desc = "Close Spot View"; }
{ on = "<Esc>"; run = "close"; desc = "Close Spot View"; }
{ on = "k"; run = "arrow -1"; desc = "Up in list"; }
{ on = "j"; run = "arrow 1"; desc = "Down in list"; }
{ on = "u"; run = "arrow -5"; desc = "Up in list (fast)"; }
{ on = "d"; run = "arrow 5"; desc = "Down in list (fast)"; }
{ on = [ "g" "g" ]; run = "arrow top"; desc = "Move cursor to the top"; }
{ on = [ "g" "e" ]; run = "arrow bot"; desc = "Move cursor to the end"; }
{ on = "c"; run = "copy cell"; desc = "Copy Selected Cell"; }
];
};
settings = {
mgr = {
@@ -193,74 +210,74 @@ in {
};
opener = {
"edit" = [
{ run = ''hx "$@"''; desc = "helix"; block = true; }
{ run = ''codium "$@"''; desc = "code"; orphan = true; }
{ run = ''hx "$@"''; desc = "Helix"; block = true; }
{ run = ''codium "$@"''; desc = "VS Code"; orphan = true; }
{ run = ''cat "$@" | wl-copy''; desc = "Copy Contents"; }
];
"play" = [
{ run = ''mpv "$@"''; desc = "mpv"; orphan = true; }
{ run = ''mpv --vf=negate "$@"''; desc = "mpv inverted"; orphan = true; }
{ run = ''mediainfo "$1"; echo "Press enter to exit"; read''; block = true; desc = "Show mediainfo"; }
{ run = ''mpv "$@"''; desc = "MPV"; orphan = true; }
{ run = ''mpv --vf=negate "$@"''; desc = "MPV inverted"; orphan = true; }
{ run = ''mediainfo "$1"; echo "Press enter to return to yazi"; read''; block = true; desc = "Show mediainfo"; }
];
"archive" = [
{ run = ''unar "$1"''; desc = "Extract here"; }
{ run = ''tar -x "$1"''; desc = "tar -x"; }
{ run = ''unzip "$1"''; desc = "unzip"; }
{ run = ''unar "$@"''; desc = "Extract here"; }
{ run = ''tar -x "$@"''; desc = "tar -x"; }
{ run = ''unzip "$@"''; desc = "unzip"; }
];
"image" = [
{ run = ''imv "$@"''; desc = "imv"; orphan = true; }
{ run = ''gimp "$@"''; desc = "gimp"; orphan = true; }
{ run = ''swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 "$@"''; desc = "swww wallpaper"; }
{ run = ''exiftool "$@"; echo "Press enter to exit"; read''; desc = "View Exif Data"; }
{ run = ''for f in "$@"; do magick "$f" -auto-orient "''${f%.*}.pdf"; done''; desc = "Convert to PDF"; }
{ run = ''imv "$@"''; desc = "IMV"; orphan = true; }
{ run = ''gimp "$@"''; desc = "Gimp"; orphan = true; }
{ run = ''swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 "$1"''; desc = "swww wallpaper"; }
{ run = ''exiftool "$1"; echo "Press enter to return to yazi"; read''; desc = "View Exif Data"; }
{ run = ''for f in "$1"; do magick "$f" -auto-orient "''${f%.*}.pdf"; done''; desc = "Convert to PDF"; }
];
"svg" = [
{ run = ''inkscape "$@"''; desc = "inkscape"; orphan = true; }
{ run = ''firefox "$@"''; desc = "firefox"; orphan = true; }
{ run = ''inkscape "$@"''; desc = "Inkscape"; orphan = true; }
{ run = ''firefox "$@"''; desc = "Firefox"; orphan = true; }
];
"font" = [
{ run = ''fontpreview "$@"''; desc = "fontpreview"; orphan = true; }
{ run = ''fontforge "$@"''; desc = "fortforge"; orphan = true; }
{ run = ''fontpreview "$@"''; desc = "Fontpreview"; orphan = true; }
{ run = ''fontforge "$@"''; desc = "Fortforge"; orphan = true; }
];
"document" = [
{ run = ''zathura "$@"''; desc = "zathura"; orphan = true; }
{ run = ''xournal "$@"''; desc = "xournal"; orphan = true; }
{ run = ''firefox "$@"''; desc = "firefox"; orphan = true; }
{ run = ''zathura "$@"''; desc = "Zathura"; orphan = true; }
{ run = ''firefox "$@"''; desc = "Firefox"; orphan = true; }
{ run = ''nxgs flip "$@"''; desc = "nxgs flip"; }
{ run = ''nxgs rotate "$@"''; desc = "nxgs rotate"; }
{ run = ''nxgs interactive-merge "$@"''; block = true; desc = "nxgs merge"; }
];
"browser" = [
{ run = ''firefox "$@"''; desc = "firefox"; orphan = true; }
{ run = ''zen "$@"''; desc = "zen"; orphan = true; }
{ run = ''chromium --enable-features=UseOzonePlatform --ozone-platform=wayland "$@"''; desc = "chromium"; orphan = true; }
{ run = ''firefox "$@"''; desc = "Firefox"; orphan = true; }
{ run = ''chromium --enable-features=UseOzonePlatform --ozone-platform=wayland "$@"''; desc = "Chromium"; orphan = true; }
{ run = ''w3m "$@"''; desc = "w3m"; }
{ run = ''lynx "$@"''; desc = "lynx"; }
{ run = ''lynx "$@"''; desc = "Lynx"; }
];
"office" = [
{ run = ''libreoffice "$@"''; desc = "libreoffice"; orphan = true; }
{ run = ''libreoffice --view "$@"''; desc = "libreoffice read-only"; orphan = true; }
{ run = ''libreoffice "$@"''; desc = "LibreOffice"; orphan = true; }
{ run = ''libreoffice --view "$@"''; desc = "LibreOffice read-only"; orphan = true; }
];
"shell" = [
{ run = ''bash -c "$@"''; desc = "bash -c"; }
{ run = ''fish -c "$@"''; desc = "fish -c"; }
{ run = ''sh -c "$@"''; desc = "sh -c"; }
{ run = ''bash -c "$1"; echo "Press enter to return to yazi"; read''; desc = "bash -c"; }
{ run = ''fish -c "$1"; echo "Press enter to return to yazi"; read''; desc = "fish -c"; }
{ run = ''sh -c "$1"; echo "Press enter to return to yazi"; read''; desc = "sh -c"; }
];
"python" = [
{ run = ''python "$@"''; desc = "python"; }
{ run = ''python "$@"; echo "Press enter to return to yazi"; read''; desc = "Python"; block = true; }
];
"directory" = [
{ run = ''lazygit "$@"''; desc = "python"; }
{ run = ''lazygit "$1"''; desc = "LazyGit"; }
];
};
open.rules = [
{ mime = "text/html"; use = [ "edit" "browser" ]; }
{ mime = "text/htm"; use = [ "edit" "browser" ]; }
{ mime = "text/x-python"; use = "python"; }
{ mime = "text/x-script.python"; use = [ "edit" "python" ]; }
{ mime = "text/script.python"; use = [ "edit" "python" ]; }
{ mime = "text/*"; use = "edit"; }
{ mime = "text"; use = "edit"; }
{ mine = "inode/x-empty"; use = "edit"; }
{ mine = "inode/directory"; use = "edit"; }
{ mine = "inode/x-empty"; use = "directory"; }
{ mine = "inode/directory"; use = "directory"; }
{ mime = "image/*"; use = "image"; }
{ mime = "image/svg"; use = [ "image" "edit" ]; }
@@ -311,29 +328,73 @@ in {
tabs = {
active = { fg = secondary.dark; bg = secondary.base; };
inactive = { fg = secondary.base; bg = secondary.dark; };
# sep_inner =
# sep_outer =
# sep_inner = { open = "[", close = "]" };
# sep_outer = { open = "[", close = "]" };
};
mode = {
main_main = { fg = yellow.bright; bg = yellow.dark; };
select_main = { fg = cyan.bright; bg = cyan.dark; };
unset_main = { fg = blue.bright; bg = blue.dark; };
main_alternative = { fg = yellow.brighter; bg = yellow.dark; };
select_alternative = { fg = cyan.brighter; bg = cyan.dark; };
unset_alternative = { fg = blue.brighter; bg = blue.dark; };
};
confirm = {
border = { fg = border; };
title = { fg = accent.bright; };
body = { fg = "#ff0000"; };
list = { fg = "#ff0000"; };
btn_yes = { fg = positive.base; bg = positive.dark; };
btn_no = { fg = negative.base; bg = negative.dark; };
btn_labels = [ " BET " " HELLNAW " ];
};
spot = {
border = { fg = border; };
title = { fg = accent.bright; };
tbl_col = { fg = accent.base; };
tbl_cell = { fg = secondary.base; };
};
notify = {
title_info = { fg = accent.base; };
title_warn = { fg = weird.base; };
title_error = { fg = special.base; };
};
pick = {
border = { fg = border; };
active = { fg = accent.bright; };
inactive = { fg = subtle.bright; };
};
status = {
separator_open = " "; #"";
separator_close = " "; #"";
separator_style = { fg = accent.base; bg = black.base; };
mode_normal = { fg = yellow.bright; bg = yellow.dark; };
mode_select = { fg = cyan.bright; bg = cyan.dark; };
mode_unset = { fg = blue.bright; bg = blue.dark; };
# sep_right = { open = ""; close = ""; };
# sep_left = { open = ""; close = ""; };
sepr_style = { fg = accent.base; bg = black.base; };
progress_label = { fg = secondary.base; bold = true; };
progress_normal = { fg = accent.base; bg = black.base; };
progress_error = { fg = negative.base; bg = black.base; };
permissions_t = { fg = special.base; };
permissions_r = { fg = accent.base; };
permissions_w = { fg = secondary.base; };
permissions_x = { fg = tertiary.base; };
permissions_s = { fg = special.base; };
perm_type = { fg = special.base; };
perm_read = { fg = accent.base; };
perm_write = { fg = secondary.base; };
perm_exec = { fg = tertiary.base; };
perm_sep = { fg = special.base; };
};
indicator = { # your "cursor"
parent = { fg = secondary.darker; bg = secondary.base; };
current = { fg = accent.darker; bg = accent.base; };
preview = { fg = secondary.base; bg = secondary.darker; };
# padding = { open = " "; close = " "; };
};
cmp = {
border = { fg = border; };
active = { fg = accent.base; };
inactive = { fg = subtle.base; };
# icon_file =
# icon_folder =
# icon_command
};
input = {
border = { fg = border; };
title = {};
value = {};
title = { fg = accent.bright; };
value = { fg = foreground; };
selected = { reversed = true; };
};
select = {
@@ -343,8 +404,8 @@ in {
};
tasks = {
border = { fg = border2; };
title = {};
hovered = { underline = true; };
title = { fg = accent.base; bold = true; };
hovered = { fg = accent.bright; };
};
which = {
mask = { bg = black.base; };
@@ -355,11 +416,11 @@ in {
separator_style = { fg = foreground; };
};
help = {
on = { fg = "#fe8019"; };
exec = { fg = "#83a598"; };
desc = { fg = "#928374"; };
hovered = { bg = "#504945"; bold = true; };
footer = { fg = "#3c3836"; bg = "#a89984"; };
on = { fg = accent.base; };
run = { fg = secondary.base; };
desc = { fg = tertiary.base; italic = true; };
hovered = { bg = accent.bright; bold = true; };
footer = { fg = accent.base; bg = subtle.dark; };
};
filetype = {
rules = [
@@ -367,17 +428,17 @@ in {
{ mime = "inode/x-empty"; fg = white.dark; }
{ mime = "inode/directory"; fg = accent.base; }
{ name = "*"; is = "link"; fg = tertiary.base; }
{ name = "*"; is = "orphan"; fg = negative.base; }
{ name = "*"; is = "block"; fg = special.base; }
{ name = "*"; is = "char"; fg = special.bright; }
{ name = "*"; is = "exec"; fg = secondary.base; }
{ name = "*"; is = "fifo"; fg = weird.base; }
{ name = "*"; is = "sock"; fg = weird.bright; }
{ name = "*"; is = "sticky"; fg = special.base; }
{ url = "*"; is = "link"; fg = tertiary.base; }
{ url = "*"; is = "orphan"; fg = negative.base; }
{ url = "*"; is = "block"; fg = special.base; }
{ url = "*"; is = "char"; fg = special.bright; }
{ url = "*"; is = "exec"; fg = secondary.base; }
{ url = "*"; is = "fifo"; fg = weird.base; }
{ url = "*"; is = "sock"; fg = weird.bright; }
{ url = "*"; is = "sticky"; fg = special.base; }
# Fallback
{ name = "*"; fg = foreground; }
{ url = "*"; fg = foreground; }
];
};
};
@@ -400,6 +461,13 @@ in {
" ",
}
end, 500, Status.RIGHT)
Header:children_add(function()
if ya.target_family() ~= "unix" then
return ""
end
return ui.Span(ya.user_name() .. "@" .. ya.host_name() .. ":"):fg("blue")
end, 500, Header.LEFT)
'';
plugins = with pkgs; {
inherit glow git;
@@ -415,7 +483,7 @@ in {
default_dir=$HOME
env=TERMCMD=ghostty --title="terminal-file-picker -e"
open_mode=suggested
save_mode=last
save_mode=suggested
'';
};
portal = {

View File

@@ -25,7 +25,8 @@
./home-modules/hyprland-autoname-workspaces.nix
./home-modules/hyprland.nix
./home-modules/kitty.nix
./home-modules/latex.nix
# ./home-modules/latex.nix
./home-modules/logitech.nix
./home-modules/mako.nix
# ./home-modules/matrix.nix
./home-modules/mpv.nix
@@ -34,7 +35,7 @@
./home-modules/nvidia.nix
./home-modules/nxgs.nix
./home-modules/obs.nix
./home-modules/office.nix
# ./home-modules/office.nix
./home-modules/ollama.nix
./home-modules/opencode.nix
./home-modules/pandoc.nix
@@ -63,7 +64,7 @@
./home-modules/yazi.nix
./home-modules/zathura.nix
./home-modules/zoxide.nix
] ++ (if (hyper.host == "NxACE") then [
] ++ (if hyper.isServer then [
./home-modules/nx2site.nix
./home-modules/nx2site-backup.nix
./home-modules/calendar-campuszeit-fix.nix
@@ -71,6 +72,6 @@
home.username = hyper.user;
home.homeDirectory = hyper.home;
# home.homeDirectory = "/home/${hyper.user}";
home.stateVersion = hyper.pkgs-version;
home.stateVersion = hyper.main-pkgs-version;
programs.home-manager.enable = true;
}

View File

@@ -1,96 +0,0 @@
lib:
let
# takes in "ff0044" (no hash!) and returns { r = "ff", g = "00", b = "44" }
slice-hex = hex: with builtins; { r = substring 0 2 hex; g = substring 2 2 hex; b = substring 4 2 hex; };
# takes in "44" and returns 64
drune-to-255 = drune: with builtins; (rune-to-num (substring 0 1 drune)) * 16 + (rune-to-num (substring 1 1 drune));
num-to-drune = num: "${num-to-rune (num / 16)}${num-to-rune (num - ((num / 16) * 16))}";
# takes in "D" and returns 13
rune-to-num = rune: # inspiration from https://github.com/bertof/nix-rice
let
dict = {
"0" = 0;
"1" = 1;
"2" = 2;
"3" = 3;
"4" = 4;
"5" = 5;
"6" = 6;
"7" = 7;
"8" = 8;
"9" = 9;
"A" = 10;
"B" = 11;
"C" = 12;
"D" = 13;
"E" = 14;
"F" = 15;
};
in
assert(builtins.hasAttr (lib.strings.toUpper rune) dict);
builtins.getAttr (lib.strings.toUpper rune) dict;
# takes in 15 and returns "F"
num-to-rune = num:
let
num-string = builtins.toString num;
dict = {
"0" = "0";
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "A";
"11" = "B";
"12" = "C";
"13" = "D";
"14" = "E";
"15" = "F";
};
in
assert(builtins.hasAttr num-string dict);
builtins.getAttr num-string dict;
# Keeps num between 0 and 255
# Make sure to pass in an int not a float
cap-255 = num: (if (num>255) then 255 else if (num<0) then 0 else num);
nohash = hex: with builtins; assert((stringLength hex) == 7); substring 1 6 hex;
in
{
## USEFUL FUNCTIONS
# --------------------------------------------------------------------------------
# takes in a string like "#ff0044" and returns "ff0044" symbol
inherit nohash;
# --------------------------------------------------------------------------------
# This takes in something like "#ff0044" and returns "255,0,64"
hex-to-rgb-comma-string = hex:
with (slice-hex (nohash hex));
with builtins;
assert(isString hex);
"${toString (drune-to-255 r)},${toString (drune-to-255 g)},${toString (drune-to-255 b)}";
# --------------------------------------------------------------------------------
# This is useful if you have a float (like a transparency value) and want a drune representation of it
# So 0.0 -> "00" and 1.0 -> "FF"
float-to-drune = f: with builtins; assert(isFloat f); "${num-to-rune (floor((255*f) / 16))}${num-to-rune (floor(255*f) - (floor((255*f) / 16) * 16))}";
# --------------------------------------------------------------------------------
# Takes in hex and a float. 0.5 is +50% brightness and (-0.5) is -50% brightness.
# So "#ff0044": 0.3 -> "#ff0055"
alter-luminace-hex = hex: amount:
let
color-num = with (slice-hex (nohash hex)); { r = drune-to-255 r; g = drune-to-255 g; b = drune-to-255 b; };
alter = num: (num-to-drune (cap-255 (builtins.floor ((125 * amount) + (num * (1+amount))) )));
in
with color-num; "#${alter r}${alter g}${alter b}";
}

View File

@@ -7,7 +7,7 @@
./home-modules/git.nix
./home-modules/gpg.nix
./home-modules/helix.nix
./home-modules/latex.nix
# ./home-modules/latex.nix
./home-modules/nh.nix
./home-modules/nixd.nix
./home-modules/nxgs.nix
@@ -30,7 +30,7 @@
home = {
username = hyper.user;
homeDirectory = hyper.home;
stateVersion = pkgs.version;
stateVersion = hyper.main-pkgs-version;
};
xdg = {
enable = true;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

BIN
splash.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

View File

@@ -5,7 +5,7 @@ pkgs: with pkgs; [
git-crypt
wget
curlHTTP3
curl
zip
unzip
p7zip

View File

@@ -1,31 +1,85 @@
{ pkgs, ... }@all: with all; {
services.greetd = {
enable = true;
settings = rec {
hyprland = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland --remember-user-session --window-padding 5";
user = hyper.user;
};
default_session = hyprland;
vt = 2;
};
# useTextGreeter = true;
};
# services.displayManager.ly = {
{ config, pkgs, ... }@all: with all; {
# services.greetd = {
# enable = true;
# package = pkgs.ly;
# settings = {
# # animation = "matrix";
# # clear_password = true;
# clock = "%c";
# lang = "de";
# load = true;
# # numlock = false;
# save = true;
# settings = rec {
# hyprland = {
# command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland --remember-user-session --window-padding 5";
# user = hyper.user;
# };
# default_session = hyprland;
# vt = 2;
# };
# # useTextGreeter = true;
# };
services.displayManager.ly = {
# info and docs at https://codeberg.org/fairyglade/ly/src/branch/master/res/config.ini
enable = true;
package = pkgs.ly;
settings = with rice.color; let h = rice.lib.nohash; in {
allow_empty_password = false;
animation = "matrix";
animation_timeout_sec = 0; # forever
asterisk = "*";
auth_fails = 10;
# auto_login_session = "hyprland";
# auto_login_user = hyper.user;
battery_id = if hyper.isMobile then "BAT0" else null;
bg = "0x00${h background}";
bigclock_12hr = false;
bigclock = "en";
bigclock_seconds = false;
blank_box = true; # not transparent
border_fg = "0x00${h border}";
box_title = " Optimistic Nihilism ";
clear_password = true;
clock = "%c";
cmatrix_fg = "0x00${h accent.base}";
cmatrix_head_col = "0x01${h accent.bright}";
cmatrix_max_codepoint = "0x7B";
cmatrix_min_codepoint = "0x21";
colormix_col1 = "0x00${h accent.base}";
colormix_col2 = "0x00${h secondary.base}";
colormix_col3 = "0x20${h tertiary.base}";
default_input = "password";
# doom_bottom_color = 0x00FFFFFF;
# doom_fire_height = 6; # 1-9
# doom_fire_spread = 2; # 0-4
# doom_middle_color = 0x00C78F17;
# doom_top_color = 0x009F2707;
# dur_file_path = $CONFIG_DIRECTORY/ly/example.dur;
# dur_offset_alignment = center; # Available inputs: topleft, topcenter, topright, centerleft, center, centerright, bottomleft, bottomcenter, bottomright
# Dur offset x direction (value is added to the current position determined by alignment, negatives are supported)
# dur_x_offset = 0;
# dur_y_offset = 0; # Dur offset y direction (value is added to the current position determined by alignment, negatives are supported)
# edge_margin = 0; # Set margin to the edges of the DM (useful for curved monitors)
error_bg = "0x00${h negative.darker}";
error_fg = "0x01${h negative.base}";
fg = "0x00${h foreground}";
full_color = true;
# gameoflife_entropy_interval = 20; # None
# gameoflife_fg = "0x00${h accent.base}";
# gameoflife_frame_delay = 6;
# gameoflife_initial_density = 0.4;
# # hibernate_cmd = null;
# # hibernate_key = F4;
hide_borders = false; # Remove main box borders
hide_keyboard_locks = false; # Remove keyboard lock states from the top right corner
hide_key_hints = false; # Remove power management command hints
hide_version_string = true;
# initial_info_text = "Login to ${hyper.host}";
# input_len = 35;
lang = "de";
save = true; # Save the current desktop and login as defaults, and load them on startup
# numlock = false;
# text_in_center = true; # Center the session name.
# vi_default_mode = "normal";
# vi_mode = true;
# xinitrc = null;
# xsessions = null;
};
};
# environment.systemPackages = with pkgs; [
# cmatrix
# ];
environment.systemPackages = with pkgs; [
cmatrix
];
}

View File

@@ -3,6 +3,7 @@
variables = {
EDITOR = "hx";
VISUAL = "hx";
TERMINAL = "ghostty";
};
systemPackages = with pkgs; [
helix

View File

@@ -1,88 +1,14 @@
{ pkgs, ... }@all: with all;
{
# i18n.inputMethod = {
# type = "fcitx5";
# enable = true;
# fcitx5.addons = with pkgs; [
# fcitx5-gtk # alternatively, kdePackages.fcitx5-qt
# fcitx5-chinese-addons # table input method support
# fcitx5-nord # a color theme
# ];
# };
{ pkgs, ... }@all: with all; {
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5.waylandFrontend = true;
fcitx5.addons = with pkgs; [
fcitx5-gtk # alternatively, kdePackages.fcitx5-qt
fcitx5-chinese-addons # table input method support
fcitx5-nord # a color theme
];
fcitx5 = {
waylandFrontend = true;
addons = with pkgs; [
fcitx5-gtk
kdePackages.fcitx5-chinese-addons
fcitx5-nord
];
};
};
# i18n.inputMethod = {
# enabled = "fcitx5";
# ignoreUserConfig = true;
# waylandFrontend = true;
# fcitx5 = {
# addons = with pkgs-unstable; [
# rime-data
# fcitx5-rime
# # Chinese
# fcitx5-chinese-addons
# fcitx5-table-extra
# fcitx5-pinyin-moegirl
# fcitx5-pinyin-zhwiki
# # Japanese
# # fcitx5-mozc
# ];
# settings = {
# globalOptions = {
# Hotkey = {
# # Enumerate when press trigger key repeatedly
# EnumerateWithTriggerKeys = "True";
# # Skip first input method while enumerating
# EnumerateSkipFirst = "False";
# };
# "Hotkey/EnumerateForwardKeys" = { "0" = "Control+space"; };
# "Hotkey/EnumerateBackwardKeys" = { "0" = "Control+Shift+space"; };
# "Hotkey/PrevPage" = { "0" = "Up"; };
# "Hotkey/NextPage" = { "0" = "Down"; };
# "Hotkey/PrevCandidate" = { "0" = "Shift+Tab"; };
# "Hotkey/NextCandidate" = { "0" = "Tab"; };
# Behavior = {
# ActiveByDefault = "False"; # Active By Default
# ShareInputState = "No"; # Share Input State
# PreeditEnabledByDefault = "True"; # Show preedit in application
# ShowInputMethodInformation = "True"; # Show Input Method Information when switch input method
# showInputMethodInformationWhenFocusIn = "False"; # Show Input Method Information when changing focus
# CompactInputMethodInformation = "True"; # Show compact input method information
# ShowFirstInputMethodInformation = "True"; # Show first input method information
# DefaultPageSize = "5"; # Default page size
# OverrideXkbOption = "False"; # Override Xkb Option
# PreloadInputMethod = "True"; # Preload input method to be used by default
# };
# };
# inputMethod = {
# "Groups/0" = {
# "Name" = "Default";
# "Default Layout" = "us";
# "DefaultIM" = "mozc";
# };
# "Groups/0/Items/0" = {
# "Name" = "keyboard-us";
# "Layout" = null;
# };
# "Groups/0/Items/1" = {
# "Name" = "mozc";
# "Layout" = null;
# };
# "GroupOrder" = {
# "0" = "Default";
# };
# };
# };
# };
# };
}

View File

@@ -4,7 +4,7 @@
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
noto-fonts-color-emoji
newcomputermodern
atkinson-hyperlegible
nerd-fonts.jetbrains-mono

View File

@@ -1,15 +1,7 @@
{ pkgs, ... }@all: with all;
lib.mkIf (hyper.host == "NxNORTH" || hyper.host == "NxACE")
{
{ pkgs, ... }@all: with all; {
programs = {
steam = {
enable = true;
};
gamemode = {
enable = true;
};
gamescope = {
enable = true;
};
steam.enable = true;
gamemode.enable = true;
gamescope.enable = true;
};
}

View File

@@ -27,8 +27,6 @@
"hsmw-vpn-secret" = { path = "/etc/ipsec.d/hsmw.secret"; mode = "600"; };
};
networking.networkmanager.enableStrongSwan = true;
services.strongswan = {
enable = true;
setup = {

14
system-modules/nix.nix Normal file
View File

@@ -0,0 +1,14 @@
{ ... }: {
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
substituters = [
"https://cache.nixos.org/"
"https://cache.nixos-cuda.org"
"https://nix-community.cachix.org"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
];
};
}

View File

@@ -1,7 +1,7 @@
{ pkgs, ... }@all: with all; lib.mkIf hyper.nvidia.enable {
environment.systemPackages = with pkgs; [
lshw
glxinfo
mesa-demos
(pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0

View File

@@ -0,0 +1,22 @@
{ pkgs, ... }@all: with all; {
services.baikal = {
enable = true;
# pool =
user = "baikal";
group = "baikal";
package = pkgs.php.buildComposerProject2 (finalAttrs: {
pname = "baikal";
version = "0.10.1";
src = pkgs.fetchFromGitHub {
owner = "sabre-io";
repo = "Baikal";
tag = "0.10.1";
hash = "sha256-YQQwTdwfHQZdUhO5HbScj/Bl8ype7TtPI3lHjvz2k04=";
};
# It doesn't provide a composer.lock file, we have to generate manually.
composerLock = ./composer.lock;
vendorHash = "sha256-dYg7cULL4gquR5EenA0lD9ZC9Ge4qNwFFDNhELKgSso=";
});
virtualHost = "baikal.${hyper.domain}";
};
}

3208
system-modules/nx2site/composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -26,7 +26,7 @@ let git-user = "git"; in
user = git-user;
appName = "NxGit";
stateDir = "/var/lib/gitea"; # default
useWizard = false; # default
# useWizard = false; # default
# camoHmacKeyFile = ;
database = {
createDatabase = false; # default

View File

@@ -50,7 +50,7 @@
defaultSSLListenPort = 443;
enableQuicBPF = true;
enableReload = true;
package = pkgs.nginxQuic;
package = pkgs.nginx;
proxyResolveWhileRunning = false;
proxyTimeout = "20s";
recommendedBrotliSettings = true;
@@ -58,7 +58,7 @@
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
recommendedZstdSettings = true;
# recommendedZstdSettings = true;
serverTokens = false;
sslDhparam = config.sops.secrets."nx2site/dhparams.pem".path;
sslProtocols = "TLSv1.2 TLSv1.3";
@@ -192,6 +192,10 @@
# proxyWebsockets = true;
# }; };
# };
# "baikal.${hyper.domain}" = {
# forceSSL = true;
# enableACME = true;
# };
"file.${hyper.domain}" = { # copyparty
listen = dl;
forceSSL = true;

View File

@@ -1,20 +0,0 @@
{ pkgs, ... }@all: with all;
{
environment.systemPackages = [
(pkgs.mkYarnPackage {
name = "rallly";
src = pkgs.fetchFromGitHub {
owner = "lukevella";
repo = "rallly";
rev = "v3.11.2";
hash = "sha256-ej6Y0ouiheoH6dSBWsSIW6qt9UvsLh9ODDQA5Fqt3zs=";
};
packageJson = ./package.json;
yarnLock = ./yarn.lock;
yarnNix = ./yarn.nix;
# patchPhase = /* shell */ ''
# cp ........ ?
# '';
})
];
}

View File

@@ -2,12 +2,9 @@
{
hardware.keyboard.qmk.enable = true;
# home.packages = with pkgs; [
# via
# ];
environment.systemPackages = with pkgs; [
via
# via
qmk
];
services.udev.packages = [ pkgs.via ];
# services.udev.packages = [ pkgs.via ];
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }@all: with all;
{
{ pkgs, ... }@all: with all; {
environment.etc = {
"ssl/certs/tuda-eduroam-root.crt".source = "${pkgs.cacert.unbundled}/etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2:1.crt";
};
@@ -10,4 +9,23 @@
path = "/etc/NetworkManager/system-connections/eduroam.nmconnection";
};
};
environment.systemPackages = with pkgs; [
openconnect
networkmanager-openconnect
];
networking.openconnect = {
package = pkgs.openconnect;
interfaces = {
openconnect0 = {
autoStart = false;
certificate = "/home/nx2/tuda-rootcert.crt";
# extraOptions = { compression = "stateless"; no-dtls = true; no-http-keepalive = true; };
gateway = "vpn.hrz.tu-darmstadt.de";
# passwordFile = "/var/lib/secrets/openconnect-passwd";
# privateKey = "/var/lib/secrets/openconnect_private_key.pem";
protocol = "anyconnect";
user = secrets.email.tuda.tuid;
};
};
};
}

View File

@@ -31,6 +31,7 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE5sYVtPLHXatTjrpol46xr9R4TidcB4t8axO6/ReNNR nxxps-nx2@nxace"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC/zcoYuYbamTPMOZPfsP1yQJ5Y6sDlPfBwui8MQjKWn nxnorth-nx2@nxace"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMnbJx7nVeVi5jK1Eybm+jQoopiCTslewuHFLv2yCt4f nxdcs-nx2@nxace"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHOWa0xeARLSGbliVCqloGRvF7KlM6TcJSFhd+BxcvRt nxs23u-nx2@ssh.nx2.site"
];
};
};

View File

@@ -1,7 +1,6 @@
{ pkgs, ... }@all: with all; {
imports = [
inputs.nixos-wsl.nixosModules.default
./system-modules/base-packages.nix
./system-modules/docker.nix
./system-modules/gc.nix
./system-modules/gpg.nix
@@ -9,7 +8,8 @@
./system-modules/nixd.nix
./system-modules/users.nix
];
system.stateVersion = pkgs.version;
environment.systemPackages = import ./system-modules/base-packages.nix pkgs;
system.stateVersion = hyper.main-pkgs-version;
wsl = {
defaultUser = hyper.user;
enable = true;
@@ -27,4 +27,5 @@
};
};
nixpkgs.hostPlatform = hyper.system;
services.upower.enable = true;
}