common changes

This commit is contained in:
elwrcl committed 2026-10-26 10:43:12 +03:00
1 parent dc815045d1
commit 442075ecf8
7 files changed
+7 -176

No files matched your search

@@ -1,5 +1,4 @@
{ inputs, ... }: { inputs, ... }:
{ {
flake.nixosModules.common-agenix = inputs.agenix.nixosModules.default; flake.nixosModules.common-agenix = inputs.agenix.nixosModules.default;
flake.darwinModules.common-agenix = inputs.agenix.darwinModules.default;
} }
@@ -1,145 +0,0 @@
{ ... }:
{
flake.nixosModules.common-crashlog =
{ pkgs, ... }:
let
netconsole = pkgs.writeShellApplication {
name = "netconsole-on";
runtimeInputs = [
pkgs.iproute2
pkgs.kmod
];
text = ''
TARGET_DIR=/sys/kernel/config/netconsole/copland
usage() {
echo "usage: netconsole-on <ip> <target-mac> [interface] [port]" >&2
echo " netconsole-on off" >&2
echo "" >&2
echo " e.g.: netconsole-on 192.168.1.10 aa:bb:cc:dd:ee:ff" >&2
echo " on the receiving side: nc -u -l 6666" >&2
echo "" >&2
echo " target-mac: if the target is on the same network, use the target's MAC" >&2
echo " otherwise use the gateway's MAC (find it with ip neigh)" >&2
exit 1
}
if [ "''${1:-}" = "off" ]; then
if [ -d "$TARGET_DIR" ]; then
echo 0 > "$TARGET_DIR/enabled" || true
rmdir "$TARGET_DIR"
echo "netconsole disabled"
else
echo "netconsole already disabled"
fi
exit 0
fi
[ "$#" -ge 2 ] || usage
TARGET_IP="$1"
TARGET_MAC="$2"
IFACE="''${3:-enp8s0}"
PORT="''${4:-6666}"
LOCAL_IP="$(ip -4 -o addr show dev "$IFACE" | awk '{print $4}' | cut -d/ -f1 | head -1)"
if [ -z "$LOCAL_IP" ]; then
echo "error: no IPv4 address on $IFACE (is the cable plugged in?)" >&2
exit 1
fi
modprobe netconsole
[ -d "$TARGET_DIR" ] && { echo 0 > "$TARGET_DIR/enabled" || true; rmdir "$TARGET_DIR"; }
mkdir -p "$TARGET_DIR"
echo 1 > "$TARGET_DIR/extended"
echo "$IFACE" > "$TARGET_DIR/dev_name"
echo "$LOCAL_IP" > "$TARGET_DIR/local_ip"
echo "$TARGET_IP" > "$TARGET_DIR/remote_ip"
echo "$TARGET_MAC" > "$TARGET_DIR/remote_mac"
echo "$PORT" > "$TARGET_DIR/remote_port"
echo 1 > "$TARGET_DIR/enabled"
echo "netconsole enabled: $IFACE ($LOCAL_IP) -> $TARGET_IP:$PORT"
echo "listen on receiver: nc -u -l $PORT"
echo "test it: echo 'netconsole test' | sudo tee /dev/kmsg"
'';
};
panicInflate =
pkgs.writers.writePython3Bin "drm-panic-inflate"
{
flakeIgnore = [ "E501" ];
}
''
import sys
import zlib
data = sys.stdin.buffer.read()
if not data:
sys.exit("Could not read QR: try a clearer, straighter photo")
for wbits in (-15, 15, 47):
try:
sys.stdout.buffer.write(zlib.decompress(data, wbits))
break
except zlib.error:
continue
else:
sys.stderr.write("warning: could not decompress, printing raw bytes\n")
sys.stdout.buffer.write(data)
'';
drmPanicDecode = pkgs.writeShellApplication {
name = "drm-panic-decode";
runtimeInputs = [
pkgs.zbar
panicInflate
];
text = ''
if [ "$#" -lt 1 ]; then
echo "usage: drm-panic-decode <panic-screen-photo>" >&2
exit 1
fi
zbarimg --raw -q --oneshot -Sbinary "$1" | drm-panic-inflate
'';
};
in
{
environment.systemPackages = [
netconsole
drmPanicDecode
];
boot.kernelParams = [
"reserve_mem=8M:4096:oops"
"drm.panic_screen=qr_code"
"efi_pstore.pstore_disable=1"
];
boot.kernelModules = [
"ramoops"
"iTCO_wdt"
];
boot.extraModprobeConfig = ''
options ramoops mem_name=oops record_size=262144 max_reason=3 ecc=1
'';
boot.kernel.sysctl = {
"kernel.panic" = 30;
"kernel.hardlockup_panic" = 1;
"kernel.softlockup_panic" = 1;
"kernel.hung_task_panic" = 0;
"kernel.hung_task_timeout_secs" = 300;
"kernel.sysrq" = 184;
};
systemd.settings.Manager = {
RuntimeWatchdogSec = "60s";
RebootWatchdogSec = "10min";
};
};
}
+2 -14
View File
@@ -1,9 +1,9 @@
{ ... }: { ... }:
{ {
commonModules.common-git = flake.nixosModules.common-git =
{ pkgs, ... }: { pkgs, ... }:
let let
base = '' gitconfig = pkgs.writeText "gitconfig" ''
[user] [user]
name = elwrcl name = elwrcl
email = elwerici@proton.me email = elwerici@proton.me
@@ -12,21 +12,9 @@
gpgsign = true gpgsign = true
[tag] [tag]
gpgsign = true gpgsign = true
'';
darwinExtra = ''
[credential]
helper = osxkeychain
'';
linuxExtra = ''
[credential] [credential]
helper = ${pkgs.gitFull}/bin/git-credential-libsecret helper = ${pkgs.gitFull}/bin/git-credential-libsecret
''; '';
gitconfig = pkgs.writeText "gitconfig" (
base + (if pkgs.stdenv.isDarwin then darwinExtra else linuxExtra)
);
in in
{ {
environment.variables.GIT_CONFIG_SYSTEM = "${gitconfig}"; environment.variables.GIT_CONFIG_SYSTEM = "${gitconfig}";
@@ -9,6 +9,8 @@
services.kmscon = { services.kmscon = {
enable = true; enable = true;
# kmscon ignores console.keyMap; take the layout (tr) from xkb instead
useXkbConfig = true;
config = { config = {
font-name = "JetBrainsMono Nerd Font"; font-name = "JetBrainsMono Nerd Font";
font-size = 18; font-size = 18;
-12
View File
@@ -22,29 +22,17 @@
substituters = [ substituters = [
"https://cache.nixos.org" "https://cache.nixos.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://ezkea.cachix.org"
"https://noctalia.cachix.org" "https://noctalia.cachix.org"
"https://hyprland.cachix.org"
"https://soryu-kernel.cachix.org" "https://soryu-kernel.cachix.org"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4=" "noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"soryu-kernel.cachix.org-1:2/Tm90ibGjLQWo/uX4qo/kbFB5yjQG/CzfE1oelHdWw=" "soryu-kernel.cachix.org-1:2/Tm90ibGjLQWo/uX4qo/kbFB5yjQG/CzfE1oelHdWw="
]; ];
}; };
nix.gc = {
automatic = true;
dates = "Mon 03:00";
options = "--delete-older-than 14d";
persistent = true;
randomizedDelaySec = "45min";
};
documentation = { documentation = {
man.enable = true; man.enable = true;
doc.enable = false; doc.enable = false;
+3 -3
View File
@@ -9,10 +9,9 @@
}: }:
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# apps # random
onlyoffice-desktopeditors onlyoffice-desktopeditors
telegram-desktop telegram-desktop
davinci-resolve
prismlauncher prismlauncher
gparted-full gparted-full
moonlight-qt moonlight-qt
@@ -26,11 +25,12 @@
gimp gimp
wine wine
# file-manager # kde
kdePackages.kdegraphics-thumbnailers kdePackages.kdegraphics-thumbnailers
kdePackages.plasma-integration kdePackages.plasma-integration
kdePackages.breeze-icons kdePackages.breeze-icons
kdePackages.kio-extras kdePackages.kio-extras
kdePackages.kdenlive
kdePackages.qtwayland kdePackages.qtwayland
kdePackages.kio-admin kdePackages.kio-admin
kdePackages.kio-fuse kdePackages.kio-fuse
@@ -12,7 +12,6 @@
"libvirtd" "libvirtd"
"scanner" "scanner"
"plugdev" "plugdev"
"docker"
"video" "video"
"input" "input"
"audio" "audio"