Compare commits

...

94 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
93fd2215da gpg signed commits
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m18s
2025-10-11 00:02:54 +02:00
df25ce0495 update flake
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m8s
2025-10-05 15:40:49 +02:00
0555242a7f add droidcam, reenable usbmuxd, fix indent on nvim, enable gamescope
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m27s
2025-10-05 15:33:51 +02:00
fb2b3f80ad home : fix file manager config, add r2modman
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m59s
2025-09-24 23:50:45 +02:00
9a95e511e4 WIP: refactor homeeConfigs
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m0s
2025-09-24 14:13:12 +02:00
5e54902447 update flake, rofi changes, start powerManagement scripts with sudo
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 1m59s
2025-09-21 02:11:55 +02:00
074dff48ca change powerSave module settings, add scripts to change power profile
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m31s
2025-09-17 18:58:00 +02:00
fbc24916b5 refactor os configurations
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m10s
2025-09-06 01:27:10 +02:00
4b66e2489b add fuse nextcloud and age encrypted passwords
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m8s
2025-09-05 20:01:58 +02:00
e13360f793 add yubikey to unlock FDE on laptop; update flake; minor wayland changes
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m38s
2025-09-04 15:17:30 +02:00
1e46d42f27 remove stremio pacakge (insecure)
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m45s
2025-08-30 16:36:33 +02:00
7aef691ea2 update flake
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 9m35s
2025-08-28 23:39:10 +02:00
63d2538734 add localsend to laptop packages
Some checks failed
Build iso when a new version is pushed / test (push) Has been cancelled
2025-08-28 23:38:22 +02:00
84bc2fd737 add usbmuxd on laptop
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m17s
2025-08-15 19:16:46 +02:00
f362997567 update flake, add alvr on laptop 2025-08-12 17:12:08 +02:00
ea4489732b remove config
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m24s
2025-08-11 17:47:52 +02:00
6c35b8fb99 fix typo in polybar module
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m31s
2025-08-07 15:30:14 +02:00
76702ea878 use x11 on vbox and add option to polybar module for fspath
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m25s
2025-08-07 15:27:08 +02:00
b261195413 fix 42header (deleted revision)
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m35s
2025-08-07 15:13:39 +02:00
6651ba444e add compiledb to packages fixes on vbox config
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m30s
2025-08-07 15:06:36 +02:00
093ac9c011 set supergfxd config in nix files, change ly config, update flake
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m38s
2025-08-06 00:26:52 +02:00
d6ca7ba793 update flake
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m27s
2025-07-30 18:52:08 +02:00
17e3fc6a9e Merge branch 'new-42-homes'
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m40s
2025-07-29 12:55:09 +02:00
0da22649eb move nerdfont.iosevka to home config (broken in os config)
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 3m0s
2025-07-23 18:02:45 +02:00
f14bc8c082 update flake and remove duplicate neovim
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m31s
2025-07-21 23:00:41 +02:00
c766b08973 remove full home config from iso
Some checks failed
Build iso when a new version is pushed / test (push) Failing after 2m41s
2025-07-16 20:07:12 +02:00
27ca179697 update flake, sort system and home packages
Some checks failed
Build iso when a new version is pushed / test (push) Failing after 7m42s
2025-07-15 16:12:16 +02:00
66b67b9b03 set kvmfr size to 128mb and change cleanup makefile rule
Some checks failed
Build iso when a new version is pushed / test (push) Has been cancelled
2025-07-15 12:37:05 +02:00
116e81d080 change specialisation name, blacklist xpad when in vfio mode
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 17m4s
2025-07-12 18:15:24 +02:00
e64579832a fix typo on laptop config
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 18m35s
2025-07-12 16:57:03 +02:00
11e350751a repair usb redirection on libvirt
Some checks failed
Build iso when a new version is pushed / test (push) Has been cancelled
2025-07-12 16:54:59 +02:00
d86380c995 add pin shortcut and add kvm windows gpu passthrough support in a specialisation config on laptop
Some checks failed
Build iso when a new version is pushed / test (push) Has been cancelled
2025-07-12 16:52:43 +02:00
79ad288bcc beta nvidia drivers on desktop
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 14m41s
2025-07-09 17:15:32 +02:00
5b3d74179b set virtualmanager as module, trying to fix nvidia stutter screens lag stutter, remove docker legacy version (latest probably fixed)
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 11m57s
2025-07-03 14:58:19 +02:00
ac2d3acf0e disable password auth on ssh and change nvidia drivers to beta
Some checks failed
Build iso when a new version is pushed / test (push) Has been cancelled
2025-06-28 00:45:51 +02:00
9d132e5366 update flake and change some ly settings
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 12m12s
2025-06-26 14:47:45 +02:00
8248d4b969 update flake, switch to kvm instead of virtualbox, add lrzip package
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 9m44s
2025-06-09 17:04:50 +02:00
18df257130 update flake
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 11m54s
2025-05-20 16:04:54 +02:00
c9ffd8a567 nodejs_23 doesn't exist in nixpkgs unsable anymore
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 15m52s
2025-05-16 00:19:28 +02:00
637f7e0d78 update flake
Some checks failed
Build iso when a new version is pushed / test (push) Failing after 22s
2025-05-16 00:14:36 +02:00
4ff3ab574f change wallpaper on all configs instead of just laptop
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 9m18s
2025-05-12 12:35:54 +02:00
633eea8877 enable display manager on desktop
Some checks failed
Build iso when a new version is pushed / test (push) Failing after 13m10s
2025-05-06 22:47:47 +02:00
3b7c49041c add git autocorrect
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 12m49s
2025-05-01 21:38:53 +02:00
e8fac6e226 add allow discard to cryptroot 2025-04-29 15:56:22 +02:00
3239948de6 change ffmpeg to ffmpeg-full nad add nv-codec-headers
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 21m41s
2025-04-27 16:36:28 +02:00
10c46e1e6a update flake
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 20m56s
2025-04-26 17:09:25 +02:00
5f64559676 set rofi theme by default and add wireshark to laptop config
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 14m16s
2025-04-25 00:14:11 +02:00
34e087b815 change home location
Some checks are pending
Build iso when a new version is pushed / test (push) Waiting to run
2025-04-09 16:50:26 +02:00
61 changed files with 1559 additions and 484 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:
push:
branches:
- 'master'
- 'iso'
jobs:
test:

7
.sops.yaml Normal file
View File

@ -0,0 +1,7 @@
keys:
- &primary age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv
creation_rules:
- path_regex: secrets/secrets.yaml$
key_groups:
- age:
- *primary

View File

@ -1,18 +1,32 @@
HOST ?= $(file < /etc/nixosFlakeName)
THREADS ?= $(shell nproc)
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
update:
cd $(FLAKE);nix flake update
$(MAKE) all
os:
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-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST)
@ -22,4 +36,10 @@ iso :
rm -rf result
cleanup :
sudo nix-env --delete-generations +1 --profile /nix/var/nix/profiles/system
nix-env --delete-generations +1 --profile ~/.local/state/nix/profiles/home-manager
nix-env --delete-generations +1
sudo nix-collect-garbage -d
optimize :
nix-store --optimize -vv

