1
0
mirror of https://github.com/tboerger/nixos-config synced 2024-11-22 18:21:58 +01:00

feat: integrate most required services

This commit is contained in:
Thomas Boerger 2024-07-17 16:05:33 +02:00
parent 3b4d454c2d
commit 221c398a5f
No known key found for this signature in database
GPG Key ID: F630596501026DB5
136 changed files with 2786 additions and 1322 deletions

2
.gitignore vendored

@ -1,4 +1,2 @@
/result /result
.direnv .direnv
!.envrc

@ -3,6 +3,7 @@
{ {
imports = [ imports = [
../../shared/modules ../../shared/modules
../../shared/global
../../shared/programs ../../shared/programs
../../shared/services ../../shared/services
@ -25,27 +26,30 @@
libvirt = { libvirt = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
tailscale = { printing = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
printing = { tailscale = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
}; };
programs = { programs = {
mail = {
enable = config.personal.programs.enable;
};
browser = { browser = {
enable = config.personal.programs.enable; enable = config.personal.programs.enable;
}; };
steam = { lutris = {
enable = config.personal.programs.enable;
};
mail = {
enable = config.personal.programs.enable; enable = config.personal.programs.enable;
}; };
password = { password = {
enable = config.personal.programs.enable; enable = config.personal.programs.enable;
}; };
steam = {
enable = config.personal.programs.enable;
};
}; };
}; };

@ -7,5 +7,12 @@
networkmanager = { networkmanager = {
enable = true; enable = true;
}; };
# nat = {
# enable = true;
# enableIPv6 = true;
# internalInterfaces = [ "ve-+" ];
# externalInterface = "";
# };
}; };
} }

@ -3,6 +3,7 @@
{ {
imports = [ imports = [
../../shared/modules ../../shared/modules
../../shared/global
../../shared/programs ../../shared/programs
../../shared/services ../../shared/services
@ -25,27 +26,30 @@
libvirt = { libvirt = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
tailscale = { printing = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
printing = { tailscale = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
}; };
programs = { programs = {
mail = {
enable = config.personal.programs.enable;
};
browser = { browser = {
enable = config.personal.programs.enable; enable = config.personal.programs.enable;
}; };
steam = { lutris = {
enable = config.personal.programs.enable;
};
mail = {
enable = config.personal.programs.enable; enable = config.personal.programs.enable;
}; };
password = { password = {
enable = config.personal.programs.enable; enable = config.personal.programs.enable;
}; };
steam = {
enable = config.personal.programs.enable;
};
}; };
}; };

@ -7,5 +7,12 @@
networkmanager = { networkmanager = {
enable = true; enable = true;
}; };
# nat = {
# enable = true;
# enableIPv6 = true;
# internalInterfaces = [ "ve-+" ];
# externalInterface = "enp0s25";
# };
}; };
} }

@ -10,11 +10,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1703433843, "lastModified": 1720546205,
"narHash": "sha256-nmtA4KqFboWxxoOAA6Y1okHbZh+HsXaMPFkYHsoDRDw=", "narHash": "sha256-boCXsjYVxDviyzoEyAk624600f3ZBo/DKtUdvMTpbGY=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "417caa847f9383e111d1397039c9d4337d024bf0", "rev": "de96bd907d5fbc3b14fc33ad37d1b9a3cb15edc6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -52,11 +52,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1704875591, "lastModified": 1718194053,
"narHash": "sha256-eWRLbqRcrILgztU/m/k7CYLzETKNbv0OsT2GjkaNm8A=", "narHash": "sha256-FaGrf7qwZ99ehPJCAwgvNY5sLCqQ3GDiE/6uLhxxwSY=",
"owner": "serokell", "owner": "serokell",
"repo": "deploy-rs", "repo": "deploy-rs",
"rev": "1776009f1f3fb2b5d236b84d9815f2edee463a9b", "rev": "3867348fa92bc892eba5d9ddb2d7a97b9e127a8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -71,11 +71,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1705332421, "lastModified": 1717408969,
"narHash": "sha256-USpGLPme1IuqG78JNqSaRabilwkCyHmVWY0M9vYyqEA=", "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=",
"owner": "numtide", "owner": "numtide",
"repo": "devshell", "repo": "devshell",
"rev": "83cb93d6d063ad290beee669f4badf9914cc16ec", "rev": "1ebbe68d57457c8cae98145410b164b5477761f4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -91,11 +91,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1706491084, "lastModified": 1719733833,
"narHash": "sha256-eaEv+orTmr2arXpoE4aFZQMVPOYXCBEbLgK22kOtkhs=", "narHash": "sha256-6h2EqZU9bL9rHlXE+2LCBgnDImejzbS+4dYsNDDFlkY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "f67ba6552845ea5d7f596a24d57c33a8a9dc8de9", "rev": "d185770ea261fb5cf81aa5ad1791b93a7834d12c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -140,11 +140,11 @@
}, },
"hardware": { "hardware": {
"locked": { "locked": {
"lastModified": 1706182238, "lastModified": 1719681865,
"narHash": "sha256-Ti7CerGydU7xyrP/ow85lHsOpf+XMx98kQnPoQCSi1g=", "narHash": "sha256-Lp+l1IsREVbz8WM35OJYZz8sAH0XOjrZWUXVB5bJ2qg=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "f84eaffc35d1a655e84749228cde19922fcf55f1", "rev": "a59f00f5ac65b19382617ba00f360f8bc07ed3ac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -174,26 +174,6 @@
"type": "github" "type": "github"
} }
}, },
"homeage": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1669234151,
"narHash": "sha256-TwT87E3m2TZLgwYJESlype14HxUOrRGojPM5C2akrMg=",
"owner": "jordanisaacs",
"repo": "homeage",
"rev": "02bfe4ca06962d222e522fff0240c93946b20278",
"type": "github"
},
"original": {
"owner": "jordanisaacs",
"repo": "homeage",
"type": "github"
}
},
"homemanager": { "homemanager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -201,11 +181,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1706473109, "lastModified": 1719827439,
"narHash": "sha256-iyuAvpKTsq2u23Cr07RcV5XlfKExrG8gRpF75hf1uVc=", "narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "d634c3abafa454551f2083b054cd95c3f287be61", "rev": "59ce796b2563e19821361abbe2067c3bb4143a7d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -248,11 +228,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1706371002, "lastModified": 1719690277,
"narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=", "narHash": "sha256-0xSej1g7eP2kaUF+JQp8jdyNmpmCJKRpO12mKl/36Kc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c002c6aa977ad22c60398daaa9be52f2203d0006", "rev": "2741b4b489b55df32afac57bc4bfd220e8bf617e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -269,7 +249,6 @@
"devshell": "devshell", "devshell": "devshell",
"disko": "disko", "disko": "disko",
"hardware": "hardware", "hardware": "hardware",
"homeage": "homeage",
"homemanager": "homemanager", "homemanager": "homemanager",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"utils": "utils_2" "utils": "utils_2"
@ -358,11 +337,11 @@
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1705309234, "lastModified": 1710146030,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github" "type": "github"
}, },
"original": { "original": {

@ -28,11 +28,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
homeage = {
url = "github:jordanisaacs/homeage";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = { agenix = {
url = "github:ryantm/agenix"; url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -43,7 +38,7 @@
}; };
}; };
outputs = { self, nixpkgs, utils, devshell, deploy-rs, disko, homemanager, homeage, agenix, hardware, ... }@inputs: outputs = { self, nixpkgs, utils, devshell, deploy-rs, disko, homemanager, agenix, hardware, ... }@inputs:
let let
inherit (self) outputs; inherit (self) outputs;
@ -100,25 +95,25 @@
users = { users = {
thomas = { thomas = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/thomas ./home/thomas
]; ];
}; };
anna = { anna = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/anna ./home/anna
]; ];
}; };
adrian = { adrian = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/adrian ./home/adrian
]; ];
}; };
tabea = { tabea = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/tabea ./home/tabea
]; ];
}; };
@ -146,25 +141,25 @@
users = { users = {
thomas = { thomas = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/thomas ./home/thomas
]; ];
}; };
anna = { anna = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/anna ./home/anna
]; ];
}; };
adrian = { adrian = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/adrian ./home/adrian
]; ];
}; };
tabea = { tabea = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/tabea ./home/tabea
]; ];
}; };
@ -189,7 +184,7 @@
users = { users = {
thomas = { thomas = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/thomas ./home/thomas
]; ];
}; };
@ -214,7 +209,7 @@
users = { users = {
thomas = { thomas = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/thomas ./home/thomas
]; ];
}; };
@ -239,7 +234,7 @@
users = { users = {
thomas = { thomas = {
imports = [ imports = [
homeage.homeManagerModules.homeage agenix.homeManagerModules.default
./home/thomas ./home/thomas
]; ];
}; };
@ -264,7 +259,7 @@
# users = { # users = {
# thomas = { # thomas = {
# imports = [ # imports = [
# homeage.homeManagerModules.homeage # agenix.homeManagerModules.default
# ./home/thomas # ./home/thomas
# ]; # ];
# }; # };
@ -276,6 +271,30 @@
deploy = { deploy = {
nodes = { nodes = {
anubis = {
sshOpts = [ "-p" "22" ];
hostname = "anubis";
fastConnection = true;
profiles = {
system = {
sshUser = "thomas";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.anubis;
user = "root";
};
};
};
chnum = {
sshOpts = [ "-p" "22" ];
hostname = "chnum";
fastConnection = true;
profiles = {
system = {
sshUser = "thomas";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.chnum;
user = "root";
};
};
};
asgard = { asgard = {
sshOpts = [ "-p" "22" ]; sshOpts = [ "-p" "22" ];
hostname = "asgard.boerger.ws"; hostname = "asgard.boerger.ws";
@ -368,11 +387,11 @@
packages = with pkgs; [ packages = with pkgs; [
inputs.agenix.packages.${system}.default inputs.agenix.packages.${system}.default
inputs.deploy-rs.packages.${system}.default inputs.deploy-rs.packages.${system}.default
git git
gnumake gnumake
home-manager home-manager
nixpkgs-fmt nixpkgs-fmt
nixUnstable
rage rage
]; ];
}; };

@ -19,22 +19,28 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
xclip
gnome.adwaita-icon-theme gnome.adwaita-icon-theme
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.calc
gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.espresso gnomeExtensions.espresso
gnomeExtensions.vitals
]; ];
}; };
dconf = { dconf = {
settings = { settings = {
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/input-sources" = { "org/gnome/desktop/input-sources" = {
sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "de" ]) ]; sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "de" ]) ];
xkb-options = [ "eurosign:e" ]; xkb-options = [ "eurosign:e" ];
}; };
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
clock-show-weekday = true; clock-show-weekday = true;
show-battery-percentage = true; show-battery-percentage = true;
@ -49,6 +55,25 @@ in
button-layout = "appmenu:minimize,maximize,close"; button-layout = "appmenu:minimize,maximize,close";
}; };
"org/gnome/desktop/notifications" = {
show-in-lock-screen = false;
};
"org/gnome/desktop/privacy" = {
old-files-age = lib.hm.gvariant.mkUint32 1;
remember-recent-files = false;
remove-old-temp-files = true;
remove-old-trash-files = true;
report-technical-problems = false;
};
"org/gnome/settings-daemon/peripherals/touchpad" = {
natural-scroll = true;
disable-while-typing = false;
tap-to-click = true;
touchpad-enabled = true;
};
"org/gnome/mutter" = { "org/gnome/mutter" = {
attach-modal-dialogs = true; attach-modal-dialogs = true;
dynamic-workspaces = true; dynamic-workspaces = true;
@ -58,8 +83,17 @@ in
}; };
"org/gnome/shell" = { "org/gnome/shell" = {
favorite-apps = [
"org.gnome.Calendar.desktop"
"org.gnome.Nautilus.desktop"
];
enabled-extensions = [ enabled-extensions = [
"AlphabeticalAppGrid@stuarthayhurst"
"calc@danigm.wadobo.com"
"custom-hot-corners-extended@G-dH.github.com"
"espresso@coadmunkee.github.com" "espresso@coadmunkee.github.com"
"Vitals@CoreCoding.com"
]; ];
}; };
@ -67,6 +101,85 @@ in
has-battery = true; has-battery = true;
}; };
"org/gnome/shell/extensions/vitals" = {
show-fan = true;
show-storage = false;
show-temperature = true;
show-voltage = true;
};
"org/gnome/shell/weather" = {
automatic-location = true;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/misc" = {
show-osd-monitor-indexes = false;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-top-right-0" = {
action = "toggle-overview";
};
"system/locale" = { "system/locale" = {
region = "de_DE.UTF-8"; region = "de_DE.UTF-8";
}; };

