Compare commits

...

46 Commits

Author SHA1 Message Date
91702ec7a3 set flake to master, changes in Makefile, vim and home
All checks were successful
update the nix flake lock automatically every week / update (push) Successful in 24s
2026-05-12 15:10:58 +02:00
6a80170d4d change channel to master 2026-05-12 15:10:54 +02:00
3646963fd9 fix zfs 2026-05-12 15:06:00 +02:00
8920dadd4b Auto update 2026-05-11 04:00:40 +00:00
811b1d67b0 clean tmp on boot
All checks were successful
update the nix flake lock automatically every week / update (push) Successful in 34s
2026-05-07 17:44:55 +02:00
76c0ad8beb nextcloud use direct ip (cloudflare limitation), make update no auto rebuild 2026-05-07 13:30:03 +02:00
9de6978c8a Auto update 2026-05-04 04:01:33 +00:00
1c715564ac fix evaluation warnings (build broken openldap test fails)
All checks were successful
update the nix flake lock automatically every week / update (push) Successful in 38s
2026-04-27 14:26:37 +02:00
a60b6aeeec Auto update 2026-04-27 04:01:18 +00:00
835e726c6c add exraflags option on Makefile, fix yubikey support on systemd stage 1
All checks were successful
update the nix flake lock automatically every week / update (push) Successful in 24s
2026-04-25 21:46:49 +02:00
bf592c5e9d add alvr and remove nix-alien 2026-04-23 17:44:33 +02:00
983f51b0f3 Auto update 2026-04-23 15:42:18 +00:00
c95443f8b8 auto update push rights 2026-04-23 17:40:49 +02:00
14eaa9b5f8 add maunal update trigger 2026-04-23 17:29:38 +02:00
64ee797c97 add autoupdate (test probably broken) 2026-04-23 17:28:23 +02:00
5e83ab9626 update vim config, update flake and other things 2026-04-14 16:29:04 +02:00
ea58f1d641 server: zfs: auto scrub, repair zed pushover notifications 2026-04-09 13:30:17 +02:00
5b1b62dd32 plymouth, update laptop power scripts 2026-04-03 12:31:25 +02:00
7972ab111c enable fstrim service to trim disksk weekly 2026-03-31 17:09:28 +02:00
b6bea84f8b add zfs on desktop, changed screen configuration 2026-03-30 15:21:29 +02:00
6913e58e0b fix hyprland config 2026-03-27 12:22:19 +01:00
6a8d644c94 update flake 2026-03-27 12:13:04 +01:00
890d3381a5 set default application, disable monitor turn off when closed, add direnv 2026-03-27 11:46:54 +01:00
1cad2253b3 update lock and fix deprecated settings 2026-02-21 13:57:29 +01:00
091e23932d vbox -> default 2026-02-09 23:31:44 +01:00
c1bebc9df1 ignore line too long on python lsp 2026-02-09 23:25:08 +01:00
7d79e9d8ae change sync url 2026-02-09 13:38:10 +01:00
ebd650e854 only trigger iso rebuild when push on iso branch
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m46s
2026-02-07 16:14:03 +01:00
5becaf1588 nvim show diagnostics of line
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m48s
2026-02-07 16:12:33 +01:00
447c95c22d disable hugepages in vfio_ready specialisation, add pythonlsp and coq-nvim for autocompletion
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m7s
2026-02-07 00:07:10 +01:00
33c03199a0 glewe110 -> glew_1_100 in nix ld, setup iwd to replace wpa_supplicant (memory leak issue)
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m45s
2026-01-29 13:22:23 +01:00
3a0f0192f4 add transmission web interface in allowed ports
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 6m2s
2026-01-27 19:07:03 +01:00
6d045d1d4d uacess on usb df11 devices and setup nix-ld
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m36s
2026-01-19 11:51:50 +01:00
86719c309a update flake
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m6s
2026-01-19 11:42:12 +01:00
bdc61737cb update flake
Some checks failed
Build iso when a new version is pushed / test (push) Failing after 13m53s
2025-12-23 18:57:37 +01:00
05861081ce diverse changes, add cloudflared
Some checks failed
Build iso when a new version is pushed / test (push) Failing after 2m27s
2025-12-23 18:42:13 +01:00
724f5361e6 change sync ip address
Some checks failed
Build iso when a new version is pushed / test (push) Failing after 1m49s
2025-12-19 16:52:03 +01:00
c0223fdd09 add droidcam on desktop
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m19s
2025-12-03 21:03:03 +01:00
0e8dfb98c5 game of life on display manager
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m13s
2025-11-21 10:42:20 +01:00
26c4bb6495 laptop turn off screen when closed, set yazi as default file browser 2025-11-21 10:42:19 +01:00
ef6d5cedb0 update git config to follow the renaming of the options
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m5s
2025-11-19 20:32:35 +01:00
a70786d0bb change HDMI-A-3 to 60Hz on desktop (wtf nvidia ?)
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m8s
2025-11-19 20:22:38 +01:00
ca5538c4d1 update flake and add libreoffice to packages
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m56s
2025-11-17 11:54:16 +01:00
b0fe851dec change nvidia prime settings, change desktop config screens arangement
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m13s
2025-11-03 16:31:29 +01:00
c631965709 fix screen dispotition on desktop, add yubico-pam on desktop config
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m59s
2025-10-26 01:36:53 +02:00
a5134e71b8 add hyprshot and use it with screenshot shortcut
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m28s
2025-10-16 16:11:07 +02:00
33 changed files with 626 additions and 221 deletions

View File

@ -0,0 +1,31 @@
name: update the nix flake lock automatically every week
run-name: update
permissions:
contents: write
on:
schedule:
- cron: "0 4 * * 1"
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: get repo
uses: actions/checkout@v4.2.2
- name: install nix
uses: https://github.com/cachix/install-nix-action@v31
- name: run the update
run: nix flake update
- name: Commit and push
run: |
git config user.name "Update action"
git config user.email "update-action@no-one.com"
git add .
git commit -m "Auto update"
git push

View File

@ -3,7 +3,7 @@ run-name: iso building
on: on:
push: push:
branches: branches:
- 'master' - 'iso'
jobs: jobs:
test: test:

View File

