Compare commits

..

39 Commits

Author SHA1 Message Date
7deb3fe8d9 add autoupdate (test probably broken)
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m28s
2026-04-23 17:24:13 +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
46 changed files with 857 additions and 264 deletions

View File

@ -0,0 +1,18 @@
name: update the nix flake lock automatically every week
run-name: update
on:
schedule:
- cron: "0 4 * * 1"
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

View File

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

View File

@ -1,10 +1,15 @@
HOST ?= $(file < /etc/nixosFlakeName)
THREADS ?= $(shell nproc)
FLAKE ?= .
MODE ?= boot
MODE ?= switch
FLAGS = --impure --cores $(THREADS) -j $(THREADS)
ifdef OFFLINE
FLAGS += --option binary-caches ''
endif
all: os home
update:
@ -13,6 +18,15 @@ update:
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)
@ -27,5 +41,5 @@ cleanup :
nix-env --delete-generations +1
sudo nix-collect-garbage -d
optimise :
optimize :
nix-store --optimize -vv

42
flake.lock generated
View File

@ -5,11 +5,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1756741629,
"narHash": "sha256-n+mgH3NoQf8d1jd8cDp/9Mt++hhyuE3LO3ZAxzjWRZw=",
"lastModified": 1775994227,
"narHash": "sha256-4VKeWtl9dEubrgpy9fSXkXbjBZlNXPNlQQM5l1ppHv4=",
"owner": "catppuccin",
"repo": "nix",
"rev": "cd22197da06df1eb6fabdaa2fc22c170c4f67382",
"rev": "d0a9a21ed8e235956a768fc624242ec9a3e15575",
"type": "github"
},
"original": {
@ -26,11 +26,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1756958609,
"narHash": "sha256-1nRGsnPZjOubRTsXEsnJqWlLsgo/Xq7tN7PWK57dFDQ=",
"lastModified": 1776139376,
"narHash": "sha256-rBykvCL5GRT6VmiY39XnxAR10cohBsLeAENP0+3JM/0=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "b2a4e1bc62946403f82594ab9550ac13a1afa4df",
"rev": "ccfaa2303117e22752bda4e1a1bb07d17f38ea2d",
"type": "gitlab"
},
"original": {
@ -47,11 +47,11 @@
]
},
"locked": {
"lastModified": 1756954499,
"narHash": "sha256-Pg4xBHzvzNY8l9x/rLWoJMnIR8ebG+xeU+IyqThIkqU=",
"lastModified": 1776136611,
"narHash": "sha256-b2pu3Pb28W0bJzQVP3OJHZC5+dgOOeqjlli2WVakKEU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ed1a98c375450dfccf427adacd2bfd1a7b22eb25",
"rev": "8a423e444b17dde406097328604a64fc7429e34e",
"type": "github"
},
"original": {
@ -62,11 +62,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1756925795,
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
"lastModified": 1775490113,
"narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
"rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
"type": "github"
},
"original": {
@ -78,11 +78,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1756266583,
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
"lastModified": 1775423009,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
"type": "github"
},
"original": {
@ -94,11 +94,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1756787288,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
"lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github"
},
"original": {
@ -125,11 +125,11 @@
]
},
"locked": {
"lastModified": 1754988908,
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
"lastModified": 1776119890,
"narHash": "sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
"rev": "d4971dd58c6627bfee52a1ad4237637c0a2fb0cd",
"type": "github"
},
"original": {

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/10/17 18:15:24 by tomoron #+# #+# #
# Updated: 2025/09/06 00:58:57 by tomoron ### ########.fr #
# Updated: 2025/12/16 19:01:21 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -46,14 +46,19 @@
osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; flakeName = flakeName; };
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
];
};
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
@ -85,8 +90,8 @@
homeConfigurations = {
vbox = homeConfig { flakeName = "vbox"; };
ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/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://nc.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,16 +6,24 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
# Updated: 2025/09/05 19:55:21 by tomoron ### ########.fr #
# Updated: 2025/09/24 02:08:41 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{lib, pkgs, config, 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}";
@ -23,95 +31,11 @@
home.stateVersion = "24.05";
sops.defaultSopsFile = ../secrets/secrets.yaml;
sops.age.keyFile = "${homeDir}/.config/sops/age/keys.txt";
sops.secrets."nextcloud_fuse/password" = {};
programs.rclone.enable = true;
programs.rclone.remotes.nextcloud = {
config = {
type = "webdav";
url = "https://nc.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";
};
};
sops = lib.mkIf configSops{
defaultSopsFile = ../secrets/secrets.yaml;
age.keyFile = "${homeDir}/.config/sops/age/keys.txt";
};
# 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;
};
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_test.png;
".config/pc.jpg".source = lib.mkDefault utils/pc.jpg;
".config/rofi/config.rasi".text = "@theme \"rounded-nord-dark.rasi\"";
".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;
qt.style.name = "kvantum";
catppuccin.kvantum.apply = true;
catppuccin = {
enable = true;
flavor = "mocha";
dunst.enable = true;
dunst.flavor="frappe";
};
}

