Compare commits
113 commits
feature/cl
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a8b40adfd3 | ||
![]() |
b7426d0fcf | ||
![]() |
c054dc030f | ||
![]() |
360c1011e2 | ||
![]() |
16fea0da6f | ||
![]() |
ffc320e57a | ||
![]() |
d5d28b701d | ||
![]() |
f58d688ad9 | ||
![]() |
eeed7220c1 | ||
![]() |
0591558677 | ||
![]() |
24427cf846 | ||
![]() |
3e11361c51 | ||
![]() |
e2f09545e2 | ||
![]() |
28bea3abc3 | ||
![]() |
a8013b1818 | ||
![]() |
e4714f25f5 | ||
![]() |
ba3a1e0fdc | ||
![]() |
a27923f15a | ||
![]() |
908e5860b9 | ||
![]() |
bdb5a21fde | ||
![]() |
26a1918d60 | ||
![]() |
c3fb26a182 | ||
![]() |
4498c4b11e | ||
![]() |
5dcd00cb4d | ||
![]() |
0e312a7b86 | ||
![]() |
706f0a52c1 | ||
![]() |
724263e2ed | ||
![]() |
2d3286870c | ||
![]() |
dc88289b54 | ||
![]() |
1c2af902dc | ||
![]() |
cb3c910d8a | ||
![]() |
5dbfd62713 | ||
![]() |
f2986981f0 | ||
![]() |
a46774a580 | ||
![]() |
6ac5746d75 | ||
![]() |
ca012b910d | ||
![]() |
f9256738a4 | ||
![]() |
0d91987d59 | ||
![]() |
5e7896185a | ||
![]() |
da1737673c | ||
![]() |
141b72ab47 | ||
![]() |
bca574d19d | ||
![]() |
30168d8aaa | ||
![]() |
0404bb5314 | ||
![]() |
01304d1852 | ||
![]() |
439912b50b | ||
![]() |
b5555ac4b4 | ||
![]() |
e98f1f8bd0 | ||
![]() |
ca763d0077 | ||
![]() |
009567e423 | ||
![]() |
4f71f39d2d | ||
![]() |
14207fd7ea | ||
![]() |
ba11783c6a | ||
![]() |
4a9e0a232c | ||
![]() |
d523076140 | ||
![]() |
e06fa19ecd | ||
![]() |
bc9e5de27f | ||
![]() |
e5acd5e0ce | ||
![]() |
1a95d95576 | ||
![]() |
12054828f9 | ||
![]() |
0fd2eb288b | ||
![]() |
39524b282f | ||
![]() |
f0bd90c896 | ||
![]() |
1ed5bf9288 | ||
![]() |
07f15e92ea | ||
![]() |
17ff0c0635 | ||
![]() |
76f20fb831 | ||
![]() |
6e74b0e916 | ||
![]() |
aec360748f | ||
![]() |
e208035919 | ||
![]() |
ba3503aaed | ||
![]() |
fa62983e2c | ||
![]() |
e99c573791 | ||
![]() |
28b0eff1ca | ||
![]() |
e10adad3d8 | ||
![]() |
353f593b64 | ||
![]() |
86c164e05a | ||
![]() |
2fd9434feb | ||
![]() |
42cdc5b508 | ||
![]() |
653c14ee0e | ||
![]() |
2f2027fe85 | ||
![]() |
e8f3287759 | ||
![]() |
077c53e67f | ||
![]() |
eca1792a70 | ||
![]() |
cecbc8f708 | ||
![]() |
1b99e1b09d | ||
![]() |
574fffb715 | ||
![]() |
e72cb6241f | ||
![]() |
c7ba3deafe | ||
![]() |
e9583eae10 | ||
![]() |
7adc65f482 | ||
![]() |
ba7c206479 | ||
![]() |
8beb5617d4 | ||
![]() |
5cf4010bcf | ||
![]() |
8e873ecd9c | ||
![]() |
bc05c958d7 | ||
![]() |
e1cb5e8f57 | ||
![]() |
a83bbcb9bd | ||
![]() |
99d8b79580 | ||
![]() |
b838caa222 | ||
![]() |
9e96d809d3 | ||
![]() |
55eaa80e98 | ||
![]() |
3aacad45f3 | ||
![]() |
f721410bdd | ||
![]() |
9a33ca1283 | ||
![]() |
83ef3a0b9b | ||
![]() |
8c839e282d | ||
![]() |
a7b0ddfa5d | ||
![]() |
ea82349a38 | ||
![]() |
3dad841848 | ||
![]() |
8807164c20 | ||
![]() |
25e0fd8212 | ||
![]() |
7a3a6f3498 |
88 changed files with 1084 additions and 1159 deletions
components
flake.lockflake.nixhomes
machines
cherry
chungus
configuration.nix
hardware-configuration
hass-mqtt.nixhass-zigbee2mqtt.nixhass.nixmedia-audiobookshelf.nixmedia-jellyfin.nixmedia-navidrome.nixmedia-share.nixmedia-syncthing.nixnetwork-tinc-retiolum.nixnetwork-wireguard-wg0.nixservice-atuin.nixservice-forgejo.nixservice-paperless-healthchecks.nixservice-paperless-tika.nixservice-paperless.nixservice-s3.nixservice-taskwarrior.nixservice-vault.nixtelemetry
topology.nixzerotier-controller.nixorbi
configuration.nixmedia-arr.nixmedia-nextcloud.nixmedia-transmission2.nixnetwork-wireguard.nixservice-forgejo.nixservice-nix-cache.nixservice-photoprism.nixservice-surrealdb.nixservice-taskchampion.nixservice-wastebin.nixsocial-matrix-terranix.nix
usbstick
nix
system/all
vars/per-machine
|
@ -13,7 +13,7 @@ with lib;
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf (config.components.chaospott.enable && config.components.gui.audio.enable) {
|
config = mkIf (config.components.chaospott.enable && config.components.gui.audio.enable) {
|
||||||
hardware.pulseaudio.zeroconf.discovery.enable = true;
|
services.pulseaudio.zeroconf.discovery.enable = true;
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
paprefs
|
paprefs
|
||||||
];
|
];
|
||||||
|
|
|
@ -12,12 +12,10 @@ with lib;
|
||||||
default = config.components.gui.enable;
|
default = config.components.gui.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf (config.components.gui.audio.enable) {
|
config = mkMerge [
|
||||||
|
(mkIf (config.components.gui.audio.enable) {
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
hardware.pulseaudio.enable = false;
|
|
||||||
|
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
powerOnBoot = true;
|
||||||
|
@ -34,7 +32,7 @@ with lib;
|
||||||
];
|
];
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
#enable = true;
|
||||||
systemWide = true;
|
systemWide = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
alsa.support32Bit = true;
|
alsa.support32Bit = true;
|
||||||
|
@ -52,5 +50,16 @@ with lib;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
})
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
# this is always true
|
||||||
|
# seems other options enable this one
|
||||||
|
services.pipewire.enable = config.components.gui.audio.enable;
|
||||||
|
services.pulseaudio.enable = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ with lib;
|
||||||
./browser.nix
|
./browser.nix
|
||||||
./cups.nix
|
./cups.nix
|
||||||
./home-manager
|
./home-manager
|
||||||
|
./kde.nix
|
||||||
./kmonad.nix
|
./kmonad.nix
|
||||||
./noti.nix # todo: make this different (use password store and such)
|
./noti.nix # todo: make this different (use password store and such)
|
||||||
./pass.nix
|
./pass.nix
|
||||||
|
@ -29,7 +30,6 @@ with lib;
|
||||||
config = mkIf config.components.gui.enable {
|
config = mkIf config.components.gui.enable {
|
||||||
# todo extract xorg stuff to prepare wayland
|
# todo extract xorg stuff to prepare wayland
|
||||||
environment.enableAllTerminfo = true;
|
environment.enableAllTerminfo = true;
|
||||||
qt.platformTheme = "qt5ct";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
19
components/gui/kde.nix
Normal file
19
components/gui/kde.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
|
||||||
|
options.components.gui.kde.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = config.components.gui.enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf (config.components.gui.kde.enable) {
|
||||||
|
|
||||||
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -14,30 +14,41 @@ with lib;
|
||||||
default = config.components.gui.enable;
|
default = config.components.gui.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf (config.components.gui.xorg.enable && config.components.gui.enable) {
|
options.components.gui.xorg.lightdm.enable = mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = config.components.gui.xorg.enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
options.components.gui.xorg.sddm.enable = mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = !config.components.gui.xorg.lightdm.enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
|
||||||
|
(mkIf (config.components.gui.xorg.lightdm.enable && config.components.gui.xorg.enable) {
|
||||||
|
|
||||||
# system.custom.fonts.enable = true;
|
|
||||||
services.displayManager = {
|
services.displayManager = {
|
||||||
defaultSession = lib.mkDefault "none+i3";
|
defaultSession = "none+i3";
|
||||||
autoLogin.enable = lib.mkDefault true;
|
autoLogin.enable = lib.mkDefault true;
|
||||||
autoLogin.user = config.users.users.mainUser.name;
|
autoLogin.user = config.users.users.mainUser.name;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver.displayManager.lightdm.enable = true;
|
||||||
|
|
||||||
enable = true;
|
})
|
||||||
|
|
||||||
displayManager = {
|
(mkIf (config.components.gui.xorg.sddm.enable && config.components.gui.xorg.enable) {
|
||||||
lightdm.enable = lib.mkDefault true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktopManager.xterm.enable = false;
|
services.xserver.displayManager.sddm.enable = true;
|
||||||
windowManager.i3.enable = true;
|
|
||||||
|
|
||||||
# mouse/touchpad
|
})
|
||||||
# --------------
|
|
||||||
|
|
||||||
};
|
(mkIf (config.components.gui.xorg.enable && config.components.gui.enable) {
|
||||||
|
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
services.xserver.windowManager.i3.enable = true;
|
||||||
|
|
||||||
services.libinput = {
|
services.libinput = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -56,7 +67,7 @@ with lib;
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
||||||
xclip
|
xclip
|
||||||
xtrlock-pam
|
#xtrlock-pam
|
||||||
xorg.xev
|
xorg.xev
|
||||||
|
|
||||||
dmenu
|
dmenu
|
||||||
|
@ -81,5 +92,7 @@ with lib;
|
||||||
'';
|
'';
|
||||||
environment.etc."/X11/Xresource.d/.keep".text = "";
|
environment.etc."/X11/Xresource.d/.keep".text = "";
|
||||||
|
|
||||||
};
|
})
|
||||||
|
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,7 +136,7 @@ in
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
{
|
{
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
enable = true;
|
enable = false;
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
obs-backgroundremoval
|
obs-backgroundremoval
|
||||||
obs-vaapi
|
obs-vaapi
|
||||||
|
@ -161,17 +161,17 @@ in
|
||||||
# obs studio stuff
|
# obs studio stuff
|
||||||
obs-cli
|
obs-cli
|
||||||
v4l-utils
|
v4l-utils
|
||||||
obs-cmd
|
#obs-cmd
|
||||||
|
|
||||||
# to record your screen
|
# to record your screen
|
||||||
# ---------------------
|
# ---------------------
|
||||||
simplescreenrecorder
|
#simplescreenrecorder
|
||||||
screenKey
|
screenKey
|
||||||
#obs-studio
|
#obs-studio
|
||||||
|
|
||||||
# to transcode video material
|
# to transcode video material
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
handbrake
|
# handbrake
|
||||||
ffmpeg-full
|
ffmpeg-full
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with types;
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
../timezone.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
telemetry.enable = mkDefault true;
|
|
||||||
telemetry.metrics.enable = mkDefault false;
|
|
||||||
telemetry.opentelemetry.enable = false;
|
|
||||||
services.journald.extraConfig = "SystemMaxUse=1G";
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -36,6 +36,13 @@ in
|
||||||
make sure ssh is only available trough the tinc
|
make sure ssh is only available trough the tinc
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
allowMosh = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
make mosh port available
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
|
@ -69,6 +76,16 @@ in
|
||||||
iptables --table nat --append PREROUTING ! --in-interface tinc.+ --protocol tcp --match tcp --dport 22 --jump REDIRECT --to-ports 0
|
iptables --table nat --append PREROUTING ! --in-interface tinc.+ --protocol tcp --match tcp --dport 22 --jump REDIRECT --to-ports 0
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
||||||
|
(mkIf (cfg.allowMosh && cfg.enable) {
|
||||||
|
networking.firewall.allowedUDPPortRanges = [
|
||||||
|
{
|
||||||
|
from = 60000;
|
||||||
|
to = 61000;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -469,7 +469,7 @@ let
|
||||||
configuration = pkgs.writeText "config.yml" (builtins.toJSON json);
|
configuration = pkgs.writeText "config.yml" (builtins.toJSON json);
|
||||||
in
|
in
|
||||||
pkgs.writers.writeBashBin name ''
|
pkgs.writers.writeBashBin name ''
|
||||||
${pkgs.wtf}/bin/wtfutil --config=${toString configuration}
|
${pkgs.wtfutil}/bin/wtfutil --config=${toString configuration}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
|
@ -484,7 +484,7 @@ in
|
||||||
services.upower.enable = true;
|
services.upower.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.wtf
|
pkgs.wtfutil
|
||||||
(createDashboard {
|
(createDashboard {
|
||||||
json = qJson;
|
json = qJson;
|
||||||
name = "q";
|
name = "q";
|
||||||
|
|
|
@ -14,10 +14,13 @@ with lib;
|
||||||
|
|
||||||
config = mkIf config.components.virtualisation.virtualbox.enable {
|
config = mkIf config.components.virtualisation.virtualbox.enable {
|
||||||
|
|
||||||
virtualisation.virtualbox = {
|
virtualisation.virtualbox.host.enable = true;
|
||||||
host.enable = true;
|
virtualisation.virtualbox.host.enableExtensionPack = true;
|
||||||
guest.enable = true;
|
virtualisation.virtualbox.guest.enable = true;
|
||||||
};
|
virtualisation.virtualbox.guest.dragAndDrop = true;
|
||||||
|
|
||||||
|
# https://discourse.nixos.org/t/issue-with-virtualbox-in-24-11/57607/2
|
||||||
|
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
|
||||||
|
|
||||||
users.extraGroups.vboxusers.members = [ config.users.users.mainUser.name ];
|
users.extraGroups.vboxusers.members = [ config.users.users.mainUser.name ];
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@ with lib;
|
||||||
pkgs.yubikey-personalization
|
pkgs.yubikey-personalization
|
||||||
pkgs.yubikey-personalization-gui
|
pkgs.yubikey-personalization-gui
|
||||||
pkgs.yubikey-manager
|
pkgs.yubikey-manager
|
||||||
pkgs.yubikey-manager-qt
|
|
||||||
|
|
||||||
# for `gpg --export $keyid | hokey lint` to check keys
|
# for `gpg --export $keyid | hokey lint` to check keys
|
||||||
#pkgs.haskellPackages.hopenpgp-tools
|
#pkgs.haskellPackages.hopenpgp-tools
|
||||||
|
|
547
flake.lock
generated
547
flake.lock
generated
|
@ -5,11 +5,11 @@
|
||||||
"fromYaml": "fromYaml"
|
"fromYaml": "fromYaml"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732200724,
|
"lastModified": 1745523430,
|
||||||
"narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
|
"narHash": "sha256-EAYWV+kXbwsH+8G/8UtmcunDeKwLwSOyfcmzZUkWE/c=",
|
||||||
"owner": "SenchoPens",
|
"owner": "SenchoPens",
|
||||||
"repo": "base16.nix",
|
"repo": "base16.nix",
|
||||||
"rev": "153d52373b0fb2d343592871009a286ec8837aec",
|
"rev": "58bfe2553d937d8af0564f79d5b950afbef69717",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -69,10 +69,13 @@
|
||||||
},
|
},
|
||||||
"clan-core": {
|
"clan-core": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"data-mesher": "data-mesher",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
"flake-parts"
|
"flake-parts"
|
||||||
],
|
],
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nix-select": "nix-select",
|
||||||
"nixos-facter-modules": "nixos-facter-modules",
|
"nixos-facter-modules": "nixos-facter-modules",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
@ -82,11 +85,11 @@
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739259543,
|
"lastModified": 1746157209,
|
||||||
"narHash": "sha256-AW5UFLVstsfzTUVRJGJLmyhc9wDxo/1aROjsawEBD/c=",
|
"narHash": "sha256-46YUofeuM1o0r7EHYc79pfOWCZMZrOFQUZwzpEKv+MY=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "15e8df894e8ca457dadb8953750b28363f1bae6c",
|
"rev": "7889192b7c47278e1915541e85be8e0039b89d74",
|
||||||
"revCount": 5648,
|
"revCount": 6586,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.clan.lol/clan/clan-core"
|
"url": "https://git.clan.lol/clan/clan-core"
|
||||||
},
|
},
|
||||||
|
@ -104,11 +107,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723143645,
|
"lastModified": 1739428569,
|
||||||
"narHash": "sha256-/71L2ZBM9AmUpEQC19Rf7AxA+BhIquObB8aZDkfVRz8=",
|
"narHash": "sha256-uvW5PQqw4+cqjoaoPB/frHY7EjO+ehRryOHAkJKYX5A=",
|
||||||
"owner": "mrvandalo",
|
"owner": "mrvandalo",
|
||||||
"repo": "clan-fact-generators",
|
"repo": "clan-fact-generators",
|
||||||
"rev": "620c5d3185594b3e2d91e29a7590f44abae4319c",
|
"rev": "882fc040fcd283044a940a5e11e81a7e86aa76ce",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -117,16 +120,49 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"data-mesher": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"clan-core",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"clan-core",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"clan-core",
|
||||||
|
"systems"
|
||||||
|
],
|
||||||
|
"treefmt-nix": [
|
||||||
|
"clan-core",
|
||||||
|
"treefmt-nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1746156047,
|
||||||
|
"narHash": "sha256-3nBgCRHQd9gfvJ9zy8wngQhwrVYHfCPdkijyeTMJWNE=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "ba46584e3157d6845d95eda749b3fadc28fff44f",
|
||||||
|
"revCount": 424,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.clan.lol/clan/data-mesher"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.clan.lol/clan/data-mesher"
|
||||||
|
}
|
||||||
|
},
|
||||||
"devshell": {
|
"devshell": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735644329,
|
"lastModified": 1741473158,
|
||||||
"narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
|
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
|
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -156,6 +192,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"devshell_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_9"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735644329,
|
||||||
|
"narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"disko": {
|
"disko": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -164,11 +218,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738765162,
|
"lastModified": 1745812220,
|
||||||
"narHash": "sha256-3Z40qHaFScWUCVQrGc4Y+RdoPsh1R/wIh+AN4cTXP0I=",
|
"narHash": "sha256-hotBG0EJ9VmAHJYF0yhWuTVZpENHvwcJ2SxvIPrXm+g=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "ff3568858c54bd306e9e1f2886f0f781df307dff",
|
"rev": "d0c543d740fad42fe2c035b43c9d41127e073c78",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -185,11 +239,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734088167,
|
"lastModified": 1744940522,
|
||||||
"narHash": "sha256-OIitVU+IstPbX/NWn2jLF+/sT9dVKcO2FKeRAzlyX6c=",
|
"narHash": "sha256-TNoetfICvd29DhxRPpmyKItQBDlqSvKcV+wGNkn14jk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "d32f2d1750d61a476a236526b725ec5a32e16342",
|
"rev": "51d33bbb7f1e74ba5f9d9a77357735149da99081",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -202,11 +256,11 @@
|
||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736899990,
|
"lastModified": 1744642301,
|
||||||
"narHash": "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw=",
|
"narHash": "sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d",
|
"rev": "59e3de00f01e5adb851d824cf7911bd90c31083a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -232,7 +286,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
@ -272,11 +325,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738453229,
|
"lastModified": 1743550720,
|
||||||
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
|
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
|
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -311,11 +364,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733312601,
|
"lastModified": 1743550720,
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -362,14 +415,18 @@
|
||||||
},
|
},
|
||||||
"flake-parts_7": {
|
"flake-parts_7": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_5"
|
"nixpkgs-lib": [
|
||||||
|
"stylix",
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726153070,
|
"lastModified": 1733312601,
|
||||||
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
|
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
|
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -379,6 +436,24 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_8": {
|
"flake-parts_8": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743550720,
|
||||||
|
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_9": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_6"
|
"nixpkgs-lib": "nixpkgs-lib_6"
|
||||||
},
|
},
|
||||||
|
@ -512,11 +587,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735882644,
|
"lastModified": 1742649964,
|
||||||
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
|
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
|
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -595,11 +670,11 @@
|
||||||
"treefmt-nix": "treefmt-nix_2"
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729744850,
|
"lastModified": 1739947726,
|
||||||
"narHash": "sha256-2tggkyfZKEHPsubKxqW1KhN9vzNJVpxLdFtyaFNTJR0=",
|
"narHash": "sha256-5GUrVccTk1iIuM7JbJsTqM57Etxek9ebo6e+loQadus=",
|
||||||
"owner": "mrvandalo",
|
"owner": "mrvandalo",
|
||||||
"repo": "nixos-healthchecks",
|
"repo": "nixos-healthchecks",
|
||||||
"rev": "22119198994f20ba6d68efa2c1106aae83d74a8f",
|
"rev": "45da1993e4b568590170cee8d70e7c2266b2f536",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -615,11 +690,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738753876,
|
"lastModified": 1746169624,
|
||||||
"narHash": "sha256-yXT82kERWL4R81hfun9BuT478Q6ut0dJzdQjAxjRS38=",
|
"narHash": "sha256-oIAZDng5FYQXnmGJrK4WZX2tsQ1nmxHd9OrcySm/Jf4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f20b7a8ab527a2482f13754dc00b2deaddc34599",
|
"rev": "1298a3418be1a875e9ae6643770b0939814cd441",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -667,6 +742,42 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"clan-core",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745816321,
|
||||||
|
"narHash": "sha256-Gyh/fkCDqVNGM0BWvk+4UAS17w2UI6iwnbQQCmc1TDI=",
|
||||||
|
"owner": "nix-darwin",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "4515dacafb0ccd42e5395aacc49fd58a43027e01",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-darwin",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-select": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745005516,
|
||||||
|
"narHash": "sha256-IVaoOGDIvAa/8I0sdiiZuKptDldrkDWUNf/+ezIRhyc=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "69d8bf596194c5c35a4e90dd02c52aa530caddf8",
|
||||||
|
"revCount": 40,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.clan.lol/clan/nix-select"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.clan.lol/clan/nix-select"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-topology": {
|
"nix-topology": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell_2",
|
"devshell": "devshell_2",
|
||||||
|
@ -677,11 +788,11 @@
|
||||||
"pre-commit-hooks": "pre-commit-hooks"
|
"pre-commit-hooks": "pre-commit-hooks"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738246091,
|
"lastModified": 1744142264,
|
||||||
"narHash": "sha256-2+KkZsRO+XlOFbXbRgMZbRtlqn5MBNYj4HNmZ/2Tojg=",
|
"narHash": "sha256-h5KyodobZm8dx/HSNN+basgdmjxrQxudjrss4gAQpZk=",
|
||||||
"owner": "oddlama",
|
"owner": "oddlama",
|
||||||
"repo": "nix-topology",
|
"repo": "nix-topology",
|
||||||
"rev": "5526269fa3eedf4f4bc00c0bf7a03db31d24b029",
|
"rev": "f49121cbbf4a86c560638ade406d99ee58deb7aa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -700,11 +811,11 @@
|
||||||
"treefmt-nix": "treefmt-nix_3"
|
"treefmt-nix": "treefmt-nix_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738399995,
|
"lastModified": 1745505025,
|
||||||
"narHash": "sha256-2s+b7M2UayudwHQTVSo2RSF1sKbasqCXHYbE3XStVVI=",
|
"narHash": "sha256-F9IekLaLYVG/UNUiaN194qu0n1pOgeqjGkD1l5OVEgM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-anywhere",
|
"repo": "nixos-anywhere",
|
||||||
"rev": "d4a3ecf32bd3cc9d243e0a2f37de91bc84b14216",
|
"rev": "edf1adb89307f921575b5fcd0c6bb4e684fbd38b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -715,26 +826,26 @@
|
||||||
},
|
},
|
||||||
"nixos-facter-modules": {
|
"nixos-facter-modules": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736931726,
|
"lastModified": 1743671943,
|
||||||
"narHash": "sha256-aY55yiifyo1XPPpbpH0kWlV1g2dNGBlx6622b7OK8ks=",
|
"narHash": "sha256-7sYig0+RcrR3sOL5M+2spbpFUHyEP7cnUvCaqFOBjyU=",
|
||||||
"owner": "numtide",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-facter-modules",
|
"repo": "nixos-facter-modules",
|
||||||
"rev": "fa11d87b61b2163efbb9aed7b7a5ae0299e5ab9c",
|
"rev": "58ad9691670d293a15221d4a78818e0088d2e086",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-facter-modules",
|
"repo": "nixos-facter-modules",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738638143,
|
"lastModified": 1745955289,
|
||||||
"narHash": "sha256-ZYMe4c4OCtIUBn5hx15PEGr0+B1cNEpl2dsaLxwY2W0=",
|
"narHash": "sha256-mmV2oPhQN+YF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "9bdd53f5908453e4d03f395eb1615c3e9a351f70",
|
"rev": "72081c9fbbef63765ae82bff9727ea79cc86bd5b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -755,11 +866,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734098258,
|
"lastModified": 1744853194,
|
||||||
"narHash": "sha256-3mzGstXtPqt+zWzXqesgQ2haEI6LNCFhc/uU3Bcj6Ak=",
|
"narHash": "sha256-NBOdBdQdxb3FdM4Ywb4cATMLfFtkPqDYh0LIQMZ7eRY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-images",
|
"repo": "nixos-images",
|
||||||
"rev": "231f5f6370e78d04675c9fa8199be6c3b1b85773",
|
"rev": "8f6f8060a13096934c2a502eb0508bdc3f1284a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -770,11 +881,11 @@
|
||||||
},
|
},
|
||||||
"nixos-stable": {
|
"nixos-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733808091,
|
"lastModified": 1744440957,
|
||||||
"narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=",
|
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a0f3e10d94359665dba45b71b4227b0aeb851f8e",
|
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -800,70 +911,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-legacy_2211": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1688392541,
|
|
||||||
"narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-22.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-legacy_2311": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1720535198,
|
|
||||||
"narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-23.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-legacy_2405": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1735563628,
|
|
||||||
"narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-legacy_2411": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1738702386,
|
|
||||||
"narHash": "sha256-nJj8f78AYAxl/zqLiFGXn5Im1qjFKU8yBPKoWEeZN5M=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "030ba1976b7c0e1a67d9716b17308ccdab5b381e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-24.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717284937,
|
"lastModified": 1717284937,
|
||||||
|
@ -914,14 +961,17 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-lib_5": {
|
"nixpkgs-lib_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725233747,
|
"lastModified": 1743296961,
|
||||||
"narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=",
|
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
||||||
"type": "tarball",
|
"owner": "nix-community",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "nix-community",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib_6": {
|
"nixpkgs-lib_6": {
|
||||||
|
@ -938,11 +988,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable-small": {
|
"nixpkgs-unstable-small": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738758495,
|
"lastModified": 1746165930,
|
||||||
"narHash": "sha256-CZ8T4vP3ag2hwkpSZjatxJb55ouszvmnWw09qxGW9TU=",
|
"narHash": "sha256-MkYNib57sO+nI6KAbpGLseXFmJVZ04QP6Celntnay8E=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ceaea203f3ae1787b1bd13f021f686391696fc5b",
|
"rev": "97e6d418edc7a9a85d505f96f1e65ca9d6a5f7a8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -985,11 +1035,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734057604,
|
"lastModified": 1745088452,
|
||||||
"narHash": "sha256-EC3eHb8Mk54jnk+C8Mtq2sRAaPJzg6zPvRY6OdNHwSc=",
|
"narHash": "sha256-6SrsUiwNtyQtl+JJNcNKe98iediwPrY9Kldhszqggto=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "403845c37839bd698e8c36587f0601e36f76d2a8",
|
"rev": "ae0c0ebf757121ee44bb98e70a71212a9961055d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1001,16 +1051,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738758495,
|
"lastModified": 1746123514,
|
||||||
"narHash": "sha256-CZ8T4vP3ag2hwkpSZjatxJb55ouszvmnWw09qxGW9TU=",
|
"narHash": "sha256-UNO+MbVHLl4AkVWYqekk72/gqFNSLYNkBgto7h+7P3U=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ceaea203f3ae1787b1bd13f021f686391696fc5b",
|
"rev": "b5dd9efc912ecabeafa4f082d31e19cb1c74266c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable-small",
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -1031,11 +1081,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738178544,
|
"lastModified": 1746035341,
|
||||||
"narHash": "sha256-UbM+zJFlze877N5j2YMLKYFX7t05VvmuNX2M0vJ7RfI=",
|
"narHash": "sha256-ujnL4MZnFdtGHSLX0knm9XYCgWlvTkxedTp+2JbSmOI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "975ac0ab33ee7fea64842047a96f5d679d90913c",
|
"rev": "ab08953dd2f1d468331895e8b1f876a4095ad9e3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1045,6 +1095,61 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_8": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745526057,
|
||||||
|
"narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_9": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722073938,
|
||||||
|
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_7",
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1746056780,
|
||||||
|
"narHash": "sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"rev": "d476cd0972dd6242d76374fcc277e6735715c167",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"permown": {
|
"permown": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -1120,11 +1225,11 @@
|
||||||
"treefmt-nix": "treefmt-nix_4"
|
"treefmt-nix": "treefmt-nix_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739081745,
|
"lastModified": 1746098706,
|
||||||
"narHash": "sha256-FGaxXNmvDd6fL22fvbVS9eb+Lr+4UR+xZtkKkUoYuKI=",
|
"narHash": "sha256-DS10Cb9DxrLCiNaPw705e5jfMa65QJQOzEOREIWLpwg=",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"rev": "0d764189384d5fa7d9850b4d2f35ed98a0598871",
|
"rev": "9ed8975e05ce562ff393ec9365e87462e0292676",
|
||||||
"revCount": 89,
|
"revCount": 99,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
|
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
|
||||||
},
|
},
|
||||||
|
@ -1134,21 +1239,6 @@
|
||||||
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
|
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"retiolum": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737987273,
|
|
||||||
"narHash": "sha256-WQCLoDbthUO5PcdYDBxZZQgpQbEXab50EcwChkukxN4=",
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "retiolum",
|
|
||||||
"rev": "514fe96610f745435b89355822691b1961dc4857",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "retiolum",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"clan-core": "clan-core",
|
"clan-core": "clan-core",
|
||||||
|
@ -1163,21 +1253,16 @@
|
||||||
"nixos-anywhere": "nixos-anywhere",
|
"nixos-anywhere": "nixos-anywhere",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"nixpkgs-legacy_2211": "nixpkgs-legacy_2211",
|
|
||||||
"nixpkgs-legacy_2311": "nixpkgs-legacy_2311",
|
|
||||||
"nixpkgs-legacy_2405": "nixpkgs-legacy_2405",
|
|
||||||
"nixpkgs-legacy_2411": "nixpkgs-legacy_2411",
|
|
||||||
"nixpkgs-unstable-small": "nixpkgs-unstable-small",
|
"nixpkgs-unstable-small": "nixpkgs-unstable-small",
|
||||||
"permown": "permown",
|
"permown": "permown",
|
||||||
"polygon-art": "polygon-art",
|
"polygon-art": "polygon-art",
|
||||||
"private-parts": "private-parts",
|
"private-parts": "private-parts",
|
||||||
"retiolum": "retiolum",
|
|
||||||
"share-http": "share-http",
|
"share-http": "share-http",
|
||||||
"srvos": "srvos",
|
"srvos": "srvos",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
"taskwarrior": "taskwarrior",
|
"taskwarrior": "taskwarrior",
|
||||||
"telemetry": "telemetry",
|
"telemetry": "telemetry",
|
||||||
"treefmt-nix": "treefmt-nix_8"
|
"treefmt-nix": "treefmt-nix_9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"share-http": {
|
"share-http": {
|
||||||
|
@ -1211,16 +1296,15 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736953253,
|
"lastModified": 1745310711,
|
||||||
"narHash": "sha256-shJxzy7qypjq9hpETQ3gJsBZXO5E3KR0INca/xwiVp4=",
|
"narHash": "sha256-ePyTpKEJTgX0gvgNQWd7tQYQ3glIkbqcW778RpHlqgA=",
|
||||||
"owner": "pinpox",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "a7c6e64401b6dde13c0de90230cb64087c9d9693",
|
"rev": "5e3e92b16d6fdf9923425a8d4df7496b2434f39c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "pinpox",
|
"owner": "Mic92",
|
||||||
"ref": "lazy-assertions",
|
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -1230,11 +1314,11 @@
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738198321,
|
"lastModified": 1746105715,
|
||||||
"narHash": "sha256-lhnHBXO9Y8xEn92JqxjancdL8Gh16ONuxZp60iZfmX4=",
|
"narHash": "sha256-CApScHWtVdJT7xOpTDfT8lqBdQpj0+mLCXNCFJY4+GI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "srvos",
|
"repo": "srvos",
|
||||||
"rev": "7d5a4aaadac9ff63f9ed4347df95175aceee5079",
|
"rev": "fca1442996e4ed49b379465f6d211a01147bfecb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1260,18 +1344,20 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
|
"nur": "nur",
|
||||||
"systems": "systems_3",
|
"systems": "systems_3",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
|
"tinted-schemes": "tinted-schemes",
|
||||||
"tinted-tmux": "tinted-tmux",
|
"tinted-tmux": "tinted-tmux",
|
||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738611626,
|
"lastModified": 1746158690,
|
||||||
"narHash": "sha256-IgjqlYPaS8Bg+jc6a691w27XDFhBeM7gkP4eDcR2EBs=",
|
"narHash": "sha256-Pe2emz36QL8GOILXvvmH/agqkspZFrcOrQxv6uufaEc=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "d513f59da5856978c363d2f82103f708f4a6024d",
|
"rev": "bc38629511dd9cc78c5ca37a6e546fa66330d50e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1364,19 +1450,17 @@
|
||||||
},
|
},
|
||||||
"taskwarrior": {
|
"taskwarrior": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_7",
|
"flake-parts": "flake-parts_8",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_8",
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"taskshell": "taskshell",
|
"taskshell": "taskshell",
|
||||||
"treefmt-nix": "treefmt-nix_6"
|
"treefmt-nix": "treefmt-nix_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727417586,
|
"lastModified": 1745712631,
|
||||||
"narHash": "sha256-z3ahlvbUWENgrvatJYd7FtPL0OoV4E+zNZiBzRx9S1E=",
|
"narHash": "sha256-u/GT/Tg3PLNmfMrCQp3Qtthy2a6RLr+uhJrbgRfgWCw=",
|
||||||
"owner": "mrvandalo",
|
"owner": "mrvandalo",
|
||||||
"repo": "taskwarrior-flake",
|
"repo": "taskwarrior-flake",
|
||||||
"rev": "9433b3b1c4afb18c554d067fadf37d979b129b09",
|
"rev": "22265f5a40181eeb074c07ce50733acdc0fd7987",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1387,18 +1471,19 @@
|
||||||
},
|
},
|
||||||
"telemetry": {
|
"telemetry": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_8",
|
"devshell": "devshell_3",
|
||||||
|
"flake-parts": "flake-parts_9",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"treefmt-nix": "treefmt-nix_7"
|
"treefmt-nix": "treefmt-nix_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738566582,
|
"lastModified": 1740624189,
|
||||||
"narHash": "sha256-Sl+0RRf9DpxuBfiXNZkJIfDreRE1JoABhvXVGWNBL+k=",
|
"narHash": "sha256-GET3URhKXO5uq62tAPr9xSe6fSco1m0+p1UvK9iAukM=",
|
||||||
"owner": "mrvandalo",
|
"owner": "mrvandalo",
|
||||||
"repo": "nixos-telemetry",
|
"repo": "nixos-telemetry",
|
||||||
"rev": "d5bb7a31de3e826e43919897b486649fcdc3fb9a",
|
"rev": "bb8713fc2cd19c316c051fa1e643a36531c12364",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1441,14 +1526,30 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tinted-schemes": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744974599,
|
||||||
|
"narHash": "sha256-Fg+rdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"rev": "28c26a621123ad4ebd5bbfb34ab39421c0144bdd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735737224,
|
"lastModified": 1745111349,
|
||||||
"narHash": "sha256-FO2hRBkZsjlIRqzNHCPc/52yxg11kHGA8MEtSun9RwE=",
|
"narHash": "sha256-udV+nHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "aead506a9930c717ebf81cc83a2126e9ca08fa64",
|
"rev": "e009f18a01182b63559fb28f1c786eb027c3dee9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1481,11 +1582,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738953846,
|
"lastModified": 1745929750,
|
||||||
"narHash": "sha256-yrK3Hjcr8F7qS/j2F+r7C7o010eVWWlm4T1PrbKBOxQ=",
|
"narHash": "sha256-k5ELLpTwRP/OElcLpNaFWLNf8GRDq4/eHBmFy06gGko=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "4f09b473c936d41582dd744e19f34ec27592c5fd",
|
"rev": "82bf32e541b30080d94e46af13d46da0708609ea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1523,11 +1624,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733761991,
|
"lastModified": 1744961264,
|
||||||
"narHash": "sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ=",
|
"narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "0ce9d149d99bc383d1f2d85f31f6ebd146e46085",
|
"rev": "8d404a69efe76146368885110f29a2ca3700bee6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1581,16 +1682,17 @@
|
||||||
"treefmt-nix_6": {
|
"treefmt-nix_6": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"taskwarrior",
|
"stylix",
|
||||||
|
"nur",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727252110,
|
"lastModified": 1733222881,
|
||||||
"narHash": "sha256-3O7RWiXpvqBcCl84Mvqa8dXudZ1Bol1ubNdSmQt7nF4=",
|
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "1bff2ba6ec22bc90e9ad3f7e94cca0d37870afa3",
|
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1600,6 +1702,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix_7": {
|
"treefmt-nix_7": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"taskwarrior",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744961264,
|
||||||
|
"narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "8d404a69efe76146368885110f29a2ca3700bee6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_8": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"telemetry",
|
"telemetry",
|
||||||
|
@ -1620,18 +1743,18 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix_8": {
|
"treefmt-nix_9": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738680491,
|
"lastModified": 1745929750,
|
||||||
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
|
"narHash": "sha256-k5ELLpTwRP/OElcLpNaFWLNf8GRDq4/eHBmFy06gGko=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
|
"rev": "82bf32e541b30080d94e46af13d46da0708609ea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
90
flake.nix
90
flake.nix
|
@ -22,26 +22,20 @@
|
||||||
nix-topology.url = "github:oddlama/nix-topology";
|
nix-topology.url = "github:oddlama/nix-topology";
|
||||||
nixos-anywhere.url = "github:nix-community/nixos-anywhere";
|
nixos-anywhere.url = "github:nix-community/nixos-anywhere";
|
||||||
nixos-hardware.url = "github:nixos/nixos-hardware";
|
nixos-hardware.url = "github:nixos/nixos-hardware";
|
||||||
nixpkgs-legacy_2211.url = "github:nixos/nixpkgs/nixos-22.11";
|
|
||||||
nixpkgs-legacy_2311.url = "github:nixos/nixpkgs/nixos-23.11";
|
|
||||||
nixpkgs-legacy_2405.url = "github:nixos/nixpkgs/nixos-24.05";
|
|
||||||
nixpkgs-legacy_2411.url = "github:nixos/nixpkgs/nixos-24.11";
|
|
||||||
nixpkgs-unstable-small.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
nixpkgs-unstable-small.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
permown.inputs.nixpkgs.follows = "nixpkgs";
|
permown.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
permown.url = "github:mrVanDalo/module.permown";
|
permown.url = "github:mrVanDalo/module.permown";
|
||||||
polygon-art.url = "git+https://git.ingolf-wagner.de/palo/polygon-art.git";
|
polygon-art.url = "git+https://git.ingolf-wagner.de/palo/polygon-art.git";
|
||||||
private-parts.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
private-parts.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
||||||
private-parts.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git?ref=main";
|
private-parts.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git?ref=main";
|
||||||
#private-parts.url = "git+file:///home/palo/dev/nixos/nixos-private-parts";
|
#private-parts.url = "git+file:///home/palo/dev/nixos/nixos-private-parts";
|
||||||
retiolum.url = "github:Mic92/retiolum";
|
|
||||||
share-http.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
share-http.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
||||||
share-http.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/share-host.git?ref=main";
|
share-http.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/share-host.git?ref=main";
|
||||||
srvos.url = "github:nix-community/srvos";
|
srvos.url = "github:nix-community/srvos";
|
||||||
stylix.inputs.home-manager.follows = "home-manager";
|
stylix.inputs.home-manager.follows = "home-manager";
|
||||||
stylix.inputs.nixpkgs.follows = "nixpkgs";
|
stylix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
stylix.url = "github:danth/stylix";
|
stylix.url = "github:danth/stylix";
|
||||||
taskwarrior.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
taskwarrior.url = "github:mrvandalo/taskwarrior-flake";
|
taskwarrior.url = "github:mrvandalo/taskwarrior-flake";
|
||||||
#taskwarrior.url = "git+file:///home/palo/dev/nixos/taskwarrior-flake";
|
#taskwarrior.url = "git+file:///home/palo/dev/nixos/taskwarrior-flake";
|
||||||
telemetry.inputs.nixpkgs.follows = "nixpkgs";
|
telemetry.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -73,15 +67,10 @@
|
||||||
nixos-anywhere,
|
nixos-anywhere,
|
||||||
nixos-hardware,
|
nixos-hardware,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixpkgs-legacy_2211,
|
|
||||||
nixpkgs-legacy_2311,
|
|
||||||
nixpkgs-legacy_2405,
|
|
||||||
nixpkgs-legacy_2411,
|
|
||||||
nixpkgs-unstable-small,
|
nixpkgs-unstable-small,
|
||||||
permown,
|
permown,
|
||||||
polygon-art,
|
polygon-art,
|
||||||
private-parts,
|
private-parts,
|
||||||
retiolum,
|
|
||||||
self,
|
self,
|
||||||
share-http,
|
share-http,
|
||||||
srvos,
|
srvos,
|
||||||
|
@ -125,24 +114,6 @@
|
||||||
inherit allowUnfree permittedInsecurePackages;
|
inherit allowUnfree permittedInsecurePackages;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
legacy_2211 = import nixpkgs-legacy_2211 {
|
|
||||||
inherit system;
|
|
||||||
config = {
|
|
||||||
inherit allowUnfree permittedInsecurePackages;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
legacy_2311 = import nixpkgs-legacy_2311 {
|
|
||||||
inherit system;
|
|
||||||
config = {
|
|
||||||
inherit allowUnfree permittedInsecurePackages;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
legacy_2405 = import nixpkgs-legacy_2405 {
|
|
||||||
inherit system;
|
|
||||||
config = {
|
|
||||||
inherit allowUnfree permittedInsecurePackages;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
polygon-art = polygon-art.packages.${system};
|
polygon-art = polygon-art.packages.${system};
|
||||||
landingpage = landingpage.packages.${system}.plain;
|
landingpage = landingpage.packages.${system}.plain;
|
||||||
share-via-http = share-http.packages.${system}.default;
|
share-via-http = share-http.packages.${system}.default;
|
||||||
|
@ -151,6 +122,7 @@
|
||||||
tasksh
|
tasksh
|
||||||
taskwarrior-hooks
|
taskwarrior-hooks
|
||||||
;
|
;
|
||||||
|
healthchecks = self.packages.${system}.healthchecks;
|
||||||
inherit (self.packages.${system})
|
inherit (self.packages.${system})
|
||||||
otpmenu
|
otpmenu
|
||||||
nsxiv
|
nsxiv
|
||||||
|
@ -209,6 +181,16 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
|
||||||
|
# todo this should be done by zerotier-static-peers
|
||||||
|
# https://git.clan.lol/clan/clan-core/issues/3412
|
||||||
|
(
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
clan.core.networking.zerotier.networkId =
|
||||||
|
builtins.readFile ./vars/per-machine/chungus/zerotier/zerotier-network-id/value;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
# this magically adds all my machines in the zero tier network
|
# this magically adds all my machines in the zero tier network
|
||||||
# and makes the controller accept them.
|
# and makes the controller accept them.
|
||||||
# will automatic look into `/machines/<name>/facts/zerotier-ip
|
# will automatic look into `/machines/<name>/facts/zerotier-ip
|
||||||
|
@ -289,25 +271,29 @@
|
||||||
documentation.nixos.enable = true;
|
documentation.nixos.enable = true;
|
||||||
#documentation.nixos.includeAllModules = true; # fixme : not working (see down there)
|
#documentation.nixos.includeAllModules = true; # fixme : not working (see down there)
|
||||||
documentation.nixos.options.warningsAreErrors = false; # todo make this true again
|
documentation.nixos.options.warningsAreErrors = false; # todo make this true again
|
||||||
documentation.nixos.extraModules = [
|
#documentation.nixos.extraModules = [
|
||||||
./components
|
# ./components
|
||||||
./features
|
# ./features
|
||||||
#./modules
|
# ./modules
|
||||||
clan-core.nixosModules.clanCore
|
# {
|
||||||
telemetry.nixosModules.telemetry
|
# # clan fixes
|
||||||
{
|
# clan.core.settings.directory = ./.; # fixes issues with clanCore https://git.clan.lol/clan/clan-core/issues/1979
|
||||||
clan.core.settings.directory = ./.; # fixes issues with clanCore https://git.clan.lol/clan/clan-core/issues/1979
|
# }
|
||||||
}
|
# telemetry.nixosModules.telemetry
|
||||||
# inputs.stylix.nixosModules.stylix # fixme: not working
|
# # inputs.stylix.nixosModules.stylix # fixme: not working
|
||||||
permown.nixosModules.permown
|
# permown.nixosModules.permown
|
||||||
home-manager.nixosModules.home-manager
|
# home-manager.nixosModules.home-manager
|
||||||
# retiolum.nixosModules.retiolum # fixme: not working
|
#];
|
||||||
];
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.configurationLimit = lib.mkDefault 10;
|
boot.loader.systemd-boot.configurationLimit = lib.mkDefault 10;
|
||||||
boot.loader.generic-extlinux-compatible.configurationLimit = lib.mkDefault 10;
|
boot.loader.generic-extlinux-compatible.configurationLimit = lib.mkDefault 10;
|
||||||
boot.loader.grub.configurationLimit = lib.mkDefault 10;
|
boot.loader.grub.configurationLimit = lib.mkDefault 10;
|
||||||
environment.systemPackages = [ pkgs.systemctl-find-service-config ];
|
environment.systemPackages = [
|
||||||
|
pkgs.systemctl-find-service-config
|
||||||
|
pkgs.healthchecks
|
||||||
|
];
|
||||||
|
|
||||||
|
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here https://discourse.nixos.org/t/logrotate-config-fails-due-to-missing-group-30000/28501
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# My Structure
|
# My Structure
|
||||||
|
@ -315,12 +301,6 @@
|
||||||
./features
|
./features
|
||||||
./modules # todo : spread this across features and components
|
./modules # todo : spread this across features and components
|
||||||
#./system/all # todo : spread this across features and components
|
#./system/all # todo : spread this across features and components
|
||||||
(
|
|
||||||
{ lib, pkgs, ... }:
|
|
||||||
{
|
|
||||||
telemetry.netdata.enable = false;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# some modules I always use
|
# some modules I always use
|
||||||
telemetry.nixosModules.telemetry
|
telemetry.nixosModules.telemetry
|
||||||
|
@ -353,6 +333,8 @@
|
||||||
# https://github.com/danth/stylix/issues/543
|
# https://github.com/danth/stylix/issues/543
|
||||||
stylix.targets.hyprpaper.enable = lib.mkForce false;
|
stylix.targets.hyprpaper.enable = lib.mkForce false;
|
||||||
stylix.targets.hyprland.enable = lib.mkForce false;
|
stylix.targets.hyprland.enable = lib.mkForce false;
|
||||||
|
stylix.targets.swaylock.enable = lib.mkForce false;
|
||||||
|
stylix.targets.qt.platform = "qtct";
|
||||||
|
|
||||||
# running into strange problems
|
# running into strange problems
|
||||||
# fixme: remove if possible
|
# fixme: remove if possible
|
||||||
|
@ -373,10 +355,6 @@
|
||||||
name = "JetBrains Mono";
|
name = "JetBrains Mono";
|
||||||
};
|
};
|
||||||
emoji = config.stylix.fonts.monospace;
|
emoji = config.stylix.fonts.monospace;
|
||||||
# emoji = {
|
|
||||||
# package = pkgs.noto-fonts-emoji;
|
|
||||||
# name = "Noto Color Emoji";
|
|
||||||
# };
|
|
||||||
sizes.popups = 15;
|
sizes.popups = 15;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -434,7 +412,6 @@
|
||||||
healthchecks.nixosModules.default
|
healthchecks.nixosModules.default
|
||||||
zerotierModules
|
zerotierModules
|
||||||
nixos-hardware.nixosModules.framework-13th-gen-intel
|
nixos-hardware.nixosModules.framework-13th-gen-intel
|
||||||
retiolum.nixosModules.retiolum
|
|
||||||
private-parts.nixosModules.cherry
|
private-parts.nixosModules.cherry
|
||||||
homeManagerModules
|
homeManagerModules
|
||||||
stylixModules
|
stylixModules
|
||||||
|
@ -467,7 +444,6 @@
|
||||||
zerotierControllerModule
|
zerotierControllerModule
|
||||||
homeManagerModules
|
homeManagerModules
|
||||||
stylixModules
|
stylixModules
|
||||||
retiolum.nixosModules.retiolum
|
|
||||||
private-parts.nixosModules.chungus
|
private-parts.nixosModules.chungus
|
||||||
{
|
{
|
||||||
home-manager.users.mainUser = import ./homes/palo;
|
home-manager.users.mainUser = import ./homes/palo;
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./editor.nix
|
./editor.nix
|
||||||
./network.nix
|
./network.nix
|
||||||
#./oh-my-posh
|
|
||||||
./starship-rs
|
./starship-rs
|
||||||
./packages.nix
|
./packages.nix
|
||||||
./terminal.nix
|
./terminal.nix
|
||||||
./zfs.nix
|
./zfs.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options.gui.enable = lib.mkEnableOption "should GUI packages be anabled?";
|
options.gui.enable = lib.mkEnableOption "should GUI packages be anabled?";
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = lib.mkDefault true;
|
defaultEditor = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
programs.helix = {
|
# enable = true;
|
||||||
enable = true;
|
#};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
programs.oh-my-posh = {
|
|
||||||
enable = true;
|
|
||||||
# https://ohmyposh.dev/docs/themes
|
|
||||||
#useTheme = "gmay"; # ganz nice, aber farben sind ein bisl schrill
|
|
||||||
settings = builtins.fromJSON (builtins.readFile ./gmay.json);
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,121 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"alignment": "left",
|
|
||||||
"segments": [
|
|
||||||
{
|
|
||||||
"background": "#076678",
|
|
||||||
"foreground": "#EBDBB2",
|
|
||||||
"leading_diamond": "\ue0b6",
|
|
||||||
"style": "diamond",
|
|
||||||
"template": " {{ if .WSL }}WSL at {{ end }}{{.Icon}} ",
|
|
||||||
"type": "os"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#AF3A03",
|
|
||||||
"foreground": "#EBDBB2",
|
|
||||||
"powerline_symbol": "\ue0b0",
|
|
||||||
"style": "powerline",
|
|
||||||
"template": " \uf0e7 ",
|
|
||||||
"type": "root"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#076678",
|
|
||||||
"foreground": "#EBDBB2",
|
|
||||||
"powerline_symbol": "\ue0b0",
|
|
||||||
"style": "powerline",
|
|
||||||
"template": " {{ if .SSHSession }}\ueba9 {{ end }}{{ .UserName }}@{{ .HostName }} ",
|
|
||||||
"type": "session"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#B57614",
|
|
||||||
"foreground": "#EBDBB2",
|
|
||||||
"powerline_symbol": "\ue0b0",
|
|
||||||
"properties": {
|
|
||||||
"style": "full"
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"template": " \ue5ff {{ .Path }} ",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#79740E",
|
|
||||||
"foreground": "#EBDBB2",
|
|
||||||
"powerline_symbol": "\ue0b0",
|
|
||||||
"properties": {
|
|
||||||
"time_format": "2006-01-02 15:04:05"
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"template": " {{ .CurrentDate | date .Format }} ",
|
|
||||||
"type": "time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "project",
|
|
||||||
"style": "powerline",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"foreground": "#193549",
|
|
||||||
"background": "#ffeb3b",
|
|
||||||
"template": " {{ if .Error }}{{ .Error }}{{ else }}{{ if .Version }} {{.Version}}{{ end }} {{ if .Name }}{{ .Name }}{{ end }}{{ end }} "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "git",
|
|
||||||
"style": "powerline",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"background": "#427b58",
|
|
||||||
"foreground": "#EBDBB2",
|
|
||||||
"background_templates": [
|
|
||||||
"{{ if or (.Working.Changed) (.Staging.Changed) }}#8f3f71{{ end }}",
|
|
||||||
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}#076678{{ end }}",
|
|
||||||
"{{ if gt .Ahead 0 }}#076678{{ end }}",
|
|
||||||
"{{ if gt .Behind 0 }}#076678{{ end }}"
|
|
||||||
],
|
|
||||||
"template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} {{ .StashCount }}{{ end }}",
|
|
||||||
"properties": {
|
|
||||||
"fetch_status": true,
|
|
||||||
"fetch_upstream_icon": true,
|
|
||||||
"untracked_modes": {
|
|
||||||
"/Users/user/Projects/oh-my-posh/": "no"
|
|
||||||
},
|
|
||||||
"source": "cli",
|
|
||||||
"mapped_branches": {
|
|
||||||
"feat/*": "🚀 ",
|
|
||||||
"bug/*": "🐛 "
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#427B58",
|
|
||||||
"background_templates": [
|
|
||||||
"{{ if gt .Code 0 }}#9D0006{{ end }}"
|
|
||||||
],
|
|
||||||
"foreground": "#EBDBB2",
|
|
||||||
"leading_diamond": "<transparent,background>\ue0b0</>",
|
|
||||||
"properties": {
|
|
||||||
"always_enabled": true
|
|
||||||
},
|
|
||||||
"style": "diamond",
|
|
||||||
"template": " \ueb05 ",
|
|
||||||
"trailing_diamond": "\ue0b4",
|
|
||||||
"type": "status"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type": "prompt"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"alignment": "left",
|
|
||||||
"newline": true,
|
|
||||||
"segments": [
|
|
||||||
{
|
|
||||||
"foreground": "#076678",
|
|
||||||
"style": "plain",
|
|
||||||
"template": "\uf0a9 ",
|
|
||||||
"type": "text"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type": "prompt"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"final_space": true,
|
|
||||||
"version": 2
|
|
||||||
}
|
|
|
@ -1,69 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"alignment": "left",
|
|
||||||
"segments": [
|
|
||||||
{
|
|
||||||
"background": "#3A3A3A",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"style": "powerline",
|
|
||||||
"template": "{{ if .WSL }}WSL at{{ end }} {{.Icon}} ",
|
|
||||||
"type": "os"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#fbf1c7",
|
|
||||||
"background_templates": [
|
|
||||||
"{{ if .Root }}#af3a03{{ end }}"
|
|
||||||
],
|
|
||||||
"foreground": "#282828",
|
|
||||||
"foreground_templates": [
|
|
||||||
"{{ if .Root }}#fbf1c7{{ end }}"
|
|
||||||
],
|
|
||||||
"powerline_symbol": "\ue0b0",
|
|
||||||
"style": "powerline",
|
|
||||||
"template": " {{ if .SSHSession }} {{ end }}{{ .HostName }} ",
|
|
||||||
"type": "session"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#458588",
|
|
||||||
"foreground": "#282828",
|
|
||||||
"powerline_symbol": "\ue0b0",
|
|
||||||
"properties": {
|
|
||||||
"style": "full"
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"template": " {{ .Path }} ",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#98971A",
|
|
||||||
"background_templates": [
|
|
||||||
"{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}",
|
|
||||||
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}#ff4500{{ end }}",
|
|
||||||
"{{ if gt .Ahead 0 }}#B388FF{{ end }}",
|
|
||||||
"{{ if gt .Behind 0 }}#B388FF{{ end }}"
|
|
||||||
],
|
|
||||||
"foreground": "#282828",
|
|
||||||
"leading_diamond": "\ue0b6",
|
|
||||||
"powerline_symbol": "\ue0b0",
|
|
||||||
"properties": {
|
|
||||||
"branch_max_length": 25,
|
|
||||||
"fetch_stash_count": true,
|
|
||||||
"fetch_status": true,
|
|
||||||
"branch_icon": "\uE0A0 ",
|
|
||||||
"branch_identical_icon": "\u25CF"
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"template": " {{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uf044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uf046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \ueb4b {{ .StashCount }}{{ end }} ",
|
|
||||||
"trailing_diamond": "\ue0b4",
|
|
||||||
"type": "git"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type": "prompt"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"console_title_template": "{{ .Folder }}",
|
|
||||||
"final_space": true,
|
|
||||||
"version": 2
|
|
||||||
}
|
|
|
@ -11,7 +11,9 @@ with config.lib.stylix.colors.withHashtag;
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# download presets from : https://starship.rs/presets/
|
# download presets from : https://starship.rs/presets/
|
||||||
settings = builtins.fromTOML ((builtins.readFile ./gruvbox-rainbow.toml)) // {
|
settings = lib.mkForce (
|
||||||
|
builtins.fromTOML ((builtins.readFile ./gruvbox-rainbow.toml))
|
||||||
|
// {
|
||||||
palettes.stylix = {
|
palettes.stylix = {
|
||||||
color_fg0 = base01;
|
color_fg0 = base01;
|
||||||
color_terminal_fg = base05;
|
color_terminal_fg = base05;
|
||||||
|
@ -27,7 +29,8 @@ with config.lib.stylix.colors.withHashtag;
|
||||||
color_red = base08;
|
color_red = base08;
|
||||||
color_yellow = base0A;
|
color_yellow = base0A;
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,29 +37,4 @@
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# provide better `Ctrl+r` command in terminal
|
|
||||||
programs.atuin = {
|
|
||||||
enable = true;
|
|
||||||
enableBashIntegration = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
#package = pkgs.atuin;
|
|
||||||
package = pkgs.legacy_2405.atuin.overrideAttrs (_old: {
|
|
||||||
# as cursed as doing mitigations=off in the kernel command line
|
|
||||||
patches = [ "${assets}/0001-make-atuin-on-zfs-fast-again.patch" ];
|
|
||||||
});
|
|
||||||
settings = {
|
|
||||||
auto_sync = true;
|
|
||||||
sync_frequency = "5m";
|
|
||||||
sync_address = "http://chungus.private:8888";
|
|
||||||
search_mode = "fuzzy";
|
|
||||||
style = "full";
|
|
||||||
inline_height = 20;
|
|
||||||
keymap_mode = "vim-normal";
|
|
||||||
|
|
||||||
# With workspace filtering enabled, Atuin will filter for commands executed
|
|
||||||
# in any directory within a git repository tree.
|
|
||||||
workspaces = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
28
homes/palo/atuin.nix
Normal file
28
homes/palo/atuin.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
# provide better `Ctrl+r` command in terminal
|
||||||
|
programs.atuin = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
daemon.enable = true;
|
||||||
|
settings = {
|
||||||
|
auto_sync = true;
|
||||||
|
sync_frequency = "5m";
|
||||||
|
sync_address = "http://chungus.private:8888";
|
||||||
|
search_mode = "fuzzy";
|
||||||
|
style = "full";
|
||||||
|
inline_height = 20;
|
||||||
|
keymap_mode = "vim-normal";
|
||||||
|
|
||||||
|
# because the daemon can't remember my mode (with Ctrl-r)
|
||||||
|
filter_mode = "directory";
|
||||||
|
|
||||||
|
# With workspace filtering enabled, Atuin will filter for commands executed
|
||||||
|
# in any directory within a git repository tree.
|
||||||
|
workspaces = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../common
|
../common
|
||||||
|
./atuin.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./gpg.nix
|
./gpg.nix
|
||||||
./gui
|
./gui
|
||||||
|
@ -12,7 +13,7 @@
|
||||||
./stylix.nix
|
./stylix.nix
|
||||||
./taskwarrior.nix
|
./taskwarrior.nix
|
||||||
./tmux.nix
|
./tmux.nix
|
||||||
./zellij.nix
|
#./zellij.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.stateVersion = "22.11";
|
home.stateVersion = "22.11";
|
||||||
|
|
|
@ -14,6 +14,7 @@ with pkgs;
|
||||||
"*.swp"
|
"*.swp"
|
||||||
"*~"
|
"*~"
|
||||||
".idea"
|
".idea"
|
||||||
|
"*.iml"
|
||||||
".*penis.*"
|
".*penis.*"
|
||||||
"result"
|
"result"
|
||||||
".envrc"
|
".envrc"
|
||||||
|
|
|
@ -87,36 +87,37 @@ in
|
||||||
format = "$icon $percentage $time";
|
format = "$icon $percentage $time";
|
||||||
}
|
}
|
||||||
{ block = "uptime"; }
|
{ block = "uptime"; }
|
||||||
{
|
# interferes with `bugwarrior pull`
|
||||||
block = "taskwarrior";
|
# {
|
||||||
interval = 60;
|
# block = "taskwarrior";
|
||||||
format = " $icon $count.eng(w:3) todo ";
|
# interval = 60;
|
||||||
format_singular = " $icon 1 task ";
|
# format = " $icon $count.eng(w:3) todo ";
|
||||||
format_everything_done = "";
|
# format_singular = " $icon 1 task ";
|
||||||
warning_threshold = 10;
|
# format_everything_done = "";
|
||||||
critical_threshold = 20;
|
# warning_threshold = 10;
|
||||||
filters = [
|
# critical_threshold = 20;
|
||||||
{
|
# filters = [
|
||||||
name = "active";
|
# {
|
||||||
filter = "+PENDING and ( +ACTIVE or +DUETODAY or +TODAY or +OVERDUE )";
|
# name = "active";
|
||||||
}
|
# filter = "+PENDING and ( +ACTIVE or +DUETODAY or +TODAY or +OVERDUE )";
|
||||||
];
|
# }
|
||||||
}
|
# ];
|
||||||
{
|
# }
|
||||||
block = "taskwarrior";
|
# {
|
||||||
interval = 60;
|
# block = "taskwarrior";
|
||||||
format = " $icon $count.eng(w:2) ";
|
# interval = 60;
|
||||||
format_singular = " $icon 1 task ";
|
# format = " $icon $count.eng(w:2) ";
|
||||||
format_everything_done = "";
|
# format_singular = " $icon 1 task ";
|
||||||
warning_threshold = 3;
|
# format_everything_done = "";
|
||||||
critical_threshold = 5;
|
# warning_threshold = 3;
|
||||||
filters = [
|
# critical_threshold = 5;
|
||||||
{
|
# filters = [
|
||||||
name = "started";
|
# {
|
||||||
filter = "+PENDING and +ACTIVE";
|
# name = "started";
|
||||||
}
|
# filter = "+PENDING and +ACTIVE";
|
||||||
];
|
# }
|
||||||
}
|
# ];
|
||||||
|
# }
|
||||||
{
|
{
|
||||||
block = "time";
|
block = "time";
|
||||||
interval = 60;
|
interval = 60;
|
||||||
|
|
|
@ -14,11 +14,14 @@ with lib;
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
|
||||||
|
usbutils
|
||||||
|
pciutils
|
||||||
|
|
||||||
# general
|
# general
|
||||||
jetbrains.idea-ultimate
|
jetbrains.idea-ultimate
|
||||||
vscode
|
vscode
|
||||||
|
|
||||||
zed-editor
|
#zed-editor
|
||||||
|
|
||||||
# minicom # for flipper zero
|
# minicom # for flipper zero
|
||||||
|
|
||||||
|
@ -47,8 +50,6 @@ with lib;
|
||||||
termtosvg
|
termtosvg
|
||||||
vhs
|
vhs
|
||||||
|
|
||||||
#legacy_2311.blockdiag
|
|
||||||
|
|
||||||
# nomad
|
# nomad
|
||||||
#nomad
|
#nomad
|
||||||
#vault
|
#vault
|
||||||
|
@ -116,6 +117,7 @@ with lib;
|
||||||
yq-go
|
yq-go
|
||||||
gojq
|
gojq
|
||||||
jq
|
jq
|
||||||
|
fx
|
||||||
ijq
|
ijq
|
||||||
miller
|
miller
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,22 @@
|
||||||
}:
|
}:
|
||||||
with pkgs;
|
with pkgs;
|
||||||
with lib;
|
with lib;
|
||||||
|
let
|
||||||
|
use_override = false;
|
||||||
|
bambu-studio =
|
||||||
|
if use_override then
|
||||||
|
pkgs.bambu-studio.overrideAttrs (old: rec {
|
||||||
|
version = "01.10.02.76";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "bambulab";
|
||||||
|
repo = "BambuStudio";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-LvAi3I5lnnumhOUagyej28uVy0Lgd3e19HNQXOUWSvQ=";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
else
|
||||||
|
pkgs.bambu-studio;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
config = mkIf config.gui.enable {
|
config = mkIf config.gui.enable {
|
||||||
|
|
||||||
|
@ -26,7 +42,9 @@ with lib;
|
||||||
# CAD & 3D Plotting
|
# CAD & 3D Plotting
|
||||||
openscad
|
openscad
|
||||||
fstl
|
fstl
|
||||||
legacy_2311.cura
|
|
||||||
|
orca-slicer
|
||||||
|
bambu-studio
|
||||||
|
|
||||||
qrencode
|
qrencode
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,11 @@ with pkgs;
|
||||||
with lib;
|
with lib;
|
||||||
{
|
{
|
||||||
config = mkIf config.gui.enable {
|
config = mkIf config.gui.enable {
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.legacy_2405.logseq
|
pkgs.logseq
|
||||||
];
|
];
|
||||||
|
|
||||||
#home.file.".config/Logseq/Preferences".source = (pkgs.formats.json { }).generate "LogseqPreferences.json"
|
#home.file.".config/Logseq/Preferences".source = (pkgs.formats.json { }).generate "LogseqPreferences.json"
|
||||||
# {
|
# {
|
||||||
# spellcheck = {
|
# spellcheck = {
|
||||||
|
@ -18,6 +20,7 @@ with lib;
|
||||||
# dictionary = "";
|
# dictionary = "";
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
with pkgs;
|
with pkgs;
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
nextcloud-client = pkgs.legacy_2311.nextcloud-client;
|
nextcloud-client = pkgs.nextcloud-client;
|
||||||
|
|
||||||
nextcloudSync =
|
nextcloudSync =
|
||||||
folder:
|
folder:
|
||||||
|
@ -51,6 +51,7 @@ in
|
||||||
(nextcloudSync "Kunstbuch")
|
(nextcloudSync "Kunstbuch")
|
||||||
(nextcloudSync "Flipper")
|
(nextcloudSync "Flipper")
|
||||||
(nextcloudSync "AWS-SolutionArchitect-Professional")
|
(nextcloudSync "AWS-SolutionArchitect-Professional")
|
||||||
|
(nextcloudSync "windows")
|
||||||
|
|
||||||
borrow
|
borrow
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,10 @@ with lib;
|
||||||
{
|
{
|
||||||
|
|
||||||
config = mkIf config.gui.enable {
|
config = mkIf config.gui.enable {
|
||||||
programs.obs-studio.enable = true;
|
programs.obs-studio.enable = false;
|
||||||
home.packages = [
|
home.packages = [
|
||||||
emoji-picker
|
emoji-picker
|
||||||
signal-desktop
|
signal-desktop-bin
|
||||||
#legacy_2311.fluffychat
|
|
||||||
#fluffychat
|
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
stylix.targets.swaylock.enable = config.gui.enable;
|
|
||||||
|
|
||||||
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-light-medium.yaml";
|
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-light-medium.yaml";
|
||||||
|
|
||||||
stylix.fonts = {
|
stylix.fonts = {
|
||||||
|
|
|
@ -8,7 +8,6 @@ with lib;
|
||||||
with types;
|
with types;
|
||||||
let
|
let
|
||||||
|
|
||||||
#taskwarrior-tui = pkgs.legacy_2311.taskwarrior-tui;
|
|
||||||
taskwarrior-tui = pkgs.taskwarrior-tui;
|
taskwarrior-tui = pkgs.taskwarrior-tui;
|
||||||
taskwarrior = pkgs.taskwarrior3;
|
taskwarrior = pkgs.taskwarrior3;
|
||||||
|
|
||||||
|
@ -23,6 +22,7 @@ in
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
|
||||||
pkgs.timewarrior
|
pkgs.timewarrior
|
||||||
|
pkgs.bugwarrior
|
||||||
|
|
||||||
taskwarrior
|
taskwarrior
|
||||||
pkgs.tasksh
|
pkgs.tasksh
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
stylix.targets.swaylock.enable = config.gui.enable;
|
|
||||||
|
|
||||||
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-light-medium.yaml";
|
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-light-medium.yaml";
|
||||||
|
|
||||||
stylix.fonts = {
|
stylix.fonts = {
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
|
|
||||||
./network-tinc.nix
|
./network-tinc.nix
|
||||||
./network-tinc_retiolum.nix
|
|
||||||
./network-wireguard-wg0.nix
|
./network-wireguard-wg0.nix
|
||||||
./network-wireguard-wg1.nix
|
./network-wireguard-wg1.nix
|
||||||
|
|
||||||
|
@ -24,35 +23,12 @@
|
||||||
./ssh-cherry.nix
|
./ssh-cherry.nix
|
||||||
|
|
||||||
./ferdium.nix
|
./ferdium.nix
|
||||||
|
./nix-ld.nix
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
#time.timeZone = lib.mkForce "Asia/Bangkok";
|
|
||||||
#time.timeZone = lib.mkForce "Asia/Tokyo";
|
|
||||||
time.timeZone = lib.mkForce "Pacific/Auckland";
|
|
||||||
#time.timeZone = lib.mkForce "Asia/Singapore";
|
|
||||||
#time.timeZone = lib.mkForce "Asia/Makassar";
|
|
||||||
|
|
||||||
#clan.core.facts.services =
|
|
||||||
# let
|
|
||||||
# promptKey = key:
|
|
||||||
# {
|
|
||||||
# ${key} = {
|
|
||||||
# secret."${key}" = { };
|
|
||||||
# generator = {
|
|
||||||
# prompt = key;
|
|
||||||
# path = with pkgs; [ gnused ];
|
|
||||||
# script = ''
|
|
||||||
# echo "$prompt_value" | sed -n '1 p' > $secrets/${key}
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# in
|
|
||||||
# (promptKey "pushover.user_key") //
|
|
||||||
# (promptKey "pushover.api_key");
|
|
||||||
|
|
||||||
components.virtualisation.enable = true;
|
components.virtualisation.enable = true;
|
||||||
|
components.virtualisation.qemu.enable = false;
|
||||||
|
|
||||||
components.gui.enable = true;
|
components.gui.enable = true;
|
||||||
components.mainUser.enable = true;
|
components.mainUser.enable = true;
|
||||||
|
@ -63,7 +39,7 @@
|
||||||
components.terminal.enable = true;
|
components.terminal.enable = true;
|
||||||
|
|
||||||
telemetry.enable = true;
|
telemetry.enable = true;
|
||||||
telemetry.opentelemetry.exporter.endpoint = "10.100.0.1:4317"; # orbi
|
telemetry.apps.opentelemetry.exporter.endpoint = "10.100.0.1:4317"; # orbi
|
||||||
|
|
||||||
home-manager.users.mainUser.home.sessionPath = [ "$HOME/.timewarrior/scripts" ];
|
home-manager.users.mainUser.home.sessionPath = [ "$HOME/.timewarrior/scripts" ];
|
||||||
# todo: move to homemanager
|
# todo: move to homemanager
|
||||||
|
@ -142,21 +118,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# security.wrappers = {
|
|
||||||
# pmount = {
|
|
||||||
# source = "${pkgs.pmount}/bin/pmount";
|
|
||||||
# setuid = true;
|
|
||||||
# owner = "root";
|
|
||||||
# group = "root";
|
|
||||||
# };
|
|
||||||
# pumount = {
|
|
||||||
# source = "${pkgs.pmount}/bin/pumount";
|
|
||||||
# setuid = true;
|
|
||||||
# owner = "root";
|
|
||||||
# group = "root";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
||||||
# for congress and streaming
|
# for congress and streaming
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
factsGenerator,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
|
|
||||||
clan.core.facts.services.tinc_retiolum = factsGenerator.tinc { name = "retiolum"; };
|
|
||||||
|
|
||||||
networking.retiolum.port = 720;
|
|
||||||
networking.retiolum.nodename = "cherry";
|
|
||||||
|
|
||||||
healthchecks.localCommands.ping-retiolum = pkgs.writers.writeBash "ping-retiolum" ''
|
|
||||||
ping -c 1 -W 5 ${config.networking.retiolum.nodename}.r
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.tinc.networks.retiolum = {
|
|
||||||
ed25519PrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.ed25519_key.priv".path;
|
|
||||||
rsaPrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.rsa_key.priv".path;
|
|
||||||
};
|
|
||||||
|
|
||||||
#fileSystems."/retiolum/sicily" = {
|
|
||||||
# device = "//sicily.r/tonne";
|
|
||||||
# fsType = "cifs";
|
|
||||||
# options = [
|
|
||||||
# "guest"
|
|
||||||
# "nofail"
|
|
||||||
# "noauto"
|
|
||||||
# "ro"
|
|
||||||
# "rsize=16777216"
|
|
||||||
# "cache=loose"
|
|
||||||
# "x-systemd.after=network.target"
|
|
||||||
# ];
|
|
||||||
#};
|
|
||||||
}
|
|
|
@ -18,6 +18,9 @@
|
||||||
"wireguard.wg0.ip" = "10.100.0.7";
|
"wireguard.wg0.ip" = "10.100.0.7";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# actually important to make machine visible over wireguard
|
||||||
|
services.telegraf.extraConfig.inputs.ping = [ { urls = [ "10.100.0.1" ]; } ];
|
||||||
|
|
||||||
# Enable WireGuard
|
# Enable WireGuard
|
||||||
networking.wg-quick.interfaces = {
|
networking.wg-quick.interfaces = {
|
||||||
# Hub and Spoke Setup
|
# Hub and Spoke Setup
|
||||||
|
|
7
machines/cherry/nix-ld.nix
Normal file
7
machines/cherry/nix-ld.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.nix-ld
|
||||||
|
];
|
||||||
|
}
|
|
@ -15,9 +15,8 @@
|
||||||
|
|
||||||
./packages.nix
|
./packages.nix
|
||||||
|
|
||||||
./network-tinc-retiolum.nix # make sure no service is open for this vpn!
|
|
||||||
./network-tinc.nix
|
./network-tinc.nix
|
||||||
./network-wireguard.nix
|
./network-wireguard-wg0.nix
|
||||||
|
|
||||||
./hass-mqtt.nix
|
./hass-mqtt.nix
|
||||||
./hass-zigbee2mqtt.nix
|
./hass-zigbee2mqtt.nix
|
||||||
|
@ -47,7 +46,6 @@
|
||||||
./service-atuin.nix
|
./service-atuin.nix
|
||||||
./service-forgejo.nix
|
./service-forgejo.nix
|
||||||
./service-paperless-backup.nix
|
./service-paperless-backup.nix
|
||||||
./service-paperless-healthchecks.nix
|
|
||||||
./service-paperless-tika.nix
|
./service-paperless-tika.nix
|
||||||
./service-paperless.nix
|
./service-paperless.nix
|
||||||
./service-s3.nix
|
./service-s3.nix
|
||||||
|
@ -72,12 +70,11 @@
|
||||||
features.boot.tor.enable = true;
|
features.boot.tor.enable = true;
|
||||||
|
|
||||||
telemetry.enable = true;
|
telemetry.enable = true;
|
||||||
telemetry.opentelemetry.receiver.endpoint = "0.0.0.0:4317";
|
telemetry.apps.opentelemetry.receiver.endpoint = "0.0.0.0:4317";
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 4317 ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 4317 ];
|
||||||
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 4317 ];
|
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 4317 ];
|
||||||
|
|
||||||
healthchecks.closed.wg0.host = "10.100.0.2";
|
healthchecks.closed.wg0.host = "10.100.0.2";
|
||||||
healthchecks.closed.retiolum.host = "centauri.r";
|
|
||||||
|
|
||||||
services.printing.enable = false;
|
services.printing.enable = false;
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,9 @@ let
|
||||||
"TOSHIBA_1360A003FVGG" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_1360A003FVGG";
|
"TOSHIBA_1360A003FVGG" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_1360A003FVGG";
|
||||||
"TOSHIBA_1360A00BFVGG" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_1360A00BFVGG";
|
"TOSHIBA_1360A00BFVGG" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_1360A00BFVGG";
|
||||||
"TOSHIBA_1360A00VFVGG" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_1360A00VFVGG";
|
"TOSHIBA_1360A00VFVGG" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_1360A00VFVGG";
|
||||||
|
"TOSHIBA_25L0A0CCFJKH" = "/dev/disk/by-id/ata-TOSHIBA_MG09ACA16TE_25L0A0CCFJKH"; # new
|
||||||
"TOSHIBA_41R0A0EBF57H" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_41R0A0EBF57H";
|
"TOSHIBA_41R0A0EBF57H" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_41R0A0EBF57H";
|
||||||
"TOSHIBA_5120A03WF57H" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_5120A03WF57H";
|
# "TOSHIBA_5120A03WF57H" = "/dev/disk/by-id/ata-TOSHIBA_MG08ACA16TE_5120A03WF57H"; # dead
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,5 +16,4 @@
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ 1883 ];
|
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ 1883 ];
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 1883 ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 1883 ];
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.mqtt = [ 1883 ];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,6 @@
|
||||||
{
|
{
|
||||||
imports = [ ./hass-mqtt.nix ];
|
imports = [ ./hass-mqtt.nix ];
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.zigbee2mqtt = [
|
|
||||||
1337
|
|
||||||
9666
|
|
||||||
];
|
|
||||||
|
|
||||||
services.zigbee2mqtt = {
|
services.zigbee2mqtt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dataDir = "/srv2/zigbee2mqtt";
|
dataDir = "/srv2/zigbee2mqtt";
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
zerotierInterface,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
@ -17,7 +18,6 @@
|
||||||
|
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 8123 ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 8123 ];
|
||||||
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 8123 ];
|
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 8123 ];
|
||||||
|
networking.firewall.interfaces.${zerotierInterface}.allowedTCPPorts = [ 8123 ];
|
||||||
healthchecks.closed.retiolum.ports.hass = [ 8123 ];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,43 +2,68 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
zerotierInterface,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with pkgs;
|
|
||||||
let
|
let
|
||||||
port = 8000;
|
|
||||||
group = "media";
|
group = "media";
|
||||||
|
port = 9002;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
healthchecks.http.audiobookshelf-via-zerotier = {
|
||||||
|
url = "${config.networking.hostName}.${config.clan.static-hosts.topLevelDomain}:${toString port}";
|
||||||
|
expectedContent = "audiobookshelf";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.interfaces.${zerotierInterface}.allowedTCPPorts = [ port ];
|
||||||
|
|
||||||
users.users.audiobookshelf = {
|
users.users.audiobookshelf = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = group;
|
group = lib.mkForce group;
|
||||||
};
|
};
|
||||||
|
|
||||||
# make available in retiolum
|
# systemd.services.audiobookshelf = {
|
||||||
#networking.firewall.interfaces."tinc.retiolum".allowedTCPPorts = [ port ];
|
# enable = true;
|
||||||
#networking.firewall.interfaces."tinc.retiolum".allowedUDPPorts = [ port ];
|
# description = "Self-hosted audiobook server for managing and playing audiobooks";
|
||||||
|
# serviceConfig = {
|
||||||
|
# Type = "simple";
|
||||||
|
# WorkingDirectory = "/srv/audiobookshelf";
|
||||||
|
# ExecStart = "${audiobookshelf}/bin/audiobookshelf --port ${toString port}";
|
||||||
|
# ExecReload = "${util-linux}/bin/kill -HUP $MAINPID";
|
||||||
|
# Restart = "always";
|
||||||
|
# User = config.users.users.audiobookshelf.name;
|
||||||
|
# Group = config.users.users.audiobookshelf.group;
|
||||||
|
# };
|
||||||
|
# wantedBy = [ "multi-user.target" ];
|
||||||
|
# requires = [ "network.target" ];
|
||||||
|
# };
|
||||||
|
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ port ];
|
services.audiobookshelf = {
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedUDPPorts = [ port ];
|
|
||||||
|
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ port ];
|
|
||||||
networking.firewall.interfaces.wg0.allowedUDPPorts = [ port ];
|
|
||||||
|
|
||||||
systemd.services.audiobookshelf = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
description = "Self-hosted audiobook server for managing and playing audiobooks";
|
port = 8000;
|
||||||
serviceConfig = {
|
};
|
||||||
Type = "simple";
|
|
||||||
WorkingDirectory = "/srv/audiobookshelf";
|
services.nginx = {
|
||||||
ExecStart = "${audiobookshelf}/bin/audiobookshelf --port ${toString port}";
|
enable = true;
|
||||||
ExecReload = "${util-linux}/bin/kill -HUP $MAINPID";
|
recommendedProxySettings = true;
|
||||||
Restart = "always";
|
virtualHosts."audiobookshelf.${config.networking.hostName}.${config.clan.static-hosts.topLevelDomain}" =
|
||||||
User = config.users.users.audiobookshelf.name;
|
{
|
||||||
Group = config.users.users.audiobookshelf.group;
|
listen = [
|
||||||
|
{
|
||||||
|
addr = "[::]";
|
||||||
|
port = port;
|
||||||
|
ssl = false;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${toString config.services.audiobookshelf.port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_redirect http:// $scheme://;
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
requires = [ "network.target" ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
{
|
{
|
||||||
services.jellyfin = {
|
services.jellyfin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true; # todo: will open for retiolum as well
|
openFirewall = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
user = "media";
|
user = "media";
|
||||||
};
|
};
|
||||||
|
@ -15,7 +15,6 @@
|
||||||
healthchecks.http.jellyfin = {
|
healthchecks.http.jellyfin = {
|
||||||
url = "flix.${config.networking.hostName}.private";
|
url = "flix.${config.networking.hostName}.private";
|
||||||
};
|
};
|
||||||
healthchecks.closed.retiolum.ports.jellyfin = [ 8096 ];
|
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -2,23 +2,32 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
zerotierInterface,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.http.navidrome = {
|
healthchecks.http.navidrome-tinc = {
|
||||||
url = "${config.networking.hostName}.wg0:${toString config.services.navidrome.settings.Port}/app/#/login";
|
url = "${config.networking.hostName}.private:${toString config.services.navidrome.settings.Port}/app/#/login";
|
||||||
expectedContent = "Navidrome";
|
expectedContent = "Navidrome";
|
||||||
};
|
};
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.navidrome = [ config.services.navidrome.settings.Port ];
|
healthchecks.http.navidrome-via-zerotier = {
|
||||||
|
url = "${config.networking.hostName}.${config.clan.static-hosts.topLevelDomain}:${toString config.services.navidrome.settings.Port}/app/#/login";
|
||||||
|
expectedContent = "Navidrome";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.interfaces.${zerotierInterface}.allowedTCPPorts = [
|
||||||
|
config.services.navidrome.settings.Port
|
||||||
|
];
|
||||||
|
|
||||||
services.navidrome = {
|
services.navidrome = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
user = "media";
|
user = "media";
|
||||||
settings.Address = "0.0.0.0";
|
settings.Address = "[::]";
|
||||||
|
settings.Port = 4533;
|
||||||
settings.MusicFolder = "/media/arr/lidarr";
|
settings.MusicFolder = "/media/arr/lidarr";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,6 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.share = [
|
|
||||||
137
|
|
||||||
138
|
|
||||||
139
|
|
||||||
445
|
|
||||||
];
|
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [
|
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [
|
||||||
445
|
445
|
||||||
139
|
139
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
url = config.services.syncthing.guiAddress;
|
url = config.services.syncthing.guiAddress;
|
||||||
expectedContent = "syncthing";
|
expectedContent = "syncthing";
|
||||||
};
|
};
|
||||||
healthchecks.closed.retiolum.ports.syncthing-gui = [ 8384 ];
|
|
||||||
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
factsGenerator,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
clan.core.facts.services.tinc_retiolum = factsGenerator.tinc { name = "retiolum"; };
|
|
||||||
|
|
||||||
networking.retiolum.port = 720;
|
|
||||||
networking.retiolum.nodename = "chungus";
|
|
||||||
|
|
||||||
healthchecks.localCommands.ping-retiolum = pkgs.writers.writeBash "ping-retiolum" ''
|
|
||||||
ping -c 1 -W 5 ${config.networking.retiolum.nodename}.r
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.tinc.networks.retiolum = {
|
|
||||||
ed25519PrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.ed25519_key.priv".path;
|
|
||||||
rsaPrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.rsa_key.priv".path;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -18,6 +18,9 @@
|
||||||
"wireguard.wg0.ip" = "10.100.0.2";
|
"wireguard.wg0.ip" = "10.100.0.2";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# actually important to make machine visible over wireguard
|
||||||
|
services.telegraf.extraConfig.inputs.ping = [ { urls = [ "10.100.0.1" ]; } ];
|
||||||
|
|
||||||
# Enable WireGuard
|
# Enable WireGuard
|
||||||
networking.wg-quick.interfaces = {
|
networking.wg-quick.interfaces = {
|
||||||
# Hub and Spoke Setup
|
# Hub and Spoke Setup
|
|
@ -5,15 +5,21 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
healthchecks.http.atuin-tinc = {
|
||||||
|
url = "${config.networking.hostName}.private:${toString config.services.atuin.port}";
|
||||||
|
expectedContent = "version";
|
||||||
|
};
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.atuin = [ config.services.atuin.port ];
|
# healthchecks.http.atuin-wg0 = {
|
||||||
|
# url = "${config.networking.hostName}.wg0:${toString config.services.atuin.port}";
|
||||||
|
# expectedContent = "version";
|
||||||
|
# };
|
||||||
|
# networking.firewall.interfaces.wg0.allowedTCPPorts = [
|
||||||
|
# config.services.atuin.port
|
||||||
|
# ];
|
||||||
|
|
||||||
services.atuin = {
|
services.atuin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.legacy_2405.atuin.overrideAttrs (_old: {
|
|
||||||
# as cursed as doing mitigations=off in the kernel command line
|
|
||||||
patches = [ "${assets}/0001-make-atuin-on-zfs-fast-again.patch" ];
|
|
||||||
});
|
|
||||||
host = "0.0.0.0";
|
host = "0.0.0.0";
|
||||||
maxHistoryLength = 999999;
|
maxHistoryLength = 999999;
|
||||||
openRegistration = false;
|
openRegistration = false;
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
expectedContent = "nixinate";
|
expectedContent = "nixinate";
|
||||||
};
|
};
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.forgejo = [ config.services.forgejo.settings.server.HTTP_PORT ];
|
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
statusPage = true;
|
statusPage = true;
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
factsGenerator,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
|
|
||||||
healthchecks.http.paperless = {
|
|
||||||
url = "http://paperless.chungus.private/accounts/login/?next=/";
|
|
||||||
expectedContent = "paperless.chungus.private";
|
|
||||||
};
|
|
||||||
healthchecks.closed.retiolum.ports.paperless = [ config.services.paperless.port ];
|
|
||||||
|
|
||||||
}
|
|
|
@ -14,23 +14,47 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.tika = {
|
# to make podman run rootless as paperless user
|
||||||
enable = true;
|
users.users.paperless.autoSubUidGidRange = true;
|
||||||
};
|
|
||||||
|
|
||||||
services.gotenberg = {
|
imports = [
|
||||||
enable = true;
|
{
|
||||||
timeout = "300s";
|
virtualisation.oci-containers.backend = "podman";
|
||||||
port = 3214;
|
}
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.gotenberg = {
|
# tika
|
||||||
environment.HOME = "/run/gotenberg";
|
{
|
||||||
serviceConfig = {
|
services.tika.port = 9998;
|
||||||
SystemCallFilter = lib.mkAfter [ "@chown" ]; # TODO remove when fixed (https://github.com/NixOS/nixpkgs/issues/349123)
|
virtualisation.oci-containers = {
|
||||||
WorkingDirectory = "/run/gotenberg";
|
backend = "podman";
|
||||||
RuntimeDirectory = "gotenberg";
|
containers.tika = {
|
||||||
|
image = "apache/tika:latest"; # Warning: if the tag does not change, the image will not be updated
|
||||||
|
ports = [ "127.0.0.1:${toString config.services.tika.port}:9998" ];
|
||||||
|
podman = {
|
||||||
|
user = "paperless";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# gotenberg
|
||||||
|
{
|
||||||
|
services.gotenberg.port = 3214;
|
||||||
|
virtualisation.oci-containers = {
|
||||||
|
containers.gotenberg = {
|
||||||
|
image = "gotenberg/gotenberg:8.20"; # Warning: if the tag does not change, the image will not be updated
|
||||||
|
ports = [ "127.0.0.1:${toString config.services.gotenberg.port}:3000" ];
|
||||||
|
cmd = [
|
||||||
|
"gotenberg"
|
||||||
|
"--chromium-disable-javascript=true"
|
||||||
|
"--chromium-allow-list=file:///tmp/.*"
|
||||||
|
];
|
||||||
|
podman = {
|
||||||
|
user = "paperless";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,15 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
zerotierInterface,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
services.paperless = {
|
services.paperless = {
|
||||||
enable = true;
|
enable = true;
|
||||||
address = "0.0.0.0";
|
address = "[::]";
|
||||||
|
port = 28981;
|
||||||
package = pkgs.paperless-ngx;
|
package = pkgs.paperless-ngx;
|
||||||
settings = {
|
settings = {
|
||||||
PAPERLESS_OCR_LANGUAGE = "deu+eng";
|
PAPERLESS_OCR_LANGUAGE = "deu+eng";
|
||||||
|
@ -35,12 +37,30 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ config.services.paperless.port ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ config.services.paperless.port ];
|
||||||
|
networking.firewall.interfaces.${zerotierInterface}.allowedTCPPorts = [
|
||||||
|
config.services.paperless.port
|
||||||
|
80 # nginx
|
||||||
|
];
|
||||||
|
|
||||||
|
healthchecks.http.paperless-private = {
|
||||||
|
url = "http://paperless.chungus.private/accounts/login/?next=/";
|
||||||
|
expectedContent = "paperless.chungus.private";
|
||||||
|
};
|
||||||
|
healthchecks.http.paperless-port = {
|
||||||
|
url = "http://paperless.ingolf-wagner.de:${toString config.services.paperless.port}/accounts/login/?next=/";
|
||||||
|
expectedContent = "paperless.chungus.private";
|
||||||
|
};
|
||||||
|
healthchecks.http.paperless = {
|
||||||
|
url = "http://paperless.ingolf-wagner.de/accounts/login/?next=/";
|
||||||
|
expectedContent = "paperless.chungus.private";
|
||||||
|
};
|
||||||
|
|
||||||
services.nginx.virtualHosts."paperless.${config.networking.hostName}.private" = {
|
services.nginx.virtualHosts."paperless.${config.networking.hostName}.private" = {
|
||||||
serverAliases = [ "paperless.ingolf-wagner.de" ];
|
serverAliases = [ "paperless.ingolf-wagner.de" ];
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
allow ${config.tinc.private.subnet};
|
allow ${config.tinc.private.subnet};
|
||||||
allow ${config.wireguard.wg0.subnet};
|
allow ${config.wireguard.wg0.subnet};
|
||||||
|
allow ${config.clan.core.networking.zerotier.subnet};
|
||||||
deny all;
|
deny all;
|
||||||
'';
|
'';
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
{ config, factsGenerator, ... }:
|
{ config, factsGenerator, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.s3 = [
|
|
||||||
9000
|
|
||||||
9001
|
|
||||||
];
|
|
||||||
|
|
||||||
healthchecks.http.s3 = {
|
healthchecks.http.s3 = {
|
||||||
url = "http://s3.chungus.private:9001/login";
|
url = "http://s3.chungus.private:9001/login";
|
||||||
expectedContent = "minio";
|
expectedContent = "minio";
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.taskwarrior-webui = [ 8080 ];
|
|
||||||
|
|
||||||
virtualisation.oci-containers = {
|
virtualisation.oci-containers = {
|
||||||
containers.taskwarrior-webui = {
|
containers.taskwarrior-webui = {
|
||||||
volumes = [
|
volumes = [
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.vault = [ 8200 ];
|
|
||||||
|
|
||||||
services.vault = {
|
services.vault = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#adress = "chungus.private:8200";
|
#adress = "chungus.private:8200";
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
default_labels_enabled = {
|
default_labels_enabled = {
|
||||||
exporter = true;
|
exporter = true;
|
||||||
job = true;
|
job = true;
|
||||||
instance = true;
|
instance_name = true;
|
||||||
level = true;
|
level = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
{
|
{
|
||||||
action = "insert";
|
action = "insert";
|
||||||
key = "loki.attribute.labels";
|
key = "loki.attribute.labels";
|
||||||
value = "job, unit, boot_id, instance, facility, facility_label, priority, priority_label";
|
value = "job, unit, boot_id, instance_name, facility, facility_label, priority, priority_label";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
resource.attributes = [
|
resource.attributes = [
|
||||||
|
|
|
@ -22,12 +22,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.prometheus = {
|
telemetry.apps.prometheus.enable = true;
|
||||||
checkConfig = "syntax-only";
|
telemetry.apps.prometheus.retentionTime = "90d";
|
||||||
enable = true;
|
|
||||||
# keep data for 30 days
|
|
||||||
extraFlags = [ "--storage.tsdb.retention.time=90d" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.grafana.provision.datasources.settings = {
|
services.grafana.provision.datasources.settings = {
|
||||||
apiVersion = 1;
|
apiVersion = 1;
|
||||||
|
|
|
@ -22,11 +22,5 @@ with config.lib.topology;
|
||||||
# type = "tinc";
|
# type = "tinc";
|
||||||
virtual = true;
|
virtual = true;
|
||||||
};
|
};
|
||||||
interfaces."tinc.retiolum" = {
|
|
||||||
network = "tinc.retiolum";
|
|
||||||
# type = "tinc";
|
|
||||||
virtual = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
zerotierSetup = ''
|
zerotierSetup = ''
|
||||||
export NWID=${config.clan.core.facts.services.zerotier.public."zerotier-network-id".value}
|
export NWID=${config.clan.core.vars.generators.zerotier.files.zerotier-network-id.value}
|
||||||
export TOKEN=$(cat /var/lib/zerotier-one/authtoken.secret)
|
export TOKEN=$(cat /var/lib/zerotier-one/authtoken.secret)
|
||||||
'';
|
'';
|
||||||
zerotierCommand =
|
zerotierCommand =
|
||||||
|
@ -22,8 +22,6 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.vault = [ 9993 ];
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(zerotierCommand "zerotier-script-members" ''
|
(zerotierCommand "zerotier-script-members" ''
|
||||||
curl "http://localhost:9993/controller/network/''${NWID}/member" -H "X-ZT1-AUTH: ''${TOKEN}" | gojq
|
curl "http://localhost:9993/controller/network/''${NWID}/member" -H "X-ZT1-AUTH: ''${TOKEN}" | gojq
|
||||||
|
|
|
@ -44,9 +44,14 @@
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.firewall.enable = true;
|
# to fix https://github.com/NixOS/nix/issues/11728
|
||||||
|
nix.settings.download-buffer-size = 524288000;
|
||||||
|
|
||||||
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
networking.firewall.enable = true;
|
||||||
|
networking.firewall.extraCommands = ''
|
||||||
|
iptables -P FORWARD DROP
|
||||||
|
'';
|
||||||
|
boot.kernel.sysctl."net.ipv4.ip_forwarding" = false;
|
||||||
|
|
||||||
networking.hostName = "orbi";
|
networking.hostName = "orbi";
|
||||||
|
|
||||||
|
@ -56,16 +61,19 @@
|
||||||
components.network.enable = true;
|
components.network.enable = true;
|
||||||
components.network.nginx.landingpage.enable = false;
|
components.network.nginx.landingpage.enable = false;
|
||||||
components.network.wifi.enable = false;
|
components.network.wifi.enable = false;
|
||||||
|
|
||||||
components.virtualisation.enable = true; # we only enable this stuff where we need it explicitly
|
components.virtualisation.enable = true; # we only enable this stuff where we need it explicitly
|
||||||
components.virtualisation.podman.enable = false;
|
components.virtualisation.podman.enable = false;
|
||||||
|
components.virtualisation.virtualbox.enable = false;
|
||||||
|
|
||||||
virtualisation.oci-containers.backend = "docker";
|
virtualisation.oci-containers.backend = "docker";
|
||||||
|
|
||||||
features.network.fail2ban.enable = true;
|
features.network.fail2ban.enable = true;
|
||||||
features.boot.ssh.enable = true;
|
features.boot.ssh.enable = true;
|
||||||
|
|
||||||
telemetry.enable = true;
|
telemetry.enable = true;
|
||||||
telemetry.opentelemetry.receiver.endpoint = "0.0.0.0:4317";
|
telemetry.apps.opentelemetry.receiver.endpoint = "0.0.0.0:4317";
|
||||||
telemetry.opentelemetry.exporter.endpoint = "10.100.0.2:4317"; # chnungus
|
telemetry.apps.opentelemetry.exporter.endpoint = "10.100.0.2:4317"; # chnungus
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 4317 ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 4317 ];
|
||||||
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 4317 ];
|
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 4317 ];
|
||||||
healthchecks.closed.public.ports.opentelemetry = [ 4317 ];
|
healthchecks.closed.public.ports.opentelemetry = [ 4317 ];
|
||||||
|
|
|
@ -2,14 +2,25 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
zerotierInterface,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
zerotierSubnet = config.clan.core.networking.zerotier.subnet;
|
||||||
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [
|
||||||
7878
|
7878
|
||||||
8989
|
8989
|
||||||
8686
|
8686
|
||||||
];
|
];
|
||||||
|
networking.firewall.interfaces.${zerotierInterface}.allowedTCPPorts = [
|
||||||
|
7878
|
||||||
|
8989
|
||||||
|
8686
|
||||||
|
];
|
||||||
|
|
||||||
healthchecks.closed.public.ports.arr = [
|
healthchecks.closed.public.ports.arr = [
|
||||||
7878
|
7878
|
||||||
|
@ -73,6 +84,7 @@
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
allow ${config.tinc.private.subnet};
|
allow ${config.tinc.private.subnet};
|
||||||
allow ${config.wireguard.wg0.subnet};
|
allow ${config.wireguard.wg0.subnet};
|
||||||
|
allow ${zerotierSubnet};
|
||||||
deny all;
|
deny all;
|
||||||
'';
|
'';
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -85,6 +97,7 @@
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
allow ${config.tinc.private.subnet};
|
allow ${config.tinc.private.subnet};
|
||||||
allow ${config.wireguard.wg0.subnet};
|
allow ${config.wireguard.wg0.subnet};
|
||||||
|
allow ${zerotierSubnet};
|
||||||
deny all;
|
deny all;
|
||||||
'';
|
'';
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
|
|
@ -21,7 +21,7 @@ let
|
||||||
nextcloudHostName = "nextcloud.ingolf-wagner.de";
|
nextcloudHostName = "nextcloud.ingolf-wagner.de";
|
||||||
|
|
||||||
phpPackage = pkgs.php83;
|
phpPackage = pkgs.php83;
|
||||||
nextcloudPackage = pkgs.nextcloud30;
|
nextcloudPackage = pkgs.nextcloud31;
|
||||||
mySQLPackage = pkgs.mariadb;
|
mySQLPackage = pkgs.mariadb;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -114,9 +114,8 @@ in
|
||||||
{
|
{
|
||||||
nixpkgs.pkgs = pkgs;
|
nixpkgs.pkgs = pkgs;
|
||||||
imports = [
|
imports = [
|
||||||
"${components}/monitor/container.nix"
|
|
||||||
inputs.nix-topology.nixosModules.default
|
inputs.nix-topology.nixosModules.default
|
||||||
inputs.telemetry.nixosModules.telemetry
|
inputs.telemetry.nixosModules.container-telemetry-non-private-network
|
||||||
];
|
];
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
||||||
|
|
|
@ -35,9 +35,8 @@ in
|
||||||
{
|
{
|
||||||
nixpkgs.pkgs = pkgs;
|
nixpkgs.pkgs = pkgs;
|
||||||
imports = [
|
imports = [
|
||||||
"${components}/monitor/container.nix"
|
|
||||||
inputs.nix-topology.nixosModules.default
|
inputs.nix-topology.nixosModules.default
|
||||||
inputs.telemetry.nixosModules.telemetry
|
inputs.telemetry.nixosModules.container-telemetry-non-private-network
|
||||||
];
|
];
|
||||||
system.stateVersion = "21.05";
|
system.stateVersion = "21.05";
|
||||||
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
||||||
|
@ -50,7 +49,6 @@ in
|
||||||
|
|
||||||
services.transmission = {
|
services.transmission = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.legacy_2405.transmission_4;
|
|
||||||
settings = {
|
settings = {
|
||||||
download-dir = "/media/torrent/downloads";
|
download-dir = "/media/torrent/downloads";
|
||||||
incomplete-dir = "/media/torrent/incomplete";
|
incomplete-dir = "/media/torrent/incomplete";
|
||||||
|
|
|
@ -20,6 +20,11 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
networking.firewall.allowedUDPPorts = [ 51820 ];
|
networking.firewall.allowedUDPPorts = [ 51820 ];
|
||||||
|
networking.firewall.extraCommands = ''
|
||||||
|
iptables -A FORWARD -i wg0 -j ACCEPT
|
||||||
|
'';
|
||||||
|
boot.kernel.sysctl."net.ipv4.conf.wg0.forwarding" = true;
|
||||||
|
|
||||||
clan.core.facts.services.wireguard = factsGenerator.wireguard { name = "wg0"; };
|
clan.core.facts.services.wireguard = factsGenerator.wireguard { name = "wg0"; };
|
||||||
clan.core.facts.services.wireguard_ip = factsGenerator.public {
|
clan.core.facts.services.wireguard_ip = factsGenerator.public {
|
||||||
"wireguard.wg0.endpoint" = "95.216.66.212:51820";
|
"wireguard.wg0.endpoint" = "95.216.66.212:51820";
|
||||||
|
@ -31,8 +36,6 @@ in
|
||||||
ping -c 1 -W 5 ${config.clan.core.facts.services.wireguard_ip.public."wireguard.wg0.ip".value}
|
ping -c 1 -W 5 ${config.clan.core.facts.services.wireguard_ip.public."wireguard.wg0.ip".value}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
boot.kernel.sysctl."net.ipv4.ip_forward" = true;
|
|
||||||
|
|
||||||
# Enable WireGuard
|
# Enable WireGuard
|
||||||
networking.wg-quick.interfaces = {
|
networking.wg-quick.interfaces = {
|
||||||
# Hub and Spoke Setup
|
# Hub and Spoke Setup
|
||||||
|
|
|
@ -60,9 +60,8 @@ in
|
||||||
{
|
{
|
||||||
nixpkgs.pkgs = pkgs;
|
nixpkgs.pkgs = pkgs;
|
||||||
imports = [
|
imports = [
|
||||||
"${components}/monitor/container.nix"
|
|
||||||
inputs.nix-topology.nixosModules.default
|
inputs.nix-topology.nixosModules.default
|
||||||
inputs.telemetry.nixosModules.telemetry
|
inputs.telemetry.nixosModules.container-telemetry-non-private-network
|
||||||
];
|
];
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
||||||
|
|
|
@ -4,12 +4,11 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
port = 5005;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
# nixpkgs.config.packageOverrides = p: {
|
|
||||||
# nix-serve = p.haskellPackages.nix-serve-ng;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# generate private key with:
|
# generate private key with:
|
||||||
# nix-store --generate-binary-cache-key my-secret-key my-public-key
|
# nix-store --generate-binary-cache-key my-secret-key my-public-key
|
||||||
clan.core.facts.services."nix-serve" = {
|
clan.core.facts.services."nix-serve" = {
|
||||||
|
@ -26,34 +25,31 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nix-serve = {
|
services.harmonia = {
|
||||||
enable = true;
|
enable = true;
|
||||||
secretKeyFile = config.clan.core.facts.services.nix-serve.secret."nix-serve.key".path;
|
signKeyPaths = [ config.clan.core.facts.services.nix-serve.secret."nix-serve.key".path ];
|
||||||
port = 5005;
|
settings = {
|
||||||
|
bind = "127.0.0.1:${toString port}";
|
||||||
|
priority = 100;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
healthchecks.closed.public.ports.nix-serve = [ config.services.nix-serve.port ];
|
healthchecks.closed.public.ports.nix-cache = [ port ];
|
||||||
healthchecks.http.nix-serve = {
|
healthchecks.http.nix-cache = {
|
||||||
url = "cache.${config.networking.hostName}.wg0/nix-cache-info";
|
url = "cache.${config.networking.hostName}.wg0/nix-cache-info";
|
||||||
expectedContent = "Priority: 50";
|
expectedContent = "Priority: ${toString config.services.harmonia.settings.priority}";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHosts."cache.${config.networking.hostName}.wg0" = {
|
virtualHosts."cache.${config.networking.hostName}.wg0" = {
|
||||||
locations."/".extraConfig = ''
|
locations."/".extraConfig = ''
|
||||||
proxy_pass http://localhost:${toString config.services.nix-serve.port};
|
proxy_pass http://localhost:${toString port};
|
||||||
allow ${config.wireguard.wg0.subnet};
|
proxy_set_header Host $host;
|
||||||
deny all;
|
proxy_http_version 1.1;
|
||||||
'';
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
# curl https://cache.nixos.org/nix-cache-info
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
# lower priority means ask first.
|
proxy_set_header Connection $connection_upgrade;
|
||||||
locations."= /nix-cache-info".extraConfig = ''
|
|
||||||
alias ${pkgs.writeText "cache-info" ''
|
|
||||||
StoreDir: /nix/store
|
|
||||||
WantMassQuery: 1
|
|
||||||
Priority: 50
|
|
||||||
''};
|
|
||||||
allow ${config.wireguard.wg0.subnet};
|
allow ${config.wireguard.wg0.subnet};
|
||||||
deny all;
|
deny all;
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
lib,
|
lib,
|
||||||
components,
|
components,
|
||||||
inputs,
|
inputs,
|
||||||
|
zerotierInterface,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -14,17 +15,19 @@ in
|
||||||
{
|
{
|
||||||
|
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ photoprismPort ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ photoprismPort ];
|
||||||
# networking.firewall.interfaces.wg0.allowedUDPPorts = [ photoprismPort ];
|
|
||||||
|
|
||||||
healthchecks.closed.public.ports.photoprism = [
|
healthchecks.closed.public.ports.photoprism = [
|
||||||
photoprismPort
|
photoprismPort
|
||||||
mysqlPort
|
mysqlPort
|
||||||
];
|
];
|
||||||
|
|
||||||
healthchecks.http.photoprism = {
|
healthchecks.http.photoprism = {
|
||||||
url = "http://10.100.0.1:2342/library/login";
|
url = "http://10.100.0.1:2342/library/login";
|
||||||
expectedContent = "AI-Powered Photos App";
|
expectedContent = "AI-Powered Photos App";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.firewall.interfaces.${zerotierInterface}.allowedTCPPorts = [ photoprismPort ];
|
||||||
|
|
||||||
containers.photoprism = {
|
containers.photoprism = {
|
||||||
privateNetwork = false;
|
privateNetwork = false;
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
@ -34,9 +37,8 @@ in
|
||||||
{
|
{
|
||||||
nixpkgs.pkgs = pkgs;
|
nixpkgs.pkgs = pkgs;
|
||||||
imports = [
|
imports = [
|
||||||
"${components}/monitor/container.nix"
|
|
||||||
inputs.nix-topology.nixosModules.default
|
inputs.nix-topology.nixosModules.default
|
||||||
inputs.telemetry.nixosModules.telemetry
|
inputs.telemetry.nixosModules.container-telemetry-non-private-network
|
||||||
];
|
];
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
||||||
|
@ -50,7 +52,6 @@ in
|
||||||
services.photoprism = {
|
services.photoprism = {
|
||||||
enable = true;
|
enable = true;
|
||||||
port = photoprismPort;
|
port = photoprismPort;
|
||||||
package = pkgs.legacy_2405.photoprism;
|
|
||||||
originalsPath = "/var/lib/private/photoprism/originals";
|
originalsPath = "/var/lib/private/photoprism/originals";
|
||||||
address = "0.0.0.0";
|
address = "0.0.0.0";
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -25,9 +25,8 @@ in
|
||||||
{
|
{
|
||||||
nixpkgs.pkgs = pkgs;
|
nixpkgs.pkgs = pkgs;
|
||||||
imports = [
|
imports = [
|
||||||
"${components}/monitor/container.nix"
|
|
||||||
inputs.nix-topology.nixosModules.default
|
inputs.nix-topology.nixosModules.default
|
||||||
inputs.telemetry.nixosModules.telemetry
|
inputs.telemetry.nixosModules.container-telemetry-non-private-network
|
||||||
];
|
];
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
||||||
|
|
|
@ -8,8 +8,9 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.public.ports.taskchampion = [ config.services.taskchampion-sync-server.port ];
|
healthchecks.closed.public.ports.taskchampion = [ config.services.taskchampion-sync-server.port ];
|
||||||
|
|
||||||
healthchecks.http.taskchampion = {
|
healthchecks.http.taskchampion = {
|
||||||
url = "http://orbi.private:10222";
|
url = "http://orbi.bear:${toString config.services.taskchampion-sync-server.port}";
|
||||||
expectedContent = "TaskChampion sync server";
|
expectedContent = "TaskChampion sync server";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -19,10 +20,14 @@
|
||||||
networking.firewall.interfaces.wg0.allowedUDPPorts = [
|
networking.firewall.interfaces.wg0.allowedUDPPorts = [
|
||||||
config.services.taskchampion-sync-server.port
|
config.services.taskchampion-sync-server.port
|
||||||
];
|
];
|
||||||
|
networking.firewall.interfaces.${zerotierInterface}.allowedTCPPorts = [
|
||||||
|
config.services.taskchampion-sync-server.port
|
||||||
|
];
|
||||||
|
|
||||||
services.taskchampion-sync-server = {
|
services.taskchampion-sync-server = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = false;
|
openFirewall = false;
|
||||||
|
host = "[::]";
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ in
|
||||||
WASTEBIN_ADDRESS_PORT = "127.0.0.1:${toString port}";
|
WASTEBIN_ADDRESS_PORT = "127.0.0.1:${toString port}";
|
||||||
WASTEBIN_TITLE = "paste.ingolf-wagner.de";
|
WASTEBIN_TITLE = "paste.ingolf-wagner.de";
|
||||||
WASTEBIN_MAX_PASTE_EXPIRATION = 60 * 60 * 24 * 30;
|
WASTEBIN_MAX_PASTE_EXPIRATION = 60 * 60 * 24 * 30;
|
||||||
|
WASTEBIN_MAX_BODY_SIZE = 1024 * 128;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -90,9 +90,8 @@ in
|
||||||
{
|
{
|
||||||
nixpkgs.pkgs = pkgs;
|
nixpkgs.pkgs = pkgs;
|
||||||
imports = [
|
imports = [
|
||||||
"${components}/monitor/container.nix"
|
|
||||||
inputs.nix-topology.nixosModules.default
|
inputs.nix-topology.nixosModules.default
|
||||||
inputs.telemetry.nixosModules.telemetry
|
inputs.telemetry.nixosModules.container-telemetry-non-private-network
|
||||||
];
|
];
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
|
||||||
|
|
|
@ -50,7 +50,6 @@
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
|
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.tinc.private.useDHCP = lib.mkDefault true;
|
# networking.interfaces.tinc.private.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.tinc.retiolum.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.tinc.secret.useDHCP = lib.mkDefault true;
|
# networking.interfaces.tinc.secret.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.virbr0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.virbr0.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
|
@ -12,6 +12,9 @@
|
||||||
"wireguard.wg0.ip" = "10.100.0.100";
|
"wireguard.wg0.ip" = "10.100.0.100";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# actually important to make machine visible over wireguard
|
||||||
|
services.telegraf.extraConfig.inputs.ping = [ { urls = [ "10.100.0.1" ]; } ];
|
||||||
|
|
||||||
# Enable WireGuard
|
# Enable WireGuard
|
||||||
networking.wg-quick.interfaces = {
|
networking.wg-quick.interfaces = {
|
||||||
# Hub and Spoke Setup
|
# Hub and Spoke Setup
|
||||||
|
|
|
@ -13,6 +13,21 @@
|
||||||
programs.deno.enable = true;
|
programs.deno.enable = true;
|
||||||
programs.yamlfmt.enable = true;
|
programs.yamlfmt.enable = true;
|
||||||
programs.black.enable = true;
|
programs.black.enable = true;
|
||||||
|
programs.beautysh.enable = true;
|
||||||
|
programs.taplo.enable = true;
|
||||||
|
programs.clang-format.enable = true;
|
||||||
|
settings.global.excludes = [
|
||||||
|
"machines/*/facts/*"
|
||||||
|
"old-machines/*/facts/*"
|
||||||
|
"vars/*"
|
||||||
|
"*.gpg"
|
||||||
|
"*.pub"
|
||||||
|
".git-crypt/*"
|
||||||
|
"*.png"
|
||||||
|
"LICENSE"
|
||||||
|
"*.gitignore"
|
||||||
|
".gitattributes"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,6 @@
|
||||||
perSystem =
|
perSystem =
|
||||||
{ pkgs, system, ... }:
|
{ pkgs, system, ... }:
|
||||||
with pkgs;
|
with pkgs;
|
||||||
let
|
|
||||||
legacy_2311 = import inputs.nixpkgs-legacy_2311 { inherit system; };
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
packages.pkl = callPackage ./pkl { };
|
packages.pkl = callPackage ./pkl { };
|
||||||
packages.otpmenu = callPackage ./otpmenu { };
|
packages.otpmenu = callPackage ./otpmenu { };
|
||||||
|
|
|
@ -6,14 +6,15 @@ static const int WIN_HEIGHT = 600;
|
||||||
|
|
||||||
/* colors and font can be overwritten via X resource properties.
|
/* colors and font can be overwritten via X resource properties.
|
||||||
* See nsxiv(1), X(7) section Resources and xrdb(1) for more information.
|
* See nsxiv(1), X(7) section Resources and xrdb(1) for more information.
|
||||||
* X resource value (NULL == default) */
|
* X resource value (NULL ==
|
||||||
static const char *WIN_BG[] = { "Nsxiv.window.background", "white" };
|
* default) */
|
||||||
static const char *WIN_FG[] = { "Nsxiv.window.foreground", "black" };
|
static const char *WIN_BG[] = {"Nsxiv.window.background", "white"};
|
||||||
static const char *MARK_FG[] = { "Nsxiv.mark.foreground", NULL };
|
static const char *WIN_FG[] = {"Nsxiv.window.foreground", "black"};
|
||||||
|
static const char *MARK_FG[] = {"Nsxiv.mark.foreground", NULL};
|
||||||
#if HAVE_LIBFONTS
|
#if HAVE_LIBFONTS
|
||||||
static const char *BAR_BG[] = { "Nsxiv.bar.background", NULL };
|
static const char *BAR_BG[] = {"Nsxiv.bar.background", NULL};
|
||||||
static const char *BAR_FG[] = { "Nsxiv.bar.foreground", NULL };
|
static const char *BAR_FG[] = {"Nsxiv.bar.foreground", NULL};
|
||||||
static const char *BAR_FONT[] = { "Nsxiv.bar.font", "monospace-8" };
|
static const char *BAR_FONT[] = {"Nsxiv.bar.font", "monospace-8"};
|
||||||
|
|
||||||
/* if true, statusbar appears on top of the window */
|
/* if true, statusbar appears on top of the window */
|
||||||
static const bool TOP_STATUSBAR = false;
|
static const bool TOP_STATUSBAR = false;
|
||||||
|
@ -25,10 +26,8 @@ static const bool TOP_STATUSBAR = false;
|
||||||
/* levels (in percent) to use when zooming via '-' and '+':
|
/* levels (in percent) to use when zooming via '-' and '+':
|
||||||
* (first/last value is used as min/max zoom level)
|
* (first/last value is used as min/max zoom level)
|
||||||
*/
|
*/
|
||||||
static const float zoom_levels[] = {
|
static const float zoom_levels[] = {12.5, 25.0, 50.0, 75.0, 100.0,
|
||||||
12.5, 25.0, 50.0, 75.0,
|
150.0, 200.0, 400.0, 800.0};
|
||||||
100.0, 150.0, 200.0, 400.0, 800.0
|
|
||||||
};
|
|
||||||
|
|
||||||
/* default slideshow delay (in sec, overwritten via -S option): */
|
/* default slideshow delay (in sec, overwritten via -S option): */
|
||||||
static const int SLIDESHOW_DELAY = 5;
|
static const int SLIDESHOW_DELAY = 5;
|
||||||
|
@ -53,9 +52,12 @@ static const int PAN_FRACTION = 5;
|
||||||
* NOTE: higher cache size means better image reloading performance, but also
|
* NOTE: higher cache size means better image reloading performance, but also
|
||||||
* higher memory usage.
|
* higher memory usage.
|
||||||
*/
|
*/
|
||||||
static const int CACHE_SIZE_MEM_PERCENTAGE = 3; /* use 3% of total memory for cache */
|
static const int CACHE_SIZE_MEM_PERCENTAGE =
|
||||||
static const int CACHE_SIZE_LIMIT = 256 * 1024 * 1024; /* but not above 256MiB */
|
3; /* use 3% of total memory for cache */
|
||||||
static const int CACHE_SIZE_FALLBACK = 32 * 1024 * 1024; /* fallback to 32MiB if we can't determine total memory */
|
static const int CACHE_SIZE_LIMIT =
|
||||||
|
256 * 1024 * 1024; /* but not above 256MiB */
|
||||||
|
static const int CACHE_SIZE_FALLBACK =
|
||||||
|
32 * 1024 * 1024; /* fallback to 32MiB if we can't determine total memory */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef INCLUDE_OPTIONS_CONFIG
|
#ifdef INCLUDE_OPTIONS_CONFIG
|
||||||
|
@ -82,7 +84,7 @@ static const bool TNS_FILTERS_IS_BLACKLIST = false;
|
||||||
#ifdef INCLUDE_THUMBS_CONFIG
|
#ifdef INCLUDE_THUMBS_CONFIG
|
||||||
|
|
||||||
/* thumbnail sizes in pixels (width == height): */
|
/* thumbnail sizes in pixels (width == height): */
|
||||||
static const int thumb_sizes[] = { 32, 64, 96, 128, 160 };
|
static const int thumb_sizes[] = {32, 64, 96, 128, 160};
|
||||||
|
|
||||||
/* thumbnail size at startup, index into thumb_sizes[]: */
|
/* thumbnail size at startup, index into thumb_sizes[]: */
|
||||||
static const int THUMB_SIZE = 3;
|
static const int THUMB_SIZE = 3;
|
||||||
|
@ -99,114 +101,114 @@ static const KeySym KEYHANDLER_ABORT = XK_Escape;
|
||||||
/* keyboard mappings for image and thumbnail mode: */
|
/* keyboard mappings for image and thumbnail mode: */
|
||||||
static const keymap_t keys[] = {
|
static const keymap_t keys[] = {
|
||||||
/* modifiers key function argument */
|
/* modifiers key function argument */
|
||||||
{ 0, XK_q, g_quit, 0 },
|
{0, XK_q, g_quit, 0},
|
||||||
{ 0, XK_Q, g_pick_quit, 0 },
|
{0, XK_Q, g_pick_quit, 0},
|
||||||
{ 0, XK_Return, g_switch_mode, None },
|
{0, XK_Return, g_switch_mode, None},
|
||||||
{ 0, XK_f, g_toggle_fullscreen, None },
|
{0, XK_f, g_toggle_fullscreen, None},
|
||||||
{ 0, XK_b, g_toggle_bar, None },
|
{0, XK_b, g_toggle_bar, None},
|
||||||
{ ControlMask, XK_x, g_prefix_external, None },
|
{ControlMask, XK_x, g_prefix_external, None},
|
||||||
{ 0, XK_g, g_first, None },
|
{0, XK_g, g_first, None},
|
||||||
{ 0, XK_G, g_n_or_last, None },
|
{0, XK_G, g_n_or_last, None},
|
||||||
{ 0, XK_r, g_reload_image, None },
|
{0, XK_r, g_reload_image, None},
|
||||||
{ 0, XK_D, g_remove_image, None },
|
{0, XK_D, g_remove_image, None},
|
||||||
{ ControlMask, XK_h, g_scroll_screen, DIR_LEFT },
|
{ControlMask, XK_h, g_scroll_screen, DIR_LEFT},
|
||||||
{ ControlMask, XK_Left, g_scroll_screen, DIR_LEFT },
|
{ControlMask, XK_Left, g_scroll_screen, DIR_LEFT},
|
||||||
{ ControlMask, XK_j, g_scroll_screen, DIR_DOWN },
|
{ControlMask, XK_j, g_scroll_screen, DIR_DOWN},
|
||||||
{ ControlMask, XK_Down, g_scroll_screen, DIR_DOWN },
|
{ControlMask, XK_Down, g_scroll_screen, DIR_DOWN},
|
||||||
{ ControlMask, XK_k, g_scroll_screen, DIR_UP },
|
{ControlMask, XK_k, g_scroll_screen, DIR_UP},
|
||||||
{ ControlMask, XK_Up, g_scroll_screen, DIR_UP },
|
{ControlMask, XK_Up, g_scroll_screen, DIR_UP},
|
||||||
{ ControlMask, XK_l, g_scroll_screen, DIR_RIGHT },
|
{ControlMask, XK_l, g_scroll_screen, DIR_RIGHT},
|
||||||
{ ControlMask, XK_Right, g_scroll_screen, DIR_RIGHT },
|
{ControlMask, XK_Right, g_scroll_screen, DIR_RIGHT},
|
||||||
{ 0, XK_plus, g_zoom, +1 },
|
{0, XK_plus, g_zoom, +1},
|
||||||
{ 0, XK_KP_Add, g_zoom, +1 },
|
{0, XK_KP_Add, g_zoom, +1},
|
||||||
{ 0, XK_minus, g_zoom, -1 },
|
{0, XK_minus, g_zoom, -1},
|
||||||
{ 0, XK_KP_Subtract, g_zoom, -1 },
|
{0, XK_KP_Subtract, g_zoom, -1},
|
||||||
{ 0, XK_m, g_toggle_image_mark, None },
|
{0, XK_m, g_toggle_image_mark, None},
|
||||||
{ 0, XK_M, g_mark_range, None },
|
{0, XK_M, g_mark_range, None},
|
||||||
{ ControlMask, XK_m, g_reverse_marks, None },
|
{ControlMask, XK_m, g_reverse_marks, None},
|
||||||
{ ControlMask, XK_u, g_unmark_all, None },
|
{ControlMask, XK_u, g_unmark_all, None},
|
||||||
{ 0, XK_N, g_navigate_marked, +1 },
|
{0, XK_N, g_navigate_marked, +1},
|
||||||
{ 0, XK_P, g_navigate_marked, -1 },
|
{0, XK_P, g_navigate_marked, -1},
|
||||||
{ 0, XK_braceleft, g_change_gamma, -1 },
|
{0, XK_braceleft, g_change_gamma, -1},
|
||||||
{ 0, XK_braceright, g_change_gamma, +1 },
|
{0, XK_braceright, g_change_gamma, +1},
|
||||||
{ ControlMask, XK_g, g_change_gamma, 0 },
|
{ControlMask, XK_g, g_change_gamma, 0},
|
||||||
{ ControlMask, XK_bracketright, g_change_brightness, +1 },
|
{ControlMask, XK_bracketright, g_change_brightness, +1},
|
||||||
{ ControlMask, XK_bracketleft, g_change_brightness, -1 },
|
{ControlMask, XK_bracketleft, g_change_brightness, -1},
|
||||||
{ 0, XK_parenleft, g_change_contrast, -1 },
|
{0, XK_parenleft, g_change_contrast, -1},
|
||||||
{ 0, XK_parenright, g_change_contrast, +1 },
|
{0, XK_parenright, g_change_contrast, +1},
|
||||||
|
|
||||||
{ 0, XK_h, t_move_sel, DIR_LEFT },
|
{0, XK_h, t_move_sel, DIR_LEFT},
|
||||||
{ 0, XK_Left, t_move_sel, DIR_LEFT },
|
{0, XK_Left, t_move_sel, DIR_LEFT},
|
||||||
{ 0, XK_j, t_move_sel, DIR_DOWN },
|
{0, XK_j, t_move_sel, DIR_DOWN},
|
||||||
{ 0, XK_Down, t_move_sel, DIR_DOWN },
|
{0, XK_Down, t_move_sel, DIR_DOWN},
|
||||||
{ 0, XK_k, t_move_sel, DIR_UP },
|
{0, XK_k, t_move_sel, DIR_UP},
|
||||||
{ 0, XK_Up, t_move_sel, DIR_UP },
|
{0, XK_Up, t_move_sel, DIR_UP},
|
||||||
{ 0, XK_l, t_move_sel, DIR_RIGHT },
|
{0, XK_l, t_move_sel, DIR_RIGHT},
|
||||||
{ 0, XK_Right, t_move_sel, DIR_RIGHT },
|
{0, XK_Right, t_move_sel, DIR_RIGHT},
|
||||||
{ 0, XK_R, t_reload_all, None },
|
{0, XK_R, t_reload_all, None},
|
||||||
|
|
||||||
{ 0, XK_n, i_navigate, +1 },
|
{0, XK_n, i_navigate, +1},
|
||||||
{ 0, XK_n, i_scroll_to_edge, DIR_LEFT | DIR_UP },
|
{0, XK_n, i_scroll_to_edge, DIR_LEFT | DIR_UP},
|
||||||
{ 0, XK_space, i_navigate, +1 },
|
{0, XK_space, i_navigate, +1},
|
||||||
{ 0, XK_p, i_navigate, -1 },
|
{0, XK_p, i_navigate, -1},
|
||||||
{ 0, XK_p, i_scroll_to_edge, DIR_LEFT | DIR_UP },
|
{0, XK_p, i_scroll_to_edge, DIR_LEFT | DIR_UP},
|
||||||
{ 0, XK_BackSpace, i_navigate, -1 },
|
{0, XK_BackSpace, i_navigate, -1},
|
||||||
{ 0, XK_bracketright, i_navigate, +10 },
|
{0, XK_bracketright, i_navigate, +10},
|
||||||
{ 0, XK_bracketleft, i_navigate, -10 },
|
{0, XK_bracketleft, i_navigate, -10},
|
||||||
{ ControlMask, XK_6, i_alternate, None },
|
{ControlMask, XK_6, i_alternate, None},
|
||||||
{ ControlMask, XK_n, i_navigate_frame, +1 },
|
{ControlMask, XK_n, i_navigate_frame, +1},
|
||||||
{ ControlMask, XK_p, i_navigate_frame, -1 },
|
{ControlMask, XK_p, i_navigate_frame, -1},
|
||||||
{ ControlMask, XK_space, i_toggle_animation, None },
|
{ControlMask, XK_space, i_toggle_animation, None},
|
||||||
{ ControlMask, XK_a, i_toggle_animation, None },
|
{ControlMask, XK_a, i_toggle_animation, None},
|
||||||
{ 0, XK_h, i_scroll, DIR_LEFT },
|
{0, XK_h, i_scroll, DIR_LEFT},
|
||||||
{ 0, XK_Left, i_scroll, DIR_LEFT },
|
{0, XK_Left, i_scroll, DIR_LEFT},
|
||||||
{ 0, XK_j, i_scroll, DIR_DOWN },
|
{0, XK_j, i_scroll, DIR_DOWN},
|
||||||
{ 0, XK_Down, i_scroll, DIR_DOWN },
|
{0, XK_Down, i_scroll, DIR_DOWN},
|
||||||
{ 0, XK_k, i_scroll, DIR_UP },
|
{0, XK_k, i_scroll, DIR_UP},
|
||||||
{ 0, XK_Up, i_scroll, DIR_UP },
|
{0, XK_Up, i_scroll, DIR_UP},
|
||||||
{ 0, XK_l, i_scroll, DIR_RIGHT },
|
{0, XK_l, i_scroll, DIR_RIGHT},
|
||||||
{ 0, XK_Right, i_scroll, DIR_RIGHT },
|
{0, XK_Right, i_scroll, DIR_RIGHT},
|
||||||
{ 0, XK_H, i_scroll_to_edge, DIR_LEFT },
|
{0, XK_H, i_scroll_to_edge, DIR_LEFT},
|
||||||
{ 0, XK_J, i_scroll_to_edge, DIR_DOWN },
|
{0, XK_J, i_scroll_to_edge, DIR_DOWN},
|
||||||
{ 0, XK_K, i_scroll_to_edge, DIR_UP },
|
{0, XK_K, i_scroll_to_edge, DIR_UP},
|
||||||
{ 0, XK_L, i_scroll_to_edge, DIR_RIGHT },
|
{0, XK_L, i_scroll_to_edge, DIR_RIGHT},
|
||||||
{ 0, XK_z, i_scroll_to_center, None },
|
{0, XK_z, i_scroll_to_center, None},
|
||||||
{ 0, XK_equal, i_set_zoom, 100 },
|
{0, XK_equal, i_set_zoom, 100},
|
||||||
{ 0, XK_w, i_fit_to_win, SCALE_DOWN },
|
{0, XK_w, i_fit_to_win, SCALE_DOWN},
|
||||||
{ 0, XK_W, i_fit_to_win, SCALE_FIT },
|
{0, XK_W, i_fit_to_win, SCALE_FIT},
|
||||||
{ 0, XK_F, i_fit_to_win, SCALE_FILL },
|
{0, XK_F, i_fit_to_win, SCALE_FILL},
|
||||||
{ 0, XK_e, i_fit_to_win, SCALE_WIDTH },
|
{0, XK_e, i_fit_to_win, SCALE_WIDTH},
|
||||||
{ 0, XK_E, i_fit_to_win, SCALE_HEIGHT },
|
{0, XK_E, i_fit_to_win, SCALE_HEIGHT},
|
||||||
{ 0, XK_less, i_rotate, DEGREE_270 },
|
{0, XK_less, i_rotate, DEGREE_270},
|
||||||
{ 0, XK_greater, i_rotate, DEGREE_90 },
|
{0, XK_greater, i_rotate, DEGREE_90},
|
||||||
{ 0, XK_question, i_rotate, DEGREE_180 },
|
{0, XK_question, i_rotate, DEGREE_180},
|
||||||
{ 0, XK_bar, i_flip, FLIP_HORIZONTAL },
|
{0, XK_bar, i_flip, FLIP_HORIZONTAL},
|
||||||
{ 0, XK_underscore, i_flip, FLIP_VERTICAL },
|
{0, XK_underscore, i_flip, FLIP_VERTICAL},
|
||||||
{ 0, XK_a, i_toggle_antialias, None },
|
{0, XK_a, i_toggle_antialias, None},
|
||||||
{ 0, XK_A, i_toggle_alpha, None },
|
{0, XK_A, i_toggle_alpha, None},
|
||||||
{ 0, XK_s, i_slideshow, None },
|
{0, XK_s, i_slideshow, None},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* mouse button mappings for image mode: */
|
/* mouse button mappings for image mode: */
|
||||||
static const button_t buttons_img[] = {
|
static const button_t buttons_img[] = {
|
||||||
/* modifiers button function argument */
|
/* modifiers button function argument */
|
||||||
{ 0, 1, i_drag, DRAG_RELATIVE },
|
{0, 1, i_drag, DRAG_RELATIVE},
|
||||||
{ ControlMask, 1, i_drag, DRAG_RELATIVE },
|
{ControlMask, 1, i_drag, DRAG_RELATIVE},
|
||||||
{ 0, 2, i_drag, DRAG_ABSOLUTE },
|
{0, 2, i_drag, DRAG_ABSOLUTE},
|
||||||
{ 0, 3, g_switch_mode, None },
|
{0, 3, g_switch_mode, None},
|
||||||
{ 0, 4, g_zoom, +1 },
|
{0, 4, g_zoom, +1},
|
||||||
{ 0, 5, g_zoom, -1 },
|
{0, 5, g_zoom, -1},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* mouse button mappings for thumbnail mode: */
|
/* mouse button mappings for thumbnail mode: */
|
||||||
static const button_t buttons_tns[] = {
|
static const button_t buttons_tns[] = {
|
||||||
/* modifiers button function argument */
|
/* modifiers button function argument */
|
||||||
{ 0, 1, t_select, None },
|
{0, 1, t_select, None},
|
||||||
{ 0, 3, t_drag_mark_image, None },
|
{0, 3, t_drag_mark_image, None},
|
||||||
{ 0, 4, t_scroll, DIR_UP },
|
{0, 4, t_scroll, DIR_UP},
|
||||||
{ 0, 5, t_scroll, DIR_DOWN },
|
{0, 5, t_scroll, DIR_DOWN},
|
||||||
{ ControlMask, 4, g_scroll_screen, DIR_UP },
|
{ControlMask, 4, g_scroll_screen, DIR_UP},
|
||||||
{ ControlMask, 5, g_scroll_screen, DIR_DOWN },
|
{ControlMask, 5, g_scroll_screen, DIR_DOWN},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* true means NAV_WIDTH is relative (33%), false means absolute (33 pixels) */
|
/* true means NAV_WIDTH is relative (33%), false means absolute (33 pixels) */
|
||||||
|
@ -215,8 +217,6 @@ static const bool NAV_IS_REL = true;
|
||||||
static const unsigned int NAV_WIDTH = 33;
|
static const unsigned int NAV_WIDTH = 33;
|
||||||
|
|
||||||
/* mouse cursor on left, middle and right part of the window */
|
/* mouse cursor on left, middle and right part of the window */
|
||||||
static const cursor_t imgcursor[3] = {
|
static const cursor_t imgcursor[3] = {CURSOR_LEFT, CURSOR_ARROW, CURSOR_RIGHT};
|
||||||
CURSOR_LEFT, CURSOR_ARROW, CURSOR_RIGHT
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ pkgs }:
|
{ pkgs }:
|
||||||
|
|
||||||
pkgs.writers.writeBashBin "sysetmctl-find-service-config" (
|
pkgs.writers.writeBashBin "systemctl-find-service-config" (
|
||||||
pkgs.lib.fileContents ./systemctl-find-service-config.sh
|
pkgs.lib.fileContents ./systemctl-find-service-config.sh
|
||||||
)
|
)
|
||||||
|
|
|
@ -8,12 +8,19 @@ display_usage() {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Prüfen, ob genügend Argumente übergeben wurden
|
# Prüfen, ob mindestens ein Argument übergeben wurde
|
||||||
if [ $# -ne 2 ]; then
|
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
|
||||||
display_usage
|
display_usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SERVICE=$1
|
SERVICE=$1
|
||||||
|
|
||||||
|
# Spezialfall: Wenn nur ein Argument übergeben wurde
|
||||||
|
if [ $# -eq 1 ]; then
|
||||||
|
systemctl cat "$SERVICE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
REGEX=$2
|
REGEX=$2
|
||||||
|
|
||||||
# Holen der Service-Konfiguration
|
# Holen der Service-Konfiguration
|
||||||
|
|
|
@ -20,8 +20,4 @@ with config.lib.topology;
|
||||||
cidrv4 = "10.23.42.0/24";
|
cidrv4 = "10.23.42.0/24";
|
||||||
};
|
};
|
||||||
|
|
||||||
networks."tinc.retiolum" = {
|
|
||||||
name = "tinc retiolum";
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,6 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [ ./packages.nix ];
|
imports = [ ./packages.nix ];
|
||||||
# provide overlays
|
|
||||||
# -----------------
|
|
||||||
# nixpkgs.overlays = [ (import ../../pkgs) ];
|
|
||||||
|
|
||||||
# allow un-free
|
# allow un-free
|
||||||
# -------------
|
# -------------
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
#on-failure = {
|
|
||||||
# enable = true;
|
|
||||||
# plans = {
|
|
||||||
# tinc_private.name = "tinc.private";
|
|
||||||
# tinc_retiolum.name = "tinc.retiolum";
|
|
||||||
# sshd.name = "sshd";
|
|
||||||
# tor.name = "tor";
|
|
||||||
# dnsmasq.name = "dnsmasq";
|
|
||||||
# #backup_on_workhorse.name = "backup.on-workhorse.private";
|
|
||||||
# #backup_on_workout.name = "backup.on-workout.private";
|
|
||||||
# #backup_on_porani.name = "backup.on-porani.private";
|
|
||||||
# syncthing.name = "syncthing";
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
}
|
|
1
vars/per-machine/cherry/zerotier/zerotier-ip/value
Normal file
1
vars/per-machine/cherry/zerotier/zerotier-ip/value
Normal file
|
@ -0,0 +1 @@
|
||||||
|
fdb3:fdc0:b880:37a1:3a99:93c6:a13:9e5d
|
1
vars/per-machine/chungus/zerotier/zerotier-ip/value
Normal file
1
vars/per-machine/chungus/zerotier/zerotier-ip/value
Normal file
|
@ -0,0 +1 @@
|
||||||
|
fdb3:fdc0:b880:37a1:3a99:93b3:fdc0:b880
|
|
@ -0,0 +1 @@
|
||||||
|
b3fdc0b88037a13a
|
1
vars/per-machine/orbi/zerotier/zerotier-ip/value
Normal file
1
vars/per-machine/orbi/zerotier/zerotier-ip/value
Normal file
|
@ -0,0 +1 @@
|
||||||
|
fdb3:fdc0:b880:37a1:3a99:930c:d6:6f83
|
1
vars/per-machine/usbstick/zerotier/zerotier-ip/value
Normal file
1
vars/per-machine/usbstick/zerotier/zerotier-ip/value
Normal file
|
@ -0,0 +1 @@
|
||||||
|
fdb3:fdc0:b880:37a1:3a99:930f:937c:e1a3
|
Loading…
Add table
Add a link
Reference in a new issue