@ -19,22 +19,28 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
xclip
gnome.adwaita-icon-theme gnome.adwaita-icon-theme
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.calc
gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.espresso gnomeExtensions.espresso
gnomeExtensions.vitals
]; ];
}; };
dconf = { dconf = {
settings = { settings = {
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/input-sources" = { "org/gnome/desktop/input-sources" = {
sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "de" ]) ]; sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "de" ]) ];
xkb-options = [ "eurosign:e" ]; xkb-options = [ "eurosign:e" ];
}; };
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
clock-show-weekday = true; clock-show-weekday = true;
show-battery-percentage = true; show-battery-percentage = true;
@ -49,6 +55,25 @@ in
button-layout = "appmenu:minimize,maximize,close"; button-layout = "appmenu:minimize,maximize,close";
}; };
"org/gnome/desktop/notifications" = {
show-in-lock-screen = false;
};
"org/gnome/desktop/privacy" = {
old-files-age = lib.hm.gvariant.mkUint32 1;
remember-recent-files = false;
remove-old-temp-files = true;
remove-old-trash-files = true;
report-technical-problems = false;
};
"org/gnome/settings-daemon/peripherals/touchpad" = {
natural-scroll = true;
disable-while-typing = false;
tap-to-click = true;
touchpad-enabled = true;
};
"org/gnome/mutter" = { "org/gnome/mutter" = {
attach-modal-dialogs = true; attach-modal-dialogs = true;
dynamic-workspaces = true; dynamic-workspaces = true;
@ -58,8 +83,17 @@ in
}; };
"org/gnome/shell" = { "org/gnome/shell" = {
favorite-apps = [
"org.gnome.Calendar.desktop"
"org.gnome.Nautilus.desktop"
];
enabled-extensions = [ enabled-extensions = [
"AlphabeticalAppGrid@stuarthayhurst"
"calc@danigm.wadobo.com"
"custom-hot-corners-extended@G-dH.github.com"
"espresso@coadmunkee.github.com" "espresso@coadmunkee.github.com"
"Vitals@CoreCoding.com"
]; ];
}; };
@ -67,6 +101,85 @@ in
has-battery = true; has-battery = true;
}; };
"org/gnome/shell/extensions/vitals" = {
show-fan = true;
show-storage = false;
show-temperature = true;
show-voltage = true;
};
"org/gnome/shell/weather" = {
automatic-location = true;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/misc" = {
show-osd-monitor-indexes = false;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-top-right-0" = {
action = "toggle-overview";
};
"system/locale" = { "system/locale" = {
region = "de_DE.UTF-8"; region = "de_DE.UTF-8";
}; };

@ -1,31 +1,15 @@
{ pkgs, lib, config, options, ... }: { pkgs, lib, config, options, ... }:
{ {
# nixpkgs = { imports = [
# config = { ./dircolors.nix
# allowUnfree = true; ./direnv.nix
# allowUnfreePredicate = (_: true); ./fzf.nix
# }; ./general.nix
./lsd.nix
# overlays = [ ./neovim.nix
# (import ../../../overlays) ./readline.nix
# ]; ./starship.nix
# }; ./tmux.nix
];
homeage = {
identityPaths = [ "~/.ssh/id_ed25519" ];
installationType = "activation";
};
programs = {
home-manager = {
enable = true;
};
};
systemd = {
user = {
startServices = "sd-switch";
};
};
} }

@ -0,0 +1,196 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
dircolors = {
enable = true;
enableZshIntegration = true;
settings = {
RESET = "0";
DIR = "00;38;5;33";
LINK = "01;38;5;37";
MULTIHARDLINK = "00";
FIFO = "48;5;230;38;5;136;01";
SOCK = "48;5;230;38;5;136;01";
DOOR = "48;5;230;38;5;136;01";
BLK = "48;5;230;38;5;244;01";
CHR = "48;5;230;38;5;244;01";
ORPHAN = "48;5;235;38;5;160";
MISSING = "00";
SETUID = "48;5;160;38;5;230";
SETGID = "48;5;136;38;5;230";
CAPABILITY = "30;41";
STICKY_OTHER_WRITABLE = "48;5;64;38;5;230";
OTHER_WRITABLE = "48;5;235;38;5;33";
STICKY = "48;5;33;38;5;230";
EXEC = "01;38;5;64";
".tar" = "00;38;5;61";
".tgz" = "01;38;5;61";
".arj" = "01;38;5;61";
".taz" = "01;38;5;61";
".lzh" = "01;38;5;61";
".lzma" = "01;38;5;61";
".tlz" = "01;38;5;61";
".txz" = "01;38;5;61";
".zip" = "01;38;5;61";
".zst" = "01;38;5;61";
".z" = "01;38;5;61";
".Z" = "01;38;5;61";
".dz" = "01;38;5;61";
".gz" = "01;38;5;61";
".lz" = "01;38;5;61";
".xz" = "01;38;5;61";
".bz2" = "01;38;5;61";
".bz" = "01;38;5;61";
".tbz" = "01;38;5;61";
".tbz2" = "01;38;5;61";
".tz" = "01;38;5;61";
".deb" = "01;38;5;61";
".rpm" = "01;38;5;61";
".jar" = "01;38;5;61";
".rar" = "01;38;5;61";
".ace" = "01;38;5;61";
".zoo" = "01;38;5;61";
".cpio" = "01;38;5;61";
".7z" = "01;38;5;61";
".rz" = "01;38;5;61";
".apk" = "01;38;5;61";
".gem" = "01;38;5;61";
".jpg" = "00;38;5;136";
".JPG" = "00;38;5;136";
".jpeg" = "00;38;5;136";
".gif" = "00;38;5;136";
".bmp" = "00;38;5;136";
".pbm" = "00;38;5;136";
".pgm" = "00;38;5;136";
".ppm" = "00;38;5;136";
".tga" = "00;38;5;136";
".xbm" = "00;38;5;136";
".xpm" = "00;38;5;136";
".tif" = "00;38;5;136";
".tiff" = "00;38;5;136";
".png" = "00;38;5;136";
".PNG" = "00;38;5;136";
".svg" = "00;38;5;136";
".svgz" = "00;38;5;136";
".mng" = "00;38;5;136";
".pcx" = "00;38;5;136";
".dl" = "00;38;5;136";
".xcf" = "00;38;5;136";
".xwd" = "00;38;5;136";
".yuv" = "00;38;5;136";
".cgm" = "00;38;5;136";
".emf" = "00;38;5;136";
".eps" = "00;38;5;136";
".CR2" = "00;38;5;136";
".ico" = "00;38;5;136";
".nef" = "00;38;5;136";
".NEF" = "00;38;5;136";
".webp" = "00;38;5;136";
".tex" = "01;38;5;245";
".rdf" = "01;38;5;245";
".owl" = "01;38;5;245";
".n3" = "01;38;5;245";
".ttl" = "01;38;5;245";
".nt" = "01;38;5;245";
".torrent" = "01;38;5;245";
".xml" = "01;38;5;245";
"*Makefile" = "01;38;5;245";
"*Rakefile" = "01;38;5;245";
"*Dockerfile" = "01;38;5;245";
"*build.xml" = "01;38;5;245";
"*rc" = "01;38;5;245";
"*1" = "01;38;5;245";
".nfo" = "01;38;5;245";
"*README" = "01;38;5;245";
"*README.txt" = "01;38;5;245";
"*readme.txt" = "01;38;5;245";
".md" = "01;38;5;245";
"*README.markdown" = "01;38;5;245";
".ini" = "01;38;5;245";
".yml" = "01;38;5;245";
".cfg" = "01;38;5;245";
".conf" = "01;38;5;245";
".h" = "01;38;5;245";
".hpp" = "01;38;5;245";
".c" = "01;38;5;245";
".cpp" = "01;38;5;245";
".cxx" = "01;38;5;245";
".cc" = "01;38;5;245";
".objc" = "01;38;5;245";
".sqlite" = "01;38;5;245";
".go" = "01;38;5;245";
".sql" = "01;38;5;245";
".csv" = "01;38;5;245";
".log" = "00;38;5;240";
".bak" = "00;38;5;240";
".aux" = "00;38;5;240";
".lof" = "00;38;5;240";
".lol" = "00;38;5;240";
".lot" = "00;38;5;240";
".out" = "00;38;5;240";
".toc" = "00;38;5;240";
".bbl" = "00;38;5;240";
".blg" = "00;38;5;240";
"*~" = "00;38;5;240";
"*#" = "00;38;5;240";
".part" = "00;38;5;240";
".incomplete" = "00;38;5;240";
".swp" = "00;38;5;240";
".tmp" = "00;38;5;240";
".temp" = "00;38;5;240";
".o" = "00;38;5;240";
".pyc" = "00;38;5;240";
".class" = "00;38;5;240";
".cache" = "00;38;5;240";
".aac" = "00;38;5;166";
".au" = "00;38;5;166";
".flac" = "00;38;5;166";
".mid" = "00;38;5;166";
".midi" = "00;38;5;166";
".mka" = "00;38;5;166";
".mp3" = "00;38;5;166";
".mpc" = "00;38;5;166";
".ogg" = "00;38;5;166";
".opus" = "00;38;5;166";
".ra" = "00;38;5;166";
".wav" = "00;38;5;166";
".m4a" = "00;38;5;166";
".axa" = "00;38;5;166";
".oga" = "00;38;5;166";
".spx" = "00;38;5;166";
".xspf" = "00;38;5;166";
".mov" = "01;38;5;166";
".MOV" = "01;38;5;166";
".mpg" = "01;38;5;166";
".mpeg" = "01;38;5;166";
".m2v" = "01;38;5;166";
".mkv" = "01;38;5;166";
".ogm" = "01;38;5;166";
".mp4" = "01;38;5;166";
".m4v" = "01;38;5;166";
".mp4v" = "01;38;5;166";
".vob" = "01;38;5;166";
".qt" = "01;38;5;166";
".nuv" = "01;38;5;166";
".wmv" = "01;38;5;166";
".asf" = "01;38;5;166";
".rm" = "01;38;5;166";
".rmvb" = "01;38;5;166";
".flc" = "01;38;5;166";
".avi" = "01;38;5;166";
".fli" = "01;38;5;166";
".flv" = "01;38;5;166";
".gl" = "01;38;5;166";
".m2ts" = "01;38;5;166";
".divx" = "01;38;5;166";
".webm" = "01;38;5;166";
".axv" = "01;38;5;166";
".anx" = "01;38;5;166";
".ogv" = "01;38;5;166";
".ogx" = "01;38;5;166";
};
};
};
}

@ -0,0 +1,15 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
direnv = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
nix-direnv = {
enable = true;
};
};
};
}

@ -0,0 +1,10 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
fzf = {
enable = true;
enableZshIntegration = true;
};
};
}

@ -0,0 +1,26 @@
{ pkgs, lib, config, options, ... }:
{
# nixpkgs = {
# config = {
# allowUnfree = true;
# allowUnfreePredicate = (_: true);
# };
# overlays = [
# (import ../../../overlays)
# ];
# };
programs = {
home-manager = {
enable = true;
};
};
systemd = {
user = {
startServices = "sd-switch";
};
};
}

@ -0,0 +1,10 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
lsd = {
enable = true;
enableAliases = true;
};
};
}

@ -0,0 +1,138 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
neovim = {
enable = true;
vimAlias = true;
plugins = with pkgs.vimPlugins; [
delimitMate
dockerfile-vim
supertab
vim-airline
vim-better-whitespace
vim-easy-align
vim-nix
vim-vividchalk
];
extraConfig = ''
" filetype config {
filetype plugin on
filetype indent on
"}
" misc stuff {
set nocompatible
set modeline
set history=1000
set backspace=indent,eol,start
set selection=inclusive
set completeopt=longest,menu,preview
set diffopt+=vertical
set autoread
"}
" tab related {
set shiftwidth=2
set tabstop=2
set expandtab
set smarttab
set cindent
"}
" status related {
set ruler
set showcmd
set nonumber
set shortmess=aoOtTI
set laststatus=1
"}
" search related {
set hlsearch
set incsearch
set ignorecase
set smartcase
set scrolloff=3
set sidescrolloff=5
"}
" bell related {
set noerrorbells
set vb t_vb=
"}
" backup related {
set nobackup
"}
" swap related {
set swapfile
"}
" grep related {
set grepprg=grep\ -nH\ $*
"}
" folding related {
set foldcolumn=0
set foldmethod=indent
set foldnestmax=100
set nofoldenable
set foldlevel=1
"}
" coloring related {
set background=dark
set t_Co=256
"}
" show syntax {
syntax on
"}
" select scheme {
colorscheme vividchalk
"}
" folding mapping {
map <F5> zo
map <F6> zc
map <F7> zR
map <F8> zM
"}
" switch tabs {
map <F9> gT
map <F10> gt
"}
" past switch {
set pastetoggle=<F11>
"}
" incsearch plugin {
hi search ctermfg=red ctermbg=yellow
map / <Plug>(incsearch-forward)
map ? <Plug>(incsearch-backward)
map g/ <Plug>(incsearch-stay)
"}
" airline plugin {
let g:airline#extensions#branch#enable=1
let g:airline#extensions#modified#enable=1
let g:airline#extensions#paste#enable=1
let g:airline#extensions#whitespace#enable=1
"}
" easyalign plugin {
vmap <Enter> <Plug>(EasyAlign)
nmap <Leader>a <Plug>(EasyAlign)
vmap . <Plug>(EasyAlignRepeat)
"}
'';
};
};
}

