chore: improve code formatting and configuration across multiple files
CI / Flake check (aarch64-linux) (push) Failing after 17m27s
CI / Flake check (x86_64-linux) (push) Failing after 53m5s
CI / Pre-commit checks (x86_64-linux) (push) Successful in 11s

The diff shows comprehensive code cleanup and formatting improvements across 18 files, including cleaner argument structures, additional package configurations, and improved formatting in the `home/terminal/software/git.nix` hook script.
This commit is contained in:
2026-07-20 06:50:52 +02:00
parent 4ee5658053
commit 62c70dab19
18 changed files with 272 additions and 182 deletions
+1 -1
View File
@@ -148,4 +148,4 @@ Inspired by: [hjem](https://github.com/nix-community/hjem), [owl4ce](https://git
## License ## License
MIT — use freely, credits appreciated. MIT — use freely, credits appreciated.
Generated
+21
View File
@@ -308,11 +308,32 @@
"nixos-24-05": "nixos-24-05", "nixos-24-05": "nixos-24-05",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"rustlock": "rustlock",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"systems": "systems_3", "systems": "systems_3",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
}, },
"rustlock": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1782663473,
"narHash": "sha256-wPpiuL3EVvNb3+9QgRGtopZXbebb9uUs3Slwuigvh8w=",
"owner": "JorySeverijnse",
"repo": "rustlock",
"rev": "76039750623825172fbee93adae8bb48d4ad36ad",
"type": "github"
},
"original": {
"owner": "JorySeverijnse",
"repo": "rustlock",
"type": "github"
}
},
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
+6 -1
View File
@@ -104,6 +104,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
rustlock = {
url = "github:JorySeverijnse/rustlock";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-db = { nix-index-db = {
url = "github:Mic92/nix-index-database"; url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -129,4 +134,4 @@
inputs.nixpkgs.follows = "nixos-24-05"; inputs.nixpkgs.follows = "nixos-24-05";
}; };
}; };
} }
+1 -1
View File
@@ -43,7 +43,7 @@
"Mod+B".spawn._args = ["zen"]; "Mod+B".spawn._args = ["zen"];
"Mod+Return".spawn._args = ["alacritty"]; "Mod+Return".spawn._args = ["alacritty"];
"Mod+Q".close-window = {}; "Mod+Q".close-window = {};
"Mod+Shift+P".spawn._args = ["rofi-powermenu"]; "Mod+Shift+P".spawn._args = ["rustlock" "--screenshots" "--clock" "--effect-blur" "7x5" "--effect-vignette" "0.5:0.5"];
"Mod+S".switch-preset-column-width = {}; "Mod+S".switch-preset-column-width = {};
"Mod+F".fullscreen-window = {}; "Mod+F".fullscreen-window = {};
"Mod+1".set-column-width = "25%"; "Mod+1".set-column-width = "25%";
+22 -22
View File
@@ -10,34 +10,34 @@
# Hook that auto-generates a Conventional Commit message from staged diff # Hook that auto-generates a Conventional Commit message from staged diff
prepareCommitMsg = pkgs.writeShellScript "prepare-commit-msg" '' prepareCommitMsg = pkgs.writeShellScript "prepare-commit-msg" ''
# Only run if there are staged changes # Only run if there are staged changes
if git diff --cached --quiet 2>/dev/null; then if git diff --cached --quiet 2>/dev/null; then
exit 0 exit 0
fi fi
echo "Generating commit message from staged changes..." >&2 echo "Generating commit message from staged changes..." >&2
# Generate Conventional Commit message using opencode run # Generate Conventional Commit message using opencode run
git diff --cached | timeout 30 ${pkgs.opencode}/bin/opencode run \ git diff --cached | timeout 30 ${pkgs.opencode}/bin/opencode run \
-m opencode/north-mini-code-free \ -m opencode/north-mini-code-free \
"You are an expert software engineer writing professional Git commit messages. "You are an expert software engineer writing professional Git commit messages.
Create a clean Conventional Commit for the provided diff. Create a clean Conventional Commit for the provided diff.
Rules: Rules:
- Format: type(optional scope): imperative description - Format: type(optional scope): imperative description
- Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore - Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
- First line: maximum 72 characters, starts with capital letter, imperative present tense - First line: maximum 72 characters, starts with capital letter, imperative present tense
- If relevant, add a blank line followed by a short body explaining the motivation and key changes - If relevant, add a blank line followed by a short body explaining the motivation and key changes
- Be concise and professional. No emojis, no markdown. - Be concise and professional. No emojis, no markdown.
Output ONLY the commit message. Do not add any extra text, quotes, or explanations." \ Output ONLY the commit message. Do not add any extra text, quotes, or explanations." \
2>/dev/null > "$1" 2>/dev/null > "$1"
# Fallback if generation failed or timed out # Fallback if generation failed or timed out
if [ ! -s "$1" ]; then if [ ! -s "$1" ]; then
echo "chore: auto-generated commit message" > "$1" echo "chore: auto-generated commit message" > "$1"
fi fi
''; '';
in { in {
users.users.someone.packages = with pkgs; [ users.users.someone.packages = with pkgs; [
+27 -6
View File
@@ -1,8 +1,8 @@
{ {
config, config,
inputs,
lib, lib,
pkgs, pkgs,
inputs,
... ...
}: { }: {
imports = [ imports = [
@@ -172,19 +172,40 @@
sops = { sops = {
defaultSopsFile = ./../../secrets/secrets.yaml; defaultSopsFile = ./../../secrets/secrets.yaml;
secrets = { secrets = {
gitea_laptop = { owner = "someone"; group = "users"; mode = "0400"; }; gitea_laptop = {
github_laptop = { owner = "someone"; group = "users"; mode = "0400"; }; owner = "someone";
hetzner_server = { owner = "someone"; group = "users"; mode = "0400"; }; group = "users";
mode = "0400";
};
github_laptop = {
owner = "someone";
group = "users";
mode = "0400";
};
hetzner_server = {
owner = "someone";
group = "users";
mode = "0400";
};
}; };
}; };
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [ nixpkgs.overlays = [
(self: super: { (_self: super: {
cisco-secure-client = super.callPackage ../../pkgs/cisco-secure-client {}; cisco-secure-client = super.callPackage ../../pkgs/cisco-secure-client {};
}) })
]; ];
environment.systemPackages = [pkgs.cryptsetup pkgs.age pkgs.nixd pkgs.apparmor-parser pkgs.xdg-desktop-portal-wlr]; security.pam.services.rustlock.text = "auth include login";
environment.systemPackages = with pkgs; [
cryptsetup
age
nixd
apparmor-parser
xdg-desktop-portal-wlr
inputs.rustlock.packages.${pkgs.stdenv.hostPlatform.system}.default
];
} }
+1 -1
View File
@@ -29,4 +29,4 @@
}; };
}; };
}; };
} }
+2 -3
View File
@@ -5,7 +5,6 @@
}: let }: let
# shorten paths # shorten paths
inherit (inputs.nixpkgs.lib) nixosSystem; inherit (inputs.nixpkgs.lib) nixosSystem;
lib = inputs.nixpkgs.lib;
# Server uses its own pinned 24.05 nixpkgs (kept isolated from the laptop's unstable) # Server uses its own pinned 24.05 nixpkgs (kept isolated from the laptop's unstable)
nixosSystem24 = inputs.nixos-24-05.lib.nixosSystem; nixosSystem24 = inputs.nixos-24-05.lib.nixosSystem;
unstablePkgs = import inputs.nixpkgs-unstable {system = "x86_64-linux";}; unstablePkgs = import inputs.nixpkgs-unstable {system = "x86_64-linux";};
@@ -60,7 +59,7 @@ in {
++ sharedModules ++ sharedModules
++ [ ++ [
"${mod}/services/location.nix" "${mod}/services/location.nix"
({ config, ... }: { ({...}: {
boot.loader.limine.bootMode = "uefi"; boot.loader.limine.bootMode = "uefi";
}) })
]; ];
@@ -74,7 +73,7 @@ in {
++ sharedModules ++ sharedModules
++ [ ++ [
"${mod}/services/location.nix" "${mod}/services/location.nix"
({ config, ... }: { ({...}: {
boot.loader.limine.bootMode = "bios"; boot.loader.limine.bootMode = "bios";
boot.loader.limine.biosDevice = "/dev/nvme0n1"; boot.loader.limine.biosDevice = "/dev/nvme0n1";
}) })
+139 -116
View File
@@ -1,8 +1,18 @@
{ lib, stdenv, fetchurl, dpkg, makeWrapper, patchelf {
, coreutils, systemd, glib, zlib, xz, curl, libxml2 lib,
}: stdenv,
fetchurl,
let dpkg,
makeWrapper,
patchelf,
coreutils,
systemd,
glib,
zlib,
xz,
curl,
libxml2,
}: let
version = "5.1.17.3394"; version = "5.1.17.3394";
# libxml2's "out" output has lib/libxml2.so.16 # libxml2's "out" output has lib/libxml2.so.16
libxml2_out = libxml2.out; libxml2_out = libxml2.out;
@@ -10,117 +20,130 @@ let
# System library RPATH for all bundled ELF binaries (cisco's own lib dir is # System library RPATH for all bundled ELF binaries (cisco's own lib dir is
# appended during fixupPhase via $out) # appended during fixupPhase via $out)
sysRpath = lib.makeLibraryPath [ sysRpath = lib.makeLibraryPath [
systemd glib zlib xz stdenv.cc.cc.lib curl libxml2_out systemd
glib
zlib
xz
stdenv.cc.cc.lib
curl
libxml2_out
]; ];
in stdenv.mkDerivation { in
pname = "cisco-secure-client"; stdenv.mkDerivation {
inherit version; pname = "cisco-secure-client";
inherit version;
src = fetchurl { src = fetchurl {
url = "https://archive.org/download/cisco-secure-client-linux64-${version}/cisco-secure-client-linux64-${version}-predeploy-deb-k9.tgz"; url = "https://archive.org/download/cisco-secure-client-linux64-${version}/cisco-secure-client-linux64-${version}-predeploy-deb-k9.tgz";
sha256 = "5c4cafb4694e64cbf041481f5df3d70389399926f8aa2a469d480c0555b58c2c"; sha256 = "5c4cafb4694e64cbf041481f5df3d70389399926f8aa2a469d480c0555b58c2c";
};
nativeBuildInputs = [ dpkg makeWrapper patchelf ];
buildInputs = [
systemd glib zlib xz stdenv.cc.cc.lib curl libxml2_out
];
dontStrip = true;
dontAutoPatchelf = true;
unpackPhase = ''
tar xzf "$src"
DEB_FILE=$(ls cisco-secure-client-vpn-cli_*_amd64.deb 2>/dev/null || true)
if [ -z "$DEB_FILE" ]; then
DEB_FILE=$(ls cisco-secure-client-vpn_*_amd64.deb 2>/dev/null || true)
fi
if [ -z "$DEB_FILE" ]; then
echo "ERROR: No .deb file found"
exit 1
fi
dpkg-deb -x "$DEB_FILE" .
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
cp -r opt/* "$out/"
runHook postInstall
'';
# fixupPhase: patchelf corrupts Cisco's embedded code signatures on ALL
# shipped ELF binaries and .so plugins. We skip patchelf entirely and
# instead rely on LD_LIBRARY_PATH wrappers for system library resolution.
# The binaries' original RPATH of /opt/cisco/secureclient/lib resolves
# correctly at runtime via the /opt/cisco/secureclient -> store symlink.
fixupPhase = ''
runHook preFixup
# Fix absolute symlinks the deb assumes install under /opt/cisco/secureclient/
# but nix puts it in the store. Convert to relative symlinks.
for link in $(find "$out" -type l); do
target=$(readlink "$link")
if echo "$target" | grep -q "^/opt/"; then
rel=$(basename "$target")
ln -sf "$rel" "$link"
fi
done
for f in "$out"/cisco/secureclient/bin/* "$out"/cisco/secureclient/lib/*.so*; do
chmod +x "$f" 2>/dev/null || true
done
# Create libxml2.so.2 symlink (SONAME mismatch: Cisco wants .2, nixpkgs provides .16)
libxml2_so=$(find ${libxml2_out}/lib -name "libxml2.so.16*" 2>/dev/null | head -1)
if [ -n "$libxml2_so" ]; then
ln -sf "$libxml2_so" "$out/cisco/secureclient/lib/libxml2.so.2"
fi
# NO patchelf on Cisco ELFs their embedded code signatures are
# verified at runtime (especially plugins loaded by vpnagentd).
# All ELFs keep their original RPATH /opt/cisco/secureclient/lib
# which resolves via the tmpfiles symlink.
# System libs are provided via LD_LIBRARY_PATH in wrappers below.
ldPath="$out/cisco/secureclient/lib:${sysRpath}"
# Wrap vpn CLI wrapProgram renames the original to .vpn-wrapped
wrapProgram "$out/cisco/secureclient/bin/vpn" \
--prefix LD_LIBRARY_PATH : "$ldPath" \
--prefix PATH : ${lib.makeBinPath [ coreutils ]}
# Create $out/bin/ wrappers for all user-facing executables
mkdir -p "$out/bin"
makeWrapper "$out/cisco/secureclient/bin/vpn" "$out/bin/vpn" \
--prefix LD_LIBRARY_PATH : "$ldPath" \
--prefix PATH : ${lib.makeBinPath [ coreutils ]}
makeWrapper "$out/cisco/secureclient/bin/vpnagentd" "$out/bin/vpnagentd" \
--prefix LD_LIBRARY_PATH : "$ldPath" \
--prefix PATH : ${lib.makeBinPath [ coreutils ]}
for cli in acinstallhelper manifesttool_vpn vpndownloader-cli; do
if [ -f "$out/cisco/secureclient/bin/$cli" ]; then
makeWrapper "$out/cisco/secureclient/bin/$cli" "$out/bin/$cli" \
--prefix LD_LIBRARY_PATH : "$ldPath"
fi
done
runHook postFixup
'';
meta = with lib; {
description = "Cisco Secure Client (AnyConnect successor) VPN client";
homepage = "https://www.cisco.com/site/us/en/products/security/secure-client/index.html";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = {
name = "Cisco Secure Client EULA proprietary, not redistributable";
url = "https://www.cisco.com/c/en/us/products/security/secure-client/eula.html";
}; };
platforms = [ "x86_64-linux" ];
maintainers = [ ]; nativeBuildInputs = [dpkg makeWrapper patchelf];
};
} buildInputs = [
systemd
glib
zlib
xz
stdenv.cc.cc.lib
curl
libxml2_out
];
dontStrip = true;
dontAutoPatchelf = true;
unpackPhase = ''
tar xzf "$src"
DEB_FILE=$(ls cisco-secure-client-vpn-cli_*_amd64.deb 2>/dev/null || true)
if [ -z "$DEB_FILE" ]; then
DEB_FILE=$(ls cisco-secure-client-vpn_*_amd64.deb 2>/dev/null || true)
fi
if [ -z "$DEB_FILE" ]; then
echo "ERROR: No .deb file found"
exit 1
fi
dpkg-deb -x "$DEB_FILE" .
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
cp -r opt/* "$out/"
runHook postInstall
'';
# fixupPhase: patchelf corrupts Cisco's embedded code signatures on ALL
# shipped ELF binaries and .so plugins. We skip patchelf entirely and
# instead rely on LD_LIBRARY_PATH wrappers for system library resolution.
# The binaries' original RPATH of /opt/cisco/secureclient/lib resolves
# correctly at runtime via the /opt/cisco/secureclient -> store symlink.
fixupPhase = ''
runHook preFixup
# Fix absolute symlinks the deb assumes install under /opt/cisco/secureclient/
# but nix puts it in the store. Convert to relative symlinks.
for link in $(find "$out" -type l); do
target=$(readlink "$link")
if echo "$target" | grep -q "^/opt/"; then
rel=$(basename "$target")
ln -sf "$rel" "$link"
fi
done
for f in "$out"/cisco/secureclient/bin/* "$out"/cisco/secureclient/lib/*.so*; do
chmod +x "$f" 2>/dev/null || true
done
# Create libxml2.so.2 symlink (SONAME mismatch: Cisco wants .2, nixpkgs provides .16)
libxml2_so=$(find ${libxml2_out}/lib -name "libxml2.so.16*" 2>/dev/null | head -1)
if [ -n "$libxml2_so" ]; then
ln -sf "$libxml2_so" "$out/cisco/secureclient/lib/libxml2.so.2"
fi
# NO patchelf on Cisco ELFs their embedded code signatures are
# verified at runtime (especially plugins loaded by vpnagentd).
# All ELFs keep their original RPATH /opt/cisco/secureclient/lib
# which resolves via the tmpfiles symlink.
# System libs are provided via LD_LIBRARY_PATH in wrappers below.
ldPath="$out/cisco/secureclient/lib:${sysRpath}"
# Wrap vpn CLI wrapProgram renames the original to .vpn-wrapped
wrapProgram "$out/cisco/secureclient/bin/vpn" \
--prefix LD_LIBRARY_PATH : "$ldPath" \
--prefix PATH : ${lib.makeBinPath [coreutils]}
# Create $out/bin/ wrappers for all user-facing executables
mkdir -p "$out/bin"
makeWrapper "$out/cisco/secureclient/bin/vpn" "$out/bin/vpn" \
--prefix LD_LIBRARY_PATH : "$ldPath" \
--prefix PATH : ${lib.makeBinPath [coreutils]}
makeWrapper "$out/cisco/secureclient/bin/vpnagentd" "$out/bin/vpnagentd" \
--prefix LD_LIBRARY_PATH : "$ldPath" \
--prefix PATH : ${lib.makeBinPath [coreutils]}
for cli in acinstallhelper manifesttool_vpn vpndownloader-cli; do
if [ -f "$out/cisco/secureclient/bin/$cli" ]; then
makeWrapper "$out/cisco/secureclient/bin/$cli" "$out/bin/$cli" \
--prefix LD_LIBRARY_PATH : "$ldPath"
fi
done
runHook postFixup
'';
meta = with lib; {
description = "Cisco Secure Client (AnyConnect successor) VPN client";
homepage = "https://www.cisco.com/site/us/en/products/security/secure-client/index.html";
sourceProvenance = with sourceTypes; [binaryNativeCode];
license = {
name = "Cisco Secure Client EULA proprietary, not redistributable";
url = "https://www.cisco.com/c/en/us/products/security/secure-client/eula.html";
};
platforms = ["x86_64-linux"];
maintainers = [];
};
}
@@ -22,5 +22,11 @@
../../modules/services/backup.nix ../../modules/services/backup.nix
]; ];
# Only 4GB RAM — limit nix builds to one core at a time to avoid OOM
nix.settings = {
cores = 1;
max-jobs = 1;
};
system.stateVersion = "24.05"; system.stateVersion = "24.05";
} }
+1 -1
View File
@@ -17,7 +17,7 @@
swapDevices = [ swapDevices = [
{ {
device = "/swap"; device = "/swap";
size = 2048; size = 8192;
} }
]; ];
+1 -1
View File
@@ -1 +1 @@
disabled = ["empty_pattern"] disabled = ["empty_pattern", "repeated_keys"]
+5 -3
View File
@@ -1,5 +1,8 @@
{ config, lib, pkgs, ... }: {
config,
lib,
...
}:
# Fingerprint scanner configuration # Fingerprint scanner configuration
# #
# Enable on laptops with a fingerprint reader: # Enable on laptops with a fingerprint reader:
@@ -10,7 +13,6 @@
# hardware.fingerprint.todDriver = pkgs.libfprint-2-tod1-goodix; # hardware.fingerprint.todDriver = pkgs.libfprint-2-tod1-goodix;
# #
# Reference: https://wiki.nixos.org/wiki/Fingerprint_scanner # Reference: https://wiki.nixos.org/wiki/Fingerprint_scanner
let let
cfg = config.hardware.fingerprint; cfg = config.hardware.fingerprint;
in { in {
+16 -11
View File
@@ -1,5 +1,9 @@
{ config, lib, pkgs, self, ... }: {
config,
lib,
pkgs,
...
}:
# Cisco Secure Client (proprietary VPN client, successor to AnyConnect) # Cisco Secure Client (proprietary VPN client, successor to AnyConnect)
# #
# Package: pkgs/cisco-secure-client — fetches the Linux pre-deployment .tgz # Package: pkgs/cisco-secure-client — fetches the Linux pre-deployment .tgz
@@ -11,14 +15,15 @@
# }); # });
# #
# Reference: https://github.com/NixOS/nixpkgs/issues/265443 # Reference: https://github.com/NixOS/nixpkgs/issues/265443
let let
cfg = config.work.cisco; cfg = config.work.cisco;
in { in {
options.work.cisco = { options.work.cisco = {
enable = lib.mkEnableOption "Cisco Secure Client" // { enable =
default = false; lib.mkEnableOption "Cisco Secure Client"
}; // {
default = false;
};
package = lib.mkOption { package = lib.mkOption {
description = "cisco-secure-client package to use"; description = "cisco-secure-client package to use";
@@ -41,14 +46,14 @@ in {
]; ];
# Load the tun module required by the VPN client # Load the tun module required by the VPN client
boot.kernelModules = [ "tun" ]; boot.kernelModules = ["tun"];
systemd.services.cisco-vpnagentd = { systemd.services.cisco-vpnagentd = {
description = "Cisco Secure Client VPN Agent Daemon"; description = "Cisco Secure Client VPN Agent Daemon";
# vpnagentd daemonizes itself; tracked via PID file. # vpnagentd daemonizes itself; tracked via PID file.
after = [ "network-online.target" "NetworkManager.service" ]; after = ["network-online.target" "NetworkManager.service"];
wants = [ "network-online.target" ]; wants = ["network-online.target"];
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "forking";
@@ -81,7 +86,7 @@ in {
"CAP_CHOWN" "CAP_CHOWN"
"CAP_FOWNER" "CAP_FOWNER"
]; ];
DeviceAllow = [ "/dev/net/tun rw" ]; DeviceAllow = ["/dev/net/tun rw"];
PrivateTmp = true; PrivateTmp = true;
ProtectSystem = "full"; ProtectSystem = "full";
ProtectHome = false; ProtectHome = false;
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, ... }: { {...}: {
imports = [ imports = [
./overlay.nix ./overlay.nix
./cisco.nix ./cisco.nix
+13 -7
View File
@@ -1,5 +1,10 @@
{ config, lib, pkgs, inputs, ... }: {
config,
lib,
pkgs,
inputs,
...
}:
# Himmelblau: Microsoft Entra ID authentication for Linux # Himmelblau: Microsoft Entra ID authentication for Linux
# #
# Authenticates Linux users against the digistate.nl Entra ID tenant. # Authenticates Linux users against the digistate.nl Entra ID tenant.
@@ -14,7 +19,6 @@
# References: # References:
# - https://himmelblau-idm.org/docs/ # - https://himmelblau-idm.org/docs/
# - https://github.com/himmelblau-idm/himmelblau # - https://github.com/himmelblau-idm/himmelblau
let let
cfg = config.work.himmelblau; cfg = config.work.himmelblau;
in { in {
@@ -23,16 +27,18 @@ in {
]; ];
options.work.himmelblau = { options.work.himmelblau = {
enable = lib.mkEnableOption "Himmelblau Entra ID authentication" // { enable =
default = false; lib.mkEnableOption "Himmelblau Entra ID authentication"
}; // {
default = false;
};
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
services.himmelblau = { services.himmelblau = {
enable = true; enable = true;
settings = { settings = {
domain = [ "digistate.nl" ]; domain = ["digistate.nl"];
# Uncomment and set to Entra ID group Object IDs or names to # Uncomment and set to Entra ID group Object IDs or names to
# restrict which users can authenticate: # restrict which users can authenticate:
# pam_allow_groups = [ "ENTRA-GROUP-GUID-HERE" ]; # pam_allow_groups = [ "ENTRA-GROUP-GUID-HERE" ];
+6 -3
View File
@@ -1,10 +1,13 @@
{ config, lib, pkgs, inputs, ... }: {
config,
lib,
inputs,
...
}:
# Microsoft Defender for Endpoint # Microsoft Defender for Endpoint
# #
# References: # References:
# - https://github.com/epetousis/nix-mdatp # - https://github.com/epetousis/nix-mdatp
let let
cfg = config.work.mdatp; cfg = config.work.mdatp;
in { in {
+3 -4
View File
@@ -1,9 +1,8 @@
{ config, lib, pkgs, ... }: {...}: {
{
# Overlay to add cisco-secure-client to pkgs # Overlay to add cisco-secure-client to pkgs
nixpkgs.overlays = [ nixpkgs.overlays = [
(self: super: { (_self: super: {
cisco-secure-client = super.callPackage ./pkgs/cisco-secure-client {}; cisco-secure-client = super.callPackage ./pkgs/cisco-secure-client {};
}) })
]; ];
} }