View File

@ -4,19 +4,19 @@
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"
];

View File

@ -27,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"
@ -39,7 +44,8 @@
blender
wireshark
localsend
impala
];
#mods.sync.syncedAdditions = ["VirtualBox VMs"];
services.mpris-proxy.enable = true;
}

View File

@ -13,6 +13,8 @@
mangohud
moonlight-qt
prismlauncher
r2modman
];
};
}

View File

@ -11,18 +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;
help.autocorrect = 1;
};
aliases = {
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
back = "reset HEAD~";
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,34 +2,153 @@
{
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
rust-analyzer
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 ai
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent! loadview
set tabstop=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>
@ -56,41 +175,49 @@
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 = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
ref = "master";

View File

@ -8,12 +8,16 @@
};
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,"
@ -21,6 +25,7 @@
"$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"
@ -91,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";
@ -144,12 +149,12 @@
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
#blur = {
# enabled = true;
# size = 3;
# passes = 1;
# vibrancy = 0.1696;
#};
};
general = {
@ -163,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/09 22:01:56 by tomoron #+# #+# #
# Updated: 2025/09/05 19:28:45 by tomoron ### ########.fr #
# Updated: 2026/03/27 12:00:06 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -19,7 +19,7 @@
htop
gnumake
git
neofetch
fastfetch
clang
ninja
gdb
@ -34,7 +34,6 @@
unison
brightnessctl
playerctl
python3
vlc
nix-index
yubikey-manager
@ -45,5 +44,8 @@
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

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/05 23:37:58 by tomoron #+# #+# #
# Updated: 2025/09/06 00:56:38 by tomoron ### ########.fr #
# Updated: 2026/04/03 11:46:09 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -22,6 +22,27 @@
timeout = 1;
};
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
];
}

View File

@ -0,0 +1,12 @@
{ ... }:
let
nix-alien-pkgs = import (
builtins.fetchTarball "https://github.com/thiagokokada/nix-alien/tarball/master"
) { };
in
{
environment.systemPackages = with nix-alien-pkgs; [
nix-alien
];
}

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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.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> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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
cryptsetup
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> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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";
hardware.cpu.intel.updateMicrocode = true;
mods.yubikey.pam.enable = true;
boot.kernelModules = [ "kvm-intel" "nvidia" ];
mods.displayManager.enable = true;
hardware.nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.beta;
open = true;
mods.nvidia.enable = true;
mods.gayming.enable = true;
prime.nvidiaBusId = "PCI:1:0:0";
prime.intelBusId = "PCI:0:2:0";
prime.sync.enable = true;
programs.noisetorch.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