@ -1,18 +1,32 @@
HOST ?= $(file < /etc/nixosFlakeName) HOST ?= $(file < /etc/nixosFlakeName)
THREADS ?= $(shell nproc) THREADS ?= $(shell nproc)
FLAKE ?= . FLAKE ?= .
MODE ?= boot MODE ?= switch
FLAGS = --impure --cores $(THREADS) -j $(THREADS)
EXTRAFLAGS ?=
FLAGS = --impure -j 1 -L $(EXTRAFLAGS)
ifdef OFFLINE
FLAGS += --option binary-caches ''
endif
all: os home all: os home
update: update:
cd $(FLAKE);nix flake update cd $(FLAKE);nix flake update
$(MAKE) all
os: os:
sudo nixos-rebuild $(MODE) $(FLAGS) --flake $(FLAKE)#$(HOST) sudo nixos-rebuild $(MODE) $(FLAGS) --flake $(FLAKE)#$(HOST)
vm:
sudo nixos-rebuild build-vm $(FLAGS) --flake $(FLAKE)#$(HOST)
./result/bin/*
rm ./result
rm ./*.qcow2
hoem : home
home : home :
home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST) home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST)
@ -27,5 +41,5 @@ cleanup :
nix-env --delete-generations +1 nix-env --delete-generations +1
sudo nix-collect-garbage -d sudo nix-collect-garbage -d
optimise : optimize :
nix-store --optimize -vv nix-store --optimize -vv

44
flake.lock generated
View File

@ -5,11 +5,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1759572023, "lastModified": 1778406663,
"narHash": "sha256-2fzYq/m2PXie5WZO5LhyiZrTIUdUFp1SCLZAwvPL5xo=", "narHash": "sha256-jGOtlDJAe0MFoOErIxSFs3TQZ7WaCpUt1qnjJ0HhLfw=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "eeada12912d80d04733383d231a9d66172858718", "rev": "a0fa2f1b901473d8aefb2e3026396e3562c1782c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -26,11 +26,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1759637032, "lastModified": 1778558563,
"narHash": "sha256-tJPZLTwVT6D8JCASuRmDov1yu9XIdC0btRlQCzCU688=", "narHash": "sha256-pT6KVIDxQYymtHC9ix6U/NTBUYJhYRX81Ou/9nAUSgc=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "eff82f4fb13a381248ba1432a641894b6c0e4442", "rev": "f52067bf63247b39b81917d34d74f7c0a9344f05",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -47,11 +47,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759573136, "lastModified": 1778535464,
"narHash": "sha256-ILSPD0Dm8p0w0fCVzOx98ZH8yFDrR75GmwmH3fS2VnE=", "narHash": "sha256-kkUQYSv70wynJ/DfnGals6r98I6bK3CVNVTN1zbAd7Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "5f06ceafc6c9b773a776b9195c3f47bbe1defa43", "rev": "b659c7ffd40fc9e3bb60d420c79c67e769b9f4ab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -62,11 +62,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1759582739, "lastModified": 1778143761,
"narHash": "sha256-spZegilADH0q5OngM86u6NmXxduCNv5eX9vCiUPhOYc=", "narHash": "sha256-lkesY6x2X2qxlqLM7CT2iM/0rP2JB7fruPN3h8POXmI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "3441b5242af7577230a78ffb03542add264179ab", "rev": "3bcaa367d4c550d687a17ac792fd5cda214ee871",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -78,11 +78,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1759381078, "lastModified": 1777954456,
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -94,16 +94,16 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1759381078, "lastModified": 1778583303,
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", "narHash": "sha256-jn+drGpaYalIzR0TAsvo2Z2LtBw3b9eIjJtwb0wUPUw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", "rev": "6093378e528c5fc6b6e44fb559daed68bc313733",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-unstable", "ref": "master",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -125,11 +125,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759635238, "lastModified": 1777944972,
"narHash": "sha256-UvzKi02LMFP74csFfwLPAZ0mrE7k6EiYaKecplyX9Qk=", "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "6e5a38e08a2c31ae687504196a230ae00ea95133", "rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2024/10/17 18:15:24 by tomoron #+# #+# # # Created: 2024/10/17 18:15:24 by tomoron #+# #+# #
# Updated: 2025/09/24 02:10:00 by tomoron ### ########.fr # # Updated: 2026/05/10 22:12:11 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -14,7 +14,7 @@
description = "Nixos and home-manager config flake"; description = "Nixos and home-manager config flake";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/master";
catppuccin.url = "github:catppuccin/nix"; catppuccin.url = "github:catppuccin/nix";
sops-nix = { sops-nix = {
@ -46,7 +46,12 @@
osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem { osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; flakeName = flakeName; }; specialArgs = { inherit inputs; flakeName = flakeName; };
modules = nixpkgs.lib.concatLists [ modules = nixpkgs.lib.concatLists [
[./osConfigs/os.nix ./osConfigs/hosts/${flakeName}.nix catppuccin.nixosModules.catppuccin] [
./osConfigs/os.nix
./osConfigs/hosts/${flakeName}.nix
catppuccin.nixosModules.catppuccin
inputs.sops-nix.nixosModules.sops
]
extraModules extraModules
]; ];
}; };
@ -85,7 +90,7 @@
homeConfigurations = { homeConfigurations = {
vbox = homeConfig { flakeName = "vbox";}; default = homeConfig { flakeName = "default";};
ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron"; sops = false;}; ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron"; sops = false;};
laptop = homeConfig { flakeName = "laptop"; }; laptop = homeConfig { flakeName = "laptop"; };
desktop = homeConfig { flakeName = "desktop"; }; desktop = homeConfig { flakeName = "desktop"; };

View File

@ -1,4 +1,4 @@
{ lib, pkgs, ... }: { lib, pkgs, config, ... }:
{ {
catppuccin = { catppuccin = {
enable = true; enable = true;
@ -12,6 +12,7 @@
}; };
gtk = { gtk = {
gtk4.theme = config.gtk.theme;
enable = true; enable = true;
theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; }; theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; };
font = { name = "Sans"; size = 11; }; font = { name = "Sans"; size = 11; };

View File

@ -0,0 +1,11 @@
{ ... }:
{
xdg.mimeApps.defaultApplications = {
"application/pdf" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"inode/directory" = "yazi.desktop";
"image/*" = "qimgv.desktop";
};
}

View File

@ -4,13 +4,7 @@
enable = true; enable = true;
settings.mgr.sort_dir_first=false; settings.mgr.sort_dir_first=false;
}; };
programs.bash.bashrcExtra = ''
function y() { home.sessionVariables.BROWSER = "yazi";
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd programs.yazi.shellWrapperName = "y";
yazi "$@" --cwd-file="$tmp"
IFS= read -r -d "" cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
'';
} }

View File

@ -5,7 +5,7 @@
programs.rclone.remotes.nextcloud = { programs.rclone.remotes.nextcloud = {
config = { config = {
type = "webdav"; type = "webdav";
url = "https://nc.tmoron.fr/remote.php/dav/files/tom"; url = "https://dnc.tmoron.fr/remote.php/dav/files/tom";
vendor = "nextcloud"; vendor = "nextcloud";
user = "tom"; user = "tom";
}; };

View File

@ -1,4 +1,4 @@
{ ... }: { homeDir, ... }:
{ {
home.shell.enableBashIntegration = true; home.shell.enableBashIntegration = true;
home.shellAliases = { home.shellAliases = {
@ -11,6 +11,13 @@
noidle = "systemctl --user stop hypridle"; noidle = "systemctl --user stop hypridle";
}; };
programs.bash.profileExtra = ''
PATH=$PATH:${homeDir}/.cargo/bin
'';
programs.direnv.enable = true;
programs.direnv.enableBashIntegration = true;
programs.bash = { programs.bash = {
enable = true; enable = true;
historyControl = ["ignoreboth"]; historyControl = ["ignoreboth"];

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# # # Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
# Updated: 2025/09/24 02:08:41 by tomoron ### ########.fr # # Updated: 2026/05/11 13:55:58 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -29,7 +29,7 @@ configSops ? true,
home.username = lib.mkIf (!isOs) "${username}"; home.username = lib.mkIf (!isOs) "${username}";
home.homeDirectory = lib.mkIf (!isOs) "${homeDir}"; home.homeDirectory = lib.mkIf (!isOs) "${homeDir}";
home.stateVersion = "24.05"; home.stateVersion = "26.05";
sops = lib.mkIf configSops{ sops = lib.mkIf configSops{
defaultSopsFile = ../secrets/secrets.yaml; defaultSopsFile = ../secrets/secrets.yaml;

View File

@ -4,19 +4,19 @@
mods.x11.enable = true; mods.x11.enable = true;
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
monitor = [ monitor = [
"HDMI-A-1, 1920x1080@60, 0x0, auto" "DP-2, 1920x1080@60Hz, -1920x0, auto"
"HDMI-A-3, 1920x1080@60, 1920x0, auto" "HDMI-A-3, 1920x1080@60Hz, 0x0, auto"
"DP-1, 1280x1024@60, 3840x0, auto" "DP-3, 1920x1080@60.00Hz, 1920x0, auto"
"DP-3, 1280x1024@60, 5120x0, auto" "DP-4, 1280x1024@75.03Hz, 3840x0, auto"
]; ];
workspace = [ workspace = [
"1, monitor:HDMI-A-1" "3, monitor:DP-2"
"2, monitor:HDMI-A-3, default:true" "1, monitor:HDMI-A-3, default:true"
"3, monitor:DP-1" "2, monitor:DP-3"
"4, monitor:DP-3" "4, monitor:DP-4"
]; ];
env = [ env = [
"AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0" "AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card2"
"LIBVA_DRIVER_NAME,nvidia" "LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia" "__GLX_VENDOR_LIBRARY_NAME,nvidia"
]; ];

View File

@ -12,7 +12,7 @@
"custom/fans" = { "custom/fans" = {
exec-if = "test \"$(cat /sys/class/hwmon/hwmon6/fan1_input)\" -gt 0 -o \"$(cat /sys/class/hwmon/hwmon6/fan2_input)\" -gt 0"; exec-if = "test \"$(cat /sys/class/hwmon/hwmon6/fan1_input)\" -gt 0 -o \"$(cat /sys/class/hwmon/hwmon6/fan2_input)\" -gt 0";
exec = "echo \" \" \"$(cat /sys/class/hwmon/hwmon6/fan1_input).$(cat /sys/class/hwmon/hwmon6/fan2_input) |\""; exec = "echo \" \" \"$(($(cat /sys/class/hwmon/hwmon6/fan1_input) / 100)).$(($(cat /sys/class/hwmon/hwmon6/fan2_input) / 100)) |\"";
interval = 1; interval = 1;
interval-if = 1; interval-if = 1;
}; };
@ -27,6 +27,11 @@
", XF86Launch1, exec, hyprlock" ", XF86Launch1, exec, hyprlock"
", XF86Launch4, exec, pkill activate-linux" ", XF86Launch4, exec, pkill activate-linux"
]; ];
bindl = [
# ",switch:off:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, 1920x1080@120, 0x0, 1\""
# ",switch:on:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, disable\""
];
monitor= [ monitor= [
# "eDP-1, modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync, 0x0, 1" # "eDP-1, modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync, 0x0, 1"
"eDP-1, 1920x1080@120, 0x0, 1" "eDP-1, 1920x1080@120, 0x0, 1"
@ -39,79 +44,8 @@
blender blender
wireshark wireshark
localsend localsend
impala
]; ];
# programs.superfile = { services.mpris-proxy.enable = true;
# enable = true;
# hotkeys = {
# # global
# confirm = ["enter" ""];
# quit = ["ctrl+c" ""];
#
# # movement
# list_up = ["k" ""];
# list_down = ["j" ""];
# page_up = ["pgup"""];
# page_down = ["pgdown"""];
#
# # file panel control
# create_new_file_panel = ["n" ""];
# close_file_panel = ["q" ""];
# next_file_panel = ["tab" ""];
# previous_file_panel = ["shift+tab" ""];
# toggle_file_preview_panel = ["f" ""];
# open_sort_options_menu = ["o" ""];
# toggle_reverse_sort = ["R" ""];
#
# # change focus
# focus_on_process_bar = ["ctrl+p" ""];
# focus_on_sidebar = ["ctrl+s" ""];
# focus_on_metadata = ["ctrl+d" ""];
#
# # create file/directory and rename
# file_panel_item_create = ["a" ""];
# file_panel_item_rename = ["r" ""];
#
# # file operations
# copy_items = ["y" ""];
# cut_items = ["x" ""];
# paste_items = ["p" ""];
# delete_items = ["d" ""];
#
# # compress and extract
# extract_file = ["ctrl+e" ""];
# compress_file = ["ctrl+a" ""];
#
# # editor
# open_file_with_editor = ["e" ""];
# open_current_directory_with_editor = ["E" ""];
#
# # other
# pinned_directory = ["P" ""];
# toggle_dot_file = ["." ""];
# change_panel_mode = ["m" ""];
# open_help_menu = ["?" ""];
# open_command_line = [":" ""];
# copy_path = ["Y" ""];
# copy_present_working_directory = ["c" ""];
# toggle_footer = ["ctrl+f" ""];
#
# # Typing hotkeys (can conflict with all hotkeys)
# confirm_typing = ["enter" ""];
# cancel_typing = ["esc" ""];
#
# # =================================================================================================
# # Normal mode hotkeys (can conflict with other modes cannot conflict with global hotkeys)
# parent_directory = ["-" ""];
# search_bar = ["/" ""];
#
# # =================================================================================================
# # Select mode hotkeys (can conflict with other modes cannot conflict with global hotkeys)
# file_panel_select_mode_items_select_down = ["J" ""];
# file_panel_select_mode_items_select_up = ["K" ""];
# file_panel_select_all_items = ["A" ""];
#
# };
# };
} }

View File

@ -9,7 +9,7 @@
config = lib.mkIf config.mods.game.enable { config = lib.mkIf config.mods.game.enable {
home.packages = with pkgs;[ home.packages = with pkgs;[
lutris # lutris (broken)
mangohud mangohud
moonlight-qt moonlight-qt
prismlauncher prismlauncher

View File

@ -11,20 +11,23 @@
programs.git = { programs.git = {
enable = true; enable = true;
lfs.enable = true; lfs.enable = true;
userEmail = "tomoron@student.42angouleme.fr"; signing.format = "openpgp";
userName = "tomoron"; settings = {
extraConfig = { user.email = "tomoron@student.42angouleme.fr";
user.name = "tomoron";
init.defaultBranch="master"; init.defaultBranch="master";
pull.rebase = true; pull.rebase = true;
push.autoSetupRemote = true; push.autoSetupRemote = true;
rerere.enabled = true; rerere.enabled = true;
help.autocorrect = 1; help.autocorrect = 1;
user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD"; user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD";
commit.gpgsign = true; commit.gpgsign = true;
};
aliases = { alias = {
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f"; fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
back = "reset HEAD~"; back = "reset HEAD~";
};
}; };
}; };
}; };

View File

@ -46,7 +46,7 @@ in
text = (lib.strings.concatStrings ['' text = (lib.strings.concatStrings [''
auto=true auto=true
root=${config.mods.sync.homeFolder} root=${config.mods.sync.homeFolder}
root=ssh://tom@tmoron.fr:1880/${config.mods.sync.destFolder} root=ssh://tom@d.tmoron.fr:1880/${config.mods.sync.destFolder}
'' ''
(lib.strings.concatMapStrings (x: "\npath=" + x) (( if config.mods.sync.defaultSynced then defPathLst else [] ) ++ config.mods.sync.syncedAdditions )) (lib.strings.concatMapStrings (x: "\npath=" + x) (( if config.mods.sync.defaultSynced then defPathLst else [] ) ++ config.mods.sync.syncedAdditions ))
(if !(isNull config.mods.sync.customHostName) then "\nclientHostName=${config.mods.sync.customHostName}" else "") (if !(isNull config.mods.sync.customHostName) then "\nclientHostName=${config.mods.sync.customHostName}" else "")

View File

@ -2,27 +2,144 @@
{ {
options.mods.vim.enable = lib.mkOption { options.mods.vim.enable = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = true; default = true;
description = "install and configure vim"; description = "install and configure vim";
}; };
config = lib.mkIf config.mods.vim.enable { config = lib.mkIf config.mods.vim.enable {
programs.neovim = { programs.neovim = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
clang-tools clang-tools
nixd nixd
nodejs_24 nodejs_24
glsl_analyzer glsl_analyzer
(pkgs.python3.withPackages (ps: with ps; [
python-lsp-server
pylsp-mypy
python-lsp-ruff
pycodestyle
]))
]; ];
programs.neovim.extraConfig = '' # programs.neovim.extraLuaConfig = ''
# vim.lsp.config('pylsp', {})
# '';
programs.neovim.initLua= ''
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'vsnip' },
}, {
{ name = 'buffer' },
})
})
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
-- Set configuration for specific filetype.
--[[ cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'git' },
}, {
{ name = 'buffer' },
})
})
require("cmp_git").setup() ]]--
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
}
})
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
}),
matching = { disallow_symbol_nonprefix_matching = false }
})
local capabilities = require('cmp_nvim_lsp').default_capabilities()
vim.lsp.enable('clangd')
vim.lsp.config('clangd', {
capabilities = capabilities
})
vim.lsp.enable('nixd')
vim.lsp.config('nixd', {
capabilities = capabilities
})
vim.lsp.enable('glsl_analyzer')
vim.lsp.config('glsl_analyzer', {
capabilities = capabilities
})
vim.lsp.enable('pylsp')
vim.lsp.config('pylsp', {
capabilities = capabilities
})
vim.lsp.enable('rust_analyzer')
vim.lsp.config('rust_analyzer', {
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
cargo = {
features = "all"
},
},
},
})
vim.diagnostic.config({
virtual_lines = {
current_line = true
}
})
'';
programs.neovim.extraConfig = ''
set number set number
set ai set ai
autocmd BufWinLeave *.* mkview autocmd BufWinLeave *.* mkview
@ -30,7 +147,7 @@
set tabstop=4 set tabstop=4
set scrolloff=10 set scrolloff=10
set smartindent set smartindent
set shiftwidth=4 set shiftwidth=4
map <silent> <C-N> :bnext<CR> map <silent> <C-N> :bnext<CR>
map <silent> <C-P> :bprevious<CR> map <silent> <C-P> :bprevious<CR>
nmap <silent> <c-k> :wincmd k<CR> nmap <silent> <c-k> :wincmd k<CR>
@ -57,41 +174,49 @@
Plug 'bluz71/vim-nightfly-colors' Plug 'bluz71/vim-nightfly-colors'
Plug 'catppuccin/nvim', { 'as': 'catppuccin' } Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
Plug 'tikhomirov/vim-glsl' Plug 'tikhomirov/vim-glsl'
Plug 'lambdalisue/nerdfont.vim' Plug 'lambdalisue/nerdfont.vim'
Plug 'lambdalisue/glyph-palette.vim' Plug 'lambdalisue/glyph-palette.vim'
Plug 'lambdalisue/fern-renderer-nerdfont.vim' Plug 'lambdalisue/fern-renderer-nerdfont.vim'
Plug 'lambdalisue/fern-git-status.vim' Plug 'lambdalisue/fern-git-status.vim'
Plug 'lambdalisue/fern.vim' Plug 'lambdalisue/fern.vim'
Plug 'hrsh7th/nvim-cmp'
Plug 'ThePrimeagen/99'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/cmp-cmdline'
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-vsnip'
Plug 'hrsh7th/vim-vsnip'
call plug#end() call plug#end()
colorscheme catppuccin-mocha colorscheme catppuccin-mocha
lua require'lspconfig'.clangd.setup{}
lua require'lspconfig'.nixd.setup{}
lua require'lspconfig'.glsl_analyzer.setup{}
set signcolumn=auto set signcolumn=auto
nnoremap <leader>ff <cmd>Telescope find_files<cr> nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr> nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr> nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr> nnoremap <leader>fh <cmd>Telescope help_tags<cr>
nnoremap <leader>fi <cmd>Fern %:h<cr> nnoremap <leader>fi <cmd>Fern %:h<cr>
let g:user42 = 'tomoron' let g:user42 = 'tomoron'
let g:mail42 = 'tomoron@student.42angouleme.fr' let g:mail42 = 'tomoron@student.42angouleme.fr'
let g:fern#renderer = "nerdfont" let g:fern#renderer = "nerdfont"
'';
'';
home.file = { home.file = {
#install plug.vim #install plug.vim
".local/share/nvim/site/autoload/plug.vim".source = "${builtins.fetchGit { ".local/share/nvim/site/autoload/plug.vim".source = "${fetchGit {
url = "https://github.com/junegunn/vim-plug"; url = "https://github.com/junegunn/vim-plug";
rev = "d80f495fabff8446972b8695ba251ca636a047b0"; rev = "d80f495fabff8446972b8695ba251ca636a047b0";
ref = "master"; ref = "master";
}}/plug.vim"; }}/plug.vim";
#install stdheader 42 #install stdheader 42
".config/nvim/plugin/stdheader.vim".source = "${builtins.fetchGit { ".config/nvim/plugin/stdheader.vim".source = "${fetchGit {
url = "https://github.com/42Paris/42header"; url = "https://github.com/42Paris/42header";
rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7"; rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
ref = "master"; ref = "master";

View File

@ -10,12 +10,14 @@
config = lib.mkIf config.mods.hyprland.enable { config = lib.mkIf config.mods.hyprland.enable {
wayland.windowManager.hyprland.systemd.variables = [ "--all" ]; wayland.windowManager.hyprland.systemd.variables = [ "--all" ];
programs.hyprshot.enable = true;
wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
"$mainMod" = "SUPER"; "$mainMod" = "SUPER";
bind = [ bind = [
" , Print, exec, grim -t png -g \"$(slurp)\" /dev/stdout | tee ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png | wl-copy -t image/png" " , Print, exec, hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
" SHIFT, Print, exec, grim -t png /dev/stdout | tee ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png | wl-copy -t image/png" " SHIFT, Print, exec, hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
"$mainMod, Return, exec, alacritty" "$mainMod, Return, exec, alacritty"
"CTRL_ALT, Q, killactive," "CTRL_ALT, Q, killactive,"
"CTRL_ALT_SHIFT, Q, forcekillactive," "CTRL_ALT_SHIFT, Q, forcekillactive,"
@ -94,12 +96,12 @@
"$mainMod, o, exec, playerctl play-pause" "$mainMod, o, exec, playerctl play-pause"
]; ];
windowrulev2 = [ # windowrulev2 = [
#ignore maximize requests # #ignore maximize requests
"suppressevent maximize, class:.*" # "suppressevent maximize, class:.*"
#fix dragging issues with xwayland # #fix dragging issues with xwayland
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" # "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
]; # ];
input = { input = {
kb_layout = "fr"; kb_layout = "fr";
@ -166,6 +168,12 @@
layout = "dwindle"; layout = "dwindle";
}; };
layerrule = {
name = "no_anim_for_selection";
no_anim = "on";
"match:namespace" = "selection";
};
cursor.no_warps = true; cursor.no_warps = true;
env = [ env = [

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# # # Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
# Updated: 2025/09/05 19:28:45 by tomoron ### ########.fr # # Updated: 2026/04/25 20:35:24 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -19,7 +19,7 @@
htop htop
gnumake gnumake
git git
neofetch fastfetch
clang clang
ninja ninja
gdb gdb
@ -34,7 +34,6 @@
unison unison
brightnessctl brightnessctl
playerctl playerctl
python3
vlc vlc
nix-index nix-index
yubikey-manager yubikey-manager
@ -45,5 +44,8 @@
compiledb compiledb
yubikey-personalization yubikey-personalization
sops sops
libreoffice
doxygen
qimgv
]; ];
} }

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:37:58 by tomoron #+# #+# # # Created: 2025/09/05 23:37:58 by tomoron #+# #+# #
# Updated: 2025/09/06 00:56:38 by tomoron ### ########.fr # # Updated: 2026/05/07 17:41:52 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -22,6 +22,28 @@
timeout = 1; timeout = 1;
}; };
boot.tmp.cleanOnBoot = true;
boot.consoleLogLevel = 3;
boot.initrd.verbose = false;
boot.kernelParams = [
"quiet"
"udev.log_level=3"
"systemd.show_status=auto"
];
catppuccin.plymouth.enable = false;
boot.plymouth = {
enable = true;
theme = "nixos-bgrt";
themePackages = with pkgs; [ #(adi1090x-plymouth-themes.override {
# selected_themes = [ "black_hud" "circle_hud" "square_hud" "spinner_alt" ];
# })
# catppuccin-plymouth
nixos-bgrt-plymouth
];
};
services.journald.extraConfig = '' services.journald.extraConfig = ''
SystemMaxUse=100M SystemMaxUse=100M
SystemMaxFileSize=50M SystemMaxFileSize=50M

143
osConfigs/global/ld.nix Normal file
View File

@ -0,0 +1,143 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# ld.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/12/30 20:37:07 by tomoron #+# #+# #
# Updated: 2026/02/21 13:54:43 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{pkgs, ... }:
{
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
zlib
zstd
stdenv.cc.cc
curl
openssl
attr
libssh
bzip2
libxml2
acl
libsodium
util-linux
xz
systemd
libxcomposite
libxtst
libxrandr
libxext
libx11
libxfixes
libGL
libva
pipewire
libxcb
libxdamage
libxshmfence
libxxf86vm
libelf
glib
gtk2
networkmanager
vulkan-loader
libgbm
libdrm
libxcrypt
coreutils
pciutils
zenity
libxinerama
libxcursor
libxrender
libxscrnsaver
libxi
libsm
libice
gnome2.GConf
nspr
nss
cups
libcap
SDL2
libusb1
dbus-glib
ffmpeg
libudev0-shim
# needed to run unity
gtk3
icu
libnotify
gsettings-desktop-schemas
libxt
libxmu
libogg
libvorbis
SDL
SDL2_image
glew_1_10
libidn
tbb
# Other things from runtime
flac
freeglut
libjpeg
libpng
libpng12
libsamplerate
libmikmod
libtheora
libtiff
pixman
speex
SDL_image
SDL_ttf
SDL_mixer
SDL2_ttf
SDL2_mixer
libappindicator-gtk2
libdbusmenu-gtk2
libindicator-gtk2
libcaca
libcanberra
libgcrypt
libvpx
librsvg
libxft
libvdpau
pango
cairo
atk
gdk-pixbuf
fontconfig
freetype
dbus
alsa-lib
expat
# for blender
libxkbcommon
libxcrypt-legacy # For natron
libGLU # For natron
fuse
e2fsprogs
webkitgtk_4_1
libsoup_3
];
}

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/02/09 01:43:46 by tomoron #+# #+# # # Created: 2025/02/09 01:43:46 by tomoron #+# #+# #
# Updated: 2025/09/06 00:51:46 by tomoron ### ########.fr # # Updated: 2026/04/03 22:08:01 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -32,4 +32,6 @@
hardware.logitech.wireless.enable = true; hardware.logitech.wireless.enable = true;
hardware.logitech.wireless.enableGraphical = true; hardware.logitech.wireless.enableGraphical = true;
services.fstrim.enable = true; # trims all the ssds on the machine every week
} }

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:21 by tomoron #+# #+# # # Created: 2025/09/06 00:57:21 by tomoron #+# #+# #
# Updated: 2025/09/06 00:57:26 by tomoron ### ########.fr # # Updated: 2025/12/30 18:12:05 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -21,5 +21,7 @@
ntfs3g ntfs3g
cryptsetup cryptsetup
acpi acpi
nss
]; ];
} }

View File

@ -0,0 +1,8 @@
{lib, ...}:
{
sops = {
defaultSopsFile = ../../secrets/secrets.yaml;
age.keyFile = "/home/tom/.config/sops/age/keys.txt";
};
}

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# # # Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
# Updated: 2025/09/06 00:57:32 by tomoron ### ########.fr # # Updated: 2026/01/13 16:32:42 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:04 by tomoron #+# #+# # # Created: 2025/09/06 00:57:04 by tomoron #+# #+# #
# Updated: 2025/09/06 00:57:05 by tomoron ### ########.fr # # Updated: 2026/03/30 13:46:43 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -22,20 +22,30 @@
networking.hostName = "nixos-fixe"; networking.hostName = "nixos-fixe";
hardware.cpu.intel.updateMicrocode = true; hardware.cpu.intel.updateMicrocode = true;
mods.yubikey.pam.enable = true;
boot.kernelModules = [ "kvm-intel" "nvidia" ]; boot.kernelModules = [ "kvm-intel" "nvidia" ];
mods.displayManager.enable = true; mods.displayManager.enable = true;
hardware.nvidia = { mods.nvidia.enable = true;
package = config.boot.kernelPackages.nvidiaPackages.beta; mods.gayming.enable = true;
open = true;
prime.nvidiaBusId = "PCI:1:0:0"; programs.noisetorch.enable = true;
prime.intelBusId = "PCI:0:2:0";
prime.sync.enable = true;
modesetting.enable = true; # hardware.nvidia = {
}; # open = true;
#
# prime.nvidiaBusId = "PCI:1:0:0";
# prime.intelBusId = "PCI:0:2:0";
# prime.sync.enable = true;
#
# modesetting.enable = true;
# };
services.openssh.enable = true; services.openssh.enable = true;
programs.droidcam.enable = true;
boot.kernelPackages = pkgs.linuxPackages;
boot.supportedFilesystems = [ "zfs" ];
networking.hostId = "98e475dd";
} }

View File

@ -6,16 +6,17 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# # # Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
# Updated: 2025/10/04 22:23:34 by tomoron ### ########.fr # # Updated: 2026/04/27 12:53:46 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
{ config, pkgs, ... }: { lib, config, pkgs, ... }:
{ {
boot.initrd.luks.yubikeySupport = true;
services.udev.packages = [ pkgs.yubikey-personalization ]; services.udev.packages = [ pkgs.yubikey-personalization ];
boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ]; boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
boot.initrd.systemd.enable = false;
boot.initrd.luks.yubikeySupport = true;
boot.initrd.luks.devices.cryptroot = { boot.initrd.luks.devices.cryptroot = {
device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f"; device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
allowDiscards = true; allowDiscards = true;
@ -34,17 +35,21 @@
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup
programs.droidcam.enable = true; programs.droidcam.enable = true;
mods.displayManager.enable = true; mods.displayManager.enable = true;
mods.virtualHost.enable = true;
mods.yubikey.pam.enable = true; mods.yubikey.pam.enable = true;
networking.firewall.enable = false; networking.firewall.enable = false;
networking.hostName = "patate-douce"; networking.hostName = "patate-douce";
networking.wireless.enable = true; # networking.wireless.enable = true;
networking.networkmanager.wifi.backend = "iwd";
networking.wireless.iwd.enable = true;
networking.wireless.allowAuxiliaryImperativeNetworks = true;
networking.networkmanager.enable = false; networking.networkmanager.enable = false;
specialisation.vfio_ready.configuration = { specialisation.vfio_ready.configuration = {
boot.kernel.sysctl."vm.nr_hugepages" = 5120;
mods.virtualHost.enable = true;
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ]; boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
boot.kernelModules = [ "kvmfr" ]; boot.kernelModules = [ "kvmfr" ];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
@ -57,8 +62,6 @@
"/dev/random", "/dev/urandom", "/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/ptmx", "/dev/kvm",
"/dev/rtc","/dev/hpet", "/dev/rtc","/dev/hpet",
"/dev/input/by-id/[some_mouse_device]-event-mouse",
"/dev/input/by-id/[some_keyboard_device]-event-kbd"
] ]
''; '';
services.udev.extraRules = '' services.udev.extraRules = ''
@ -67,45 +70,55 @@
environment.systemPackages = with pkgs; [ looking-glass-client ]; environment.systemPackages = with pkgs; [ looking-glass-client ];
}; };
services.udev.extraRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
'';
networking.dhcpcd.enable = false; networking.dhcpcd.enable = false;
systemd.network.enable = true; systemd.network.enable = true;
networking.useNetworkd = true; networking.useNetworkd = true;
programs.noisetorch.enable = true;
services.postgresql.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
acpi # can be user (global) acpi # can be user (global)
openvr
]; ];
# programs.alvr.enable = true;
mods.touchpad.enable = true; mods.touchpad.enable = true;
programs.gamescope.enable = true;
# programs.gamescope.capSysNice = true;
mods.powerSave = { mods.powerSave = {
enable = true; enable = true;
powahCommandAdditions = [ powahCommandAdditions = [
"supergfxctl -m Hybrid" "supergfxctl -m Hybrid"
"if asusctl profile -p | grep Balanced ; then asusctl profile -P Performance; fi" "if [ $# -gt 0 ] && [[ \"$1\" == \"moar\" ]] ; then asusctl profile set Performance; fi"
"if asusctl profile -p | grep Quiet ; then asusctl profile -P Balanced; fi"
]; ];
tagueuleCommandAdditions = [ tagueuleCommandAdditions = [
"echo \"can't safely turn off the GPU\"" "echo \"can't safely turn off the GPU\""
"asusctl profile -P Quiet" "asusctl profile set Quiet"
]; ];
cpuMaxFreq = 4465261; cpuMaxFreq = 4465261;
}; };
services.asusd = { services.asusd = {
enable = true; enable = true;
enableUserService = true; # enableUserService = true;
}; };
services.supergfxd.enable = true; services.supergfxd.enable = true;
services.supergfxd.settings = { services.supergfxd.settings = {
mode = "Integrated"; mode = lib.mkDefault "Integrated";
vfio_enable = true; vfio_enable = true;
vfio_save = true; vfio_save = true;
always_reboot = false; always_reboot = false;
@ -123,15 +136,31 @@
mods.nvidia.prime = true; mods.nvidia.prime = true;
services.usbmuxd.enable = true; #hangs when shutting down services.usbmuxd.enable = true; #sometimes hangs when shutting down
# boot.plymouth = {
# enable = true;
# theme = "ycontre-glow";
# themePackages = [
# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux
# ];
# };
services.flatpak.enable = true; services.avahi.enable = true;
services.pipewire = {
raopOpenFirewall = true;
extraConfig.pipewire = {
"10-airplay"."context.modules" = [
{ name = "libpipewire-module-raop-discover"; }
];
};
};
services.pipewire.wireplumber.extraConfig."10-bluez" = {
"monitor.bluez.properties" = {
"bluez5.enable-sbc-xq" = true;
"bluez5.enable-msbc" = true;
"bluez5.enable-hw-volume" = true;
};
};
hardware.bluetooth.settings = {
General = {
Enable = "Source,Sink,Media,Socket";
};
};
} }

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# # # Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
# Updated: 2025/09/06 01:26:26 by tomoron ### ########.fr # # Updated: 2026/05/12 15:05:44 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -20,6 +20,7 @@ let
8083 137 138 139 445 548 3702 5357 #prob some samba shit 8083 137 138 139 445 548 3702 5357 #prob some samba shit
24454 #minecraft voice chat 24454 #minecraft voice chat
25565 # minecraft server 25565 # minecraft server
9091 # transmission web interface
]; ];
portRanges = [ portRanges = [
{from = 47950; to = 49000;} #moonlight (wolf) {from = 47950; to = 49000;} #moonlight (wolf)
@ -31,15 +32,58 @@ in
config.boot.kernelPackages.gasket #driver for google coral edge tpu config.boot.kernelPackages.gasket #driver for google coral edge tpu
]; ];
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false; services.openssh.settings.PasswordAuthentication = false;
services.openssh.ports = [ 1880 ]; services.openssh.ports = [ 1880 ];
sops.secrets."cloudflared/token" = {};
sops.secrets."zfs/p_user" = {};
sops.secrets."zfs/p_token" = {};
systemd.services.cloudflared = {
after = [
"network.target"
"network-online.target"
];
wants = [
"network.target"
"network-online.target"
];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = ''${pkgs.bash}/bin/bash -c '${pkgs.cloudflared}/bin/cloudflared tunnel --no-autoupdate run --token "$(cat ${config.sops.secrets."cloudflared/token".path})"' '';
Restart = "on-failure";
};
};
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
options amdgpu virtual_display=1 options amdgpu virtual_display=1
''; #create dummy display to be able to start x11 # create dummy display to be able to start x11
'';
boot.supportedFilesystems = [ "zfs" ]; boot.supportedFilesystems = [ "zfs" ];
boot.zfs.forceImportRoot = false;
boot.zfs.extraPools = [ "raid_vol" ];
services.zfs = {
autoScrub.enable = true;
zed.settings = {
ZED_NOTIFY_VERBOSE=1;
ZED_PUSHOVER_TOKEN="$(cat ${config.sops.secrets."zfs/p_token".path})";
ZED_PUSHOVER_USER="$(cat ${config.sops.secrets."zfs/p_user".path})";
};
};
services.sanoid.enable = true;
services.sanoid.datasets."raid_vol" = {
daily = 31;
hourly = 24;
monthly = 12;
autosnap = true;
autoprune = true;
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
zfs zfs
@ -68,6 +112,10 @@ in
services.fail2ban.enable = true; services.fail2ban.enable = true;
services.fail2ban.bantime = "5h"; services.fail2ban.bantime = "5h";
mods.nvidia.enable = true;
mods.nvidia.beta = true;
mods.nvidia.containerToolkit = true;
mods.docker = { mods.docker = {
enable = true; enable = true;
boot = true; boot = true;

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:16 by tomoron #+# #+# # # Created: 2025/09/05 23:47:16 by tomoron #+# #+# #
# Updated: 2025/09/06 00:56:38 by tomoron ### ########.fr # # Updated: 2025/11/17 14:32:13 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -24,7 +24,7 @@
services.displayManager.ly.enable = true; services.displayManager.ly.enable = true;
services.displayManager.ly.settings = services.displayManager.ly.settings =
{ {
animation = "doom"; animation = "gameoflife";
min_refresh_delta = 50; min_refresh_delta = 50;
bigclock = "en"; bigclock = "en";
sleep_cmd = "systemctl sleep"; sleep_cmd = "systemctl sleep";

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# # # Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
# Updated: 2025/09/05 23:54:57 by tomoron ### ########.fr # # Updated: 2025/10/27 00:50:29 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -22,5 +22,6 @@
config = lib.mkIf config.mods.gayming.enable { config = lib.mkIf config.mods.gayming.enable {
programs.steam.enable = true; programs.steam.enable = true;
programs.steam.protontricks.enable = true; programs.steam.protontricks.enable = true;
programs.gamescope.enable = true;
}; };
} }

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# # # Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
# Updated: 2025/09/06 01:12:34 by tomoron ### ########.fr # # Updated: 2025/12/23 18:42:01 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -28,7 +28,7 @@
open = lib.mkOption { open = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = true; default = true;
description = "use beta version of the drivers"; description = "use open version of the drivers (on newer gpu)";
}; };
containerToolkit = lib.mkOption { containerToolkit = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
@ -38,7 +38,7 @@
prime = lib.mkOption { prime = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = false; default = false;
description = "enable nvidia prime offload (saves battery)"; description = "enable nvidia prime offload (saves battery). prime ?";
}; };
}; };

View File

@ -1,6 +1,11 @@
#ENC[AES256_GCM,data:1NcFm2XqZzmSSlr8wH4aXHDBhf+lOaZ/gUeK2T/U/hIBbqtfKtw=,iv:yS5iogRp6e3We/7wZnGy0XJzqLVfRVKlDhUs+tamcJ0=,tag:+z/qqF9n6/hQfv9aWXkCDQ==,type:comment] #ENC[AES256_GCM,data:1NcFm2XqZzmSSlr8wH4aXHDBhf+lOaZ/gUeK2T/U/hIBbqtfKtw=,iv:yS5iogRp6e3We/7wZnGy0XJzqLVfRVKlDhUs+tamcJ0=,tag:+z/qqF9n6/hQfv9aWXkCDQ==,type:comment]
nextcloud_fuse: nextcloud_fuse:
password: ENC[AES256_GCM,data:Rlyc9wO3rXJ97AAMzM+vJclEJ+eaSPtHkitqRL0=,iv:yuS2Tyo2HZGVb9tbWmmgOEwkyzLhlvq8iZ2YjGD0u9E=,tag:pf8n4pTvseh1pd12w8w4tw==,type:str] password: ENC[AES256_GCM,data:Rlyc9wO3rXJ97AAMzM+vJclEJ+eaSPtHkitqRL0=,iv:yuS2Tyo2HZGVb9tbWmmgOEwkyzLhlvq8iZ2YjGD0u9E=,tag:pf8n4pTvseh1pd12w8w4tw==,type:str]
cloudflared:
token: ENC[AES256_GCM,data:LS1VIwbbVsJxZ90p+kK4xJhzrBRJ51XL2j8mGLDVj5JjYJKXKBDIXtlb0x8A9WDIVyBuLBkE9pfSfQXtvfvZdUeyXswVJFUNW0mX3yC/WaeNQdPYy7UgyGjorqk31aNJ6b9XqtdfV0++qPvXQDvwn44UY0juuiIJ5KcLZEskRcqVTilG5WYi/nInhGbSqtzniRNvrbsynIq0CVQDhi3haCHNpCJMQUIyXM/g6Xsc9b++GYlHjgrtHQ==,iv:DbvJfbMblgr6+dYBJqDSzECKK90Nkq8Eci5dC8fMIXQ=,tag:bjAs8p5dAkh2Adon0JDNqg==,type:str]
zfs:
p_user: ENC[AES256_GCM,data:5RZ14HcDfSrOGm6VFNQGSlH4bcJ+DtMk4NkrXXTo,iv:iTt//ip7ZK5tuQky1DPmzgexV+chhHG9rHQNMYyJZJs=,tag:cmwA0KHsqBG7f5WI7Fwclg==,type:str]
p_token: ENC[AES256_GCM,data:VFYSHIqeKFbPaCqO08UrgqtsmCULcXlGjGco03BT,iv:aEaOH+jSp6A2Z3V+vwAYuhS26oTZ/CA+/EKg+/ZktDQ=,tag:UH1LG3aS/plWnaLdpcUcuA==,type:str]
sops: sops:
age: age:
- recipient: age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv - recipient: age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv
@ -12,7 +17,7 @@ sops:
clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa
DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg== DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-09-05T17:58:05Z" lastmodified: "2026-04-09T09:44:50Z"
mac: ENC[AES256_GCM,data:96G7VqaG8A46tQ1L7I2asiYtNZF7K3Wf+SzbwPrNV8zQio2jInawtD4WSzHmLs4Nv7M1TBHug/ho8mfYq6auXgpathiSzvj0Tzs/IEKXiTYa86tM3szwAepavMYWOl6OYJ7S39ku6BOMo3qC2BK/gpT5iy4c84ashn2wFd1n41A=,iv:6TShIsqnhCf/3uoAaz/R+Cwr2HrorROOXodXluTKM8M=,tag:BA9rQ73scKgetW3orV0HdQ==,type:str] mac: ENC[AES256_GCM,data:1TWoO9xeAyfT5kheTDLBqqeqpSpc5begsXN/FIjwK01xJJrgFfQg+93OZcH989z6WGumvjH+JuY98y9xDfur6mc2sopbLX8/Qbnfl4D2Aq1ya42b5/2cHlFhGI8bBOiXr6qA2sixQ/E1MIklTMxN+Z1fKbT5Mp7cfoPlG8YXhbI=,iv:DB1opS2DEr/WM1yK5SJf8NtoApmzJq5mgMoMlOoLli4=,tag:ZhiLFFCZF+fdfai0djwjYw==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.11.0