100
flake.lock generated
View File

@ -1,5 +1,23 @@
{
"nodes": {
"catppuccin": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1778406663,
"narHash": "sha256-jGOtlDJAe0MFoOErIxSFs3TQZ7WaCpUt1qnjJ0HhLfw=",
"owner": "catppuccin",
"repo": "nix",
"rev": "a0fa2f1b901473d8aefb2e3026396e3562c1782c",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "nix",
"type": "github"
}
},
"firefox-addons": {
"inputs": {
"nixpkgs": [
@ -8,11 +26,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1745222277,
"narHash": "sha256-zkUx4CzgqRS8bUT1hyEGol3w6/iv+tk0axMpdzTB7Mw=",
"lastModified": 1778558563,
"narHash": "sha256-pT6KVIDxQYymtHC9ix6U/NTBUYJhYRX81Ou/9nAUSgc=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "da88304c0a5113485bd36a498ee05516cace8ec9",
"rev": "f52067bf63247b39b81917d34d74f7c0a9344f05",
"type": "gitlab"
},
"original": {
@ -29,11 +47,11 @@
]
},
"locked": {
"lastModified": 1745256380,
"narHash": "sha256-hJH1S5Xy0K2J6eT22AMDIcQ07E8XYC1t7DnXUr2llEM=",
"lastModified": 1778535464,
"narHash": "sha256-kkUQYSv70wynJ/DfnGals6r98I6bK3CVNVTN1zbAd7Y=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "22b326b42bf42973d5e4fe1044591fb459e6aeac",
"rev": "b659c7ffd40fc9e3bb60d420c79c67e769b9f4ab",
"type": "github"
},
"original": {
@ -44,11 +62,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1744633460,
"narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=",
"lastModified": 1778143761,
"narHash": "sha256-lkesY6x2X2qxlqLM7CT2iM/0rP2JB7fruPN3h8POXmI=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "9a049b4a421076d27fee3eec664a18b2066824cb",
"rev": "3bcaa367d4c550d687a17ac792fd5cda214ee871",
"type": "github"
},
"original": {
@ -60,64 +78,64 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1744932701,
"narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
"owner": "nixos",
"lastModified": 1777954456,
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
"type": "github"
},
"original": {
"owner": "nixos",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"pkgs-docker-2750": {
"nixpkgs_2": {
"locked": {
"lastModified": 1737525964,
"narHash": "sha256-3wFonKmNRWKq1himW9N3TllbeGIHFACI5vmLpk6moF8=",
"owner": "NixOS",
"lastModified": 1778583303,
"narHash": "sha256-jn+drGpaYalIzR0TAsvo2Z2LtBw3b9eIjJtwb0wUPUw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5757bbb8bd7c0630a0cc4bb19c47e588db30b97c",
"rev": "6093378e528c5fc6b6e44fb559daed68bc313733",
"type": "github"
},
"original": {
"owner": "NixOS",
"owner": "nixos",
"ref": "master",
"repo": "nixpkgs",
"rev": "5757bbb8bd7c0630a0cc4bb19c47e588db30b97c",
"type": "github"
}
},
"plymouth-theme-ycontre-glow": {
"root": {
"inputs": {
"catppuccin": "catppuccin",
"firefox-addons": "firefox-addons",
"home-manager": "home-manager",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"sops-nix": "sops-nix"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1731939263,
"narHash": "sha256-mLwLR5dEJTvtqJU/lvo9f8c3/xIFPOpXlPF3JsJtnHo=",
"ref": "refs/heads/master",
"rev": "702e7b014ef6cf748252e797724e4096bafcaafa",
"revCount": 1,
"type": "git",
"url": "file:///home/tom/desktop/bordel/ycontre-glow"
"lastModified": 1777944972,
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github"
},
"original": {
"type": "git",
"url": "file:///home/tom/desktop/bordel/ycontre-glow"
}
},
"root": {
"inputs": {
"firefox-addons": "firefox-addons",
"home-manager": "home-manager",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"pkgs-docker-2750": "pkgs-docker-2750",
"plymouth-theme-ycontre-glow": "plymouth-theme-ycontre-glow"
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
}
}
},

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/10/17 18:15:24 by tomoron #+# #+# #
# Updated: 2025/04/13 13:35:56 by tomoron ### ########.fr #
# Updated: 2026/05/10 22:12:11 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -14,7 +14,14 @@
description = "Nixos and home-manager config flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/master";
catppuccin.url = "github:catppuccin/nix";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@ -26,37 +33,47 @@
inputs.nixpkgs.follows = "nixpkgs";
};
plymouth-theme-ycontre-glow = {
url = "git+file:///home/tom/desktop/bordel/ycontre-glow";
inputs.nixpkgs.follows = "nixpkgs";
};
pkgs-docker-2750.url = "github:NixOS/nixpkgs?rev=5757bbb8bd7c0630a0cc4bb19c47e588db30b97c";
#plymouth-theme-ycontre-glow = {
# url = "git+file:///home/tom/desktop/bordel/ycontre-glow";
# inputs.nixpkgs.follows = "nixpkgs";
#};
};
outputs = { nixpkgs, home-manager, nixos-hardware, ... }@inputs:
outputs = { nixpkgs, catppuccin, home-manager, nixos-hardware, ... }@inputs:
let
pkgs = import nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; };
osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; flakeName = flakeName; };
modules = nixpkgs.lib.concatLists [
[./osConfigs/global.nix ./osConfigs/hosts/${flakeName}.nix ]
[
./osConfigs/os.nix
./osConfigs/hosts/${flakeName}.nix
catppuccin.nixosModules.catppuccin
inputs.sops-nix.nixosModules.sops
]
extraModules
];
};
homeConfig = {flakeName, extraModules ? [], username ? "tom", homeDir ? "/home/tom"}: home-manager.lib.homeManagerConfiguration {
homeConfig = {flakeName, sops ? true, extraModules ? [], username ? "tom", homeDir ? "/home/tom"}: home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit inputs; username = username; homeDir = homeDir; isOs = false; };
extraSpecialArgs = { inherit inputs; username = username; homeDir = homeDir; isOs = false; configSops = sops; };
modules = nixpkgs.lib.concatLists [
[ ./homeConfigs/home.nix ./homeConfigs/hosts/${flakeName}.nix]
[
./homeConfigs/home.nix
./homeConfigs/hosts/${flakeName}.nix
catppuccin.homeModules.catppuccin
inputs.sops-nix.homeManagerModules.sops
]
extraModules
];
};
in {
nixosConfigurations = { server = osConfig {flakeName = "server";};
nixosConfigurations = {
server = osConfig {flakeName = "server";};
vbox = osConfig {flakeName = "vbox";};
laptop = osConfig {flakeName = "laptop"; extraModules = [ nixos-hardware.nixosModules.asus-zephyrus-ga401 ];};
desktop = osConfig {flakeName = "desktop";};
@ -67,19 +84,18 @@
modules = [
(nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")
./osConfigs/hosts/iso.nix
inputs.home-manager.nixosModules.default
];
};
};
homeConfigurations = {
vbox = homeConfig { flakeName = "vbox"; };
ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/nfs/homes/tomoron";};
default = homeConfig { flakeName = "default";};
ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron"; sops = false;};
laptop = homeConfig { flakeName = "laptop"; };
desktop = homeConfig { flakeName = "desktop"; };
server = homeConfig { flakeName = "server"; };
};
};
}