@ -6,16 +6,16 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
# Updated: 2025/09/06 01:11:42 by tomoron ### ########.fr #
# Updated: 2026/04/10 20:07:49 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, pkgs, ... }:
{ lib, config, pkgs, ... }:
{
boot.initrd.luks.yubikeySupport = true;
services.udev.packages = [ pkgs.yubikey-personalization ];
boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
boot.initrd.luks.yubikeySupport = true;
boot.initrd.luks.devices.cryptroot = {
device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
allowDiscards = true;
@ -32,18 +32,22 @@
};
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup
programs.droidcam.enable = true;
mods.displayManager.enable = true;
mods.virtualHost.enable = false;
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 = {
boot.kernel.sysctl."vm.nr_hugepages" = 5120;
mods.virtualHost.enable = true;
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
boot.kernelModules = [ "kvmfr" ];
boot.extraModprobeConfig = ''
@ -56,8 +60,6 @@
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm",
"/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 = ''
@ -66,10 +68,20 @@
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;
programs.noisetorch.enable = true;
services.postgresql.enable = true;
hardware.bluetooth.enable = true;
environment.systemPackages = with pkgs; [
@ -79,16 +91,29 @@
mods.touchpad.enable = true;
mods.powerSave.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;
# enableUserService = true;
};
services.supergfxd.enable = true;
services.supergfxd.settings = {
mode = "Integrated";
mode = lib.mkDefault "Integrated";
vfio_enable = true;
vfio_save = true;
always_reboot = false;
@ -105,13 +130,31 @@
mods.nvidia.enable = true;
mods.nvidia.prime = true;
# services.usbmuxd.enable = true; #hangs when shutting down
# boot.plymouth = {
# enable = true;
# theme = "ycontre-glow";
# themePackages = [
# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux
# ];
# };
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.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> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
# Updated: 2025/09/06 01:26:26 by tomoron ### ########.fr #
# Updated: 2026/04/09 13:21:07 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -20,6 +20,7 @@ let
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)
@ -31,16 +32,57 @@ in
config.boot.kernelPackages.gasket #driver for google coral edge tpu
];
services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false;
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 = ''
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" ];
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; [
zfs
screen #can be user (and global)
@ -68,6 +110,10 @@ in
services.fail2ban.enable = true;
services.fail2ban.bantime = "5h";
mods.nvidia.enable = true;
mods.nvidia.beta = true;
mods.nvidia.containerToolkit = true;
mods.docker = {
enable = true;
boot = true;

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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.settings =
{
animation = "doom";
animation = "gameoflife";
min_refresh_delta = 50;
bigclock = "en";
sleep_cmd = "systemctl sleep";

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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 {
programs.steam.enable = true;
programs.steam.protontricks.enable = true;
programs.gamescope.enable = true;
};
}

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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 {
type = lib.types.bool;
default = true;
description = "use beta version of the drivers";
description = "use open version of the drivers (on newer gpu)";
};
containerToolkit = lib.mkOption {
type = lib.types.bool;
@ -38,7 +38,7 @@
prime = lib.mkOption {
type = lib.types.bool;
default = false;
description = "enable nvidia prime offload (saves battery)";
description = "enable nvidia prime offload (saves battery). prime ?";
};
};

View File

@ -6,11 +6,11 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:45:04 by tomoron #+# #+# #
# Updated: 2025/09/06 01:02:29 by tomoron ### ########.fr #
# Updated: 2025/09/23 04:25:20 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ config, lib, ... }:
{ config, lib, pkgs, ... }:
{
options.mods.powerSave = {
@ -19,13 +19,107 @@
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;
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;
powerManagement.cpuFreqGovernor = "powersave";
services.upower.enable = true;
mods.nvidia.prime = true;
};
}

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]
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
@ -12,7 +17,7 @@ sops:
clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa
DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-09-05T17:58:05Z"
mac: ENC[AES256_GCM,data:96G7VqaG8A46tQ1L7I2asiYtNZF7K3Wf+SzbwPrNV8zQio2jInawtD4WSzHmLs4Nv7M1TBHug/ho8mfYq6auXgpathiSzvj0Tzs/IEKXiTYa86tM3szwAepavMYWOl6OYJ7S39ku6BOMo3qC2BK/gpT5iy4c84ashn2wFd1n41A=,iv:6TShIsqnhCf/3uoAaz/R+Cwr2HrorROOXodXluTKM8M=,tag:BA9rQ73scKgetW3orV0HdQ==,type:str]
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.10.2
version: 3.11.0