@ -0,0 +1,14 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
readline = {
enable = true;
bindings = {
"\e[5~" = "history-search-backward";
"\e[6~" = "history-search-forward";
};
};
};
}

@ -0,0 +1,23 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
starship = {
enable = true;
settings = {
add_newline = true;
battery = {
disabled = true;
};
directory = {
truncation_length = 5;
truncate_to_repo = false;
truncation_symbol = "/";
};
};
};
};
}

@ -0,0 +1,14 @@
{ pkgs, lib, config, options, ... }:
{
programs = {
tmux = {
enable = true;
clock24 = true;
tmuxinator = {
enable = true;
};
};
};
}

@ -2,15 +2,15 @@
with lib; with lib;
let let
cfg = config.profile.programs.yed; cfg = config.profile.programs.citrix;
in in
{ {
options = { options = {
profile = { profile = {
programs = { programs = {
yed = { citrix = {
enable = mkEnableOption "Yed"; enable = mkEnableOption "Citrix";
}; };
}; };
}; };
@ -19,7 +19,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
yed citrix_workspace
]; ];
}; };
}; };

@ -3,16 +3,14 @@
{ {
imports = [ imports = [
./act.nix ./act.nix
./authy.nix
./banking.nix ./banking.nix
./citrix.nix
./clouds.nix ./clouds.nix
./develop.nix ./develop.nix
./dircolors.nix
./direnv.nix
./fzf.nix
./gnupg.nix ./gnupg.nix
./golang.nix ./golang.nix
./gomplate.nix ./gomplate.nix
./graphics.nix
./helm.nix ./helm.nix
./joplin.nix ./joplin.nix
./jq.nix ./jq.nix
@ -21,22 +19,17 @@
./kustomize.nix ./kustomize.nix
./latex.nix ./latex.nix
./lens.nix ./lens.nix
./lsd.nix
./messages.nix ./messages.nix
./minecraft.nix ./minecraft.nix
./neovim.nix
./network.nix ./network.nix
./ngrok.nix ./ngrok.nix
./nodejs.nix ./nodejs.nix
./office.nix ./office.nix
./readline.nix
./shortwave.nix ./shortwave.nix
./starship.nix ./streaming.nix
./terminal.nix ./terminal.nix
./terraform.nix ./terraform.nix
./tmux.nix
./wine.nix ./wine.nix
./yed.nix
./yq.nix ./yq.nix
./zathura.nix ./zathura.nix
]; ];

@ -34,8 +34,11 @@ in
ansible-later ansible-later
cfssl cfssl
gettext
graphviz graphviz
ipcalc
mediainfo mediainfo
mediawriter
neofetch neofetch
reflex reflex
shellcheck shellcheck

@ -1,215 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.dircolors;
in
{
options = {
profile = {
programs = {
dircolors = {
enable = mkEnableOption "Dircolors" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
dircolors = {
enable = true;
enableZshIntegration = true;
settings = {
RESET = "0";
DIR = "00;38;5;33";
LINK = "01;38;5;37";
MULTIHARDLINK = "00";
FIFO = "48;5;230;38;5;136;01";
SOCK = "48;5;230;38;5;136;01";
DOOR = "48;5;230;38;5;136;01";
BLK = "48;5;230;38;5;244;01";
CHR = "48;5;230;38;5;244;01";
ORPHAN = "48;5;235;38;5;160";
MISSING = "00";
SETUID = "48;5;160;38;5;230";
SETGID = "48;5;136;38;5;230";
CAPABILITY = "30;41";
STICKY_OTHER_WRITABLE = "48;5;64;38;5;230";
OTHER_WRITABLE = "48;5;235;38;5;33";
STICKY = "48;5;33;38;5;230";
EXEC = "01;38;5;64";
".tar" = "00;38;5;61";
".tgz" = "01;38;5;61";
".arj" = "01;38;5;61";
".taz" = "01;38;5;61";
".lzh" = "01;38;5;61";
".lzma" = "01;38;5;61";
".tlz" = "01;38;5;61";
".txz" = "01;38;5;61";
".zip" = "01;38;5;61";
".zst" = "01;38;5;61";
".z" = "01;38;5;61";
".Z" = "01;38;5;61";
".dz" = "01;38;5;61";
".gz" = "01;38;5;61";
".lz" = "01;38;5;61";
".xz" = "01;38;5;61";
".bz2" = "01;38;5;61";
".bz" = "01;38;5;61";
".tbz" = "01;38;5;61";
".tbz2" = "01;38;5;61";
".tz" = "01;38;5;61";
".deb" = "01;38;5;61";
".rpm" = "01;38;5;61";
".jar" = "01;38;5;61";
".rar" = "01;38;5;61";
".ace" = "01;38;5;61";
".zoo" = "01;38;5;61";
".cpio" = "01;38;5;61";
".7z" = "01;38;5;61";
".rz" = "01;38;5;61";
".apk" = "01;38;5;61";
".gem" = "01;38;5;61";
".jpg" = "00;38;5;136";
".JPG" = "00;38;5;136";
".jpeg" = "00;38;5;136";
".gif" = "00;38;5;136";
".bmp" = "00;38;5;136";
".pbm" = "00;38;5;136";
".pgm" = "00;38;5;136";
".ppm" = "00;38;5;136";
".tga" = "00;38;5;136";
".xbm" = "00;38;5;136";
".xpm" = "00;38;5;136";
".tif" = "00;38;5;136";
".tiff" = "00;38;5;136";
".png" = "00;38;5;136";
".PNG" = "00;38;5;136";
".svg" = "00;38;5;136";
".svgz" = "00;38;5;136";
".mng" = "00;38;5;136";
".pcx" = "00;38;5;136";
".dl" = "00;38;5;136";
".xcf" = "00;38;5;136";
".xwd" = "00;38;5;136";
".yuv" = "00;38;5;136";
".cgm" = "00;38;5;136";
".emf" = "00;38;5;136";
".eps" = "00;38;5;136";
".CR2" = "00;38;5;136";
".ico" = "00;38;5;136";
".nef" = "00;38;5;136";
".NEF" = "00;38;5;136";
".webp" = "00;38;5;136";
".tex" = "01;38;5;245";
".rdf" = "01;38;5;245";
".owl" = "01;38;5;245";
".n3" = "01;38;5;245";
".ttl" = "01;38;5;245";
".nt" = "01;38;5;245";
".torrent" = "01;38;5;245";
".xml" = "01;38;5;245";
"*Makefile" = "01;38;5;245";
"*Rakefile" = "01;38;5;245";
"*Dockerfile" = "01;38;5;245";
"*build.xml" = "01;38;5;245";
"*rc" = "01;38;5;245";
"*1" = "01;38;5;245";
".nfo" = "01;38;5;245";
"*README" = "01;38;5;245";
"*README.txt" = "01;38;5;245";
"*readme.txt" = "01;38;5;245";
".md" = "01;38;5;245";
"*README.markdown" = "01;38;5;245";
".ini" = "01;38;5;245";
".yml" = "01;38;5;245";
".cfg" = "01;38;5;245";
".conf" = "01;38;5;245";
".h" = "01;38;5;245";
".hpp" = "01;38;5;245";
".c" = "01;38;5;245";
".cpp" = "01;38;5;245";
".cxx" = "01;38;5;245";
".cc" = "01;38;5;245";
".objc" = "01;38;5;245";
".sqlite" = "01;38;5;245";
".go" = "01;38;5;245";
".sql" = "01;38;5;245";
".csv" = "01;38;5;245";
".log" = "00;38;5;240";
".bak" = "00;38;5;240";
".aux" = "00;38;5;240";
".lof" = "00;38;5;240";
".lol" = "00;38;5;240";
".lot" = "00;38;5;240";
".out" = "00;38;5;240";
".toc" = "00;38;5;240";
".bbl" = "00;38;5;240";
".blg" = "00;38;5;240";
"*~" = "00;38;5;240";
"*#" = "00;38;5;240";
".part" = "00;38;5;240";
".incomplete" = "00;38;5;240";
".swp" = "00;38;5;240";
".tmp" = "00;38;5;240";
".temp" = "00;38;5;240";
".o" = "00;38;5;240";
".pyc" = "00;38;5;240";
".class" = "00;38;5;240";
".cache" = "00;38;5;240";
".aac" = "00;38;5;166";
".au" = "00;38;5;166";
".flac" = "00;38;5;166";
".mid" = "00;38;5;166";
".midi" = "00;38;5;166";
".mka" = "00;38;5;166";
".mp3" = "00;38;5;166";
".mpc" = "00;38;5;166";
".ogg" = "00;38;5;166";
".opus" = "00;38;5;166";
".ra" = "00;38;5;166";
".wav" = "00;38;5;166";
".m4a" = "00;38;5;166";
".axa" = "00;38;5;166";
".oga" = "00;38;5;166";
".spx" = "00;38;5;166";
".xspf" = "00;38;5;166";
".mov" = "01;38;5;166";
".MOV" = "01;38;5;166";
".mpg" = "01;38;5;166";
".mpeg" = "01;38;5;166";
".m2v" = "01;38;5;166";
".mkv" = "01;38;5;166";
".ogm" = "01;38;5;166";
".mp4" = "01;38;5;166";
".m4v" = "01;38;5;166";
".mp4v" = "01;38;5;166";
".vob" = "01;38;5;166";
".qt" = "01;38;5;166";
".nuv" = "01;38;5;166";
".wmv" = "01;38;5;166";
".asf" = "01;38;5;166";
".rm" = "01;38;5;166";
".rmvb" = "01;38;5;166";
".flc" = "01;38;5;166";
".avi" = "01;38;5;166";
".fli" = "01;38;5;166";
".flv" = "01;38;5;166";
".gl" = "01;38;5;166";
".m2ts" = "01;38;5;166";
".divx" = "01;38;5;166";
".webm" = "01;38;5;166";
".axv" = "01;38;5;166";
".anx" = "01;38;5;166";
".ogv" = "01;38;5;166";
".ogx" = "01;38;5;166";
};
};
};
};
}

@ -1,34 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.direnv;
in
{
options = {
profile = {
programs = {
direnv = {
enable = mkEnableOption "Direnv" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
direnv = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
nix-direnv = {
enable = true;
};
};
};
};
}

@ -1,29 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.fzf;
in
{
options = {
profile = {
programs = {
fzf = {
enable = mkEnableOption "Fzf" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
fzf = {
enable = true;
enableZshIntegration = true;
};
};
};
}

@ -2,15 +2,15 @@
with lib; with lib;
let let
cfg = config.profile.programs.authy; cfg = config.profile.programs.graphics;
in in
{ {
options = { options = {
profile = { profile = {
programs = { programs = {
authy = { graphics = {
enable = mkEnableOption "Authy"; enable = mkEnableOption "Graphics";
}; };
}; };
}; };
@ -19,7 +19,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
authy gimp
]; ];
}; };
}; };

@ -1,29 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.lsd;
in
{
options = {
profile = {
programs = {
lsd = {
enable = mkEnableOption "Lsd" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
lsd = {
enable = true;
enableAliases = true;
};
};
};
}

@ -20,13 +20,17 @@ in
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
discord discord
element-desktop
ferdium ferdium
mattermost-desktop mattermost-desktop
revolt-desktop revolt-desktop
rocketchat-desktop rocketchat-desktop
signal-desktop signal-desktop
skypeforlinux
slack slack
teams-for-linux teams-for-linux
telegram-desktop
whatsapp-for-linux
]; ];
}; };
}; };

@ -21,7 +21,6 @@ in
packages = with pkgs; [ packages = with pkgs; [
mcrcon mcrcon
packwiz packwiz
ferium
prismlauncher prismlauncher
]; ];
}; };

