First commit

This commit is contained in:
Lomig 2025-08-21 11:21:15 +02:00
parent 9532c89e63
commit ca0610b675
13 changed files with 597 additions and 40 deletions

View file

@ -0,0 +1,102 @@
# modules/alerts/sms.nix
{ config, pkgs, lib, ... }:
{
# services.xserver.enable = true;
services.xserver.xkb.extraLayouts.bepovim = {
description = "Clavier Bepovim 4 niveaux";
languages = [ "fr" ];
# IMPORTANT: c'est `symbolsFile`, pas `symbols`.
symbolsFile = builtins.toFile "bepovim.xkb" ''
xkb_symbols "basic" {
name[Group1] = "Bepovim";
key <ESC> { [ Escape ] };
key <AE01> { [ dollar, numbersign ] };
key <AE02> { [ less, 1, guillemotleft ] };
key <AE03> { [ greater, 2, guillemotright ] };
key <AE04> { [ parenleft, 3, bracketleft ] };
key <AE05> { [ parenright, 4, bracketright ] };
key <AE06> { [ at, 5, braceleft ] };
key <AE07> { [ plus, 6, braceright ] };
key <AE08> { [ minus, 7, asciitilde ] };
key <AE09> { [ asterisk, 8 ] };
key <AE10> { [ slash, 9, backslash ] };
key <AE11> { [ quotedbl, 0 ] };
key <AE12> { [ equal, ampersand ] };
key <BKSP> { [ BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AD01> { [ b, B ] };
key <AD02> { [ eacute, Eacute ] };
key <AD03> { [ p, P ] };
key <AD04> { [ o, O ] };
key <AD05> { [ r, R ] };
key <AD06> { [ dead_circumflex, grave ] };
key <AD07> { [ v, V ] };
key <AD08> { [ s, S ] };
key <AD09> { [ t, T ] };
key <AD10> { [ d, D ] };
key <AD11> { [ egrave, Egrave ] };
key <AD12> { [ ccedilla, Ccedilla ] };
key <RTRN> { [ Return ] };
key <AC01> { [ c, C ] };
key <AC02> { [ a, A ] };
key <AC03> { [ u, U ] };
key <AC04> { [ i, I ] };
key <AC05> { [ e, E, EuroSign ] };
key <AC06> { [ period, question ] };
key <AC07> { [ n, N ] };
key <AC08> { [ h, H, Left ] };
key <AC09> { [ j, J, Down ] };
key <AC10> { [ k, K, Up ] };
key <AC11> { [ l, L, Right ] };
key <AC12> { [ m, M ] };
key <LFSH> { [ Shift_L ] };
key <LSGT> { [ q, Q ] };
key <AB01> { [ w, W ] };
key <AB02> { [ agrave, Agrave ] };
key <AB03> { [ f, F ] };
key <AB04> { [ colon, bar ] };
key <AB05> { [ comma, semicolon ] };
key <AB06> { [ apostrophe, exclam ] };
key <AB07> { [ x, X ] };
key <AB08> { [ g, G ] };
key <AB09> { [ z, Z ] };
key <AB10> { [ y, Y ] };
key <DELE> { [ Up ] };
key <DOWN> { [ Left ] };
key <RGHT> { [ Down ] };
key <INS> { [ Right ] };
key <LCTL> { [ Control_L ] };
key <LALT> { [ Alt_L ] };
key <SPCE> { [ space, underscore, nobreakspace, U202F ] };
key <RALT> { [ ISO_Level3_Shift ] };
key <FK02> { [ F1, F1 ] };
key <FK03> { [ F2, F2 ] };
key <FK04> { [ F3, F3 ] };
key <FK05> { [ F4, F4 ] };
key <FK06> { [ F5, F5 ] };
key <FK07> { [ F6, F6 ] };
key <FK08> { [ F7, F7 ] };
key <FK09> { [ F8, F8 ]};
key <FK10> { [ F9, F9 ] };
key <FK11> { [ F10, F10 ] };
key <FK12> { [ F11, F11 ] };
};
'';
};
services.xserver.xkb.layout = "bepovim";
services.xserver.xkb.variant = "basic";
services.xserver.xkb.options = "lv3:ralt_switch";
console.useXkbConfig = true;
}

View file

@ -1,15 +1,137 @@
{ config, pkgs, ... }:
{ config, pkgs, lib, desktop, ... }:
{
imports = [
./raid.nix
./bepovim.nix
../../wm/bspwm.nix
];
nix.settings.experimental-features = ["nix-command" "flakes" ];
boot.initrd.kernelModules = [];
boot.kernelModules = [ "amdgpu" "kvm-amd" ];
boot.extraModulePackages = [];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [
"mem_sleep_default=deep"
"amdgpu.si_support=0"
"amdgpu.cik_support=0"
"radeon.si_support=0"
"radeon.cik_support=0"
];
fileSystems."/" = {
device = "/dev/disk/by-uuid/b4e3577b-17ab-4a89-9aeb-4e223be4c75b"; # à adapter si tu as un autre label/disque
fsType = "ext4"; # ou btrfs, xfs, ce que t'as utilisé
};
swapDevices = [] ;
boot.plymouth.enable = true ;
boot.loader.timeout = 5;
boot.loader.systemd-boot.enable = true ;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot";
boot.tmp.cleanOnBoot = true ;
systemd.coredump.enable = false ;
services.journald.extraConfig = ''
SystemMaxUse=200M
RuntimeMaxUse=100M
'';
hardware.firmware = with pkgs ; [ linux-firmware ];
hardware.enableRedistributableFirmware = true;
hardware.graphics = {
enable = true ;
extraPackages = with pkgs ; [
mesa libva libva-utils libvdpau libva-vdpau-driver vaapiVdpau libvdpau-va-gl amdvlk vulkan-tools vulkan-loader vulkan-validation-layers
];
enable32Bit = true ;
};
environment.variables = {
LIBVA_DRIVER_NAME = "radeonsi";
VDPAU_DRIVER = "va_gl";
};
hardware.bluetooth.enable = true ;
environment.etc."pam.d/i3lock".text = ''
auth include login
account include login
password include login
session include login
'';
services.blueman.enable = true ;
services.xserver.enable = true ;
services.xserver.videoDrivers = [ "amdgpu" ];
services.logind.extraConfig = ''
IdleAction=suspend
IdleActionSec=5min
HandleLidSwitch=suspend
HandleLidSwitchDocked=ignore
'';
networking.hostName = "pennsardin";
time.timeZone = "Europe/Paris";
# Select internationalisation properties.
i18n.defaultLocale = "fr_FR.UTF-8";
users.users.toto = {
i18n.extraLocaleSettings = {
LC_ADDRESS = "fr_FR.UTF-8";
LC_IDENTIFICATION = "fr_FR.UTF-8";
LC_MEASUREMENT = "fr_FR.UTF-8";
LC_MONETARY = "fr_FR.UTF-8";
LC_NAME = "fr_FR.UTF-8";
LC_NUMERIC = "fr_FR.UTF-8";
LC_PAPER = "fr_FR.UTF-8";
LC_TELEPHONE = "fr_FR.UTF-8";
LC_TIME = "fr_FR.UTF-8";
};
services.printing.enable = true ;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
environment.systemPackages = with pkgs; [
# i3lock
btrfs-progs
evtest
gdu
git
glances
lm_sensors
neovim
snapper
tmux
xorg.xev
xorg.xkbcomp
];
programs.steam.enable = true ;
hardware.xpadneo.enable = true ;
programs.zsh.enable = true;
users.users.lomig = {
isNormalUser = true;
extraGroups = [ "wheel" ];
extraGroups = [ "networkmanager" "lp" "wheel" ];
shell = pkgs.zsh;
};
services.xserver.enable = true;
nixpkgs.config = {
allowUnfree = true;
allowUnsupportedSystem = true ;
};
system.stateVersion = "25.05"; # pour éviter les hurlements inutiles
}

54
hosts/pennsardin/raid.nix Normal file
View file

@ -0,0 +1,54 @@
# modules/alerts/sms.nix
{ config, pkgs, lib, ... }:
let
user = "21782061"; # Ton identifiant Free
pass = "PEmCOQLKMEdMW9"; # Ta clé
in
{
environment.systemPackages = with pkgs; [ curl ];
environment.etc."mdadm-raid-wrapper.sh".text = ''
systemctl start raid-alert-sms.service
'';
boot.swraid = {
enable = true ;
mdadmConf = ''
MAILADDR guillaume.lame@protonmail.com
PROGRAM /etc/mdadm-raid-wrapper.sh
ARRAY /dev/md/raid-home UUID=cad7faf8:93cab941:ba745379:becc1918
'';
};
fileSystems."/mnt/raid" = {
device = "/dev/md/raid-home" ;
fsType = "btrfs" ;
options = ["compress=zstd" "noatime" "nofail" "x-systemd.device-timeout=5"];
};
# systemd.services.raid-alert-sms = {
# description = "Envoie un SMS si RAID pète";
# wantedBy = [ "multi-user.target" ];
# serviceConfig = {
# Type = "oneshot";
# ExecStart = ''
# ${pkgs.curl}/bin/curl -s \
# "https://smsapi.free-mobile.fr/sendmsg?user=${user}&pass=${pass}&msg=TON+RAID+EST+MORT+FUIS"
# '';
# };
# };
# systemd.services.mdadm-monitor = {
# description = "RAID monitoring";
# wantedBy = [ "multi-user.target" ];
# after = [ "network.target" ];
# serviceConfig = {
# ExecStart = "${pkgs.mdadm}/bin/mdadm --monitor --scan --daemonize --program=/etc/mdadm-raid-wrapper.sh";
# Restart = "always";
# RestartSec = "5s";
# Type = "forking";
# };
# };
}