Compare commits

...

17 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
24 changed files with 369 additions and 156 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: on:
push: push:
branches: branches:
- 'master' - 'iso'
jobs: jobs:
test: test:

View File

@ -1,10 +1,15 @@
HOST ?= $(file < /etc/nixosFlakeName) HOST ?= $(file < /etc/nixosFlakeName)
THREADS ?= $(shell nproc) THREADS ?= $(shell nproc)
FLAKE ?= . FLAKE ?= .
MODE ?= boot MODE ?= switch
FLAGS = --impure --cores $(THREADS) -j $(THREADS) FLAGS = --impure --cores $(THREADS) -j $(THREADS)
ifdef OFFLINE
FLAGS += --option binary-caches ''
endif
all: os home all: os home
update: update:
@ -13,6 +18,15 @@ update:
os: os:
sudo nixos-rebuild $(MODE) $(FLAGS) --flake $(FLAKE)#$(HOST) sudo nixos-rebuild $(MODE) $(FLAGS) --flake $(FLAKE)#$(HOST)
vm:
sudo nixos-rebuild build-vm $(FLAGS) --flake $(FLAKE)#$(HOST)
./result/bin/*
rm ./result
rm ./*.qcow2
hoem : home
home : home :
home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST) home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST)

42
flake.lock generated
View File

@ -5,11 +5,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1768575137, "lastModified": 1775994227,
"narHash": "sha256-e0SsKnkSnq+UwZNS9ZyPJjTjabzq9TRc1hqeDnvOF1Q=", "narHash": "sha256-4VKeWtl9dEubrgpy9fSXkXbjBZlNXPNlQQM5l1ppHv4=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "48e67b4ad22072f1ae30b0ed8e1cb020cf06c611", "rev": "d0a9a21ed8e235956a768fc624242ec9a3e15575",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -26,11 +26,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1768622624, "lastModified": 1776139376,
"narHash": "sha256-Em6PP667PeXbEjidbV2LnNwmUYohbrSFvVPLYLUDHms=", "narHash": "sha256-rBykvCL5GRT6VmiY39XnxAR10cohBsLeAENP0+3JM/0=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "8061c6d9199dc6cc0727d4241959eea28f2fa0a6", "rev": "ccfaa2303117e22752bda4e1a1bb07d17f38ea2d",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -47,11 +47,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768598210, "lastModified": 1776136611,
"narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=", "narHash": "sha256-b2pu3Pb28W0bJzQVP3OJHZC5+dgOOeqjlli2WVakKEU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c47b2cc64a629f8e075de52e4742de688f930dc6", "rev": "8a423e444b17dde406097328604a64fc7429e34e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -62,11 +62,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1768584846, "lastModified": 1775490113,
"narHash": "sha256-IRPmIOV2tPwxbhP/I9M5AmwhTC0lMPtoPStC+8T6xl0=", "narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "cce68f4a54fa4e3d633358364477f5cc1d782440", "rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -78,11 +78,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1768305791, "lastModified": 1775423009,
"narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=", "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e", "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -94,11 +94,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1768564909, "lastModified": 1775710090,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -125,11 +125,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768481291, "lastModified": 1776119890,
"narHash": "sha256-NjKtkJraCZEnLHAJxLTI+BfdU//9coAz9p5TqveZwPU=", "narHash": "sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "e085e303dfcce21adcb5fec535d65aacb066f101", "rev": "d4971dd58c6627bfee52a1ad4237637c0a2fb0cd",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -90,7 +90,7 @@
homeConfigurations = { homeConfigurations = {
vbox = homeConfig { flakeName = "vbox";}; default = homeConfig { flakeName = "default";};
ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron"; sops = false;}; ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron"; sops = false;};
laptop = homeConfig { flakeName = "laptop"; }; laptop = homeConfig { flakeName = "laptop"; };
desktop = homeConfig { flakeName = "desktop"; }; desktop = homeConfig { flakeName = "desktop"; };

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -28,8 +28,8 @@
", XF86Launch4, exec, pkill activate-linux" ", XF86Launch4, exec, pkill activate-linux"
]; ];
bindl = [ bindl = [
",switch:off:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, 1920x1080@120, 0x0, 1\"" # ",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\"" # ",switch:on:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, disable\""
]; ];
monitor= [ monitor= [
@ -44,6 +44,8 @@
blender blender
wireshark wireshark
localsend localsend
impala
]; ];
services.mpris-proxy.enable = true;
} }

View File

@ -11,6 +11,7 @@
programs.git = { programs.git = {
enable = true; enable = true;
lfs.enable = true; lfs.enable = true;
signing.format = "openpgp";
settings = { settings = {
user.email = "tomoron@student.42angouleme.fr"; user.email = "tomoron@student.42angouleme.fr";
user.name = "tomoron"; user.name = "tomoron";
@ -19,8 +20,10 @@
push.autoSetupRemote = true; push.autoSetupRemote = true;
rerere.enabled = true; rerere.enabled = true;
help.autocorrect = 1; help.autocorrect = 1;
user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD"; user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD";
commit.gpgsign = true; commit.gpgsign = true;
alias = { alias = {
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f"; fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
back = "reset HEAD~"; back = "reset HEAD~";

View File

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

View File

@ -18,10 +18,128 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
clang-tools clang-tools
nixd nixd
rust-analyzer
nodejs_24 nodejs_24
glsl_analyzer glsl_analyzer
(pkgs.python3.withPackages (ps: with ps; [
python-lsp-server
pylsp-mypy
python-lsp-ruff
pycodestyle
]))
]; ];
# programs.neovim.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 = '' programs.neovim.extraConfig = ''
set number set number
set ai set ai
@ -62,13 +180,20 @@
Plug 'lambdalisue/fern-renderer-nerdfont.vim' Plug 'lambdalisue/fern-renderer-nerdfont.vim'
Plug 'lambdalisue/fern-git-status.vim' Plug 'lambdalisue/fern-git-status.vim'
Plug 'lambdalisue/fern.vim' Plug 'lambdalisue/fern.vim'
Plug 'hrsh7th/nvim-cmp'
Plug 'ThePrimeagen/99'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/cmp-cmdline'
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-vsnip'
Plug 'hrsh7th/vim-vsnip'
call plug#end() call plug#end()
colorscheme catppuccin-mocha colorscheme catppuccin-mocha
lua require'lspconfig'.clangd.setup{}
lua require'lspconfig'.nixd.setup{}
lua require'lspconfig'.glsl_analyzer.setup{}
set signcolumn=auto set signcolumn=auto
nnoremap <leader>ff <cmd>Telescope find_files<cr> nnoremap <leader>ff <cmd>Telescope find_files<cr>
@ -80,18 +205,19 @@
let g:user42 = 'tomoron' let g:user42 = 'tomoron'
let g:mail42 = 'tomoron@student.42angouleme.fr' let g:mail42 = 'tomoron@student.42angouleme.fr'
let g:fern#renderer = "nerdfont" let g:fern#renderer = "nerdfont"
''; '';
home.file = { home.file = {
#install plug.vim #install plug.vim
".local/share/nvim/site/autoload/plug.vim".source = "${builtins.fetchGit { ".local/share/nvim/site/autoload/plug.vim".source = "${fetchGit {
url = "https://github.com/junegunn/vim-plug"; url = "https://github.com/junegunn/vim-plug";
rev = "d80f495fabff8446972b8695ba251ca636a047b0"; rev = "d80f495fabff8446972b8695ba251ca636a047b0";
ref = "master"; ref = "master";
}}/plug.vim"; }}/plug.vim";
#install stdheader 42 #install stdheader 42
".config/nvim/plugin/stdheader.vim".source = "${builtins.fetchGit { ".config/nvim/plugin/stdheader.vim".source = "${fetchGit {
url = "https://github.com/42Paris/42header"; url = "https://github.com/42Paris/42header";
rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7"; rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
ref = "master"; ref = "master";

View File

@ -96,12 +96,12 @@
"$mainMod, o, exec, playerctl play-pause" "$mainMod, o, exec, playerctl play-pause"
]; ];
windowrulev2 = [ # windowrulev2 = [
#ignore maximize requests # #ignore maximize requests
"suppressevent maximize, class:.*" # "suppressevent maximize, class:.*"
#fix dragging issues with xwayland # #fix dragging issues with xwayland
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" # "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
]; # ];
input = { input = {
kb_layout = "fr"; kb_layout = "fr";

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# # # Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
# Updated: 2025/11/22 22:07:00 by tomoron ### ########.fr # # Updated: 2026/03/27 12:00:06 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -19,7 +19,7 @@
htop htop
gnumake gnumake
git git
neofetch fastfetch
clang clang
ninja ninja
gdb gdb
@ -34,7 +34,6 @@
unison unison
brightnessctl brightnessctl
playerctl playerctl
python3
vlc vlc
nix-index nix-index
yubikey-manager yubikey-manager

View File

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

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/12/30 20:37:07 by tomoron #+# #+# # # Created: 2025/12/30 20:37:07 by tomoron #+# #+# #
# Updated: 2025/12/31 01:13:53 by tomoron ### ########.fr # # Updated: 2026/02/21 13:54:43 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -15,7 +15,6 @@
{ {
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [ programs.nix-ld.libraries = with pkgs; [
# List by default
zlib zlib
zstd zstd
stdenv.cc.cc stdenv.cc.cc
@ -31,28 +30,24 @@
xz xz
systemd systemd
# My own additions libxcomposite
xorg.libXcomposite libxtst
xorg.libXtst libxrandr
xorg.libXrandr libxext
xorg.libXext libx11
xorg.libX11 libxfixes
xorg.libXfixes
libGL libGL
libva libva
pipewire pipewire
xorg.libxcb libxcb
xorg.libXdamage libxdamage
xorg.libxshmfence libxshmfence
xorg.libXxf86vm libxxf86vm
libelf libelf
# Required
glib glib
gtk2 gtk2
# Inspired by steam
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/steam/package.nix#L36-L85
networkmanager networkmanager
vulkan-loader vulkan-loader
libgbm libgbm
@ -61,16 +56,14 @@
coreutils coreutils
pciutils pciutils
zenity zenity
# glibc_multi.bin # Seems to cause issue in ARM
# # Without these it silently fails libxinerama
xorg.libXinerama libxcursor
xorg.libXcursor libxrender
xorg.libXrender libxscrnsaver
xorg.libXScrnSaver libxi
xorg.libXi libsm
xorg.libSM libice
xorg.libICE
gnome2.GConf gnome2.GConf
nspr nspr
nss nss
@ -80,7 +73,6 @@
libusb1 libusb1
dbus-glib dbus-glib
ffmpeg ffmpeg
# Only libraries are needed from those two
libudev0-shim libudev0-shim
# needed to run unity # needed to run unity
@ -88,21 +80,14 @@
icu icu
libnotify libnotify
gsettings-desktop-schemas gsettings-desktop-schemas
# https://github.com/NixOS/nixpkgs/issues/72282
# https://github.com/NixOS/nixpkgs/blob/2e87260fafdd3d18aa1719246fd704b35e55b0f2/pkgs/applications/misc/joplin-desktop/default.nix#L16
# log in /home/leo/.config/unity3d/Editor.log
# it will segfault when opening files if you dont do:
# export XDG_DATA_DIRS=/nix/store/0nfsywbk0qml4faa7sk3sdfmbd85b7ra-gsettings-desktop-schemas-43.0/share/gsettings-schemas/gsettings-desktop-schemas-43.0:/nix/store/rkscn1raa3x850zq7jp9q3j5ghcf6zi2-gtk+3-3.24.35/share/gsettings-schemas/gtk+3-3.24.35/:$XDG_DATA_DIRS
# other issue: (Unity:377230): GLib-GIO-CRITICAL **: 21:09:04.706: g_dbus_proxy_call_sync_internal: assertion 'G_IS_DBUS_PROXY (proxy)' failed
# Verified games requirements libxt
xorg.libXt libxmu
xorg.libXmu
libogg libogg
libvorbis libvorbis
SDL SDL
SDL2_image SDL2_image
glew110 glew_1_10
libidn libidn
tbb tbb
@ -131,10 +116,9 @@
libgcrypt libgcrypt
libvpx libvpx
librsvg librsvg
xorg.libXft libxft
libvdpau libvdpau
# ...
# Some more libraries that I needed to run programs
pango pango
cairo cairo
atk atk
@ -150,9 +134,10 @@
libxcrypt-legacy # For natron libxcrypt-legacy # For natron
libGLU # For natron libGLU # For natron
# Appimages need fuse, e.g. https://musescore.org/fr/download/musescore-x86_64.AppImage
fuse fuse
e2fsprogs e2fsprogs
webkitgtk_4_1
libsoup_3
]; ];
} }

View File

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

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:04 by tomoron #+# #+# # # Created: 2025/09/06 00:57:04 by tomoron #+# #+# #
# Updated: 2025/12/23 18:41:48 by tomoron ### ########.fr # # Updated: 2026/03/30 13:46:43 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -44,4 +44,8 @@
services.openssh.enable = true; services.openssh.enable = true;
programs.droidcam.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> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# # # Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
# Updated: 2026/01/13 16:32:20 by tomoron ### ########.fr # # Updated: 2026/04/10 20:07:49 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
{ lib, config, pkgs, ... }: { lib, config, pkgs, ... }:
{ {
boot.initrd.luks.yubikeySupport = true;
services.udev.packages = [ pkgs.yubikey-personalization ]; services.udev.packages = [ pkgs.yubikey-personalization ];
boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ]; boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
boot.initrd.luks.yubikeySupport = true;
boot.initrd.luks.devices.cryptroot = { boot.initrd.luks.devices.cryptroot = {
device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f"; device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
allowDiscards = true; allowDiscards = true;
@ -35,16 +35,19 @@
programs.droidcam.enable = true; programs.droidcam.enable = true;
mods.displayManager.enable = true; mods.displayManager.enable = true;
mods.virtualHost.enable = true;
mods.yubikey.pam.enable = true; mods.yubikey.pam.enable = true;
networking.firewall.enable = false; networking.firewall.enable = false;
networking.hostName = "patate-douce"; networking.hostName = "patate-douce";
networking.wireless.enable = true; # networking.wireless.enable = true;
networking.networkmanager.wifi.backend = "iwd";
networking.wireless.iwd.enable = true;
networking.wireless.allowAuxiliaryImperativeNetworks = true;
networking.networkmanager.enable = false; networking.networkmanager.enable = false;
specialisation.vfio_ready.configuration = { specialisation.vfio_ready.configuration = {
boot.kernel.sysctl."vm.nr_hugepages" = 5120;
mods.virtualHost.enable = true;
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ]; boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
boot.kernelModules = [ "kvmfr" ]; boot.kernelModules = [ "kvmfr" ];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
@ -57,8 +60,6 @@
"/dev/random", "/dev/urandom", "/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/ptmx", "/dev/kvm",
"/dev/rtc","/dev/hpet", "/dev/rtc","/dev/hpet",
"/dev/input/by-id/[some_mouse_device]-event-mouse",
"/dev/input/by-id/[some_keyboard_device]-event-kbd"
] ]
''; '';
services.udev.extraRules = '' services.udev.extraRules = ''
@ -66,6 +67,7 @@
''; '';
environment.systemPackages = with pkgs; [ looking-glass-client ]; environment.systemPackages = with pkgs; [ looking-glass-client ];
}; };
services.udev.extraRules = '' services.udev.extraRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess" SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess" SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
@ -78,6 +80,8 @@
programs.noisetorch.enable = true; programs.noisetorch.enable = true;
services.postgresql.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -87,18 +91,15 @@
mods.touchpad.enable = true; mods.touchpad.enable = true;
# programs.gamescope.capSysNice = true;
mods.powerSave = { mods.powerSave = {
enable = true; enable = true;
powahCommandAdditions = [ powahCommandAdditions = [
"supergfxctl -m Hybrid" "supergfxctl -m Hybrid"
"if asusctl profile -p | grep Balanced ; then asusctl profile -P Performance; fi" "if [ $# -gt 0 ] && [[ \"$1\" == \"moar\" ]] ; then asusctl profile set Performance; fi"
"if asusctl profile -p | grep Quiet ; then asusctl profile -P Balanced; fi"
]; ];
tagueuleCommandAdditions = [ tagueuleCommandAdditions = [
"echo \"can't safely turn off the GPU\"" "echo \"can't safely turn off the GPU\""
"asusctl profile -P Quiet" "asusctl profile set Quiet"
]; ];
cpuMaxFreq = 4465261; cpuMaxFreq = 4465261;
@ -107,7 +108,7 @@
services.asusd = { services.asusd = {
enable = true; enable = true;
enableUserService = true; # enableUserService = true;
}; };
services.supergfxd.enable = true; services.supergfxd.enable = true;
@ -130,26 +131,30 @@
mods.nvidia.prime = true; mods.nvidia.prime = true;
services.usbmuxd.enable = true; #hangs when shutting down services.usbmuxd.enable = true; #sometimes hangs when shutting down
# boot.plymouth = {
# enable = true;
# theme = "ycontre-glow";
# themePackages = [
# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux
# ];
# };
services.flatpak.enable = true;
services.dnsmasq.enable = true; services.avahi.enable = true;
services.dnsmasq.settings = { services.pipewire = {
"dhcp-range" = ["192.168.1.150,192.168.1.250"]; raopOpenFirewall = true;
"dhcp-option" = [
"3,192.168.1.254" extraConfig.pipewire = {
"6,1.1.1.1,8.8.8.8,8.8.4.4" "10-airplay"."context.modules" = [
{ name = "libpipewire-module-raop-discover"; }
]; ];
"interface" = "enp4s0f4u1"; };
};
services.pipewire.wireplumber.extraConfig."10-bluez" = {
"monitor.bluez.properties" = {
"bluez5.enable-sbc-xq" = true;
"bluez5.enable-msbc" = true;
"bluez5.enable-hw-volume" = true;
};
};
hardware.bluetooth.settings = {
General = {
Enable = "Source,Sink,Media,Socket";
};
}; };
} }

View File

@ -6,7 +6,7 @@
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ # # By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# # # Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
# Updated: 2026/01/27 18:56:23 by tomoron ### ########.fr # # Updated: 2026/04/09 13:21:07 by tomoron ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -33,11 +33,15 @@ in
]; ];
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false; services.openssh.settings.PasswordAuthentication = false;
services.openssh.ports = [ 1880 ]; services.openssh.ports = [ 1880 ];
sops.secrets."cloudflared/token" = {}; sops.secrets."cloudflared/token" = {};
sops.secrets."zfs/p_user" = {};
sops.secrets."zfs/p_token" = {};
systemd.services.cloudflared = { systemd.services.cloudflared = {
after = [ after = [
"network.target" "network.target"
@ -61,6 +65,24 @@ in
boot.supportedFilesystems = [ "zfs" ]; 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; [ environment.systemPackages = with pkgs; [
zfs zfs
screen #can be user (and global) screen #can be user (and global)

View File

@ -3,6 +3,9 @@ nextcloud_fuse:
password: ENC[AES256_GCM,data:Rlyc9wO3rXJ97AAMzM+vJclEJ+eaSPtHkitqRL0=,iv:yuS2Tyo2HZGVb9tbWmmgOEwkyzLhlvq8iZ2YjGD0u9E=,tag:pf8n4pTvseh1pd12w8w4tw==,type:str] password: ENC[AES256_GCM,data:Rlyc9wO3rXJ97AAMzM+vJclEJ+eaSPtHkitqRL0=,iv:yuS2Tyo2HZGVb9tbWmmgOEwkyzLhlvq8iZ2YjGD0u9E=,tag:pf8n4pTvseh1pd12w8w4tw==,type:str]
cloudflared: cloudflared:
token: ENC[AES256_GCM,data:LS1VIwbbVsJxZ90p+kK4xJhzrBRJ51XL2j8mGLDVj5JjYJKXKBDIXtlb0x8A9WDIVyBuLBkE9pfSfQXtvfvZdUeyXswVJFUNW0mX3yC/WaeNQdPYy7UgyGjorqk31aNJ6b9XqtdfV0++qPvXQDvwn44UY0juuiIJ5KcLZEskRcqVTilG5WYi/nInhGbSqtzniRNvrbsynIq0CVQDhi3haCHNpCJMQUIyXM/g6Xsc9b++GYlHjgrtHQ==,iv:DbvJfbMblgr6+dYBJqDSzECKK90Nkq8Eci5dC8fMIXQ=,tag:bjAs8p5dAkh2Adon0JDNqg==,type:str] token: ENC[AES256_GCM,data:LS1VIwbbVsJxZ90p+kK4xJhzrBRJ51XL2j8mGLDVj5JjYJKXKBDIXtlb0x8A9WDIVyBuLBkE9pfSfQXtvfvZdUeyXswVJFUNW0mX3yC/WaeNQdPYy7UgyGjorqk31aNJ6b9XqtdfV0++qPvXQDvwn44UY0juuiIJ5KcLZEskRcqVTilG5WYi/nInhGbSqtzniRNvrbsynIq0CVQDhi3haCHNpCJMQUIyXM/g6Xsc9b++GYlHjgrtHQ==,iv:DbvJfbMblgr6+dYBJqDSzECKK90Nkq8Eci5dC8fMIXQ=,tag:bjAs8p5dAkh2Adon0JDNqg==,type:str]
zfs:
p_user: ENC[AES256_GCM,data:5RZ14HcDfSrOGm6VFNQGSlH4bcJ+DtMk4NkrXXTo,iv:iTt//ip7ZK5tuQky1DPmzgexV+chhHG9rHQNMYyJZJs=,tag:cmwA0KHsqBG7f5WI7Fwclg==,type:str]
p_token: ENC[AES256_GCM,data:VFYSHIqeKFbPaCqO08UrgqtsmCULcXlGjGco03BT,iv:aEaOH+jSp6A2Z3V+vwAYuhS26oTZ/CA+/EKg+/ZktDQ=,tag:UH1LG3aS/plWnaLdpcUcuA==,type:str]
sops: sops:
age: age:
- recipient: age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv - recipient: age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv
@ -14,7 +17,7 @@ sops:
clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa
DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg== DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-12-16T16:16:27Z" lastmodified: "2026-04-09T09:44:50Z"
mac: ENC[AES256_GCM,data:2Ju1exddd4qcru1UjXKXUBjugUWT9D2HJjKV03JwMCL4Wssb/H6DNNRJcmD0oXqA9DnEp5NpElhwa93LcogcNVsXL+sKGzQpP5m+/vDVfl2NcwdLyBVIvTQ0dASee/JMwBLcgcYBZuvL00Twv07/ImdvYROIs/fQUSualc6Sgcw=,iv:XsJ1MYLwLuFPLYGJoa/RsfAqs88AQwuH+3ItWc681LU=,tag:8pNSPKnv0yLoNrmxb9l2Xg==,type:str] mac: ENC[AES256_GCM,data:1TWoO9xeAyfT5kheTDLBqqeqpSpc5begsXN/FIjwK01xJJrgFfQg+93OZcH989z6WGumvjH+JuY98y9xDfur6mc2sopbLX8/Qbnfl4D2Aq1ya42b5/2cHlFhGI8bBOiXr6qA2sixQ/E1MIklTMxN+Z1fKbT5Mp7cfoPlG8YXhbI=,iv:DB1opS2DEr/WM1yK5SJf8NtoApmzJq5mgMoMlOoLli4=,tag:ZhiLFFCZF+fdfai0djwjYw==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.11.0 version: 3.11.0