@ -1,157 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.neovim;
in
{
options = {
profile = {
programs = {
neovim = {
enable = mkEnableOption "Neovim" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
neovim = {
enable = true;
vimAlias = true;
plugins = with pkgs.vimPlugins; [
delimitMate
dockerfile-vim
supertab
vim-airline
vim-better-whitespace
vim-easy-align
vim-nix
vim-vividchalk
];
extraConfig = ''
" filetype config {
filetype plugin on
filetype indent on
"}
" misc stuff {
set nocompatible
set modeline
set history=1000
set backspace=indent,eol,start
set selection=inclusive
set completeopt=longest,menu,preview
set diffopt+=vertical
set autoread
"}
" tab related {
set shiftwidth=2
set tabstop=2
set expandtab
set smarttab
set cindent
"}
" status related {
set ruler
set showcmd
set nonumber
set shortmess=aoOtTI
set laststatus=1
"}
" search related {
set hlsearch
set incsearch
set ignorecase
set smartcase
set scrolloff=3
set sidescrolloff=5
"}
" bell related {
set noerrorbells
set vb t_vb=
"}
" backup related {
set nobackup
"}
" swap related {
set swapfile
"}
" grep related {
set grepprg=grep\ -nH\ $*
"}
" folding related {
set foldcolumn=0
set foldmethod=indent
set foldnestmax=100
set nofoldenable
set foldlevel=1
"}
" coloring related {
set background=dark
set t_Co=256
"}
" show syntax {
syntax on
"}
" select scheme {
colorscheme vividchalk
"}
" folding mapping {
map <F5> zo
map <F6> zc
map <F7> zR
map <F8> zM
"}
" switch tabs {
map <F9> gT
map <F10> gt
"}
" past switch {
set pastetoggle=<F11>
"}
" incsearch plugin {
hi search ctermfg=red ctermbg=yellow
map / <Plug>(incsearch-forward)
map ? <Plug>(incsearch-backward)
map g/ <Plug>(incsearch-stay)
"}
" airline plugin {
let g:airline#extensions#branch#enable=1
let g:airline#extensions#modified#enable=1
let g:airline#extensions#paste#enable=1
let g:airline#extensions#whitespace#enable=1
"}
" easyalign plugin {
vmap <Enter> <Plug>(EasyAlign)
nmap <Leader>a <Plug>(EasyAlign)
vmap . <Plug>(EasyAlignRepeat)
"}
'';
};
};
};
}

@ -1,33 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.readline;
in
{
options = {
profile = {
programs = {
readline = {
enable = mkEnableOption "Readline" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
readline = {
enable = true;
bindings = {
"\e[5~" = "history-search-backward";
"\e[6~" = "history-search-forward";
};
};
};
};
}

@ -1,42 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.starship;
in
{
options = {
profile = {
programs = {
starship = {
enable = mkEnableOption "Starship" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
starship = {
enable = true;
settings = {
add_newline = true;
battery = {
disabled = true;
};
directory = {
truncation_length = 5;
truncate_to_repo = false;
truncation_symbol = "/";
};
};
};
};
};
}

@ -0,0 +1,26 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.streaming;
in
{
options = {
profile = {
programs = {
streaming = {
enable = mkEnableOption "Streaming";
};
};
};
};
config = mkIf cfg.enable {
home = {
packages = with pkgs; [
obs-studio
];
};
};
}

@ -19,7 +19,9 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
blackbox
wezterm wezterm
zellij
]; ];
}; };
}; };

@ -1,33 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.tmux;
in
{
options = {
profile = {
programs = {
tmux = {
enable = mkEnableOption "Tmux" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
programs = {
tmux = {
enable = true;
clock24 = true;
tmuxinator = {
enable = true;
};
};
};
};
}

@ -19,22 +19,28 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
xclip
gnome.adwaita-icon-theme gnome.adwaita-icon-theme
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.calc
gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.espresso gnomeExtensions.espresso
gnomeExtensions.vitals
]; ];
}; };
dconf = { dconf = {
settings = { settings = {
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/input-sources" = { "org/gnome/desktop/input-sources" = {
sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "de" ]) ]; sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "de" ]) ];
xkb-options = [ "eurosign:e" ]; xkb-options = [ "eurosign:e" ];
}; };
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
clock-show-weekday = true; clock-show-weekday = true;
show-battery-percentage = true; show-battery-percentage = true;
@ -49,6 +55,25 @@ in
button-layout = "appmenu:minimize,maximize,close"; button-layout = "appmenu:minimize,maximize,close";
}; };
"org/gnome/desktop/notifications" = {
show-in-lock-screen = false;
};
"org/gnome/desktop/privacy" = {
old-files-age = lib.hm.gvariant.mkUint32 1;
remember-recent-files = false;
remove-old-temp-files = true;
remove-old-trash-files = true;
report-technical-problems = false;
};
"org/gnome/settings-daemon/peripherals/touchpad" = {
natural-scroll = true;
disable-while-typing = false;
tap-to-click = true;
touchpad-enabled = true;
};
"org/gnome/mutter" = { "org/gnome/mutter" = {
attach-modal-dialogs = true; attach-modal-dialogs = true;
dynamic-workspaces = true; dynamic-workspaces = true;
@ -58,8 +83,17 @@ in
}; };
"org/gnome/shell" = { "org/gnome/shell" = {
favorite-apps = [
"org.gnome.Calendar.desktop"
"org.gnome.Nautilus.desktop"
];
enabled-extensions = [ enabled-extensions = [
"AlphabeticalAppGrid@stuarthayhurst"
"calc@danigm.wadobo.com"
"custom-hot-corners-extended@G-dH.github.com"
"espresso@coadmunkee.github.com" "espresso@coadmunkee.github.com"
"Vitals@CoreCoding.com"
]; ];
}; };
@ -67,6 +101,85 @@ in
has-battery = true; has-battery = true;
}; };
"org/gnome/shell/extensions/vitals" = {
show-fan = true;
show-storage = false;
show-temperature = true;
show-voltage = true;
};
"org/gnome/shell/weather" = {
automatic-location = true;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/misc" = {
show-osd-monitor-indexes = false;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-1-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-2-top-right-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-bottom-left-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-bottom-right-0" = {
action = "show-desktop";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-3-top-right-0" = {
action = "toggle-overview";
};
"system/locale" = { "system/locale" = {
region = "de_DE.UTF-8"; region = "de_DE.UTF-8";
}; };

