Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
447c95c22d
|
|||
|
33c03199a0
|
|||
| 3a0f0192f4 | |||
|
6d045d1d4d
|
|||
|
86719c309a
|
|||
| bdc61737cb | |||
| 05861081ce | |||
|
724f5361e6
|
|||
|
c0223fdd09
|
|||
|
0e8dfb98c5
|
|||
|
26c4bb6495
|
|||
|
ef6d5cedb0
|
|||
|
a70786d0bb
|
|||
|
ca5538c4d1
|
|||
|
b0fe851dec
|
|||
|
c631965709
|
|||
|
a5134e71b8
|
|||
|
93fd2215da
|
|||
| df25ce0495 | |||
| 0555242a7f | |||
| fb2b3f80ad | |||
| 9a95e511e4 | |||
| 5e54902447 | |||
| 074dff48ca |
2
Makefile
2
Makefile
@ -27,5 +27,5 @@ cleanup :
|
|||||||
nix-env --delete-generations +1
|
nix-env --delete-generations +1
|
||||||
sudo nix-collect-garbage -d
|
sudo nix-collect-garbage -d
|
||||||
|
|
||||||
optimise :
|
optimize :
|
||||||
nix-store --optimize -vv
|
nix-store --optimize -vv
|
||||||
|
|||||||
42
flake.lock
generated
42
flake.lock
generated
@ -5,11 +5,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756741629,
|
"lastModified": 1768575137,
|
||||||
"narHash": "sha256-n+mgH3NoQf8d1jd8cDp/9Mt++hhyuE3LO3ZAxzjWRZw=",
|
"narHash": "sha256-e0SsKnkSnq+UwZNS9ZyPJjTjabzq9TRc1hqeDnvOF1Q=",
|
||||||
"owner": "catppuccin",
|
"owner": "catppuccin",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "cd22197da06df1eb6fabdaa2fc22c170c4f67382",
|
"rev": "48e67b4ad22072f1ae30b0ed8e1cb020cf06c611",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -26,11 +26,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1756958609,
|
"lastModified": 1768622624,
|
||||||
"narHash": "sha256-1nRGsnPZjOubRTsXEsnJqWlLsgo/Xq7tN7PWK57dFDQ=",
|
"narHash": "sha256-Em6PP667PeXbEjidbV2LnNwmUYohbrSFvVPLYLUDHms=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "b2a4e1bc62946403f82594ab9550ac13a1afa4df",
|
"rev": "8061c6d9199dc6cc0727d4241959eea28f2fa0a6",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -47,11 +47,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756954499,
|
"lastModified": 1768598210,
|
||||||
"narHash": "sha256-Pg4xBHzvzNY8l9x/rLWoJMnIR8ebG+xeU+IyqThIkqU=",
|
"narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "ed1a98c375450dfccf427adacd2bfd1a7b22eb25",
|
"rev": "c47b2cc64a629f8e075de52e4742de688f930dc6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -62,11 +62,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756925795,
|
"lastModified": 1768584846,
|
||||||
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
|
"narHash": "sha256-IRPmIOV2tPwxbhP/I9M5AmwhTC0lMPtoPStC+8T6xl0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
|
"rev": "cce68f4a54fa4e3d633358364477f5cc1d782440",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -78,11 +78,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756266583,
|
"lastModified": 1768305791,
|
||||||
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
|
"narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
|
"rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -94,11 +94,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756787288,
|
"lastModified": 1768564909,
|
||||||
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -125,11 +125,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754988908,
|
"lastModified": 1768481291,
|
||||||
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
|
"narHash": "sha256-NjKtkJraCZEnLHAJxLTI+BfdU//9coAz9p5TqveZwPU=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
|
"rev": "e085e303dfcce21adcb5fec535d65aacb066f101",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
17
flake.nix
17
flake.nix
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/10/17 18:15:24 by tomoron #+# #+# #
|
# Created: 2024/10/17 18:15:24 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/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 {
|
osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; flakeName = flakeName; };
|
specialArgs = { inherit inputs; flakeName = flakeName; };
|
||||||
modules = nixpkgs.lib.concatLists [
|
modules = nixpkgs.lib.concatLists [
|
||||||
[./osConfigs/os.nix ./osConfigs/hosts/${flakeName}.nix catppuccin.nixosModules.catppuccin]
|
[
|
||||||
|
./osConfigs/os.nix
|
||||||
|
./osConfigs/hosts/${flakeName}.nix
|
||||||
|
catppuccin.nixosModules.catppuccin
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
]
|
||||||
extraModules
|
extraModules
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
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;
|
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 [
|
modules = nixpkgs.lib.concatLists [
|
||||||
[
|
[
|
||||||
./homeConfigs/home.nix
|
./homeConfigs/home.nix
|
||||||
@ -85,8 +90,8 @@
|
|||||||
|
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
vbox = homeConfig { flakeName = "vbox"; };
|
vbox = homeConfig { flakeName = "vbox";};
|
||||||
ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron";};
|
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"; };
|
||||||
server = homeConfig { flakeName = "server"; };
|
server = homeConfig { flakeName = "server"; };
|
||||||
|
|||||||
@ -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
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
unison /home/tom/Desktop ssh://tom@tmoron.fr:1880//home/tom/Desktop_sync/Desktop $@
|
|
||||||
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
xtrlock&
|
|
||||||
systemctl hibernate
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
if [ "$1" = "up" ]; then
|
|
||||||
asusctl -n
|
|
||||||
elif [ "$1" = "down" ];then
|
|
||||||
asusctl -p
|
|
||||||
fi
|
|
||||||
@ -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
|
|
||||||
33
homeConfigs/global/appearance.nix
Normal file
33
homeConfigs/global/appearance.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
flavor = "mocha";
|
||||||
|
|
||||||
|
dunst.enable = true;
|
||||||
|
dunst.flavor="frappe";
|
||||||
|
|
||||||
|
kvantum.apply = true;
|
||||||
|
rofi.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
}
|
||||||
13
homeConfigs/global/catppuccin.nix
Normal file
13
homeConfigs/global/catppuccin.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
flavor = "mocha";
|
||||||
|
|
||||||
|
dunst.enable = true;
|
||||||
|
dunst.flavor="frappe";
|
||||||
|
|
||||||
|
kvantum.apply = true;
|
||||||
|
rofi.enable = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
18
homeConfigs/global/fileManager.nix
Normal file
18
homeConfigs/global/fileManager.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.yazi = {
|
||||||
|
enable = true;
|
||||||
|
settings.mgr.sort_dir_first=false;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables.BROWSER = "yazi";
|
||||||
|
programs.bash.bashrcExtra = ''
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
21
homeConfigs/global/rclone.nix
Normal file
21
homeConfigs/global/rclone.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
homeConfigs/global/rofi.nix
Normal file
13
homeConfigs/global/rofi.nix
Normal 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";
|
||||||
|
}
|
||||||
20
homeConfigs/global/shell.nix
Normal file
20
homeConfigs/global/shell.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
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 = {
|
||||||
|
enable = true;
|
||||||
|
historyControl = ["ignoreboth"];
|
||||||
|
historyIgnore = [ "ls" "cd" "exit" ];
|
||||||
|
shellOptions = [ "cdspell" "autocd"];
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -6,16 +6,24 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
|
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/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 [
|
imports = lib.concatLists [
|
||||||
[ ./packages.nix ]
|
[ ./packages.nix ]
|
||||||
(lib.fileset.toList ./modules)
|
(lib.fileset.toList ./modules)
|
||||||
|
(lib.fileset.toList ./global)
|
||||||
];
|
];
|
||||||
|
|
||||||
home.username = lib.mkIf (!isOs) "${username}";
|
home.username = lib.mkIf (!isOs) "${username}";
|
||||||
@ -23,95 +31,11 @@
|
|||||||
|
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "24.05";
|
||||||
|
|
||||||
sops.defaultSopsFile = ../secrets/secrets.yaml;
|
sops = lib.mkIf configSops{
|
||||||
sops.age.keyFile = "${homeDir}/.config/sops/age/keys.txt";
|
defaultSopsFile = ../secrets/secrets.yaml;
|
||||||
sops.secrets."nextcloud_fuse/password" = {};
|
age.keyFile = "${homeDir}/.config/sops/age/keys.txt";
|
||||||
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# 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;
|
services.dunst.enable = true;
|
||||||
|
|
||||||
programs.home-manager.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";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,16 +4,18 @@
|
|||||||
mods.x11.enable = true;
|
mods.x11.enable = true;
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
monitor = [
|
monitor = [
|
||||||
"HDMI-A-1, 1920x1080@60, 0x0, auto"
|
"DP-1, 1280x1024@75.03Hz, -3200x0, auto"
|
||||||
"HDMI-A-3, 1920x1080@60, 1920x0, auto"
|
"HDMI-A-1, 1920x1080@60Hz, -1920x0, auto"
|
||||||
"DP-1, 1280x1024@60, 3840x0, auto"
|
"HDMI-A-3, 1920x1080@60Hz, 0x0, auto"
|
||||||
"DP-3, 1280x1024@60, 5120x0, auto"
|
"DP-3, 1920x1080@60.00Hz, 1920x0, auto"
|
||||||
|
"DP-4, 1280x1024@75.03Hz, 3840x0, auto"
|
||||||
];
|
];
|
||||||
workspace = [
|
workspace = [
|
||||||
"1, monitor:HDMI-A-1"
|
"4, monitor:DP-1"
|
||||||
"2, monitor:HDMI-A-3, default:true"
|
"3, monitor:HDMI-A-1"
|
||||||
"3, monitor:DP-1"
|
"1, monitor:HDMI-A-3, default:true"
|
||||||
"4, monitor:DP-3"
|
"2, monitor:DP-3"
|
||||||
|
"5, monitor:DP-4"
|
||||||
];
|
];
|
||||||
env = [
|
env = [
|
||||||
"AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0"
|
"AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0"
|
||||||
|
|||||||
@ -27,6 +27,11 @@
|
|||||||
", XF86Launch1, exec, hyprlock"
|
", XF86Launch1, exec, hyprlock"
|
||||||
", XF86Launch4, exec, pkill activate-linux"
|
", XF86Launch4, exec, pkill activate-linux"
|
||||||
];
|
];
|
||||||
|
bindl = [
|
||||||
|
",switch:off:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, 1920x1080@120, 0x0, 1\""
|
||||||
|
",switch:on:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, disable\""
|
||||||
|
|
||||||
|
];
|
||||||
monitor= [
|
monitor= [
|
||||||
# "eDP-1, modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync, 0x0, 1"
|
# "eDP-1, modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync, 0x0, 1"
|
||||||
"eDP-1, 1920x1080@120, 0x0, 1"
|
"eDP-1, 1920x1080@120, 0x0, 1"
|
||||||
@ -39,7 +44,7 @@
|
|||||||
blender
|
blender
|
||||||
wireshark
|
wireshark
|
||||||
localsend
|
localsend
|
||||||
|
impala
|
||||||
];
|
];
|
||||||
|
|
||||||
#mods.sync.syncedAdditions = ["VirtualBox VMs"];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,8 @@
|
|||||||
mangohud
|
mangohud
|
||||||
moonlight-qt
|
moonlight-qt
|
||||||
prismlauncher
|
prismlauncher
|
||||||
|
|
||||||
|
r2modman
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,19 +11,21 @@
|
|||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
userEmail = "tomoron@student.42angouleme.fr";
|
settings = {
|
||||||
userName = "tomoron";
|
user.email = "tomoron@student.42angouleme.fr";
|
||||||
extraConfig = {
|
user.name = "tomoron";
|
||||||
init.defaultBranch="master";
|
init.defaultBranch="master";
|
||||||
pull.rebase = true;
|
pull.rebase = true;
|
||||||
push.autoSetupRemote = true;
|
push.autoSetupRemote = true;
|
||||||
rerere.enabled = true;
|
rerere.enabled = true;
|
||||||
help.autocorrect = 1;
|
help.autocorrect = 1;
|
||||||
};
|
user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD";
|
||||||
aliases = {
|
commit.gpgsign = true;
|
||||||
|
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~";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,7 +46,7 @@ in
|
|||||||
text = (lib.strings.concatStrings [''
|
text = (lib.strings.concatStrings [''
|
||||||
auto=true
|
auto=true
|
||||||
root=${config.mods.sync.homeFolder}
|
root=${config.mods.sync.homeFolder}
|
||||||
root=ssh://tom@tmoron.fr:1880/${config.mods.sync.destFolder}
|
root=ssh://tom@free.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 "")
|
||||||
|
|||||||
@ -20,16 +20,47 @@
|
|||||||
nixd
|
nixd
|
||||||
nodejs_24
|
nodejs_24
|
||||||
glsl_analyzer
|
glsl_analyzer
|
||||||
|
(pkgs.python3.withPackages (ps: with ps; [
|
||||||
|
python-lsp-server
|
||||||
|
pylsp-mypy
|
||||||
|
python-lsp-ruff
|
||||||
|
pycodestyle
|
||||||
|
]))
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# programs.neovim.extraLuaConfig = ''
|
||||||
|
# vim.lsp.config('pylsp', {})
|
||||||
|
# '';
|
||||||
|
|
||||||
|
programs.neovim.extraLuaConfig = ''
|
||||||
|
local coq = require "coq"
|
||||||
|
|
||||||
|
vim.lsp.config('clangd', coq.lsp_ensure_capabilities({}))
|
||||||
|
vim.lsp.enable('clangd')
|
||||||
|
|
||||||
|
vim.lsp.config('nixd', coq.lsp_ensure_capabilities({}))
|
||||||
|
vim.lsp.enable('nixd')
|
||||||
|
|
||||||
|
vim.lsp.config('glsl_analyzer', coq.lsp_ensure_capabilities({}))
|
||||||
|
vim.lsp.enable('glsl_analyzer')
|
||||||
|
|
||||||
|
vim.lsp.config('pylsp', coq.lsp_ensure_capabilities({
|
||||||
|
cmd = {"pylsp", "-vvv", "--log-file", "/tmp/lsp.log"}
|
||||||
|
}))
|
||||||
|
vim.lsp.enable('pylsp')
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
programs.neovim.extraConfig = ''
|
programs.neovim.extraConfig = ''
|
||||||
set number
|
set number
|
||||||
set ai
|
set ai
|
||||||
autocmd BufWinLeave *.* mkview
|
autocmd BufWinLeave *.* mkview
|
||||||
autocmd BufWinEnter *.* silent! loadview
|
autocmd BufWinEnter *.* silent! loadview
|
||||||
|
autocmd VimEnter * COQnow --shut-up
|
||||||
set tabstop=4
|
set tabstop=4
|
||||||
set scrolloff=10
|
set scrolloff=10
|
||||||
set preserveindent
|
set smartindent
|
||||||
|
set shiftwidth=4
|
||||||
map <silent> <C-N> :bnext<CR>
|
map <silent> <C-N> :bnext<CR>
|
||||||
map <silent> <C-P> :bprevious<CR>
|
map <silent> <C-P> :bprevious<CR>
|
||||||
nmap <silent> <c-k> :wincmd k<CR>
|
nmap <silent> <c-k> :wincmd k<CR>
|
||||||
@ -61,14 +92,14 @@
|
|||||||
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 'ms-jpq/coq_nvim', { 'branch': 'coq' }
|
||||||
|
Plug 'ms-jpq/coq.artifacts', { 'branch': 'artifacts' }
|
||||||
|
Plug 'ms-jpq/coq.thirdparty', { 'branch': '3p' }
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
|
||||||
colorscheme catppuccin-mocha
|
colorscheme catppuccin-mocha
|
||||||
|
|
||||||
lua require'lspconfig'.clangd.setup{}
|
set signcolumn=auto
|
||||||
lua require'lspconfig'.nixd.setup{}
|
|
||||||
lua require'lspconfig'.glsl_analyzer.setup{}
|
|
||||||
set signcolumn=no
|
|
||||||
|
|
||||||
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
||||||
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
||||||
@ -79,18 +110,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";
|
||||||
|
|||||||
@ -8,12 +8,16 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.mods.hyprland.enable {
|
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.enable = true;
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
"$mainMod" = "SUPER";
|
"$mainMod" = "SUPER";
|
||||||
bind = [
|
bind = [
|
||||||
" , Print, exec, grim -t png -g \"$(slurp)\" /dev/stdout | tee ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png | wl-copy -t image/png"
|
" , Print, exec, hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||||
|
" SHIFT, Print, exec, hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||||
"$mainMod, Return, exec, alacritty"
|
"$mainMod, Return, exec, alacritty"
|
||||||
"CTRL_ALT, Q, killactive,"
|
"CTRL_ALT, Q, killactive,"
|
||||||
"CTRL_ALT_SHIFT, Q, forcekillactive,"
|
"CTRL_ALT_SHIFT, Q, forcekillactive,"
|
||||||
@ -21,6 +25,7 @@
|
|||||||
"$mainMod, S, togglefloating,"
|
"$mainMod, S, togglefloating,"
|
||||||
"$mainMod, I, pin,"
|
"$mainMod, I, pin,"
|
||||||
"$mainMod, D, exec, rofi -show drun -show-icons"
|
"$mainMod, D, exec, rofi -show drun -show-icons"
|
||||||
|
"$mainMod SHIFT, D, exec, rofi -show run -show-icons"
|
||||||
"$mainMod, M, fullscreen, 1"
|
"$mainMod, M, fullscreen, 1"
|
||||||
"$mainMod, F, fullscreen, 0"
|
"$mainMod, F, fullscreen, 0"
|
||||||
|
|
||||||
@ -144,12 +149,12 @@
|
|||||||
color = "rgba(1a1a1aee)";
|
color = "rgba(1a1a1aee)";
|
||||||
};
|
};
|
||||||
|
|
||||||
blur = {
|
#blur = {
|
||||||
enabled = true;
|
# enabled = true;
|
||||||
size = 3;
|
# size = 3;
|
||||||
passes = 1;
|
# passes = 1;
|
||||||
vibrancy = 0.1696;
|
# vibrancy = 0.1696;
|
||||||
};
|
#};
|
||||||
};
|
};
|
||||||
|
|
||||||
general = {
|
general = {
|
||||||
@ -163,6 +168,12 @@
|
|||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
layerrule = {
|
||||||
|
name = "no_anim_for_selection";
|
||||||
|
no_anim = "on";
|
||||||
|
"match:namespace" = "selection";
|
||||||
|
};
|
||||||
|
|
||||||
cursor.no_warps = true;
|
cursor.no_warps = true;
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
{
|
{
|
||||||
config = lib.mkIf config.mods.hyprland.enable {
|
config = lib.mkIf config.mods.hyprland.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
rofi-wayland
|
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
|
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/05 19:28:45 by tomoron ### ########.fr #
|
# Updated: 2026/02/06 23:43:40 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -34,7 +34,6 @@
|
|||||||
unison
|
unison
|
||||||
brightnessctl
|
brightnessctl
|
||||||
playerctl
|
playerctl
|
||||||
python3
|
|
||||||
vlc
|
vlc
|
||||||
nix-index
|
nix-index
|
||||||
yubikey-manager
|
yubikey-manager
|
||||||
@ -45,5 +44,8 @@
|
|||||||
compiledb
|
compiledb
|
||||||
yubikey-personalization
|
yubikey-personalization
|
||||||
sops
|
sops
|
||||||
|
libreoffice
|
||||||
|
doxygen
|
||||||
|
qimgv
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
|
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 |
160
osConfigs/global/ld.nix
Normal file
160
osConfigs/global/ld.nix
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# ld.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/12/30 20:37:07 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/02/05 12:47:23 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
programs.nix-ld.libraries = with pkgs; [
|
||||||
|
# List by default
|
||||||
|
zlib
|
||||||
|
zstd
|
||||||
|
stdenv.cc.cc
|
||||||
|
curl
|
||||||
|
openssl
|
||||||
|
attr
|
||||||
|
libssh
|
||||||
|
bzip2
|
||||||
|
libxml2
|
||||||
|
acl
|
||||||
|
libsodium
|
||||||
|
util-linux
|
||||||
|
xz
|
||||||
|
systemd
|
||||||
|
|
||||||
|
# My own additions
|
||||||
|
xorg.libXcomposite
|
||||||
|
xorg.libXtst
|
||||||
|
xorg.libXrandr
|
||||||
|
xorg.libXext
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXfixes
|
||||||
|
libGL
|
||||||
|
libva
|
||||||
|
pipewire
|
||||||
|
xorg.libxcb
|
||||||
|
xorg.libXdamage
|
||||||
|
xorg.libxshmfence
|
||||||
|
xorg.libXxf86vm
|
||||||
|
libelf
|
||||||
|
|
||||||
|
# Required
|
||||||
|
glib
|
||||||
|
gtk2
|
||||||
|
|
||||||
|
# Inspired by steam
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/steam/package.nix#L36-L85
|
||||||
|
networkmanager
|
||||||
|
vulkan-loader
|
||||||
|
libgbm
|
||||||
|
libdrm
|
||||||
|
libxcrypt
|
||||||
|
coreutils
|
||||||
|
pciutils
|
||||||
|
zenity
|
||||||
|
# glibc_multi.bin # Seems to cause issue in ARM
|
||||||
|
|
||||||
|
# # Without these it silently fails
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXrender
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libSM
|
||||||
|
xorg.libICE
|
||||||
|
gnome2.GConf
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
cups
|
||||||
|
libcap
|
||||||
|
SDL2
|
||||||
|
libusb1
|
||||||
|
dbus-glib
|
||||||
|
ffmpeg
|
||||||
|
# Only libraries are needed from those two
|
||||||
|
libudev0-shim
|
||||||
|
|
||||||
|
# needed to run unity
|
||||||
|
gtk3
|
||||||
|
icu
|
||||||
|
libnotify
|
||||||
|
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 don’t 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
|
||||||
|
xorg.libXt
|
||||||
|
xorg.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
|
||||||
|
xorg.libXft
|
||||||
|
libvdpau
|
||||||
|
# ...
|
||||||
|
# Some more libraries that I needed to run programs
|
||||||
|
pango
|
||||||
|
cairo
|
||||||
|
atk
|
||||||
|
gdk-pixbuf
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
dbus
|
||||||
|
alsa-lib
|
||||||
|
expat
|
||||||
|
# for blender
|
||||||
|
libxkbcommon
|
||||||
|
|
||||||
|
libxcrypt-legacy # For natron
|
||||||
|
libGLU # For natron
|
||||||
|
|
||||||
|
# Appimages need fuse, e.g. https://musescore.org/fr/download/musescore-x86_64.AppImage
|
||||||
|
fuse
|
||||||
|
e2fsprogs
|
||||||
|
|
||||||
|
webkitgtk_4_1
|
||||||
|
libsoup_3
|
||||||
|
];
|
||||||
|
}
|
||||||
12
osConfigs/global/nix-alien.nix
Normal file
12
osConfigs/global/nix-alien.nix
Normal 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
|
||||||
|
];
|
||||||
|
}
|
||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/06 00:57:21 by tomoron #+# #+# #
|
# Created: 2025/09/06 00:57:21 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/06 00:57:26 by tomoron ### ########.fr #
|
# Updated: 2025/12/30 18:12:05 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -21,5 +21,7 @@
|
|||||||
ntfs3g
|
ntfs3g
|
||||||
cryptsetup
|
cryptsetup
|
||||||
acpi
|
acpi
|
||||||
|
|
||||||
|
nss
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
8
osConfigs/global/sops.nix
Normal file
8
osConfigs/global/sops.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{lib, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
sops = {
|
||||||
|
defaultSopsFile = ../../secrets/secrets.yaml;
|
||||||
|
age.keyFile = "/home/tom/.config/sops/age/keys.txt";
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
|
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/06 00:57:32 by tomoron ### ########.fr #
|
# Updated: 2026/01/13 16:32:42 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/06 00:57:04 by tomoron #+# #+# #
|
# Created: 2025/09/06 00:57:04 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/06 00:57:05 by tomoron ### ########.fr #
|
# Updated: 2025/12/23 18:41:48 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -22,20 +22,26 @@
|
|||||||
networking.hostName = "nixos-fixe";
|
networking.hostName = "nixos-fixe";
|
||||||
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
hardware.cpu.intel.updateMicrocode = true;
|
||||||
|
mods.yubikey.pam.enable = true;
|
||||||
|
|
||||||
boot.kernelModules = [ "kvm-intel" "nvidia" ];
|
boot.kernelModules = [ "kvm-intel" "nvidia" ];
|
||||||
mods.displayManager.enable = true;
|
mods.displayManager.enable = true;
|
||||||
|
|
||||||
hardware.nvidia = {
|
mods.nvidia.enable = true;
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
mods.gayming.enable = true;
|
||||||
open = true;
|
|
||||||
|
|
||||||
prime.nvidiaBusId = "PCI:1:0:0";
|
programs.noisetorch.enable = true;
|
||||||
prime.intelBusId = "PCI:0:2:0";
|
|
||||||
prime.sync.enable = true;
|
|
||||||
|
|
||||||
modesetting.enable = true;
|
# hardware.nvidia = {
|
||||||
};
|
# open = true;
|
||||||
|
#
|
||||||
|
# prime.nvidiaBusId = "PCI:1:0:0";
|
||||||
|
# prime.intelBusId = "PCI:0:2:0";
|
||||||
|
# prime.sync.enable = true;
|
||||||
|
#
|
||||||
|
# modesetting.enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
programs.droidcam.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,11 +6,11 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
|
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/06 01:11:42 by tomoron ### ########.fr #
|
# Updated: 2026/02/03 14:40:35 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
boot.initrd.luks.yubikeySupport = true;
|
boot.initrd.luks.yubikeySupport = true;
|
||||||
@ -32,18 +32,21 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup
|
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup
|
||||||
|
programs.droidcam.enable = true;
|
||||||
|
|
||||||
mods.displayManager.enable = true;
|
mods.displayManager.enable = true;
|
||||||
mods.virtualHost.enable = false;
|
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;
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
|
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
|
||||||
boot.kernelModules = [ "kvmfr" ];
|
boot.kernelModules = [ "kvmfr" ];
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
@ -56,8 +59,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 = ''
|
||||||
@ -65,11 +66,18 @@
|
|||||||
'';
|
'';
|
||||||
environment.systemPackages = with pkgs; [ looking-glass-client ];
|
environment.systemPackages = with pkgs; [ looking-glass-client ];
|
||||||
};
|
};
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
networking.dhcpcd.enable = false;
|
networking.dhcpcd.enable = false;
|
||||||
systemd.network.enable = true;
|
systemd.network.enable = true;
|
||||||
networking.useNetworkd = true;
|
networking.useNetworkd = true;
|
||||||
|
|
||||||
|
programs.noisetorch.enable = true;
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@ -79,7 +87,21 @@
|
|||||||
|
|
||||||
mods.touchpad.enable = true;
|
mods.touchpad.enable = true;
|
||||||
|
|
||||||
mods.powerSave.enable = true;
|
mods.powerSave = {
|
||||||
|
enable = true;
|
||||||
|
powahCommandAdditions = [
|
||||||
|
"supergfxctl -m Hybrid"
|
||||||
|
"if asusctl profile -p | grep Balanced ; then asusctl profile -P Performance; fi"
|
||||||
|
"if asusctl profile -p | grep Quiet ; then asusctl profile -P Balanced; fi"
|
||||||
|
];
|
||||||
|
tagueuleCommandAdditions = [
|
||||||
|
"echo \"can't safely turn off the GPU\""
|
||||||
|
"asusctl profile -P Quiet"
|
||||||
|
];
|
||||||
|
cpuMaxFreq = 4465261;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
services.asusd = {
|
services.asusd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -88,7 +110,7 @@
|
|||||||
|
|
||||||
services.supergfxd.enable = true;
|
services.supergfxd.enable = true;
|
||||||
services.supergfxd.settings = {
|
services.supergfxd.settings = {
|
||||||
mode = "Integrated";
|
mode = lib.mkDefault "Integrated";
|
||||||
vfio_enable = true;
|
vfio_enable = true;
|
||||||
vfio_save = true;
|
vfio_save = true;
|
||||||
always_reboot = false;
|
always_reboot = false;
|
||||||
@ -105,7 +127,8 @@
|
|||||||
mods.nvidia.enable = true;
|
mods.nvidia.enable = true;
|
||||||
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 = {
|
# boot.plymouth = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
@ -114,4 +137,9 @@
|
|||||||
# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux
|
# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux
|
||||||
# ];
|
# ];
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
services.k3s.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
|
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/06 01:26:26 by tomoron ### ########.fr #
|
# Updated: 2026/01/27 18:56:23 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -20,6 +20,7 @@ let
|
|||||||
8083 137 138 139 445 548 3702 5357 #prob some samba shit
|
8083 137 138 139 445 548 3702 5357 #prob some samba shit
|
||||||
24454 #minecraft voice chat
|
24454 #minecraft voice chat
|
||||||
25565 # minecraft server
|
25565 # minecraft server
|
||||||
|
9091 # transmission web interface
|
||||||
];
|
];
|
||||||
portRanges = [
|
portRanges = [
|
||||||
{from = 47950; to = 49000;} #moonlight (wolf)
|
{from = 47950; to = 49000;} #moonlight (wolf)
|
||||||
@ -31,13 +32,32 @@ in
|
|||||||
config.boot.kernelPackages.gasket #driver for google coral edge tpu
|
config.boot.kernelPackages.gasket #driver for google coral edge tpu
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
services.openssh.settings.PasswordAuthentication = false;
|
services.openssh.settings.PasswordAuthentication = false;
|
||||||
services.openssh.ports = [ 1880 ];
|
services.openssh.ports = [ 1880 ];
|
||||||
|
|
||||||
|
sops.secrets."cloudflared/token" = {};
|
||||||
|
systemd.services.cloudflared = {
|
||||||
|
after = [
|
||||||
|
"network.target"
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
|
wants = [
|
||||||
|
"network.target"
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = ''${pkgs.bash}/bin/bash -c '${pkgs.cloudflared}/bin/cloudflared tunnel --no-autoupdate run --token "$(cat ${config.sops.secrets."cloudflared/token".path})"' '';
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
options amdgpu virtual_display=1
|
options amdgpu virtual_display=1
|
||||||
''; #create dummy display to be able to start x11
|
# create dummy display to be able to start x11
|
||||||
|
'';
|
||||||
|
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
|
|
||||||
@ -68,6 +88,10 @@ in
|
|||||||
services.fail2ban.enable = true;
|
services.fail2ban.enable = true;
|
||||||
services.fail2ban.bantime = "5h";
|
services.fail2ban.bantime = "5h";
|
||||||
|
|
||||||
|
mods.nvidia.enable = true;
|
||||||
|
mods.nvidia.beta = true;
|
||||||
|
mods.nvidia.containerToolkit = true;
|
||||||
|
|
||||||
mods.docker = {
|
mods.docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
boot = true;
|
boot = true;
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/05 23:47:16 by tomoron #+# #+# #
|
# Created: 2025/09/05 23:47:16 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/06 00:56:38 by tomoron ### ########.fr #
|
# Updated: 2025/11/17 14:32:13 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -24,7 +24,7 @@
|
|||||||
services.displayManager.ly.enable = true;
|
services.displayManager.ly.enable = true;
|
||||||
services.displayManager.ly.settings =
|
services.displayManager.ly.settings =
|
||||||
{
|
{
|
||||||
animation = "doom";
|
animation = "gameoflife";
|
||||||
min_refresh_delta = 50;
|
min_refresh_delta = 50;
|
||||||
bigclock = "en";
|
bigclock = "en";
|
||||||
sleep_cmd = "systemctl sleep";
|
sleep_cmd = "systemctl sleep";
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
|
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/05 23:54:57 by tomoron ### ########.fr #
|
# Updated: 2025/10/27 00:50:29 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -22,5 +22,6 @@
|
|||||||
config = lib.mkIf config.mods.gayming.enable {
|
config = lib.mkIf config.mods.gayming.enable {
|
||||||
programs.steam.enable = true;
|
programs.steam.enable = true;
|
||||||
programs.steam.protontricks.enable = true;
|
programs.steam.protontricks.enable = true;
|
||||||
|
programs.gamescope.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
|
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
|
||||||
# Updated: 2025/09/06 01:12:34 by tomoron ### ########.fr #
|
# Updated: 2025/12/23 18:42:01 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -28,7 +28,7 @@
|
|||||||
open = lib.mkOption {
|
open = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = "use beta version of the drivers";
|
description = "use open version of the drivers (on newer gpu)";
|
||||||
};
|
};
|
||||||
containerToolkit = lib.mkOption {
|
containerToolkit = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
@ -38,7 +38,7 @@
|
|||||||
prime = lib.mkOption {
|
prime = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "enable nvidia prime offload (saves battery)";
|
description = "enable nvidia prime offload (saves battery). prime ?";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -6,11 +6,11 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/09/06 00:45:04 by tomoron #+# #+# #
|
# 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 = {
|
options.mods.powerSave = {
|
||||||
@ -19,13 +19,107 @@
|
|||||||
default = false;
|
default = false;
|
||||||
description = "enable services and settings to save power";
|
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 {
|
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.enable = true;
|
||||||
powerManagement.cpuFreqGovernor = "powersave";
|
|
||||||
services.upower.enable = true;
|
|
||||||
mods.nvidia.prime = true;
|
mods.nvidia.prime = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
#ENC[AES256_GCM,data:1NcFm2XqZzmSSlr8wH4aXHDBhf+lOaZ/gUeK2T/U/hIBbqtfKtw=,iv:yS5iogRp6e3We/7wZnGy0XJzqLVfRVKlDhUs+tamcJ0=,tag:+z/qqF9n6/hQfv9aWXkCDQ==,type:comment]
|
#ENC[AES256_GCM,data:1NcFm2XqZzmSSlr8wH4aXHDBhf+lOaZ/gUeK2T/U/hIBbqtfKtw=,iv:yS5iogRp6e3We/7wZnGy0XJzqLVfRVKlDhUs+tamcJ0=,tag:+z/qqF9n6/hQfv9aWXkCDQ==,type:comment]
|
||||||
nextcloud_fuse:
|
nextcloud_fuse:
|
||||||
password: ENC[AES256_GCM,data:Rlyc9wO3rXJ97AAMzM+vJclEJ+eaSPtHkitqRL0=,iv:yuS2Tyo2HZGVb9tbWmmgOEwkyzLhlvq8iZ2YjGD0u9E=,tag:pf8n4pTvseh1pd12w8w4tw==,type:str]
|
password: ENC[AES256_GCM,data:Rlyc9wO3rXJ97AAMzM+vJclEJ+eaSPtHkitqRL0=,iv:yuS2Tyo2HZGVb9tbWmmgOEwkyzLhlvq8iZ2YjGD0u9E=,tag:pf8n4pTvseh1pd12w8w4tw==,type:str]
|
||||||
|
cloudflared:
|
||||||
|
token: ENC[AES256_GCM,data:LS1VIwbbVsJxZ90p+kK4xJhzrBRJ51XL2j8mGLDVj5JjYJKXKBDIXtlb0x8A9WDIVyBuLBkE9pfSfQXtvfvZdUeyXswVJFUNW0mX3yC/WaeNQdPYy7UgyGjorqk31aNJ6b9XqtdfV0++qPvXQDvwn44UY0juuiIJ5KcLZEskRcqVTilG5WYi/nInhGbSqtzniRNvrbsynIq0CVQDhi3haCHNpCJMQUIyXM/g6Xsc9b++GYlHjgrtHQ==,iv:DbvJfbMblgr6+dYBJqDSzECKK90Nkq8Eci5dC8fMIXQ=,tag:bjAs8p5dAkh2Adon0JDNqg==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv
|
- recipient: age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv
|
||||||
@ -12,7 +14,7 @@ sops:
|
|||||||
clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa
|
clZaazZQdW5wYUhUNmM0QW91K0NLOTAKB6z7cKg54QmJo0U03u6RQkSCfJOAdeJa
|
||||||
DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg==
|
DiyPYjm02BNe8YPFbBFRpyT7G++j3h0yG+/Nr2zcQFyMMEpMv5QJvg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-09-05T17:58:05Z"
|
lastmodified: "2025-12-16T16:16:27Z"
|
||||||
mac: ENC[AES256_GCM,data:96G7VqaG8A46tQ1L7I2asiYtNZF7K3Wf+SzbwPrNV8zQio2jInawtD4WSzHmLs4Nv7M1TBHug/ho8mfYq6auXgpathiSzvj0Tzs/IEKXiTYa86tM3szwAepavMYWOl6OYJ7S39ku6BOMo3qC2BK/gpT5iy4c84ashn2wFd1n41A=,iv:6TShIsqnhCf/3uoAaz/R+Cwr2HrorROOXodXluTKM8M=,tag:BA9rQ73scKgetW3orV0HdQ==,type:str]
|
mac: ENC[AES256_GCM,data:2Ju1exddd4qcru1UjXKXUBjugUWT9D2HJjKV03JwMCL4Wssb/H6DNNRJcmD0oXqA9DnEp5NpElhwa93LcogcNVsXL+sKGzQpP5m+/vDVfl2NcwdLyBVIvTQ0dASee/JMwBLcgcYBZuvL00Twv07/ImdvYROIs/fQUSualc6Sgcw=,iv:XsJ1MYLwLuFPLYGJoa/RsfAqs88AQwuH+3ItWc681LU=,tag:8pNSPKnv0yLoNrmxb9l2Xg==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.2
|
version: 3.11.0
|
||||||
|
|||||||
Reference in New Issue
Block a user