View File

@ -1,21 +0,0 @@
#!/bin/sh
FILE=/sys/class/backlight/amdgpu_bl1/brightness
if ! ( test -w "$FILE" ); then
xterm +cm -cr RED -bg BLACK -selbg WHITE -selfg BLACK -fg WHITE -fa Monospace -fs 14 -e "sudo chmod 777 $FILE"
fi
new=$(cat $FILE)
if [ "$1" = "up" ]; then
new=$((new + 13))
elif [ "$1" = "down" ];then
new=$((new - 13))
fi
if [ $new -gt 255 ]; then
new=255
elif [ $new -lt 0 ]; then
new=0
fi
echo $new > $FILE

View File

@ -1,3 +0,0 @@
#!/bin/sh
unison /home/tom/Desktop ssh://tom@tmoron.fr:1880//home/tom/Desktop_sync/Desktop $@

View File

@ -1,2 +0,0 @@
xtrlock&
systemctl hibernate

View File

@ -1,6 +0,0 @@
#!/bin/bash
if [ "$1" = "up" ]; then
asusctl -n
elif [ "$1" = "down" ];then
asusctl -p
fi

View File

@ -1,4 +0,0 @@
#!/bin/bash
until sudo iwctl station wlan0 show | grep iPhone > /dev/null;do
sudo iwctl station wlan0 scan 2>&1 > /dev/null
done

View File

@ -0,0 +1,34 @@
{ lib, pkgs, config, ... }:
{
catppuccin = {
enable = true;
flavor = "mocha";
dunst.enable = true;
dunst.flavor="frappe";
kvantum.apply = true;
rofi.enable = false;
};
gtk = {
gtk4.theme = config.gtk.theme;
enable = true;
theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; };
font = { name = "Sans"; size = 11; };
};
qt.style.name = "kvantum";
home.pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
};
home.file = {
".config/wallpaper.png".source = lib.mkDefault ../utils/wallpaper.png;
".config/lock_screen.jpg".source = lib.mkDefault ../utils/lock_screen.jpg;
};
}

View File

@ -0,0 +1,13 @@
{ ... }:
{
catppuccin = {
enable = true;
flavor = "mocha";
dunst.enable = true;
dunst.flavor="frappe";
kvantum.apply = true;
rofi.enable = false;
};
}

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

@ -0,0 +1,10 @@
{ ... }:
{
programs.yazi = {
enable = true;
settings.mgr.sort_dir_first=false;
};
home.sessionVariables.BROWSER = "yazi";
programs.yazi.shellWrapperName = "y";
}

View File

@ -0,0 +1,21 @@
{ config, homeDir, ... }:
{
programs.rclone.enable = true;
sops.secrets."nextcloud_fuse/password" = {};
programs.rclone.remotes.nextcloud = {
config = {
type = "webdav";
url = "https://dnc.tmoron.fr/remote.php/dav/files/tom";
vendor = "nextcloud";
user = "tom";
};
secrets.pass = config.sops.secrets."nextcloud_fuse/password".path;
mounts = {
"/" = {
enable = true;
mountPoint = "${homeDir}/nextcloud";
options.vfs-cache-mode = "writes";
};
};
};
}

View File

@ -0,0 +1,13 @@
{ ... }:
{
programs.rofi = {
enable = true;
theme = "rounded-nord-dark";
};
home.file.".local/share/rofi/themes".source = "${builtins.fetchGit {
url = "https://github.com/newmanls/rofi-themes-collection";
rev = "c8239a45edced3502894e1716a8b661fdea8f1c9";
ref = "master";
}}/themes";
}

View File

@ -0,0 +1,27 @@
{ homeDir, ... }:
{
home.shell.enableBashIntegration = true;
home.shellAliases = {
ls= "ls --color=auto";
grep = "grep --color=auto";
vim = "nvim";
vi = "nvim";
hl = "Hyprland";
clr = "clear";
noidle = "systemctl --user stop hypridle";
};
programs.bash.profileExtra = ''
PATH=$PATH:${homeDir}/.cargo/bin
'';
programs.direnv.enable = true;
programs.direnv.enableBashIntegration = true;
programs.bash = {
enable = true;
historyControl = ["ignoreboth"];
historyIgnore = [ "ls" "cd" "exit" ];
shellOptions = [ "cdspell" "autocd"];
};
}

View File

@ -6,75 +6,36 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
# Updated: 2025/03/19 15:45:13 by tomoron ### ########.fr #
# Updated: 2026/05/11 13:55:58 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{lib, pkgs, username ? "tom" ,homeDir ? "/home/tom", isOs ? false, ... }:
{
lib,
username ? "tom",
homeDir ? "/home/tom",
isOs ? false,
configSops ? true,
...
}:
{
imports = lib.concatLists [
[ ./packages.nix ]
(lib.fileset.toList ./modules)
(lib.fileset.toList ./global)
];
home.username = lib.mkIf (!isOs) "${username}";
home.homeDirectory = lib.mkIf (!isOs) "${homeDir}";
home.stateVersion = "24.05";
home.stateVersion = "26.05";
# programs.ghostty.enable = true;
# programs.ghostty.settings = {
# theme = "catppuccin-mocha";
# font-size = 9;
# };
home.pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
sops = lib.mkIf configSops{
defaultSopsFile = ../secrets/secrets.yaml;
age.keyFile = "${homeDir}/.config/sops/age/keys.txt";
};
gtk = {
enable = true;
theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; };
iconTheme = { package = pkgs.adwaita-icon-theme; name = "Adwaita"; };
font = { name = "Sans"; size = 11; };
};
home.shellAliases = {
ls= "ls --color=auto";
grep = "grep --color=auto";
vim = "nvim";
vi = "nvim";
hl = "Hyprland";
clr = "clear";
tagueule = "asusctl profile -P Quiet";
parle = "asusctl profile -P performance";
noidle = "systemctl --user stop hypridle";
};
programs.bash = {
enable = true;
historyControl = ["ignoreboth"];
historyIgnore = [ "ls" "cd" "exit" ];
shellOptions = [ "cdspell" "autocd"];
};
home.sessionPath = [ "~/.local/bin" ];
home.file = { #should be able to make most of these in nix configs
".config/wallpaper.png".source = lib.mkDefault utils/wallpaper.png;
".config/pc.jpg".source = lib.mkDefault utils/pc.jpg;
".local/share/rofi/themes".source = "${builtins.fetchGit {
url = "https://github.com/newmanls/rofi-themes-collection";
rev = "c8239a45edced3502894e1716a8b661fdea8f1c9";
ref = "master";
}}/themes";
# ".local/bin/desk_sync".source = dotfiles/local/bin/desk_sync;
};
services.dunst.enable = true;
programs.home-manager.enable = true;
}