@ -22,7 +22,7 @@ in
profile = { profile = {
desktop = { desktop = {
sway = { gnome = {
enable = desktop; enable = desktop;
}; };
}; };
@ -31,10 +31,10 @@ in
act = { act = {
enable = desktop; enable = desktop;
}; };
authy = { banking = {
enable = desktop; enable = desktop;
}; };
banking = { citrix = {
enable = desktop; enable = desktop;
}; };
clouds = { clouds = {
@ -43,19 +43,16 @@ in
develop = { develop = {
enable = desktop; enable = desktop;
}; };
git = {
enable = desktop;
};
github = {
enable = desktop;
};
gnupg = { gnupg = {
enable = desktop; enable = desktop;
}; };
golang = { golang = {
enable = desktop; enable = desktop;
}; };
gopass = { gomplate = {
enable = desktop;
};
graphics = {
enable = desktop; enable = desktop;
}; };
helm = { helm = {
@ -64,6 +61,9 @@ in
joplin = { joplin = {
enable = desktop; enable = desktop;
}; };
jq = {
enable = desktop;
};
jsonnet = { jsonnet = {
enable = desktop; enable = desktop;
}; };
@ -85,10 +85,7 @@ in
minecraft = { minecraft = {
enable = desktop; enable = desktop;
}; };
minio = { network = {
enable = desktop;
};
netrc = {
enable = desktop; enable = desktop;
}; };
ngrok = { ngrok = {
@ -103,7 +100,7 @@ in
shortwave = { shortwave = {
enable = desktop; enable = desktop;
}; };
ssh = { streaming = {
enable = desktop; enable = desktop;
}; };
terminal = { terminal = {
@ -112,27 +109,39 @@ in
terraform = { terraform = {
enable = desktop; enable = desktop;
}; };
vscode = {
enable = desktop;
};
wine = { wine = {
enable = desktop; enable = desktop;
}; };
yed = { yq = {
enable = desktop; enable = desktop;
}; };
zathura = { zathura = {
enable = desktop; enable = desktop;
}; };
jq = { autorandr = {
enable = true; enable = desktop;
}; };
network = { git = {
enable = true; enable = desktop;
}; };
yq = { github = {
enable = true; enable = desktop;
};
gopass = {
enable = desktop;
};
minio = {
enable = desktop;
};
netrc = {
enable = desktop;
};
ssh = {
enable = desktop;
};
vscode = {
enable = desktop;
}; };
}; };
@ -140,10 +149,10 @@ in
nextcloud = { nextcloud = {
enable = desktop; enable = desktop;
}; };
udiskie = { syncthing = {
enable = desktop; enable = desktop;
}; };
syncthing = { udiskie = {
enable = desktop; enable = desktop;
}; };
}; };
@ -158,6 +167,20 @@ in
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";
}; };
shellAliases = {
".." = "cd ..";
"..." = "cd ../..";
netstat = "sudo netstat -tulpen";
rgrep = "grep -Rn";
hgrep = "fc -El 0 | grep";
history = "fc -l 1";
sha256sum = "shasum -a 256";
# molecule = "docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):$(pwd) -w $(pwd) toolhippie/molecule:latest molecule";
};
file = { file = {
".local/bin/git-gh-pages" = { ".local/bin/git-gh-pages" = {
executable = true; executable = true;
@ -219,4 +242,79 @@ in
stateVersion = "23.11"; stateVersion = "23.11";
}; };
programs = {
bash = {
enable = true;
enableCompletion = true;
profileExtra = ''
[ -r ~/.nix-profile/etc/profile.d/nix.sh ] && source ~/.nix-profile/etc/profile.d/nix.sh
'';
logoutExtra = ''
'';
sessionVariables = {
EDITOR = "vim";
PAGER = "less";
CLICOLOR = "1";
GREP_COLOR = "mt=1;33";
IGNOREEOF = "1";
};
};
zsh = {
enable = true;
enableCompletion = true;
autosuggestion = {
enable = true;
};
syntaxHighlighting = {
enable = true;
};
profileExtra = ''
[ -r ~/.nix-profile/etc/profile.d/nix.sh ] && source ~/.nix-profile/etc/profile.d/nix.sh
'';
history = {
size = 10000000;
save = 10000000;
extended = true;
path = "${config.home.homeDirectory}/.zhistory";
};
sessionVariables = {
EDITOR = "vim";
PAGER = "less";
CLICOLOR = "1";
GREP_COLOR = "mt=1;33";
IGNOREEOF = "1";
};
oh-my-zsh = {
enable = true;
custom = "${pkgs.zcustom}";
theme = "tboerger";
plugins = [
"direnv"
"encode64"
"git-prompt"
"history-substring-search"
"kube-ps1"
"rsync"
"sudo"
"systemd"
"tfenv"
"tmux"
"transfer"
];
};
};
};
} }

@ -20,6 +20,7 @@ in
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
xclip xclip
gnome.adwaita-icon-theme
gnomeExtensions.alphabetical-app-grid gnomeExtensions.alphabetical-app-grid
gnomeExtensions.app-icons-taskbar gnomeExtensions.app-icons-taskbar
@ -38,10 +39,6 @@ in
]; ];
}; };
programs = { };
services = { };
dconf = { dconf = {
settings = { settings = {
"org/gnome/desktop/input-sources" = { "org/gnome/desktop/input-sources" = {
@ -70,17 +67,17 @@ in
"org/gnome/desktop/background" = { "org/gnome/desktop/background" = {
color-shading-type = "solid"; color-shading-type = "solid";
picture-options = "zoom"; picture-options = "zoom";
picture-uri = "file://${config.home.homeDirectory}/.wallpapers/tower.jpg"; picture-uri = "file:///home/thomas/.wallpapers/tower.jpg";
picture-uri-dark = "file://${home.homedirectory}/.wallpapers/tower.jpg"; picture-uri-dark = "file:///home/thomas/.wallpapers/tower.jpg";
show-desktop-icons = true; show-desktop-icons = true;
}; };
"org/gnome/desktop/screensaver" = { "org/gnome/desktop/screensaver" = {
color-shading-type = "solid"; color-shading-type = "solid";
picture-options = "zoom"; picture-options = "zoom";
picture-uri = "file://${config.home.homeDirectory}/.wallpapers/tower.jpg"; picture-uri = "file:///home/thomas/.wallpapers/tower.jpg";
picture-uri-dark = "file://${home.homedirectory}/.wallpapers/tower.jpg"; picture-uri-dark = "file:///home/thomas/.wallpapers/tower.jpg";
lock-delay = mkUint32 0; lock-delay = lib.hm.gvariant.mkUint32 0;
}; };
"org/gnome/desktop/notifications" = { "org/gnome/desktop/notifications" = {
@ -88,7 +85,7 @@ in
}; };
"org/gnome/desktop/privacy" = { "org/gnome/desktop/privacy" = {
old-files-age = mkUint32 1; old-files-age = lib.hm.gvariant.mkUint32 1;
remember-recent-files = false; remember-recent-files = false;
remove-old-temp-files = true; remove-old-temp-files = true;
remove-old-trash-files = true; remove-old-trash-files = true;
@ -116,24 +113,44 @@ in
"org.gnome.Nautilus.desktop" "org.gnome.Nautilus.desktop"
]; ];
enabled-extensions = with pkgs; [ enabled-extensions = [
gnomeExtensions.alphabetical-app-grid.uuid # AlphabeticalAppGrid@stuarthayhurst "AlphabeticalAppGrid@stuarthayhurst" # gnomeExtensions.alphabetical-app-grid
gnomeExtensions.app-icons-taskbar.uuid # "aztaskbar@aztaskbar.gitlab.com" "auto-move-windows@gnome-shell-extensions.gcampax.github.com" # gnomeExtensions.auto-move-windows
gnomeExtensions.auto-move-windows.uuid # "auto-move-windows@gnome-shell-extensions.gcampax.github.com" "aztaskbar@aztaskbar.gitlab.com" # gnomeExtensions.app-icons-taskbar
gnomeExtensions.calc.uuid # "calc@danigm.wadobo.com" "calc@danigm.wadobo.com" # gnomeExtensions.calc
gnomeExtensions.clipboard-indicator # "clipboard-indicator@tudmotu.com" "clipboard-indicator@tudmotu.com" # gnomeExtensions.clipboard-indicator
gnomeExtensions.custom-hot-corners-extended.uuid # "custom-hot-corners-extended@G-dH.github.com" "custom-hot-corners-extended@G-dH.github.com" # gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.espresso.uuid # "espresso@coadmunkee.github.com" "drive-menu@gnome-shell-extensions.gcampax.github.com" # gnomeExtensions.removable-drive-menu
gnomeExtensions.gtile.uuid # "gTile@vibou" "espresso@coadmunkee.github.com" # gnomeExtensions.espresso
gnomeExtensions.removable-drive-menu.uuid # "drive-menu@gnome-shell-extensions.gcampax.github.com" "gTile@vibou" # gnomeExtensions.gtile
gnomeExtensions.tailscale-status.uuid # "tailscale-status@maxgallup.github.com" "tailscale-status@maxgallup.github.com" # gnomeExtensions.tailscale-status
gnomeExtensions.tray-icons-reloaded.uuid # "trayIconsReloaded@selfmade.pl" "trayIconsReloaded@selfmade.pl" # gnomeExtensions.tray-icons-reloaded
gnomeExtensions.vitals # "Vitals@CoreCoding.com" "Vitals@CoreCoding.com" # gnomeExtensions.vitals
# gnomeExtensions.appindicator.uuid # "appindicatorsupport@rgcjonas.gmail.com" # "appindicatorsupport@rgcjonas.gmail.com" # gnomeExtensions.appindicator
]; ];
}; };
"org/gnome/shell/extensions/aztaskbar" = {
main-panel-height = (lib.hm.gvariant.mkTuple [ true 40 ]);
show-apps-button = (lib.hm.gvariant.mkTuple [ true 0 ]);
};
"org/gnome/shell/extensions/espresso" = {
has-battery = true;
};
"org/gnome/shell/extensions/vitals" = {
show-fan = true;
show-storage = false;
show-temperature = true;
show-voltage = true;
};
"org/gnome/shell/weather" = {
automatic-location = true;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/misc" = { "org/gnome/shell/extensions/custom-hot-corners-extended/misc" = {
show-osd-monitor-indexes = false; show-osd-monitor-indexes = false;
}; };
@ -202,26 +219,6 @@ in
action = "toggle-overview"; action = "toggle-overview";
}; };
"org/gnome/shell/extensions/aztaskbar" = {
main-panel-height = (lib.hm.gvariant.mkTuple [ true 40 ]);
show-apps-button = (lib.hm.gvariant.mkTuple [ true 0 ]);
};
"org/gnome/shell/extensions/espresso" = {
has-battery = true;
};
"org/gnome/shell/extensions/vitals" = {
show-fan = true;
show-storage = false;
show-temperature = true;
show-voltage = true;
};
"org/gnome/shell/weather" = {
automatic-location = true;
};
"system/locale" = { "system/locale" = {
region = "de_DE.UTF-8"; region = "de_DE.UTF-8";
}; };

@ -68,10 +68,6 @@ in
enable = true; enable = true;
}; };
autorandr = {
enable = true;
};
rofi = { rofi = {
enable = true; enable = true;
@ -117,9 +113,6 @@ in
enable = true; enable = true;
}; };
autorandr = {
enable = true;
};
betterlockscreen = { betterlockscreen = {
enable = true; enable = true;
arguments = [ "--update ${home.homeDirectory}/.wallpapers/tower.jpg" ]; arguments = [ "--update ${home.homeDirectory}/.wallpapers/tower.jpg" ];

@ -0,0 +1,34 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.autorandr;
in
{
options = {
profile = {
programs = {
autorandr = {
enable = mkEnableOption "Autorandr";
};
};
};
};
config = mkIf cfg.enable {
programs = {
autorandr = {
enable = true;
profiles = { };
};
};
services = {
autorandr = {
enable = true;
};
};
};
}

@ -2,12 +2,12 @@
{ {
imports = [ imports = [
./autorandr.nix
./git.nix ./git.nix
./github.nix ./github.nix
./gopass.nix ./gopass.nix
./minio.nix ./minio.nix
./netrc.nix ./netrc.nix
./shell.nix
./ssh.nix ./ssh.nix
./vscode.nix ./vscode.nix
]; ];

@ -18,6 +18,10 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home = { home = {
packages = with pkgs; [
lazygit
];
shellAliases = { shellAliases = {
gs = "git status"; gs = "git status";
gc = "git commit"; gc = "git commit";
@ -36,7 +40,7 @@ in
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;
enableZshIntegration = true; enableZshIntegration = true;
pinentryFlavor = "gnome3"; pinentryPackage = pkgs.pinentry-gnome3;
}; };
}; };
@ -74,6 +78,10 @@ in
fap = "fetch --all --prune"; fap = "fetch --all --prune";
sma = "submodule add";
smi = "submodule init";
smu = "submodule update --init --recursive";
hist = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"; hist = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short";
amend = "commit --amend -C HEAD"; amend = "commit --amend -C HEAD";

@ -35,13 +35,13 @@ in
}; };
}; };
homeage = { age = {
file."ghtoken" = { secrets = {
source = ../secrets/gh.age; github = {
symlinks = [ "${config.home.homeDirectory}/.ghtoken" ]; file = ../secrets/github.age;
owner = "thomas"; path = "${config.home.homeDirectory}/.ghtoken";
group = "users"; mode = "0600";
mode = "0600"; };
}; };
}; };
}; };

@ -45,15 +45,7 @@ in
[mounts "cloudpunks"] [mounts "cloudpunks"]
path = ${config.xdg.dataHome}/gopass/stores/cloudpunks path = ${config.xdg.dataHome}/gopass/stores/cloudpunks
[mounts "restlos"]
path = ${config.xdg.dataHome}/gopass/stores/restlos
[mounts "adorsys"]
path = ${config.xdg.dataHome}/gopass/stores/adorsys
[mounts "webhippie"]
path = ${config.xdg.dataHome}/gopass/stores/webhippie
[mounts "boerger"]
path = ${config.xdg.dataHome}/gopass/stores/boerger
[mounts "gopad"] [mounts "gopad"]
path = ${config.xdg.dataHome}/gopass/stores/gopad path = ${config.xdg.dataHome}/gopass/stores/gopad
[mounts "kleister"] [mounts "kleister"]

@ -23,13 +23,13 @@ in
]; ];
}; };
homeage = { age = {
file."minio" = { secrets = {
source = ../secrets/minio.age; minio = {
symlinks = [ "${config.home.homeDirectory}/.mc/config.json" ]; file = ../secrets/minio.age;
owner = "thomas"; path = "${config.home.homeDirectory}/.mc/config.json";
group = "users"; mode = "0600";
mode = "0600"; };
}; };
}; };
}; };

@ -17,13 +17,13 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
homeage = { age = {
file."netrc" = { secrets = {
source = ../secrets/netrc.age; netrc = {
symlinks = [ "${config.home.homeDirectory}/.netrc" ]; file = ../secrets/netrc.age;
owner = "thomas"; path = "${config.home.homeDirectory}/.netrc";
group = "users"; mode = "0600";
mode = "0600"; };
}; };
}; };
}; };