View File

@ -1,6 +1,11 @@
{ ... }:
{
mods.game.enable = false;
mods.hyprland.enable = false;
mods.x11.enable = true;
programs.firefox.enable = false;
services.picom = {
backend = "xrender";
settings = {

View File

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

View File

@ -12,7 +12,9 @@
mods.x11.enable = true;
programs.firefox.enable = false;
mods.sync.homeFolder = "/sgoinfre/goinfre/Perso/tomoron";
mods.polybar.fspath = "/home/tomoron";
mods.sync.homeFolder = "/home/tomoron/sync";
mods.sync.defaultSynced = false;
mods.sync.syncedAdditions = [ "42_desktop" "Downloads" ];
mods.sync.customHostName = "pc42";

View File

@ -1,7 +1,6 @@
{ lib, pkgs, ... }:
{
home.file.".config/wallpaper.png".source = ../utils/wallpaper_test.png;
programs.waybar.settings.mainBar = {
modules-right = lib.mkBefore ["custom/fans" "custom/dgpu"];
"custom/dgpu" = {
@ -13,7 +12,7 @@
"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 = "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-if = 1;
};
@ -28,6 +27,11 @@
", XF86Launch1, exec, hyprlock"
", 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= [
# "eDP-1, modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync, 0x0, 1"
"eDP-1, 1920x1080@120, 0x0, 1"
@ -37,9 +41,11 @@
};
home.packages = with pkgs; [
stremio
blender
wireshark
localsend
impala
];
#mods.sync.syncedAdditions = ["VirtualBox VMs"];
services.mpris-proxy.enable = true;
}

View File

@ -8,10 +8,11 @@
};
config = lib.mkIf config.mods.alacritty.enable {
catppuccin.alacritty.enable = true;
programs.alacritty = {
enable = true;
settings = {
window.opacity = 0.95;
# window.opacity = 0.95;
env.XTERM = "xterm-256color";
font.size = 9;
};

View File

@ -8,11 +8,13 @@
};
config = lib.mkIf config.mods.firefox.enable {
catppuccin.firefox.enable = true;
programs.firefox = {
enable = lib.mkDefault true;
profiles.default = {
extensions.packages = with inputs.firefox-addons.packages."x86_64-linux";
[vimium ublock-origin];
extensions.force = true;
};
};
};

View File

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

View File

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

View File

@ -46,7 +46,7 @@ in
text = (lib.strings.concatStrings [''
auto=true
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 ))
(if !(isNull config.mods.sync.customHostName) then "\nclientHostName=${config.mods.sync.customHostName}" else "")

View File

@ -2,35 +2,152 @@
{
options.mods.vim.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "install and configure vim";
type = lib.types.bool;
default = true;
description = "install and configure vim";
};
config = lib.mkIf config.mods.vim.enable {
programs.neovim = {
enable = true;
defaultEditor = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
};
vimAlias = true;
};
home.packages = with pkgs; [
clang-tools
nixd
nodejs_23
glsl_analyzer
nodejs_24
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 ai
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent! loadview
set tabstop=4
set shiftwidth=4
set scrolloff=10
set preserveindent
set smartindent
set shiftwidth=4
map <silent> <C-N> :bnext<CR>
map <silent> <C-P> :bprevious<CR>
nmap <silent> <c-k> :wincmd k<CR>
@ -57,43 +174,51 @@
Plug 'bluz71/vim-nightfly-colors'
Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
Plug 'tikhomirov/vim-glsl'
Plug 'lambdalisue/nerdfont.vim'
Plug 'lambdalisue/glyph-palette.vim'
Plug 'lambdalisue/fern-renderer-nerdfont.vim'
Plug 'lambdalisue/fern-git-status.vim'
Plug 'lambdalisue/fern.vim'
Plug 'lambdalisue/nerdfont.vim'
Plug 'lambdalisue/glyph-palette.vim'
Plug 'lambdalisue/fern-renderer-nerdfont.vim'
Plug 'lambdalisue/fern-git-status.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()
colorscheme catppuccin-mocha
lua require'lspconfig'.clangd.setup{}
lua require'lspconfig'.nixd.setup{}
lua require'lspconfig'.glsl_analyzer.setup{}
set signcolumn=no
set signcolumn=auto
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<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:mail42 = 'tomoron@student.42angouleme.fr'
let g:fern#renderer = "nerdfont"
'';
let g:user42 = 'tomoron'
let g:mail42 = 'tomoron@student.42angouleme.fr'
let g:fern#renderer = "nerdfont"
'';
home.file = {
#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";
rev = "d80f495fabff8446972b8695ba251ca636a047b0";
ref = "master";
}}/plug.vim";
#install stdheader 42
".config/nvim/plugin/stdheader.vim".source = "${builtins.fetchGit {
".config/nvim/plugin/stdheader.vim".source = "${fetchGit {
url = "https://github.com/42Paris/42header";
rev = "71e6a4df6d72ae87a080282bf45bb993da6146b2";
rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
ref = "master";
}}/plugin/stdheader.vim";

View File

@ -8,17 +8,24 @@
};
config = lib.mkIf config.mods.hyprland.enable {
wayland.windowManager.hyprland.systemd.variables = [ "--all" ];
programs.hyprshot.enable = true;
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = {
"$mainMod" = "SUPER";
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, hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
"$mainMod, Return, exec, alacritty"
"CTRL_ALT, Q, killactive,"
"CTRL_ALT_SHIFT, Q, forcekillactive,"
"SUPER_ALT, Q, exit,"
"$mainMod, S, togglefloating,"
"$mainMod, I, pin,"
"$mainMod, D, exec, rofi -show drun -show-icons"
"$mainMod SHIFT, D, exec, rofi -show run -show-icons"
"$mainMod, M, fullscreen, 1"
"$mainMod, F, fullscreen, 0"
@ -63,12 +70,12 @@
"$mainMod, mouse_up, workspace, e-1"
];
bindm = [
bindm = [ #bind mouse
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
bindel = [
bindel = [ #repeat and locked
" ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
" ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
" ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
@ -79,7 +86,7 @@
" ,XF86KbdBrightnessDown, exec, asusctl -p"
];
bindl = [
bindl = [ #repeat
" , XF86AudioNext, exec, playerctl next"
" , XF86AudioPrev, exec, playerctl previous"
" , XF86AudioPause, exec, playerctl play-pause"
@ -89,12 +96,12 @@
"$mainMod, o, exec, playerctl play-pause"
];
windowrulev2 = [
#ignore maximize requests
"suppressevent maximize, class:.*"
#fix dragging issues with xwayland
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
# windowrulev2 = [
# #ignore maximize requests
# "suppressevent maximize, class:.*"
# #fix dragging issues with xwayland
# "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
# ];
input = {
kb_layout = "fr";
@ -142,18 +149,18 @@
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
#blur = {
# enabled = true;
# size = 3;
# passes = 1;
# vibrancy = 0.1696;
#};
};
general = {
gaps_in = 3;
gaps_out = 7;
border_size = 2;
gaps_in = 2;
gaps_out = 5;
border_size = 1;
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
"col.inactive_border" = "rgba(595959aa)";
resize_on_border = false;
@ -161,6 +168,12 @@
layout = "dwindle";
};
layerrule = {
name = "no_anim_for_selection";
no_anim = "on";
"match:namespace" = "selection";
};
cursor.no_warps = true;
env = [

View File

@ -3,7 +3,6 @@
{
config = lib.mkIf config.mods.hyprland.enable {
home.packages = with pkgs; [
rofi-wayland
grim
slurp
wl-clipboard

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/10 00:21:11 by tomoron #+# #+# #
# Updated: 2025/02/12 09:36:07 by tomoron ### ########.fr #
# Updated: 2025/06/18 15:49:03 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{lib, config, ... }:
@ -34,7 +34,7 @@
setxkbmap fr us&
nitrogen --restore &
pgrep activate-linux >/dev/null || (sleep 2;activate-linux -d)&
''; # this is messy but i don't care, x11 isn't my default now.
''; # this is messy but i don't care, x11 is just a fallback now
};
}

View File

@ -6,13 +6,19 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/10 02:51:32 by tomoron #+# #+# #
# Updated: 2025/02/10 17:28:27 by tomoron ### ########.fr #
# Updated: 2025/08/07 15:30:07 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ lib, config, ... }:
{
options.mods.polybar.fspath = lib.mkOption {
type = lib.types.str;
default = "/";
description = "set the filesystem path for the remaining disk space";
};
config = lib.mkIf config.mods.x11.enable {
services.polybar.enable = true;
services.polybar.script = "pgrep polybar >/dev/null || polybar -q main -c \"$HOME/.config/polybar/config.ini\"&";
@ -44,8 +50,8 @@
"module/filesystem" = {
type = "internal/fs";
mount-0 = "/";
interval = 30;
mount-0 = config.mods.polybar.fspath;
interval = 10;
fixed-values = true;
format-mounted = "<label-mounted>";
format-mounted-prefix = "󰋊";

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
# Updated: 2025/04/15 15:58:07 by tomoron ### ########.fr #
# Updated: 2026/04/25 20:35:24 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -14,22 +14,38 @@
{
home.packages = with pkgs;[
ripgrep
activate-linux
unison
brightnessctl
playerctl
python3
vlc
lrzip
pigz
htop
gnumake
git
fastfetch
clang
ninja
gdb
valgrind
wget
cmake
man-pages
stress
ffmpeg-full
ripgrep
activate-linux
unison
brightnessctl
playerctl
vlc
nix-index
yubikey-manager
bibata-cursors
libcaca
nasm
nerd-fonts.iosevka
nix-index
yubikey-manager
yubico-pam
dunst
bibata-cursors
libcaca
nasm
compiledb
yubikey-personalization
sops
libreoffice
doxygen
qimgv
];
}

View File

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 797 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 797 KiB

51
osConfigs/global/boot.nix Normal file
View File

@ -0,0 +1,51 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# boot.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:37:58 by tomoron #+# #+# #
# Updated: 2026/05/07 17:41:52 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{lib, pkgs, ... } :
{
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
boot.loader = {
systemd-boot.enable = true;
systemd-boot.memtest86.enable = true;
efi.canTouchEfiVariables = true;
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 = ''
SystemMaxUse=100M
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
];
}

18
osConfigs/global/nix.nix Normal file
View File

@ -0,0 +1,18 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# nix.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:42:17 by tomoron #+# #+# #
# Updated: 2025/09/05 23:42:20 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ ... }:
{
nix.settings.experimental-features = ["nix-command" "flakes"];
nixpkgs.config.allowUnfree = true;
}

View File

@ -1,63 +1,37 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# global.nix :+: :+: :+: #
# other.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/09 01:43:46 by tomoron #+# #+# #
# Updated: 2025/04/03 13:24:06 by tomoron ### ########.fr #
# Updated: 2026/04/03 22:08:01 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ lib, pkgs, flakeName, ... }:
{ lib, ... }:
{
imports = lib.concatLists [[
./hardware-configuration.nix
./packages.nix
]
(lib.fileset.toList ./modules)
];
nix.settings.experimental-features = ["nix-command" "flakes"];
nixpkgs.config.allowUnfree = true;
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
boot.loader = {
systemd-boot.enable = true;
systemd-boot.memtest86.enable = true;
efi.canTouchEfiVariables = true;
timeout = 1;
};
networking.hostName = lib.mkDefault "unnamed-nixos";
networking.networkmanager.enable = lib.mkDefault true;
programs.fuse.enable = true;
time.timeZone = "Europe/Paris";
services.xserver.enable = lib.mkDefault true;
services.xserver.displayManager.startx.enable = true;
programs.hyprland.enable = lib.mkDefault true;
services.pipewire = {
enable = true;
pulse.enable = true;
};
users.users.tom = {
isNormalUser = true;
extraGroups = [ "wheel" "docker" "libvirtd" "dialout"];
initialPassword = "password";
};
virtualisation.docker.enable = true;
virtualisation.docker.enableOnBoot = lib.mkDefault false;
programs.hyprland.enable = lib.mkDefault true;
system.stateVersion = "24.05";
environment.etc.nixosFlakeName.text = "${flakeName}";
hardware.logitech.wireless.enable = true;
hardware.logitech.wireless.enableGraphical = true;
services.fstrim.enable = true; # trims all the ssds on the machine every week
}

View File

@ -0,0 +1,27 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# packages.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:21 by tomoron #+# #+# #
# Updated: 2025/12/30 18:12:05 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
home-manager
vim
pciutils
usbutils
ntfs3g
cryptsetup
acpi
nss
];
}

View File

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

28
osConfigs/global/user.nix Normal file
View File

@ -0,0 +1,28 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# user.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
# Updated: 2026/01/13 16:32:42 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ ... }:
{
users.users.tom = {
isNormalUser = true;
extraGroups = [
"wheel" # can sudo
"docker" # can use docker
"libvirtd" # can use libvirtd
"dialout" # can use serial devices
"wireshark" # can use wireshask
];
initialPassword = "password";
};
}

View File

@ -1,34 +1,51 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# desktop.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:04 by tomoron #+# #+# #
# Updated: 2026/03/30 13:46:43 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, inputs, pkgs, ... }:
{
imports = [
../modules/game.nix
../modules/nvidia.nix
../modules/vboxHost.nix
];
boot.kernelParams = [ "nvidia-drm-modset=1" ];
environment.systemPackages = with pkgs; [
cudatoolkit
lm_sensors
lm_sensors # can be user (and global)
];
networking.hostName = "nixos-fixe";
hardware.cpu.intel.updateMicrocode = true;
mods.yubikey.pam.enable = true;
boot.kernelModules = [ "kvm-intel" "nvidia" ];
mods.displayManager.enable = true;
mods.nvidia.enable = true;
mods.gayming.enable = true;
hardware.nvidia = {
open = true;
programs.noisetorch.enable = true;
prime.nvidiaBusId = "PCI:1:0:0";
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;
programs.droidcam.enable = true;
boot.kernelPackages = pkgs.linuxPackages;
boot.supportedFilesystems = [ "zfs" ];
networking.hostId = "98e475dd";
}

View File

@ -1,8 +1,20 @@
{lib, inputs, pkgs, ... }:
# **************************************************************************** #
# #
# ::: :::::::: #
# iso.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:02 by tomoron #+# #+# #
# Updated: 2025/09/06 00:57:03 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{lib, ... }:
{
imports = [
../packages.nix
../global/packages.nix
];
users.users.tom = {
@ -13,13 +25,4 @@
services.getty.autologinUser = lib.mkForce "tom";
services.getty.helpLine = lib.mkForce "";
programs.hyprland.enable = true;
home-manager.extraSpecialArgs = { inherit inputs; inherit pkgs; isOs = true;};
home-manager.users.tom = {
imports = [
../../homeConfigs/home.nix
../../homeConfigs/hosts/iso.nix
];
};
}

View File

@ -1,63 +1,166 @@
{ pkgs, ... }:
# **************************************************************************** #
# #
# ::: :::::::: #
# laptop.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
# Updated: 2026/04/27 12:53:46 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ lib, config, pkgs, ... }:
{
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
services.udev.packages = [ pkgs.yubikey-personalization ];
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 = {
device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
allowDiscards = true;
#set up initial : https://wiki.nixos.org/wiki/Yubikey_based_Full_Disk_Encryption_(FDE)_on_NixOS
yubikey = {
twoFactor = false;
keyLength = 64;
saltLength = 32;
storage = {
device = "/dev/disk/by-uuid/BA5C-F216";
path = "/default";
};
};
};
boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup
programs.droidcam.enable = true;
services.displayManager.enable = true;
services.displayManager.ly.enable = true;
mods.displayManager.enable = true;
mods.yubikey.pam.enable = true;
networking.firewall.enable = false;
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;
specialisation.vfio_ready.configuration = {
mods.virtualHost.enable = true;
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
boot.kernelModules = [ "kvmfr" ];
boot.extraModprobeConfig = ''
options kvmfr static_size_mb=128
blacklist xpad
'';
virtualisation.libvirtd.qemu.verbatimConfig = ''
cgroup_device_acl = [
"/dev/kvmfr0", "/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm",
"/dev/rtc","/dev/hpet",
]
'';
services.udev.extraRules = ''
SUBSYSTEM=="kvmfr", OWNER="tom", GROUP="kvm", MODE="0660"
'';
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;
systemd.network.enable = true;
networking.useNetworkd = true;
environment.systemPackages = with pkgs; [
acpi
tlp
looking-glass-client
fprintd
];
programs.noisetorch.enable = true;
hardware.nvidia.prime.offload = {
enable = true;
enableOffloadCmd = true;
};
services.libinput.enable = true;
services.libinput.touchpad.clickMethod = "clickfinger";
services.libinput.touchpad.tapping = false;
services.postgresql.enable = true;
hardware.bluetooth.enable = true;
#power management
powerManagement.enable = true;
powerManagement.cpuFreqGovernor = "powersave";
services.auto-cpufreq.enable = true;
services.auto-cpufreq.settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
environment.systemPackages = with pkgs; [
acpi # can be user (global)
openvr
];
# programs.alvr.enable = true;
mods.touchpad.enable = true;
mods.powerSave = {
enable = true;
powahCommandAdditions = [
"supergfxctl -m Hybrid"
"if [ $# -gt 0 ] && [[ \"$1\" == \"moar\" ]] ; then asusctl profile set Performance; fi"
];
tagueuleCommandAdditions = [
"echo \"can't safely turn off the GPU\""
"asusctl profile set Quiet"
];
cpuMaxFreq = 4465261;
};
services.asusd = {
enable = true;
# enableUserService = true;
};
services.supergfxd.enable = true;
services.supergfxd.settings = {
mode = lib.mkDefault "Integrated";
vfio_enable = true;
vfio_save = true;
always_reboot = false;
no_logind = true;
logout_timeout_s = 180;
hotplug_type = "None";
};
programs.wireshark.enable = true;
programs.wireshark.usbmon.enable = true;
mods.docker.enable = true;
mods.gayming.enable = true;
mods.nvidia.enable = true;
mods.nvidia.prime = true;
services.usbmuxd.enable = true; #sometimes hangs when shutting down
services.avahi.enable = true;
services.pipewire = {
raopOpenFirewall = true;
extraConfig.pipewire = {
"10-airplay"."context.modules" = [
{ name = "libpipewire-module-raop-discover"; }
];
};
};
services.upower.enable = true;
services.udev.packages = [ pkgs.yubikey-personalization ];
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";
};
};
# boot.plymouth = {
# enable = true;
# theme = "ycontre-glow";
# themePackages = [
# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux
# ];
# };
}

View File

@ -1,98 +1,123 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# server.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
# Updated: 2026/05/12 15:05:44 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, inputs, pkgs, ... }:
{ config, pkgs, ... }:
{
imports = [
../modules/game.nix
../modules/vboxHost.nix
../modules/nvidia.nix
let
ports = [
22 #git ssh
80 443 #http server
5000 #frigate
8083 137 138 139 445 548 3702 5357 #prob some samba shit
24454 #minecraft voice chat
25565 # minecraft server
9091 # transmission web interface
];
portRanges = [
{from = 47950; to = 49000;} #moonlight (wolf)
];
in
{
boot.kernelPackages = pkgs.linuxPackages;
boot.extraModulePackages = [ config.boot.kernelPackages.gasket ];
boot.extraModulePackages = [
config.boot.kernelPackages.gasket #driver for google coral edge tpu
];
networking.hostName = "server";
services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false;
services.openssh.ports = [ 1880 ];
services.xserver.videoDrivers = [ "nvidia" ];
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 = ''
options amdgpu virtual_display=1
# create dummy display to be able to start x11
'';
environment.systemPackages = with pkgs; [
zfs
nvidia-docker
libnvidia-container
screen
];
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.forceImportRoot = false;
boot.zfs.extraPools = [ "raid_vol" ];
# services.cron.enable = false;
# services.cron.systemCronJobs = [
# # m h dom m dow
# # https://crontab.guru <3
# ];
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})";
};
};
networking.firewall.allowedTCPPorts = [
22 #git ssh
80 443 #http server
5000 #frigate
8083 137 138 139 445 548 3702 5357 #prob some samba shit
24454 #minecraft voice chat
25565 # minecraft server
];
networking.firewall.allowedUDPPorts = [
22 #git ssh
80 443 #http server
5000 #frigate
8083 137 138 139 445 548 3702 5357 #prob some samba shit
24454 #minecraft voice chat
25565 # minecraft server
];
services.sanoid.enable = true;
services.sanoid.datasets."raid_vol" = {
daily = 31;
hourly = 24;
monthly = 12;
autosnap = true;
autoprune = true;
};
networking.firewall.allowedUDPPortRanges = [
{from = 47950; to = 49000;}
];
networking.firewall.allowedTCPPortRanges = [
{from = 47950; to = 49000;}
environment.systemPackages = with pkgs; [
zfs
screen #can be user (and global)
];
networking = {
hostName = "server";
interfaces.eth0.ipv4.addresses = [ {
address = "192.168.1.24";
prefixLength = 24;
} ];
defaultGateway.address = "192.168.1.254";
defaultGateway.interface = "eth0";
nameservers = ["8.8.8.8" "8.8.4.4" "1.1.1.1"];
hostId = "68290da7";
};
virtualisation.docker = {
liveRestore = false;
enableOnBoot = true;
package = inputs.pkgs-docker-2750.legacyPackages."x86_64-linux".docker;
# daemon.settings = {
# runtimes.nvidia.path = "${pkgs.nvidia-docker}/bin/nvidia-container-runtime";
# exec-opts = ["native.cgroupdriver=cgroupfs"];
# };
prefixLength = 24;
}
];
defaultGateway.address = "192.168.1.254";
defaultGateway.interface = "eth0";
nameservers = ["8.8.8.8" "8.8.4.4" "1.1.1.1"];
hostId = "68290da7";
firewall.allowedTCPPorts = ports;
firewall.allowedUDPPorts = ports;
firewall.allowedUDPPortRanges = portRanges;
firewall.allowedTCPPortRanges = portRanges;
};
services.fail2ban.enable = true;
services.fail2ban.bantime = "2h";
services.fail2ban.bantime = "5h";
hardware.nvidia-container-toolkit.enable = true;
mods.nvidia.enable = true;
mods.nvidia.beta = true;
mods.nvidia.containerToolkit = true;
hardware.nvidia = {
open = true;
# prime.nvidiaBusId = "PCI:1:0:0";
# prime.amdgpuBusId = "PCI:13:0:0";
# prime.sync.enable = true;
# modesetting.enable = true;
mods.docker = {
enable = true;
boot = true;
};
}

View File

@ -1,4 +1,16 @@
{ config, lib, inputs, pkgs, ... }:
# **************************************************************************** #
# #
# ::: :::::::: #
# vbox.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:56:42 by tomoron #+# #+# #
# Updated: 2025/09/06 00:56:52 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ ... }:
{
virtualisation.virtualbox.guest.enable = true;

View File

@ -0,0 +1,36 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# displayManager.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:16 by tomoron #+# #+# #
# Updated: 2025/11/17 14:32:13 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{config, lib, ... }:
{
options.mods.displayManager.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable the ly display manager";
};
config = lib.mkIf config.mods.displayManager.enable {
services.displayManager.enable = true;
services.displayManager.ly.enable = true;
services.displayManager.ly.settings =
{
animation = "gameoflife";
min_refresh_delta = 50;
bigclock = "en";
sleep_cmd = "systemctl sleep";
asterisk = "A";
auth_fails= 3;
};
};
}

View File

@ -0,0 +1,36 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# docker.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:10:58 by tomoron #+# #+# #
# Updated: 2025/09/06 01:06:23 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, ... }:
{
options.mods.docker = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable docker";
};
boot = lib.mkOption {
type = lib.types.bool;
default = false;
description = "start docker with the system (if false, trigered by docker.socket)";
};
};
config = lib.mkIf config.mods.docker.enable {
virtualisation.docker = {
enable = true;
liveRestore = false;
enableOnBoot = config.mods.docker.boot;
};
};
}

View File

@ -1,14 +1,27 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# game.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
# Updated: 2025/10/27 00:50:29 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{config, lib, ... }:
{
options.mods.gayming.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "enable games on the host";
default = false;
description = "enable steam and other";
};
config = lib.mkIf config.mods.gayming.enable {
programs.steam.enable = true;
programs.steam.protontricks.enable = true;
programs.gamescope.enable = true;
};
}

View File

@ -1,19 +1,65 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# nvidia.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
# Updated: 2025/12/23 18:42:01 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, inputs, pkgs, ... }:
{ config, lib, ... }:
{
options.mods.nvidia-graphics.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "enable my nvidia graphics settings";
options.mods.nvidia = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable nvidia drivers";
};
beta = lib.mkOption {
type = lib.types.bool;
default = false;
description = "use beta version of the drivers";
};
open = lib.mkOption {
type = lib.types.bool;
default = true;
description = "use open version of the drivers (on newer gpu)";
};
containerToolkit = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable the nvidia container toolkit (gpu in docker)";
};
prime = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable nvidia prime offload (saves battery). prime ?";
};
};
config = lib.mkIf config.mods.nvidia-graphics.enable {
config = lib.mkIf config.mods.nvidia.enable {
hardware.graphics = {
enable = true;
enable32Bit = true;
};
hardware.nvidia = {
package = lib.mkIf config.mods.nvidia.beta config.boot.kernelPackages.nvidiaPackages.beta;
open = config.mods.nvidia.open;
prime.offload = lib.mkIf config.mods.nvidia.prime {
enable = true;
enableOffloadCmd = true;
};
};
hardware.nvidia-container-toolkit.enable = config.mods.nvidia.containerToolkit;
services.xserver.videoDrivers = ["nvidia"];
};

View File

@ -0,0 +1,125 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# powerSave.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:45:04 by tomoron #+# #+# #
# Updated: 2025/09/23 04:25:20 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, pkgs, ... }:
{
options.mods.powerSave = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable services and settings to save power";
};
powahCommandAdditions = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "commands the `powah` script runs";
};
tagueuleCommandAdditions = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "commands the `tagueule` script runs";
};
pStateCompatible = lib.mkOption {
type = lib.types.bool;
default = false;
description = "is the cpu p-state compatible. only most of intel cpu's";
};
cpuMaxFreq = lib.mkOption {
type = lib.types.ints.positive;
default = 5000000;
description = "the max frequency of the cpu (in KHz)";
};
governorPowers = {
ac.min = lib.mkOption {
type = lib.types.ints.unsigned;
default = 30;
description = "min frequency on AC";
};
ac.max = lib.mkOption {
type = lib.types.ints.unsigned;
default = 100;
description = "max frequency on AC";
};
bat.min = lib.mkOption {
type = lib.types.ints.unsigned;
default = 0;
description = "min frequency on BAT";
};
bat.max = lib.mkOption {
type = lib.types.ints.unsigned;
default = 40;
description = "max frequency on BAT";
};
};
};
config = lib.mkIf config.mods.powerSave.enable {
services.tlp = {
enable = true;
settings = {
TLP_DEFAULT_MODE = "BAT";
TLP_PERSISTENT_DEFAULT = 1;
CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
}
// lib.optionalAttrs (!config.mods.powerSave.pStateCompatible) (with config.mods.powerSave; {
CPU_SCALING_MIN_FREQ_ON_AC = (cpuMaxFreq * governorPowers.ac.min) / 100;
CPU_SCALING_MAX_FREQ_ON_AC = (cpuMaxFreq * governorPowers.ac.max) / 100;
CPU_SCALING_MIN_FREQ_ON_BAT = (cpuMaxFreq * governorPowers.bat.min) / 100;
CPU_SCALING_MAX_FREQ_ON_BAT = (cpuMaxFreq * governorPowers.bat.max) / 100;
})
// lib.optionalAttrs config.mods.powerSave.pStateCompatible (with config.mods.powerSave.governorPowers; {
CPU_MIN_PERF_ON_AC = ac.min;
CPU_MAX_PERF_ON_AC = ac.max;
CPU_MIN_PERF_ON_BAT = bat.min;
CPU_MAX_PERF_ON_BAT = bat.max;
});
};
environment.systemPackages = [
(pkgs.writeShellApplication {
name = "powah";
runtimeInputs = with pkgs; [ tlp ];
text = ''
if [[ $EUID -ne 0 ]]; then
exec sudo bash "$0" "$@"
fi
tlp ac
'' + lib.concatStringsSep "\n" config.mods.powerSave.powahCommandAdditions;
})
(pkgs.writeShellApplication {
name = "tagueule";
runtimeInputs = with pkgs; [ tlp ];
text = ''
if [[ $EUID -ne 0 ]]; then
exec sudo bash "$0" "$@"
fi
tlp bat
'' + lib.concatStringsSep "\n" config.mods.powerSave.tagueuleCommandAdditions;
})
];
powerManagement.enable = true;
mods.nvidia.prime = true;
};
}

View File

@ -0,0 +1,29 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# touchpad.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:39:41 by tomoron #+# #+# #
# Updated: 2025/09/06 01:02:41 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, ... }:
{
options.mods.touchpad = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable touchpad support";
};
};
config = lib.mkIf config.mods.touchpad.enable {
services.libinput.enable = true;
services.libinput.touchpad.clickMethod = "clickfinger";
services.libinput.touchpad.tapping = false;
};
}

View File

@ -1,14 +0,0 @@
{ config, lib, inputs, pkgs, ... }:
{
options.mods.virtualbox.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "enable virtualbox as host";
};
config = lib.mkIf config.mods.virtualbox.enable {
virtualisation.virtualbox.host.enable = true;
users.users.tom.extraGroups = [ "vboxusers" ];
};
}

View File

@ -0,0 +1,31 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# virtualHost.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
# Updated: 2025/09/06 01:03:07 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, pkgs, ... }:
{
options.mods.virtualHost.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable virtual manager as host";
};
config = lib.mkIf config.mods.virtualHost.enable {
programs.virt-manager.enable = true;
virtualisation.libvirtd.enable = true;
virtualisation.libvirtd.qemu.runAsRoot = true;
virtualisation.libvirtd.qemu.vhostUserPackages = [ pkgs.virtiofsd ];
virtualisation.spiceUSBRedirection.enable = true;
environment.systemPackages = with pkgs; [ spice-gtk ];
};
}