@ -1,108 +0,0 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.profile.programs.shell;
in
{
options = {
profile = {
programs = {
shell = {
enable = mkEnableOption "Shell" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
home = {
shellAliases = {
".." = "cd ..";
"..." = "cd ../..";
netstat = "sudo netstat -tulpen";
rgrep = "grep -Rn";
hgrep = "fc -El 0 | grep";
history = "fc -l 1";
sha256sum = "shasum -a 256";
};
};
programs = {
bash = {
enable = true;
enableCompletion = true;
profileExtra = ''
[ -r ~/.nix-profile/etc/profile.d/nix.sh ] && source ~/.nix-profile/etc/profile.d/nix.sh
'';
logoutExtra = ''
'';
sessionVariables = {
EDITOR = "vim";
PAGER = "less";
CLICOLOR = "1";
GREP_COLOR = "mt=1;33";
IGNOREEOF = "1";
};
};
zsh = {
enable = true;
enableCompletion = true;
enableAutosuggestions = true;
syntaxHighlighting = {
enable = true;
};
profileExtra = ''
[ -r ~/.nix-profile/etc/profile.d/nix.sh ] && source ~/.nix-profile/etc/profile.d/nix.sh
'';
history = {
size = 10000000;
save = 10000000;
extended = true;
path = "${config.home.homeDirectory}/.zhistory";
};
sessionVariables = {
EDITOR = "vim";
PAGER = "less";
CLICOLOR = "1";
GREP_COLOR = "mt=1;33";
IGNOREEOF = "1";
};
oh-my-zsh = {
enable = true;
custom = "${pkgs.zcustom}";
theme = "tboerger";
plugins = [
"direnv"
"encode64"
"git-prompt"
"history-substring-search"
"kube-ps1"
"rsync"
"sudo"
"systemd"
"tfenv"
"tmux"
"transfer"
];
};
};
};
};
}

@ -35,7 +35,7 @@ in
ms-python.python ms-python.python
ms-vscode-remote.remote-ssh ms-vscode-remote.remote-ssh
naumovs.color-highlight naumovs.color-highlight
octref.vetur Vue.volar
redhat.vscode-yaml redhat.vscode-yaml
shakram02.bash-beautify shakram02.bash-beautify
signageos.signageos-vscode-sops signageos.signageos-vscode-sops
@ -53,6 +53,7 @@ in
"editor.renderControlCharacters" = true; "editor.renderControlCharacters" = true;
"editor.renderWhitespace" = "all"; "editor.renderWhitespace" = "all";
"editor.minimap.enabled" = false;
"editor.rulers" = [ "editor.rulers" = [
80 80
@ -62,12 +63,13 @@ in
"files.trimTrailingWhitespace" = true; "files.trimTrailingWhitespace" = true;
"go.useLanguageServer" = true; "go.useLanguageServer" = true;
"go.toolsManagement.autoUpdate" = true;
"[python]" = { "[python]" = {
"editor.formatOnType" = true; "editor.formatOnType" = true;
}; };
"[vue]" = { "[vue]" = {
"editor.defaultFormatter" = "octref.vetur"; "editor.defaultFormatter" = "Vue.volar";
}; };
"[yaml]" = { "[yaml]" = {
"editor.defaultFormatter" = "redhat.vscode-yaml"; "editor.defaultFormatter" = "redhat.vscode-yaml";

@ -1,10 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHB0VDFPUSAzS1hq
M0F2NDVCanhEcCsrVmtWN3NKaVQ4NWF4Rlk4OXlVUXNZZWE4Y2tVCkRsNkJrK0JE
cG80U2cxZEdPUkhEcmFENGU0cW1yMkkrMkY3NHlzSjVITnMKLT4gLnVbODAtXC1n
cmVhc2UgTSU3ViBnN1ggMH4yLWhodQowRVQxVFV4d21VRmY1S1J4K3Q1QjArbHZK
clpwSHY3OWVHOXFTUjQvWFlhV1lpTTN4N1BSQTBYMjZwbzdnaCt4CkxmWTc1dHNu
MStrQgotLS0gT3I3Nkw4RHNwcXUrV3h2U1o1VXlvTGFLbkEyRUtVNFJ3Mnl1VTRY
MXJaMAo7vjfTwaTgpEMPgSmXjFoWJDxkL29O5W/pxKmRH3bW33MVpSmO1sM+AypG
dLMa7fvHbWZozSMLpT19num5Ufj28BJCjN0fhd0m
-----END AGE ENCRYPTED FILE-----

@ -0,0 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 ptT1OQ XIHtmD92NOYVItTC1L891g2iw2Ndhryjs9CM3X2eAmw
s6jN22brCaZRcm7U4KChoUGQd+E9p2y7hyullCVFL/4
-> D-grease 4__ 0}`'
SewNcDOTIxXXeb/gIiUnVkW8HvP4fAutXORixw07ZRe3csUBH5Qhg5VQrh+RGKji
EdXyeHsIOfXNM95C93K0U0Y0
--- pB4b+FCzZ5lPi5Hv8W4XlTpQx98miOw8z5g54moH01M
OVtÏSÅ°hB÷©ÑÏŒeìcÛêv¸À<03>ÿ‰E·…?£Ž«>x•)<29>Ñç[€;àïXËxºuÛ8³PïuÊbW¨aËåè

Binary file not shown.

@ -1,13 +1,8 @@
-----BEGIN AGE ENCRYPTED FILE----- age-encryption.org/v1
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHB0VDFPUSA3czg0 -> ssh-ed25519 ptT1OQ Asu1kzCEtQmXGuPOZNbOJqmshYQRsWXSjlwuBQ6Y5mk
azRIaGgvVXMyQTFuaXVGYjNoUlJFcU03d3RxLzY2REQxYVl1SndBClg0M0dQeW0v N5Ydknr2H1SHw8Y8BKNn+j3J/L5MVovqkHsbQFa6Rv4
Z3pGN0tPVUo4OWVmZ0N6SGVETHJpc01TMzhLeHczR3RkQkEKLT4gaUBYVWVeUi1n -> p4*9mI9U-grease \7ZD]9w0
cmVhc2UKekVpYkJwOHpPZW8yd1kwY3NpYjhPQnVRRE1DZ0xqYXQzaks0dlE5SDRX FqfyFIz/blFfEtBAwGYAmA6Wkv3GeMcTe8bTCBkmEcPpZyQ0XcYSUb9peUtl
VDVNTmR4ZklpQVd5elF1MmtDSmxsYwo5LzV2M2xsSFlxZGYzOVlzRzFIK2lDQjdx --- 6HFThIK/yZAkX9XoLs8PWKjagjnIz8+YjBjWxDeFAVo
NGdVVGczWDlNUlZhQ1pZWWZNc3hJNU02WC9uOVlPOUw5STFMUQotLS0gSVhpK1NJ Nõ®n„ÇNšóÂaFÑýÈ|ô…ÄŽLkñC¸5^ÂçŸ@/ÃWüMÅ8¢wKݯîWrãgMâ¾²èêùKz¦T<54>ïMÒ,O•o¦ùb €ÎqÒ>ëÔXœâ=€X¯åÅS]—†œ+½íP%‰"Y¡ç³«ç°Ï÷=.<2E>õY0vËGž¾°²R X“ìJó¹°#/7ŽFJÞàРm
NEZFVWZBWDhTM0FUVHZMTTBSd2hVQmlUejRnaUUvSjArVTA4NAq8OnZmEhnySiGS &<26>éO¦<4F>iP¯y³9F5x@
NXOHYtCrY0hOtWowI/fKTyCQg+2ttsgANRTOPQokr3m8N6NP0VpEHgTZ63ViRvnu
XP+DXK0xoztypOWIxg0R9XYtFazVvRUFTal1qY7U3wzwDplz5AYGwJZBv+tTJot+
7OojRKWzmg3CLAnCYciwFA2/tkgYP4sFGqQ9iCSY6nt6DL/zuILbUP38s/8pYEPg
yRY+408oomBqyG04ORGa1NIH9DHKxfmLc/h2w8flB/eyvw==
-----END AGE ENCRYPTED FILE-----

@ -1,6 +1,14 @@
self: super: self: super:
{ {
citrix_workspace = super.citrix_workspace.overrideAttrs (old: {
src = super.fetchurl {
name = "linuxx64-24.2.0.65.tar.gz";
url = "https://dl.webhippie.de/misc/citrix-workspace-x64-24.2.0.65.tar.gz";
hash = "sha256-6utdO9B51OXJcH2mf196Jct2XhnDbQGGEpBlXb8qruQ=";
};
});
vscode-extensions = self.lib.recursiveUpdate super.vscode-extensions { vscode-extensions = self.lib.recursiveUpdate super.vscode-extensions {
dzhavat.bracket-pair-toggler = self.vscode-utils.extensionFromVscodeMarketplace { dzhavat.bracket-pair-toggler = self.vscode-utils.extensionFromVscodeMarketplace {
name = "bracket-pair-toggler"; name = "bracket-pair-toggler";
@ -17,8 +25,14 @@ self: super:
signageos.signageos-vscode-sops = self.vscode-utils.extensionFromVscodeMarketplace { signageos.signageos-vscode-sops = self.vscode-utils.extensionFromVscodeMarketplace {
name = "signageos-vscode-sops"; name = "signageos-vscode-sops";
publisher = "signageos"; publisher = "signageos";
version = "0.8.0"; version = "0.9.1";
sha256 = "sha256-LcbbKvYQxob2zKnmAlylIedQkJ1INl/i9DSK7MemW9Y="; sha256 = "sha256-b1Gp+tL5/e97xMuqkz4EvN0PxI7cJOObusEkcp+qKfM=";
};
Vue.volar = self.vscode-utils.extensionFromVscodeMarketplace {
name = "volar";
publisher = "Vue";
version = "2.0.11";
sha256 = "sha256-EyULg2yS/aqf0ipUQKFjW1WJIHECr26/JIQ+UuTPSLk=";
}; };
}; };
@ -49,16 +63,23 @@ self: super:
gh-markdown-preview = super.callPackage ./gh-markdown-preview { }; gh-markdown-preview = super.callPackage ./gh-markdown-preview { };
gh-poi = super.callPackage ./gh-poi { }; gh-poi = super.callPackage ./gh-poi { };
kubectl-deprecations = super.callPackage ./kubectl-deprecations { };
kubectl-get-all = super.callPackage ./kubectl-get-all { }; kubectl-get-all = super.callPackage ./kubectl-get-all { };
kubectl-images = super.callPackage ./kubectl-images { }; kubectl-images = super.callPackage ./kubectl-images { };
kubectl-ktop = super.callPackage ./kubectl-ktop { }; kubectl-ktop = super.callPackage ./kubectl-ktop { };
kubectl-moco = super.callPackage ./kubectl-moco { };
kubectl-neat = super.callPackage ./kubectl-neat { }; kubectl-neat = super.callPackage ./kubectl-neat { };
kubectl-oomd = super.callPackage ./kubectl-oomd { }; kubectl-oomd = super.callPackage ./kubectl-oomd { };
kubectl-outdated = super.callPackage ./kubectl-outdated { };
kubectl-pexec = super.callPackage ./kubectl-pexec { }; kubectl-pexec = super.callPackage ./kubectl-pexec { };
kubectl-pod-lens = super.callPackage ./kubectl-pod-lens { };
kubectl-rakkess = super.callPackage ./kubectl-rakkess { };
kubectl-realname-diff = super.callPackage ./kubectl-realname-diff { }; kubectl-realname-diff = super.callPackage ./kubectl-realname-diff { };
kubectl-resource-versions = super.callPackage ./kubectl-resource-versions { }; kubectl-resource-versions = super.callPackage ./kubectl-resource-versions { };
kubectl-rolesum = super.callPackage ./kubectl-rolesum { };
kubectl-split-yaml = super.callPackage ./kubectl-split-yaml { }; kubectl-split-yaml = super.callPackage ./kubectl-split-yaml { };
kubectl-view-secret = super.callPackage ./kubectl-view-secret { }; kubectl-view-secret = super.callPackage ./kubectl-view-secret { };
kubectl-who-can = super.callPackage ./kubectl-who-can { };
kubectl-whoami = super.callPackage ./kubectl-whoami { }; kubectl-whoami = super.callPackage ./kubectl-whoami { };
khelm = super.callPackage ./khelm { }; khelm = super.callPackage ./khelm { };

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "gh-dash"; pname = "gh-dash";
version = "3.7.9"; version = "3.14.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dlvhdr"; owner = "dlvhdr";
repo = "gh-dash"; repo = "gh-dash";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-loAtRXns7plBeVOM+d/euyRS86MG+NRhGB4WpHT7KlM="; sha256 = "sha256-6YPUGOQ2KBfu+3XAgub9Cpz0QBrU2kV+gq13tUtzY+w=";
}; };
vendorHash = "sha256-0ySTcQDM7Dole6ojnhr7vwUWOM4p6kFN69VqMP0jAY0="; vendorHash = "sha256-jCf9FWAhZK5hTzyy8N4r5dfUYTgESmsn8iKxCccgWiM=";
ldflags = [ ldflags = [
"-s" "-s"

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "gh-markdown-preview"; pname = "gh-markdown-preview";
version = "1.4.1"; version = "1.4.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yusukebe"; owner = "yusukebe";
repo = "gh-markdown-preview"; repo = "gh-markdown-preview";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Q+e3j+X/ZsLdkTBkuu028Rl4iw+oES2w6CDQiwN+CtU="; sha256 = "sha256-UBveXL4/3GxxIVjqG0GuTbkGkzXFc/stew2s+dTj9BI=";
}; };
vendorHash = "sha256-O6Q9h5zcYAoKLjuzGu7f7UZY0Y5rL2INqFyJT2QZJ/E="; vendorHash = "sha256-O6Q9h5zcYAoKLjuzGu7f7UZY0Y5rL2INqFyJT2QZJ/E=";

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "gh-poi"; pname = "gh-poi";
version = "0.9.3"; version = "0.9.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "seachicken"; owner = "seachicken";
repo = "gh-poi"; repo = "gh-poi";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Oh0l+WUj2G6EBhyhF1YVlyTsbH9eyK0R5heAfp6zUUc="; sha256 = "sha256-QpUZxho9hzmgbCFgNxwwKi6hhfyqc4b/JYKH3rP4Eb8=";
}; };
vendorHash = "sha256-D/YZLwwGJWCekq9mpfCECzJyJ/xSlg7fC6leJh+e8i0="; vendorHash = "sha256-D/YZLwwGJWCekq9mpfCECzJyJ/xSlg7fC6leJh+e8i0=";

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "khelm"; pname = "khelm";
version = "2.3.0"; version = "2.3.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mgoltzsche"; owner = "mgoltzsche";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Rh3goHrtoB/cPDcQqGTCCY9FHtoxCD/wJX7EtsY1KA4="; sha256 = "sha256-S4+aNte+L5aPQga3543AeRuorpVtsTFHWGmcl5Djxd8=";
}; };
vendorHash = "sha256-LN6Jnv/XBgHeogJoi+jcgNVG9/WDb9d/UgyuUzhiafw="; vendorHash = "sha256-lpJ+qcUnTW32j00/5MtwTojtfrlLysSkAArnUnjJQmU=";
doCheck = false; doCheck = false;

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "ksops"; pname = "ksops";
version = "4.2.1"; version = "4.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "viaduct-ai"; owner = "viaduct-ai";
repo = "kustomize-sops"; repo = "kustomize-sops";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Jm4mA91fyXQ8eScvRGDAmCBFVqT2GP57XIBZQo/bApg="; sha256 = "sha256-zEiRbbQzUqFHNtrzyZDNEaXT/T+TfB6KqOXkdjrCiW4=";
}; };
vendorHash = "sha256-tNYPgXFDJuNRlrVE0ywg77goNzfoWHFVzOG9mHqK3q8="; vendorHash = "sha256-aNrhS4oCG5DB3yjolWL49DtNqZA5dNRqQ2YPBeKQzWI=";
postInstall = '' postInstall = ''
mv $out/bin/kustomize-sops $out/bin/ksops mv $out/bin/kustomize-sops $out/bin/ksops

@ -0,0 +1,29 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-deprecations";
version = "1.7.1";
src = fetchFromGitHub {
owner = "kubepug";
repo = "kubepug";
rev = "v${version}";
sha256 = "sha256-VNxaYQy81U0JWd6KS0jCvMexpyWL4v1cKpjxLRkxBLE=";
};
vendorHash = "sha256-HVsaQBd7fSZp2fOpOOmlDhYrHcHqWKiYWPFLQX0azEw=";
doCheck = false;
subPackages = [ "." ];
postInstall = ''
mv $out/bin/kubepug $out/bin/kubectl-deprecations
'';
meta = with lib; {
description = "A kubectl plugin to preupgrade checks";
homepage = "https://github.com/kubepug/kubepug/";
license = licenses.mit;
maintainers = with maintainers; [ tboerger ];
};
}

@ -0,0 +1,25 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-moco";
version = "0.20.2";
src = fetchFromGitHub {
owner = "cybozu-go";
repo = "moco";
rev = "v${version}";
sha256 = "sha256-AubGcEFogKNJI6fDyc95yKdMzqAaQ4rEH+etJ1tTmB4=";
};
vendorHash = "sha256-Njy+oGu7TBShDjFd06ijRv6x6xlsYYdy2upvLL1MBwQ=";
doCheck = false;
subPackages = [ "cmd/kubectl-moco" ];
meta = with lib; {
description = "A kubectl plugin that interacts with the Moco MySQL operator";
homepage = "https://github.com/cybozu-go/moco/";
license = licenses.asl20;
maintainers = with maintainers; [ tboerger ];
};
}

@ -0,0 +1,29 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-outdated";
version = "0.4.1";
src = fetchFromGitHub {
owner = "replicatedhq";
repo = "outdated";
rev = "v${version}";
sha256 = "sha256-01rQAGSoAD/lMHSth4FvYXnvpW2zyXGQNKq70HQKPFU=";
};
vendorHash = "sha256-EbLIsOqg4uQB6ER/H05zaFC6sTxCPIQUZUhRgW1i9KQ=";
doCheck = false;
subPackages = [ "cmd/outdated" ];
postInstall = ''
mv $out/bin/outdated $out/bin/kubectl-outdated
'';
meta = with lib; {
description = "A kubectl plugin to find and report outdated images";
homepage = "https://github.com/replicatedhq/outdated/";
license = licenses.asl20;
maintainers = with maintainers; [ tboerger ];
};
}

@ -0,0 +1,29 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-pod-lens";
version = "0.3.1";
src = fetchFromGitHub {
owner = "sunny0826";
repo = "kubectl-pod-lens";
rev = "v${version}";
sha256 = "sha256-KoNQWAKdHcdkyMR1lr8CrLc0AxK4WszWqw0zKP2n9sY=";
};
vendorHash = "sha256-V6iHO+eNDWP+IEcG2PnCAyGISw/VU8yz5UTe4JZCZKk=";
doCheck = false;
subPackages = [ "cmd/plugin" ];
postInstall = ''
mv $out/bin/plugin $out/bin/kubectl-pod_lens
'';
meta = with lib; {
description = "A kubectl plugin to show pod-related resources";
homepage = "https://github.com/sunny0826/kubectl-pod-lens/";
license = licenses.asl20;
maintainers = with maintainers; [ tboerger ];
};
}

@ -0,0 +1,29 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-rakkess";
version = "0.5.1";
src = fetchFromGitHub {
owner = "corneliusweig";
repo = "rakkess";
rev = "v${version}";
sha256 = "sha256-igovWWk8GfNmOS/NbZWfv9kox6QLNIbM09jdvA/lL3A=";
};
vendorHash = "sha256-lVxJ4wFBhHc8JVpkmqphLYPE9Z8Cr6o+aAHvC1naqyE=";
doCheck = false;
subPackages = [ "." ];
postInstall = ''
mv $out/bin/rakkess $out/bin/kubectl-rakkess
'';
meta = with lib; {
description = "A kubectl plugin to show an access matrix";
homepage = "https://github.com/corneliusweig/rakkess/";
license = licenses.mit;
maintainers = with maintainers; [ tboerger ];
};
}

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "kubectl-realname-diff"; pname = "kubectl-realname-diff";
version = "0.2.3"; version = "0.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hhiroshell"; owner = "hhiroshell";
repo = "kubectl-realname-diff"; repo = "kubectl-realname-diff";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-H9+a7nb90AI2VUiii0LbDdik+Ihe1blSdLYwJRVRE8w="; sha256 = "sha256-VgcG5Hptu65O2+WqUl6nsSvfJ4MN8TrlgoKKV3iMUss=";
}; };
vendorHash = "sha256-Hw7f9nJvcslr6wbmjz9XtMxAm2XYVb4yhW2LssQOxrQ="; vendorHash = "sha256-XJZ9/JKj+WT3TffNP1Z0y5jws2wqZotzzV/1pk+AJkU=";
doCheck = false; doCheck = false;
subPackages = [ "cmd/kubectl-realname_diff" ]; subPackages = [ "cmd/kubectl-realname_diff" ];

@ -0,0 +1,25 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-rolesum";
version = "1.5.5";
src = fetchFromGitHub {
owner = "Ladicle";
repo = "kubectl-rolesum";
rev = "v${version}";
sha256 = "sha256-IO0QMDTbQXxs6UvaiobmrqVTHdmBTnUA3kMYKMgc+A8=";
};
vendorHash = "sha256-gQrMTD5toSeMPJb9LEbLaU1pB7DzOzSsVqDaL+cPvcw=";
doCheck = false;
subPackages = [ "." ];
meta = with lib; {
description = "A kubectl plugin to summarize RBAC roles";
homepage = "https://github.com/Ladicle/kubectl-rolesum/";
license = licenses.mit;
maintainers = with maintainers; [ tboerger ];
};
}

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "kubectl-view-secret"; pname = "kubectl-view-secret";
version = "0.11.0"; version = "0.12.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "elsesiy"; owner = "elsesiy";
repo = "kubectl-view-secret"; repo = "kubectl-view-secret";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-IdbJQ3YCIPcp09/NORWGezqjbwktObN7TuQdq5uAN4A="; sha256 = "sha256-5X5rOoERx6HoG3cOBpYm12anMXXDjTtHZzQOOlJeJSs=";
}; };
vendorHash = "sha256-Q6OosaHDzq9a2Nt18LGiGJ1C2i1/BRYGaNEBeK0Ohiw="; vendorHash = "sha256-oQvmS05nev+ypfkKAlTN+JbzPux5iAzHsojW8SxtB70=";
doCheck = false; doCheck = false;
subPackages = [ "cmd" ]; subPackages = [ "cmd" ];

@ -0,0 +1,29 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-who-can";
version = "0.4.0";
src = fetchFromGitHub {
owner = "aquasecurity";
repo = "kubectl-who-can";
rev = "v${version}";
sha256 = "sha256-nyUDzNxlizSr3P3dh9Cz/9CaMfmjeE9qSJkCLo4lBqw=";
};
vendorHash = "sha256-KWLuS29aI3XqqyJAY9DVX+ldFU53vEumpBKUwinhYGQ=";
doCheck = false;
subPackages = [ "cmd/kubectl-who-can" ];
postInstall = ''
mv $out/bin/kubectl-who-can $out/bin/kubectl-who_can
'';
meta = with lib; {
description = "A kubectl plugin to show who has RBAC permissions";
homepage = "https://github.com/aquasecurity/kubectl-who-can/";
license = licenses.mit;
maintainers = with maintainers; [ tboerger ];
};
}

@ -12,13 +12,14 @@ let
in in
{ {
"services/acme/credentials.age".publicKeys = users ++ systems; "services/acme/credentials.age".publicKeys = users ++ systems;
"services/cloud/password.age".publicKeys = users ++ systems;
"services/gallery/password.age".publicKeys = users ++ systems;
"services/tailscale/authkey.age".publicKeys = users ++ systems; "services/tailscale/authkey.age".publicKeys = users ++ systems;
"services/shares/printer.age".publicKeys = users ++ systems;
"services/shares/media.age".publicKeys = users ++ systems;
"users/root/password.age".publicKeys = users ++ systems; "users/root/password.age".publicKeys = users ++ systems;
"users/printer/password.age".publicKeys = users ++ systems;
"users/media/password.age".publicKeys = users ++ systems;
"users/thomas/password.age".publicKeys = users ++ systems; "users/thomas/password.age".publicKeys = users ++ systems;
"users/anna/password.age".publicKeys = users ++ systems; "users/anna/password.age".publicKeys = users ++ systems;
"users/adrian/password.age".publicKeys = users ++ systems; "users/adrian/password.age".publicKeys = users ++ systems;

@ -0,0 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 ptT1OQ 4CPxY5rGtjoYVereenuG6JUcWtyE9WaXXgdkXAKhuEg
EjXFUF7omJsPJV3GfuR0OwViMgMK3VYYH/vSyQ2vgQg
-> ssh-ed25519 dHPgHQ X1eBYMbvHsB8K/uU+FYtRPKmeHDTV+nrwuXMTEyB7Gg
qn4vjH7hGHFK4eLUQ9IMEIlh3NYup009gA232pIWqNE
-> ssh-ed25519 w/1rQA 0S0LLqSY3nb730Hp4jY1JX1wZrXk4OI5Wd+FGoXUuEE
EeH8s5D8jqAReq14TG8vtob7vfaWXVcXSkJ7DgBiDSg
--- 3RkU2mfoiTxtY4UyImzwq9IUouuB9Cmpd88zjaePEmg
ùá<>uòýdÂ5Mˆ3N¾ÂfÑŠòµcšHùêíÒn0KfÀá™àú#÷Å

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,9 +1,10 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 ptT1OQ twHQbNhYqtvZb77QWHhmPF2iTMO0h0lOGldTfBpcllY -> ssh-ed25519 ptT1OQ J3kDmGc+jH6NRrOhS4Dr4zsu1/z42GLr5NdDRv+iTXk
XERC8DFb1TpQrZWFkQPOdTlbRXnvIGIwRKME45ToVG0 DdlUq0WeflALAlJUOP5ijsfVQR09o5pbtQaALhgeIvQ
-> ssh-ed25519 dHPgHQ 016ufoJK5rw9z2pn+8GSvm1KwiYPJsvOLxvzTvzbbDI -> ssh-ed25519 dHPgHQ haumlPX9NC//HJGLfhfwNRHUK8R1KSomkJl8Xzh5tSE
oB9byoHjfvqY3nYNRWjMuK8midNq2J7VmpljIJJPazQ HDsnHyF46OFkDuBX0FFzHO7y5PcW933h7rAr4Gl8Dgs
-> ssh-ed25519 w/1rQA 3BkJ/r0V12Gt5GT8egr1Nh06d45gJPsyUeE86b2bjDU -> ssh-ed25519 w/1rQA P700mlIIgIYJIJfGVfaJnMQLIUC8L1wSDXgk9W6hez4
f4lcVlWv/KKw3qiw5Eu9+iyjA6cpX6R8bwW6Fxg+bC4 wh4/Yod+VR5FpPHre4MlLxgpXPY58pqqcTeERf0oHvM
--- 9JnuaZljT4YxTNhTyJWHFPEC3GDMetmlCMYEUOH6qrg --- O76vmmBpuhj02EeYLnFTq5FkY5F+xn77GlOfQ1fBIAU
Ÿžno“YE±ÛÚãèGþ&Ð[¼B™ð®iõ­³RWSRB:ä¯lî0Cž µ@·5œÉ1ðÀ£ éÁ…<C381>ªþ@Ò¨ÑÁ+#Œt¡C UÀ+çÉ ¿kŒE°€ì° ä47³ê¢Õ
íüŽc†¸Èè<EFBFBD>þÈÄTÎ_Yñ„l10„gýüL q&Â*“±$2¸ð¿:`k%Ùðœ;~t#gÌ«x¾šW¤Ó*ˆ.

@ -1,9 +1,9 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 ptT1OQ VORR85HHMDD3b0/TkoEDTzYmiQ4Yr+d/xXdOWr+ZIig -> ssh-ed25519 ptT1OQ QoDPjPsAk+20bxAtbBzFxtbI5jtSi5b9GsyjQFNSxk0
TLkJIQT9y3SI4n4KPzN+k8rglqmdjaR/U8CgxxiOTZQ sKe/Ens+2jmR9nICcdn98GTFTOO99mTGUZzwHGhDoCs
-> ssh-ed25519 dHPgHQ dP7NziVF30ixfk/n13aW5il4n58DYv0ohmPXEh65dSs -> ssh-ed25519 dHPgHQ sgh+q8g1ReG0n612l10LdJygH54AFV+W2rKwpMtfLjs
losq32Ll313RSmaZ3YxNw9sdN7WdjtOXZMBKYG1z+74 QeY8CdCdDBj4hbiLxB3drxmXKi3vE+y0uAoC5vQrNuE
-> ssh-ed25519 w/1rQA PxWEgRM7o5L9ohNdnqlsv8nT/q4X8RT0gNnyrFlrNCc -> ssh-ed25519 w/1rQA KmJ1MxNJpoBeJnFqRh+sd5bsZP9OqUv4fYU8ly1KDxA
ZP99FPSYXGU3qh/2W4R8X3NU/mGo5PGcW/atJJFsmV0 KRk9CN1SWYEEivH0yoaiQWqupkvbSqT/gG0+FG/yDKY
--- WEJtbLTrcHwvTt/T2kGkmVf2pZ/NFFQM44BNwJfWmvs --- 2624wRYJu+XLPBrxW5C9J30cszA5VcmGRMp09ppoNSU
é'¹â—«TâGLMéåBçÁ£ëÕ;±<><C2B1>`ÿ%}6å€ ¥<>0€êJ<C3AA>ôÕ¢§<C2A2>w_˜ÏP"ÊÜÙrý±0pÈFÃIWÚ€Ö7Ç,h„¢¨<1<>L»RpRçÉ0û õ<E28099>ݽ|´ÁįUnàÀ¬÷=‡Fjç<E280B9>ceITrI{0<>U ž#·<>^eGŠ)ðõ$ø•‰ër³ f*!¡"§ Êeý<65>¼p§qSYj3å:{Oð£ìœèÒEušÖá AÏåä 0&—µ`ºðöñ°xÅOCŸl¹§¸[~*£¶C Ç<C2A0>à™¥¿

Binary file not shown.

@ -0,0 +1,10 @@
age-encryption.org/v1
-> ssh-ed25519 ptT1OQ 7bC/2+XflpTuYo8koiAWL3KKQtS51KrVFBd2X0DTB2Y
uYN4u4HSBrPRc9sBBsB0Egf53X2SHtj9ixLLQOlwS58
-> ssh-ed25519 dHPgHQ 1XqbRk0MY6YwrVXtlaMWaanehgq/IlX92fdV4i3k2Ww
QrToCQ8700Ilzsp6kYoYq1FYozVC8b4gYF7hy47ums4
-> ssh-ed25519 w/1rQA xdjSzVT43SL5c9b2jdZ5bxy0vdSGuvgf4q38FCgBzmI
/dLUn6z5I0/2PyvK5Jiu5EGjjGMcgkOwjk3pABvXFPU
--- 7NDsWPIH0wisLzVhB+PDgkFHM0FyPd0ESfw4xUoE1l0
i‡SzI)¼©R#(je?ig—…k=<€j ì\SH°ðäÍ¢c.Iâ7ÀnjüÑ·¶O)«µ¾ND«!D°Û,tßÔôé>Ûô<C39B>CÔZ+N
m³uE•Bþ=‡ÎM†â/±ßÚ_l”

@ -0,0 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 ptT1OQ pc5hBofqsAf+D+0P4BxDR6IB5e9/5unEvKM3HQjueVM
eDCuxl53nfEBUXiVyp9kft29RWcNhw+kudh2wpxT5f4
-> ssh-ed25519 dHPgHQ OjZ6YrxcAM2DhOiCofp9JCS9r9zw83AyGifAInL0E1w
Uu2InQepA0Cj0huvH7q6En/Iutb2yYNE3GitnsUeT4U
-> ssh-ed25519 w/1rQA CtF7xUrSASoNaO8mFFkLdNi7ONCySCnV0Omy0QZUQTs
XZh3RQXbMwUwAylESS4MGLmYiuZ0biw1pcxv8CNvZgg
--- vhR54M/zUWdos8VZ4SjLKbVntLrbZ4tS1FurTInUqcw
Ò,<C“dâæ¼ý.¾+<03>2ÈÿýçŒÇÇYáÃW*›¸®Ò£¸îˆºÚc<C39A><63>î+p,Mƒ9ܾkú¯#3Š;æz¬âè LÄJ!µCþï™ Ñ®½ÀF¶Øé½”tf÷³ƒëÿ

Binary file not shown.

Binary file not shown.

@ -1,9 +1,10 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 ptT1OQ ISOzPTpYzFoBqKXm1cYZf5FvQTriHZ4MWQUquGSuRWQ -> ssh-ed25519 ptT1OQ pLVG/B8QnT7etJ9VGZ4bMpGehghllItNnCTqlfgNJDU
9vkCwopdCGdgQKJ4KY4KW6S4M/VcjtE5DLxUOBvMGbk XQcgUSW51h5qE552Dgdn2S5nZpm4E5n6UhExXZSsppI
-> ssh-ed25519 dHPgHQ Pi4Hygk5IIehm6MxmA1Q858W7iCVhprEtu5BscXsrRk -> ssh-ed25519 dHPgHQ kRFbRxq9bxH0eBNWbQGlJWfsMod/QC6LhyJZxTBhVEw
rvfOAQhh615eO3X/XVVcKNJ56JPbl3m/KsyaQjjOn2s hJrMpfCn0JwHrvyZQ/IxL8juPWfL7RIgNNm2Gu2gB2k
-> ssh-ed25519 w/1rQA RhwaABja0y+FOhd37gdPHNb8E34ClEZnyfSLp14WSAo -> ssh-ed25519 w/1rQA pReAFyMQ/4OWGer+4NMHUAIlthSI3zVVfB63uZD4HC8
D2aMBABbl1HDTF074mFMQHz4GWwW19YQWe5rq3YyKN8 ciLgOvAQ6I+Pcz+aWFqTwWwGgdrUF0oEK8tph4OBV84
--- s+H5xZvp+QMz9aRbvB91J2/ZSAbUOv3MRaob3hCBMXM --- bDzDGZrV/i+deG81OgQoIdf7NXkz2lclWwsT1aB9H1E
½|EÀlŠ®¼)œïfz̃Mª*J>—üèÕÖƒ*^1aüc6ÄtãKˆ@n=/çÅoˆ±Ž:Îë-ÀÄ©]upRJpÄÿ´ßF£0œl3N¸<1D>ˆâÎëvÓÉ€G݉VsÛw‡dˆ»ˆ­Öd<ÿ%ÑMÝîlÊq‡Œaˆ)a&×ɳlüÞ Õ¬E4 æÎÞëˆ3ò³OÂ
ü†I :YÅdÚ|_Ù ýQæ7û(f“9û¸Í1}Ʊ-u-Ž«Í7·B¶trå|Q%â½CW`¦ü CgÑiHÕdî†ð2J=;%]€âˆ»·4³ž˜

@ -15,18 +15,21 @@
personal = { personal = {
services = { services = {
cloud = {
enable = config.personal.services.enable;
};
gallery = { gallery = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
media = { archive = {
enable = config.personal.services.enable;
};
minecraft = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
auth = { auth = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };
minecraft = {
enable = config.personal.services.enable;
};
tailscale = { tailscale = {
enable = config.personal.services.enable; enable = config.personal.services.enable;
}; };

@ -147,6 +147,21 @@
}; };
}; };
nextcloud = {
size = "100G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/var/lib/nextcloud";
};
};
kanidm = { kanidm = {
size = "5G"; size = "5G";
content = { content = {
@ -327,14 +342,7 @@
}; };
}; };
nextcloud = {
size = "1G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/var/lib/nextcloud";
};
};
minecraft = { minecraft = {
size = "1G"; size = "1G";

@ -21,5 +21,12 @@
}; };
}; };
}; };
nat = {
enable = true;
enableIPv6 = true;
internalInterfaces = [ "ve-+" ];
externalInterface = "eth0";
};
}; };
} }

15
shared/global/default.nix Normal file

@ -0,0 +1,15 @@
{ pkgs, lib, config, options, ... }:
{
imports = [
./general.nix
./haveged.nix
./network.nix
./nixpkgs.nix
./openssh.nix
./shells.nix
./sudo.nix
./timesyncd.nix
./users.nix
];
}

12
shared/global/haveged.nix Normal file

@ -0,0 +1,12 @@
{ pkgs, lib, config, options, ... }:
with lib;
{
config = {
services = {
haveged = {
enable = true;
};
};
};
}

@ -1,24 +1,8 @@
{ pkgs, lib, config, options, ... }: { pkgs, lib, config, options, ... }:
with lib; with lib;
let
cfg = config.personal.services.openssh;
in
{ {
options = { config = {
personal = {
services = {
openssh = {
enable = mkEnableOption "Openssh" // {
default = true;
};
};
};
};
};
config = mkIf cfg.enable {
services = { services = {
openssh = { openssh = {
enable = true; enable = true;

@ -0,0 +1,12 @@
{ pkgs, lib, config, options, ... }:
with lib;
{
config = {
services = {
timesyncd = {
enable = true;
};
};
};
}

@ -2,11 +2,7 @@
{ {
imports = [ imports = [
./global.nix ./filebrowser.nix
./network.nix ./prowlarr.nix
./nixpkgs.nix
./shells.nix
./sudo.nix
./users.nix
]; ];
} }

@ -0,0 +1,98 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.filebrowser;
settingsFormat = pkgs.formats.json { };
in
{
options = {
services.filebrowser = {
enable = mkEnableOption "Filebrowser";
settings = mkOption rec {
type = settingsFormat.type;
apply = recursiveUpdate default;
default = {
address = "127.0.0.1";
port = 8080;
log = "stdout";
database = "/var/lib/filebrowser/database.db";
};
example = {
root = "/usr/share/filebrowser";
};
description = "Configuration for Filebrowser.";
};
openFirewall = mkOption {
type = types.bool;
default = false;
description = "Open ports in the firewall for the Filebrowser interface.";
};
user = mkOption {
type = types.str;
default = "filebrowser";
description = "User under which Filebrowser runs.";
};
group = mkOption {
type = types.str;
default = "filebrowser";
description = "Group under which Filebrowser runs.";
};
package = mkOption {
type = types.package;
default = pkgs.filebrowser;
defaultText = literalExpression "pkgs.filebrowser";
description = "Filebrowser package to use.";
};
};
};
config = mkIf cfg.enable {
ids.uids = {
filebrowser = 327;
};
ids.gids = {
filebrowser = 327;
};
systemd.tmpfiles.rules = [
"d '${dirOf cfg.settings.database}' 0700 ${cfg.user} ${cfg.group} - -"
];
systemd.services.filebrowser = {
description = "Filebrowser";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
ExecStart = "${cfg.package}/bin/filebrowser --config ${settingsFormat.generate "filebrowser.json" cfg.settings}";
Restart = "on-failure";
};
};
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.settings.port ];
};
users.users = mkIf (cfg.user == "filebrowser") {
filebrowser = {
group = cfg.group;
home = dirOf cfg.settings.database;
uid = config.ids.uids.filebrowser;
};
};
users.groups = mkIf (cfg.group == "filebrowser") {
filebrowser.gid = config.ids.gids.filebrowser;
};
};
}

@ -0,0 +1,65 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.prowlarr;
in
{
options = {
services.prowlarr = {
dataDir = mkOption {
type = types.str;
default = "/var/lib/prowlarr/.config/NzbDrone";
description = lib.mdDoc "The directory where Prowlarr stores its data files.";
};
user = mkOption {
type = types.str;
default = "prowlarr";
description = lib.mdDoc "User account under which Prowlarr runs.";
};
group = mkOption {
type = types.str;
default = "prowlarr";
description = lib.mdDoc "Group under which Prowlarr runs.";
};
};
};
config = mkIf cfg.enable {
ids.uids = {
prowlarr = 328;
};
ids.gids = {
prowlarr = 328;
};
systemd.tmpfiles.rules = [
"d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
];
systemd.services.prowlarr = {
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
ExecStart = "${lib.getExe cfg.package} -nobrowser -data='${cfg.dataDir}'";
Restart = "on-failure";
};
};
users.users = mkIf (cfg.user == "prowlarr") {
prowlarr = {
group = cfg.group;
home = cfg.dataDir;
uid = config.ids.uids.prowlarr;
};
};
users.groups = mkIf (cfg.group == "prowlarr") {
prowlarr.gid = config.ids.gids.prowlarr;
};
};
}

@ -4,6 +4,7 @@ with lib;
{ {
imports = [ imports = [
./browser.nix ./browser.nix
./lutris.nix
./mail.nix ./mail.nix
./password.nix ./password.nix
./steam.nix ./steam.nix

@ -0,0 +1,26 @@
{ pkgs, lib, config, options, ... }:
with lib;
let
cfg = config.personal.programs.lutris;
in
{
options = {
personal = {
programs = {
lutris = {
enable = mkEnableOption "Lutris";
};
};
};
};
config = mkIf cfg.enable {
environment = {
systemPackages = with pkgs; [
lutris
];
};
};
}

@ -19,6 +19,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
# betterbird
mailspring mailspring
]; ];
}; };

Some files were not shown because too many files have changed in this diff Show More