View File

@ -1,20 +1,32 @@
{ config, lib, inputs, pkgs, ... }:
# **************************************************************************** #
# #
# ::: :::::::: #
# yubikey.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:47:20 by tomoron #+# #+# #
# Updated: 2025/09/06 01:03:54 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, pkgs, ... }:
{
options.mods.yubikey = {
options.mods.yubikey.pam = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "enable yubikey";
};
default = false;
description = "enable yubikey pam module\nuse `ykpamcfg` to configure";
};
id = lib.mkOption {
type = lib.str;
description = "yubikey id";
};
id = lib.mkOption {
type = lib.str;
description = "id of the yubikey written under connector";
};
};
config = lib.mkIf config.mods.yubikey.enable {
config = lib.mkIf config.mods.yubikey.pam.enable {
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
@ -22,8 +34,12 @@
security.pam.yubico = {
enable = true;
id = config.mods.yubikey.id;
id = config.mods.yubikey.pam.id;
mode = "challenge-response";
};
environment.systemPackages = with pkgs; [
yubico-pam
];
};
}

24
osConfigs/os.nix Normal file
View File

@ -0,0 +1,24 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# os.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:56:36 by tomoron #+# #+# #
# Updated: 2025/09/06 00:56:37 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ lib, flakeName, ... }:
{
imports = lib.concatLists [
[ ./hardware-configuration.nix ]
(lib.fileset.toList ./global)
(lib.fileset.toList ./modules)
];
system.stateVersion = "25.05";
environment.etc.nixosFlakeName.text = "${flakeName}";
}

View File

@ -1,29 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
home-manager
vim
pciutils
pigz
htop
gnumake
git
neofetch
neovim
ntfs3g
clang
ninja
gdb
valgrind
wget
cmake
usbutils
man-pages
stress
ffmpeg
cryptsetup
acpi
dconf
];
}

23
secrets/secrets.yaml Normal file
View File

@ -0,0 +1,23 @@
#ENC[AES256_GCM,data:1NcFm2XqZzmSSlr8wH4aXHDBhf+lOaZ/gUeK2T/U/hIBbqtfKtw=,iv:yS5iogRp6e3We/7wZnGy0XJzqLVfRVKlDhUs+tamcJ0=,tag:+z/qqF9n6/hQfv9aWXkCDQ==,type:comment]
nextcloud_fuse:
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:
age:
- recipient: age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPRXNiNG9vRzJraERMSytl
Qkc4SVluRWQ1bE5Dc2FpaHQ2WGkxeHF2TWdjCml3OXpockc0NFJ6dDJTVzNjLzNU
cWxHTzhBVno1TlVDaXplR2tuN2wzN0kKLS0tIG5pWmcxYlhlb1lCN3RqNG5hRFJS
clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa
DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-04-09T09:44:50Z"
mac: ENC[AES256_GCM,data:1TWoO9xeAyfT5kheTDLBqqeqpSpc5begsXN/FIjwK01xJJrgFfQg+93OZcH989z6WGumvjH+JuY98y9xDfur6mc2sopbLX8/Qbnfl4D2Aq1ya42b5/2cHlFhGI8bBOiXr6qA2sixQ/E1MIklTMxN+Z1fKbT5Mp7cfoPlG8YXhbI=,iv:DB1opS2DEr/WM1yK5SJf8NtoApmzJq5mgMoMlOoLli4=,tag:ZhiLFFCZF+fdfai0djwjYw==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0