Compare commits
103 Commits
ea44897
...
b561fe445c
| Author | SHA1 | Date | |
|---|---|---|---|
| b561fe445c | |||
| d5a4f5bdd1 | |||
|
87a09834a2
|
|||
|
0597249641
|
|||
|
8225fd1fe1
|
|||
| e86912da09 | |||
|
dfeb98e31f
|
|||
| 3e1ffba6a6 | |||
|
816001160f
|
|||
|
146fad0ce6
|
|||
|
6ff3e03029
|
|||
|
bba5ff934a
|
|||
|
b9a33095f5
|
|||
|
5d39868542
|
|||
|
7905ca167e
|
|||
| 484999059a | |||
|
3710d953ab
|
|||
|
b1294976dd
|
|||
|
08a5db8508
|
|||
| 73e25a00b6 | |||
|
c5c3a73495
|
|||
|
9283b4a68d
|
|||
|
943112677a
|
|||
| 0ba10a8643 | |||
| fa06263d10 | |||
|
e80dbffebf
|
|||
|
64c6ca6030
|
|||
|
1a0fee83e6
|
|||
|
dba02b91ef
|
|||
| f06352bb31 | |||
| 8bcc91bbab | |||
| 8bd4e7befa | |||
|
b9ba959482
|
|||
|
d5d569dbf5
|
|||
| 2ef3feda04 | |||
|
76ebe4adcf
|
|||
|
c14e2372bb
|
|||
|
41d3711b9b
|
|||
|
ee248079aa
|
|||
|
3793d9d4c3
|
|||
|
d9bac8a433
|
|||
| 29be5b73d4 | |||
|
91702ec7a3
|
|||
|
6a80170d4d
|
|||
| 3646963fd9 | |||
| 8920dadd4b | |||
|
811b1d67b0
|
|||
|
76c0ad8beb
|
|||
| 9de6978c8a | |||
|
1c715564ac
|
|||
| a60b6aeeec | |||
|
835e726c6c
|
|||
|
bf592c5e9d
|
|||
| 983f51b0f3 | |||
|
c95443f8b8
|
|||
|
14eaa9b5f8
|
|||
|
64ee797c97
|
|||
|
5e83ab9626
|
|||
| ea58f1d641 | |||
|
5b1b62dd32
|
|||
|
7972ab111c
|
|||
|
b6bea84f8b
|
|||
|
6913e58e0b
|
|||
|
6a8d644c94
|
|||
|
890d3381a5
|
|||
| 1cad2253b3 | |||
|
091e23932d
|
|||
|
c1bebc9df1
|
|||
|
7d79e9d8ae
|
|||
|
ebd650e854
|
|||
|
5becaf1588
|
|||
|
447c95c22d
|
|||
|
33c03199a0
|
|||
| 3a0f0192f4 | |||
|
6d045d1d4d
|
|||
|
86719c309a
|
|||
| bdc61737cb | |||
| 05861081ce | |||
|
724f5361e6
|
|||
|
c0223fdd09
|
|||
|
0e8dfb98c5
|
|||
|
26c4bb6495
|
|||
|
ef6d5cedb0
|
|||
|
a70786d0bb
|
|||
|
ca5538c4d1
|
|||
|
b0fe851dec
|
|||
|
c631965709
|
|||
|
a5134e71b8
|
|||
|
93fd2215da
|
|||
| df25ce0495 | |||
| 0555242a7f | |||
| fb2b3f80ad | |||
| 9a95e511e4 | |||
| 5e54902447 | |||
| 074dff48ca | |||
| fbc24916b5 | |||
| 4b66e2489b | |||
| e13360f793 | |||
| 1e46d42f27 | |||
| 7aef691ea2 | |||
| 63d2538734 | |||
| 84bc2fd737 | |||
| f362997567 |
31
.gitea/workflows/auto_update.yaml
Normal file
31
.gitea/workflows/auto_update.yaml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
name: update the nix flake lock automatically every week
|
||||||
|
run-name: update
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 4 * * 1"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: get repo
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
|
- name: install nix
|
||||||
|
uses: https://github.com/cachix/install-nix-action@v31
|
||||||
|
|
||||||
|
- name: run the update
|
||||||
|
run: nix flake update
|
||||||
|
|
||||||
|
- name: Commit and push
|
||||||
|
run: |
|
||||||
|
git config user.name "Update action"
|
||||||
|
git config user.email "update-action@no-one.com"
|
||||||
|
git add .
|
||||||
|
git commit -m "Auto update"
|
||||||
|
git push
|
||||||
@ -3,7 +3,7 @@ run-name: iso building
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- 'master'
|
- 'iso'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
|
|||||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
tmp/
|
||||||
7
.sops.yaml
Normal file
7
.sops.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
keys:
|
||||||
|
- &primary age1sjzkhwr8ycdsmuj8xg8y4v2hcpuq9vethnhytxtwzeury692dsxqf80fwv
|
||||||
|
creation_rules:
|
||||||
|
- path_regex: secrets/secrets.yaml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *primary
|
||||||
27
Makefile
27
Makefile
@ -1,18 +1,32 @@
|
|||||||
HOST ?= $(file < /etc/nixosFlakeName)
|
HOST ?= $(file < /etc/nixosFlakeName)
|
||||||
THREADS ?= $(shell nproc)
|
THREADS ?= $(shell nproc)
|
||||||
FLAKE ?= .
|
FLAKE ?= .
|
||||||
MODE ?= boot
|
MODE ?= switch
|
||||||
|
|
||||||
FLAGS = --impure --cores $(THREADS) -j $(THREADS)
|
|
||||||
|
EXTRAFLAGS ?=
|
||||||
|
FLAGS = --impure -j 1 -L $(EXTRAFLAGS)
|
||||||
|
|
||||||
|
ifdef OFFLINE
|
||||||
|
FLAGS += --option binary-caches ''
|
||||||
|
endif
|
||||||
|
|
||||||
all: os home
|
all: os home
|
||||||
|
|
||||||
update:
|
update:
|
||||||
cd $(FLAKE);nix flake update
|
cd $(FLAKE);nix flake update
|
||||||
$(MAKE) all
|
|
||||||
|
|
||||||
os:
|
os:
|
||||||
sudo nixos-rebuild $(MODE) $(FLAGS) --flake $(FLAKE)#$(HOST)
|
sudo nixos-rebuild $(MODE) $(FLAGS) --flake $(FLAKE)#$(HOST)
|
||||||
|
|
||||||
|
vm:
|
||||||
|
sudo nixos-rebuild build-vm $(FLAGS) --flake $(FLAKE)#$(HOST)
|
||||||
|
./result/bin/*
|
||||||
|
rm ./result
|
||||||
|
rm ./*.qcow2
|
||||||
|
|
||||||
|
hoem : home
|
||||||
|
|
||||||
home :
|
home :
|
||||||
home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST)
|
home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST)
|
||||||
|
|
||||||
@ -22,5 +36,10 @@ iso :
|
|||||||
rm -rf result
|
rm -rf result
|
||||||
|
|
||||||
cleanup :
|
cleanup :
|
||||||
sudo nix-collect-garbage -d --delete-older-than 1d
|
sudo nix-env --delete-generations +1 --profile /nix/var/nix/profiles/system
|
||||||
|
nix-env --delete-generations +1 --profile ~/.local/state/nix/profiles/home-manager
|
||||||
|
nix-env --delete-generations +1
|
||||||
|
sudo nix-collect-garbage -d
|
||||||
|
|
||||||
|
optimize :
|
||||||
nix-store --optimize -vv
|
nix-store --optimize -vv
|
||||||
|
|||||||
207
flake.lock
generated
207
flake.lock
generated
@ -1,5 +1,46 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"catppuccin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782462517,
|
||||||
|
"narHash": "sha256-HPzOASBxx1bAnPREm4syM5oTb8ls2qbudkLW4BTB94s=",
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nix",
|
||||||
|
"rev": "3f3b3511f9c433b93f20b24be32de01f675b046d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dockermcmgr": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782248098,
|
||||||
|
"narHash": "sha256-qIvObIIVv+AGH2cKeqfbAfzAe02xR3gGWa26aQhqW5Q=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "c4f3c129f108bb0b8b845b09ada7cda2ce0428c9",
|
||||||
|
"revCount": 42,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.tmoron.fr/tom/dockermcmgr"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.tmoron.fr/tom/dockermcmgr"
|
||||||
|
}
|
||||||
|
},
|
||||||
"firefox-addons": {
|
"firefox-addons": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -8,11 +49,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1754138575,
|
"lastModified": 1782446584,
|
||||||
"narHash": "sha256-6foT7Sflve4XuLnBKkgN9b9IP4FvdoBA2XQ2IyXmbog=",
|
"narHash": "sha256-Biqg+xsXAYC/C6iOeh1OSdIAhvpTlMpB17TTRmejjx0=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "27c945a6450d42c62f7e41019d7931b426bb786f",
|
"rev": "0672374ed1b75645f1e97828721a4d688182b75f",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -22,6 +63,22 @@
|
|||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -29,26 +86,30 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754085240,
|
"lastModified": 1782423922,
|
||||||
"narHash": "sha256-kVHCrTWEe8B1thAhFag1bk4QPY0ZP45V9vPbrwPHoNo=",
|
"narHash": "sha256-qPNd6lUohHP5gcJhqQ7rLV87RwIx0xYR2A4Frb9Zjc4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e102920c1becb114645c6f92fe14edc0b05cc229",
|
"rev": "5d320ab301cfaaca7d32514f13815d19d109f5f4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
|
"ref": "master",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753122741,
|
"lastModified": 1782379505,
|
||||||
"narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=",
|
"narHash": "sha256-zPvPiU+a7pqtH47xrtZLNRABJKpOjfZQclDbcvNtH+I=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22",
|
"rev": "603d3afd1b6145bd66e97ae38a34d91c95df70cf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -60,64 +121,124 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753939845,
|
"lastModified": 1782175435,
|
||||||
"narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=",
|
"narHash": "sha256-8d2wCNWKnd86GzKZvbuqqlS+HqMrheXkvRf0qGJ/oA0=",
|
||||||
"owner": "nixos",
|
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
|
||||||
"repo": "nixpkgs",
|
"type": "tarball",
|
||||||
"rev": "94def634a20494ee057c76998843c015909d6311",
|
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1020805.89570f24e97e/nixexprs.tar.xz"
|
||||||
"type": "github"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"type": "tarball",
|
||||||
"ref": "nixos-unstable",
|
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pkgs-docker-2750": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737525964,
|
"lastModified": 1770107345,
|
||||||
"narHash": "sha256-3wFonKmNRWKq1himW9N3TllbeGIHFACI5vmLpk6moF8=",
|
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5757bbb8bd7c0630a0cc4bb19c47e588db30b97c",
|
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5757bbb8bd7c0630a0cc4bb19c47e588db30b97c",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"plymouth-theme-ycontre-glow": {
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767892417,
|
||||||
|
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
|
||||||
|
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782475513,
|
||||||
|
"narHash": "sha256-y7ioo+kcLbjDVdmYss8j2DgBc0U8y8FXCVAryTL3Pb4=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "f493f07ee021d998aeffedcc59a99e97eb0489d0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"catppuccin": "catppuccin",
|
||||||
|
"dockermcmgr": "dockermcmgr",
|
||||||
|
"firefox-addons": "firefox-addons",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"sops-nix": "sops-nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731939263,
|
"lastModified": 1782165805,
|
||||||
"narHash": "sha256-mLwLR5dEJTvtqJU/lvo9f8c3/xIFPOpXlPF3JsJtnHo=",
|
"narHash": "sha256-478kKQBvK6SYTOdN2h9jhKJv94nbXRbFMfuL1WshErg=",
|
||||||
"ref": "refs/heads/master",
|
"owner": "Mic92",
|
||||||
"rev": "702e7b014ef6cf748252e797724e4096bafcaafa",
|
"repo": "sops-nix",
|
||||||
"revCount": 1,
|
"rev": "56b24064fdcaedca53553b1a6d607fd23b613a24",
|
||||||
"type": "git",
|
"type": "github"
|
||||||
"url": "file:///home/tom/desktop/bordel/ycontre-glow"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"owner": "Mic92",
|
||||||
"url": "file:///home/tom/desktop/bordel/ycontre-glow"
|
"repo": "sops-nix",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"firefox-addons": "firefox-addons",
|
"nixpkgs": "nixpkgs_2"
|
||||||
"home-manager": "home-manager",
|
},
|
||||||
"nixos-hardware": "nixos-hardware",
|
"locked": {
|
||||||
"nixpkgs": "nixpkgs",
|
"lastModified": 1780220602,
|
||||||
"pkgs-docker-2750": "pkgs-docker-2750",
|
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
|
||||||
"plymouth-theme-ycontre-glow": "plymouth-theme-ycontre-glow"
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
62
flake.nix
62
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/04/13 13:35:56 by tomoron ### ########.fr #
|
# Updated: 2026/06/15 02:17:44 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -14,9 +14,16 @@
|
|||||||
description = "Nixos and home-manager config flake";
|
description = "Nixos and home-manager config flake";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/master";
|
||||||
|
catppuccin.url = "github:catppuccin/nix";
|
||||||
|
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager/master";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
@ -26,37 +33,51 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
plymouth-theme-ycontre-glow = {
|
dockermcmgr = {
|
||||||
url = "git+file:///home/tom/desktop/bordel/ycontre-glow";
|
url = "git+https://git.tmoron.fr/tom/dockermcmgr";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
pkgs-docker-2750.url = "github:NixOS/nixpkgs?rev=5757bbb8bd7c0630a0cc4bb19c47e588db30b97c";
|
|
||||||
|
#plymouth-theme-ycontre-glow = {
|
||||||
|
# url = "git+file:///home/tom/desktop/bordel/ycontre-glow";
|
||||||
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
#};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { nixpkgs, home-manager, nixos-hardware, ... }@inputs:
|
outputs = { nixpkgs, catppuccin, home-manager, nixos-hardware, ... }@inputs:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; };
|
pkgs = import nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; };
|
||||||
|
|
||||||
osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem {
|
osConfig = {flakeName, minimal ? false, extraModules ? []}: nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; flakeName = flakeName; };
|
specialArgs = { inherit inputs; flakeName = flakeName; minimal = minimal; };
|
||||||
modules = nixpkgs.lib.concatLists [
|
modules = nixpkgs.lib.concatLists [
|
||||||
[./osConfigs/global.nix ./osConfigs/hosts/${flakeName}.nix ]
|
[
|
||||||
|
./osConfigs/os.nix
|
||||||
|
./osConfigs/hosts/${flakeName}.nix
|
||||||
|
catppuccin.nixosModules.catppuccin
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
]
|
||||||
extraModules
|
extraModules
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
homeConfig = {flakeName, extraModules ? [], username ? "tom", homeDir ? "/home/tom"}: home-manager.lib.homeManagerConfiguration {
|
homeConfig = {flakeName, sops ? true, extraModules ? [], username ? "tom", homeDir ? "/home/tom", minimal ? false}: 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; minimal = minimal; };
|
||||||
modules = nixpkgs.lib.concatLists [
|
modules = nixpkgs.lib.concatLists [
|
||||||
[ ./homeConfigs/home.nix ./homeConfigs/hosts/${flakeName}.nix]
|
[
|
||||||
|
./homeConfigs/home.nix
|
||||||
|
./homeConfigs/hosts/${flakeName}.nix
|
||||||
|
catppuccin.homeModules.catppuccin
|
||||||
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
|
]
|
||||||
extraModules
|
extraModules
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
nixosConfigurations = {
|
||||||
nixosConfigurations = { server = osConfig {flakeName = "server";};
|
server = osConfig {flakeName = "server"; minimal = true;};
|
||||||
vbox = osConfig {flakeName = "vbox";};
|
vbox = osConfig {flakeName = "vbox";};
|
||||||
laptop = osConfig {flakeName = "laptop"; extraModules = [ nixos-hardware.nixosModules.asus-zephyrus-ga401 ];};
|
laptop = osConfig {flakeName = "laptop"; extraModules = [ nixos-hardware.nixosModules.asus-zephyrus-ga401 ];};
|
||||||
desktop = osConfig {flakeName = "desktop";};
|
desktop = osConfig {flakeName = "desktop";};
|
||||||
@ -67,19 +88,18 @@
|
|||||||
modules = [
|
modules = [
|
||||||
(nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")
|
(nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")
|
||||||
./osConfigs/hosts/iso.nix
|
./osConfigs/hosts/iso.nix
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
vbox = homeConfig { flakeName = "vbox"; };
|
default = homeConfig { flakeName = "default";};
|
||||||
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"; minimal = true; };
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
homeConfigs/assets/lock_screen.jpg
Normal file
BIN
homeConfigs/assets/lock_screen.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 797 KiB After Width: | Height: | Size: 797 KiB |
@ -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
|
|
||||||
11
homeConfigs/global/alacritty.nix
Normal file
11
homeConfigs/global/alacritty.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
catppuccin.alacritty.enable = true;
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
env.XTERM = "xterm-256color";
|
||||||
|
font.size = 9;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
36
homeConfigs/global/appearance.nix
Normal file
36
homeConfigs/global/appearance.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
autoEnable = false;
|
||||||
|
|
||||||
|
flavor = "mocha";
|
||||||
|
|
||||||
|
dunst.enable = true;
|
||||||
|
dunst.flavor="frappe";
|
||||||
|
|
||||||
|
kvantum.apply = true;
|
||||||
|
rofi.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = { package = pkgs.magnetic-catppuccin-gtk; name = "Catppuccin-GTK-Dark"; };
|
||||||
|
gtk4.theme = config.gtk.theme;
|
||||||
|
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 ../assets/wallpaper.png;
|
||||||
|
".config/lock_screen.jpg".source = lib.mkDefault ../assets/lock_screen.jpg;
|
||||||
|
};
|
||||||
|
}
|
||||||
11
homeConfigs/global/defaultApplications.nix
Normal file
11
homeConfigs/global/defaultApplications.nix
Normal 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";
|
||||||
|
};
|
||||||
|
}
|
||||||
18
homeConfigs/global/firefox.nix
Normal file
18
homeConfigs/global/firefox.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ inputs, config, ... }:
|
||||||
|
{
|
||||||
|
catppuccin.firefox.enable = true;
|
||||||
|
programs.firefox.configPath = "${config.xdg.configHome}/mozilla/firefox";
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles.default = {
|
||||||
|
extensions.packages = with inputs.firefox-addons.packages."x86_64-linux";
|
||||||
|
[vimium ublock-origin];
|
||||||
|
extensions.force = true;
|
||||||
|
settings = {
|
||||||
|
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||||
|
"layout.css.prefers-color-scheme.content-override" = 0;
|
||||||
|
"browser.theme.content-theme" = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
homeConfigs/global/game.nix
Normal file
11
homeConfigs/global/game.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs;[
|
||||||
|
lutris
|
||||||
|
mangohud
|
||||||
|
moonlight-qt
|
||||||
|
prismlauncher
|
||||||
|
|
||||||
|
r2modman
|
||||||
|
];
|
||||||
|
}
|
||||||
10
homeConfigs/global/minimal/fileManager.nix
Normal file
10
homeConfigs/global/minimal/fileManager.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.yazi = {
|
||||||
|
enable = true;
|
||||||
|
settings.mgr.sort_dir_first=false;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables.BROWSER = "yazi";
|
||||||
|
programs.yazi.shellWrapperName = "y";
|
||||||
|
}
|
||||||
25
homeConfigs/global/minimal/git.nix
Normal file
25
homeConfigs/global/minimal/git.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
signing.format = "openpgp";
|
||||||
|
settings = {
|
||||||
|
user.email = "tomoron@student.42angouleme.fr";
|
||||||
|
user.name = "tomoron";
|
||||||
|
init.defaultBranch="master";
|
||||||
|
pull.rebase = true;
|
||||||
|
push.autoSetupRemote = true;
|
||||||
|
rerere.enabled = true;
|
||||||
|
help.autocorrect = 1;
|
||||||
|
|
||||||
|
user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD";
|
||||||
|
commit.gpgsign = true;
|
||||||
|
|
||||||
|
alias = {
|
||||||
|
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
|
||||||
|
back = "reset HEAD~";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
6
homeConfigs/global/minimal/other.nix
Normal file
6
homeConfigs/global/minimal/other.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
catppuccin.enable = lib.mkDefault false;
|
||||||
|
catppuccin.autoEnable = lib.mkDefault false;
|
||||||
|
}
|
||||||
30
homeConfigs/global/minimal/packages.nix
Normal file
30
homeConfigs/global/minimal/packages.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# packages.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/14 19:11:25 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs;[
|
||||||
|
lrzip
|
||||||
|
git
|
||||||
|
lm_sensors
|
||||||
|
wget
|
||||||
|
curl
|
||||||
|
man-pages
|
||||||
|
ffmpeg-full
|
||||||
|
nix-index
|
||||||
|
sops
|
||||||
|
screen
|
||||||
|
btop
|
||||||
|
htop
|
||||||
|
];
|
||||||
|
}
|
||||||
40
homeConfigs/global/minimal/shell.nix
Normal file
40
homeConfigs/global/minimal/shell.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{ homeDir, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.shell.enableBashIntegration = true;
|
||||||
|
home.shellAliases = {
|
||||||
|
ls= "ls --color=auto";
|
||||||
|
grep = "grep --color=auto";
|
||||||
|
vim = "nvim";
|
||||||
|
vi = "nvim";
|
||||||
|
clr = "clear";
|
||||||
|
noidle = "systemctl --user stop hypridle";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.bash.profileExtra = ''
|
||||||
|
PATH=$PATH:${homeDir}/.cargo/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
programs.direnv.enable = true;
|
||||||
|
programs.direnv.enableBashIntegration = true;
|
||||||
|
|
||||||
|
programs.bash = {
|
||||||
|
enable = true;
|
||||||
|
historyControl = ["ignoreboth"];
|
||||||
|
historyIgnore = [ "ls" "cd" "exit" ];
|
||||||
|
shellOptions = [ "cdspell" "autocd"];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.bash.bashrcExtra = ''
|
||||||
|
cd() {
|
||||||
|
builtin cd "$@"
|
||||||
|
echo -n "$PWD" > ~/.last_directory
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f ~/.last_directory ] && [ -n "$PS1" ];then
|
||||||
|
echo "going to $(cat ~/.last_directory)"
|
||||||
|
builtin cd "$(cat ~/.last_directory)"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
}
|
||||||
213
homeConfigs/global/minimal/vim.nix
Normal file
213
homeConfigs/global/minimal/vim.nix
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# vim.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2026/06/14 19:22:40 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/14 19:32:07 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
|
||||||
|
withPython3 = false;
|
||||||
|
withRuby = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ripgrep
|
||||||
|
];
|
||||||
|
|
||||||
|
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' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
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()
|
||||||
|
|
||||||
|
local _99 = require("99")
|
||||||
|
|
||||||
|
local cwd = vim.uv.cwd()
|
||||||
|
local basename = vim.fs.basename(cwd)
|
||||||
|
_99.setup({
|
||||||
|
provider = _99.Providers.OpenCodeProvider,
|
||||||
|
model = "ollama/gemma4:26b",
|
||||||
|
logger = {
|
||||||
|
level = _99.DEBUG,
|
||||||
|
path = "/home/tom/99logs/" .. basename .. ".99.debug",
|
||||||
|
print_on_error = true,
|
||||||
|
},
|
||||||
|
tmp_dir = "./tmp",
|
||||||
|
|
||||||
|
--- Completions: #rules and @files in the prompt buffer
|
||||||
|
completion = {
|
||||||
|
--- Configure @file completion (all fields optional, sensible defaults)
|
||||||
|
files = {
|
||||||
|
-- enabled = true,
|
||||||
|
-- max_file_size = 102400, -- bytes, skip files larger than this
|
||||||
|
-- max_files = 5000, -- cap on total discovered files
|
||||||
|
-- exclude = { ".env", ".env.*", "node_modules", ".git", ... },
|
||||||
|
},
|
||||||
|
--- File Discovery:
|
||||||
|
|
||||||
|
source = "cmp", -- "native" (default), "cmp", or "blink"
|
||||||
|
},
|
||||||
|
|
||||||
|
md_files = {
|
||||||
|
-- "AGENT.md",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("v", "<leader>9v", function()
|
||||||
|
_99.visual()
|
||||||
|
end)
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>9x", function()
|
||||||
|
_99.stop_all_requests()
|
||||||
|
end)
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>9s", function()
|
||||||
|
_99.search()
|
||||||
|
end)
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>9m", function()
|
||||||
|
require("99.extensions.telescope").select_model()
|
||||||
|
end)
|
||||||
|
'';
|
||||||
|
|
||||||
|
programs.neovim.extraConfig = ''
|
||||||
|
set number
|
||||||
|
set ai
|
||||||
|
autocmd BufWinLeave *.* mkview
|
||||||
|
autocmd BufWinEnter *.* silent! loadview
|
||||||
|
set tabstop=4
|
||||||
|
set scrolloff=10
|
||||||
|
set smartindent
|
||||||
|
set shiftwidth=4
|
||||||
|
map <silent> <C-N> :bnext<CR>
|
||||||
|
map <silent> <C-P> :bprevious<CR>
|
||||||
|
nmap <silent> <c-k> :wincmd k<CR>
|
||||||
|
nmap <silent> <c-j> :wincmd j<CR>
|
||||||
|
nmap <silent> <c-h> :wincmd h<CR>
|
||||||
|
nmap <silent> <c-l> :wincmd l<CR>
|
||||||
|
set hidden
|
||||||
|
set path +=**
|
||||||
|
set wildmenu
|
||||||
|
set wildignore+=**/node_modules/**
|
||||||
|
|
||||||
|
let mapleader=";"
|
||||||
|
|
||||||
|
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||||
|
\| PlugInstall --sync
|
||||||
|
\| endif
|
||||||
|
|
||||||
|
call plug#begin('~/.config/nvim/plugged')
|
||||||
|
Plug 'bling/vim-bufferline'
|
||||||
|
Plug 'nvim-lua/plenary.nvim'
|
||||||
|
Plug 'nvim-telescope/telescope.nvim'
|
||||||
|
Plug 'andweeb/presence.nvim'
|
||||||
|
Plug 'neovim/nvim-lspconfig'
|
||||||
|
Plug 'bluz71/vim-nightfly-colors'
|
||||||
|
Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
|
||||||
|
Plug 'tikhomirov/vim-glsl'
|
||||||
|
Plug 'lambdalisue/nerdfont.vim'
|
||||||
|
Plug 'lambdalisue/glyph-palette.vim'
|
||||||
|
Plug 'lambdalisue/fern-renderer-nerdfont.vim'
|
||||||
|
Plug 'lambdalisue/fern-git-status.vim'
|
||||||
|
Plug 'lambdalisue/fern.vim'
|
||||||
|
Plug 'hrsh7th/nvim-cmp'
|
||||||
|
Plug 'ThePrimeagen/99'
|
||||||
|
Plug 'hrsh7th/cmp-nvim-lsp'
|
||||||
|
Plug 'hrsh7th/cmp-buffer'
|
||||||
|
Plug 'hrsh7th/cmp-path'
|
||||||
|
Plug 'hrsh7th/cmp-cmdline'
|
||||||
|
Plug 'hrsh7th/nvim-cmp'
|
||||||
|
|
||||||
|
Plug 'hrsh7th/cmp-vsnip'
|
||||||
|
Plug 'hrsh7th/vim-vsnip'
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
colorscheme catppuccin-mocha
|
||||||
|
|
||||||
|
set signcolumn=auto
|
||||||
|
|
||||||
|
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
||||||
|
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
||||||
|
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
||||||
|
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
||||||
|
nnoremap <leader>fi <cmd>Fern %:h<cr>
|
||||||
|
|
||||||
|
let g:user42 = 'tomoron'
|
||||||
|
let g:mail42 = 'tomoron@student.42angouleme.fr'
|
||||||
|
let g:fern#renderer = "nerdfont"
|
||||||
|
'';
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
#install plug.vim
|
||||||
|
".local/share/nvim/site/autoload/plug.vim".source = "${fetchGit {
|
||||||
|
url = "https://github.com/junegunn/vim-plug";
|
||||||
|
rev = "d80f495fabff8446972b8695ba251ca636a047b0";
|
||||||
|
ref = "master";
|
||||||
|
}}/plug.vim";
|
||||||
|
|
||||||
|
#install stdheader 42
|
||||||
|
".config/nvim/plugin/stdheader.vim".source = "${fetchGit {
|
||||||
|
url = "https://github.com/42Paris/42header";
|
||||||
|
rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
|
||||||
|
ref = "master";
|
||||||
|
}}/plugin/stdheader.vim";
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -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/08/04 15:38:21 by tomoron ### ########.fr #
|
# Updated: 2026/06/16 23:07:00 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -14,35 +14,32 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs;[
|
home.packages = with pkgs;[
|
||||||
lrzip
|
|
||||||
pigz
|
pigz
|
||||||
htop
|
fastfetch
|
||||||
gnumake
|
|
||||||
git
|
|
||||||
neofetch
|
|
||||||
clang
|
clang
|
||||||
ninja
|
ninja
|
||||||
gdb
|
gdb
|
||||||
valgrind
|
valgrind
|
||||||
wget
|
|
||||||
cmake
|
cmake
|
||||||
man-pages
|
|
||||||
stress
|
stress
|
||||||
ffmpeg-full
|
|
||||||
ripgrep
|
|
||||||
activate-linux
|
activate-linux
|
||||||
unison
|
|
||||||
brightnessctl
|
brightnessctl
|
||||||
playerctl
|
|
||||||
python3
|
|
||||||
vlc
|
vlc
|
||||||
nix-index
|
|
||||||
dunst
|
|
||||||
yubikey-manager
|
yubikey-manager
|
||||||
bibata-cursors
|
bibata-cursors
|
||||||
libcaca
|
libcaca
|
||||||
nasm
|
nasm
|
||||||
nerd-fonts.iosevka
|
nerd-fonts.iosevka
|
||||||
compiledb
|
compiledb
|
||||||
|
yubikey-personalization
|
||||||
|
libreoffice
|
||||||
|
doxygen
|
||||||
|
qimgv
|
||||||
|
acpi
|
||||||
|
|
||||||
|
discord
|
||||||
|
google-chrome
|
||||||
|
localsend
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
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://dnc.tmoron.fr/remote.php/dav/files/tom";
|
||||||
|
vendor = "nextcloud";
|
||||||
|
user = "tom";
|
||||||
|
};
|
||||||
|
secrets.pass = config.sops.secrets."nextcloud_fuse/password".path;
|
||||||
|
mounts = {
|
||||||
|
"/" = {
|
||||||
|
enable = true;
|
||||||
|
mountPoint = "${homeDir}/nextcloud";
|
||||||
|
options.vfs-cache-mode = "writes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
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 = "${fetchGit {
|
||||||
|
url = "https://github.com/newmanls/rofi-themes-collection";
|
||||||
|
rev = "c8239a45edced3502894e1716a8b661fdea8f1c9";
|
||||||
|
ref = "master";
|
||||||
|
}}/themes";
|
||||||
|
}
|
||||||
58
homeConfigs/global/vim.nix
Normal file
58
homeConfigs/global/vim.nix
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
clang-tools
|
||||||
|
nixd
|
||||||
|
nodejs_24
|
||||||
|
glsl_analyzer
|
||||||
|
opencode
|
||||||
|
(pkgs.python3.withPackages (ps: with ps; [
|
||||||
|
python-lsp-server
|
||||||
|
pylsp-mypy
|
||||||
|
python-lsp-ruff
|
||||||
|
pycodestyle
|
||||||
|
]))
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.neovim.initLua= ''
|
||||||
|
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
|
||||||
|
}
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
||||||
27
homeConfigs/global/wayland/hypridle.nix
Normal file
27
homeConfigs/global/wayland/hypridle.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.shellAliases.noidle = "systemctl --user stop hypridle";
|
||||||
|
services.hypridle = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general.lock_cmd = "hyprlock";
|
||||||
|
general.before_sleep_cmd = "loginctl lock-session";
|
||||||
|
listener = [
|
||||||
|
{
|
||||||
|
timeout = 300;
|
||||||
|
on-timeout = "brightnessctl -s set 0";
|
||||||
|
on-resume = "brightnessctl -r";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 300;
|
||||||
|
on-timeout = "loginctl lock-session";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 1800;
|
||||||
|
on-timeout = "systemctl suspend";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
177
homeConfigs/global/wayland/hyprland.nix
Normal file
177
homeConfigs/global/wayland/hyprland.nix
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
{lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.systemd.variables = [ "--all" ];
|
||||||
|
|
||||||
|
programs.hyprshot.enable = true;
|
||||||
|
catppuccin.hyprland.enable = false;
|
||||||
|
|
||||||
|
home.shellAliases.hl = "Hyprland";
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.enable = true;
|
||||||
|
wayland.windowManager.hyprland.configType = "hyprlang";
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
"$mainMod" = "SUPER";
|
||||||
|
bind = [
|
||||||
|
" , Print, exec, hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||||
|
" SHIFT, Print, exec, hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||||
|
"$mainMod, Return, exec, alacritty"
|
||||||
|
"CTRL_ALT, Q, killactive,"
|
||||||
|
"CTRL_ALT_SHIFT, Q, forcekillactive,"
|
||||||
|
"SUPER_ALT, Q, exit,"
|
||||||
|
"$mainMod, S, togglefloating,"
|
||||||
|
"$mainMod, I, pin,"
|
||||||
|
"$mainMod, D, exec, ${lib.getExe pkgs.rofi} -show drun -show-icons"
|
||||||
|
"$mainMod SHIFT, D, exec, ${lib.getExe pkgs.rofi} -show run -show-icons"
|
||||||
|
"$mainMod, M, fullscreen, 1"
|
||||||
|
"$mainMod, F, fullscreen, 0"
|
||||||
|
|
||||||
|
# Move focus
|
||||||
|
"$mainMod, h, movefocus, l"
|
||||||
|
"$mainMod, l, movefocus, r"
|
||||||
|
"$mainMod, k, movefocus, u"
|
||||||
|
"$mainMod, j, movefocus, d"
|
||||||
|
|
||||||
|
#swap windows
|
||||||
|
"$mainMod SHIFT, h, swapwindow, l"
|
||||||
|
"$mainMod SHIFT, l, swapwindow, r"
|
||||||
|
"$mainMod SHIFT, k, swapwindow, u"
|
||||||
|
"$mainMod SHIFT, j, swapwindow, d"
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]
|
||||||
|
"$mainMod, 1, workspace, 1"
|
||||||
|
"$mainMod, 2, workspace, 2"
|
||||||
|
"$mainMod, 3, workspace, 3"
|
||||||
|
"$mainMod, 4, workspace, 4"
|
||||||
|
"$mainMod, 5, workspace, 5"
|
||||||
|
"$mainMod, 6, workspace, 6"
|
||||||
|
"$mainMod, 7, workspace, 7"
|
||||||
|
"$mainMod, 8, workspace, 8"
|
||||||
|
"$mainMod, 9, workspace, 9"
|
||||||
|
"$mainMod, 0, workspace, 10"
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
|
||||||
|
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
|
||||||
|
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
|
||||||
|
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
|
||||||
|
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
|
||||||
|
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
|
||||||
|
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
|
||||||
|
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
|
||||||
|
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
|
||||||
|
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
"$mainMod, mouse_down, workspace, e+1"
|
||||||
|
"$mainMod, mouse_up, workspace, e-1"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [ #bind mouse
|
||||||
|
"$mainMod, mouse:272, movewindow"
|
||||||
|
"$mainMod, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindel = [ #repeat and locked
|
||||||
|
" ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
" ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
" ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
" ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
" ,XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
||||||
|
" ,XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
||||||
|
" ,XF86KbdBrightnessUp, exec, asusctl -n"
|
||||||
|
" ,XF86KbdBrightnessDown, exec, asusctl -p"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindl = [ #repeat
|
||||||
|
" , XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
|
||||||
|
" , XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
|
||||||
|
" , XF86AudioPause, exec, ${lib.getExe pkgs.playerctl} play-pause"
|
||||||
|
" , XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
|
||||||
|
"$mainMod, n, exec, ${lib.getExe pkgs.playerctl} next"
|
||||||
|
"$mainMod, p, exec, ${lib.getExe pkgs.playerctl} previous"
|
||||||
|
"$mainMod, o, exec, ${lib.getExe pkgs.playerctl} play-pause"
|
||||||
|
];
|
||||||
|
|
||||||
|
windowrule = [
|
||||||
|
"match:class (pinentry-)(.*), stay_focused on"
|
||||||
|
];
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "fr";
|
||||||
|
kb_variant = "us";
|
||||||
|
follow_mouse = 2;
|
||||||
|
kb_options = "caps:none";
|
||||||
|
touchpad.natural_scroll = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = 1;
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
mouse_move_focuses_monitor = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
force_split = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
|
||||||
|
bezier = [
|
||||||
|
"easeInOut, 0.77, 0, 0.175, 1"
|
||||||
|
"easeOut, 0.24, 0.66, 0.04, 1"
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 2, easeInOut"
|
||||||
|
"windowsIn, 1, 2, easeInOut, slide"
|
||||||
|
"windowsOut, 1, 2, easeInOut, slide"
|
||||||
|
"fade, 1, 2, easeInOut"
|
||||||
|
"workspaces, 1, 2, easeOut"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 10;
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
range = 4;
|
||||||
|
render_power = 3;
|
||||||
|
color = "rgba(1a1a1aee)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 2;
|
||||||
|
gaps_out = 5;
|
||||||
|
border_size = 1;
|
||||||
|
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
"col.inactive_border" = "rgba(595959aa)";
|
||||||
|
resize_on_border = false;
|
||||||
|
allow_tearing = false;
|
||||||
|
layout = "dwindle";
|
||||||
|
};
|
||||||
|
|
||||||
|
layerrule = {
|
||||||
|
name = "no_anim_for_selection";
|
||||||
|
no_anim = "on";
|
||||||
|
"match:namespace" = "selection";
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor.no_warps = true;
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"HYPRCURSOR_SIZE,17"
|
||||||
|
"HYPRCURSOR_THEME,bibata-modern-classic"
|
||||||
|
];
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"${lib.getExe pkgs.swaybg} -i ~/.config/wallpaper.png&"
|
||||||
|
"(sleep 2;${lib.getExe pkgs.activate-linux})&"
|
||||||
|
"waybar&"
|
||||||
|
"alacritty&"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
32
homeConfigs/global/wayland/hyprlock.nix
Normal file
32
homeConfigs/global/wayland/hyprlock.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.hyprlock.enable = true;
|
||||||
|
|
||||||
|
catppuccin.hyprlock.enable = false;
|
||||||
|
|
||||||
|
programs.hyprlock.settings = {
|
||||||
|
general = {
|
||||||
|
no_fade_out = true;
|
||||||
|
ignore_empty_input = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
background = {
|
||||||
|
monitor = "";
|
||||||
|
path = "~/.config/lock_screen.jpg";
|
||||||
|
};
|
||||||
|
|
||||||
|
input-field = {
|
||||||
|
monitor = "";
|
||||||
|
size = "300, 50";
|
||||||
|
dot_size = "0.2";
|
||||||
|
dots_fade_time = 100;
|
||||||
|
inner_color = "rgb(139,89,100)";
|
||||||
|
outer_color = "rgb(139,89,100)";
|
||||||
|
outline_thickness = 1;
|
||||||
|
|
||||||
|
fail_transition = "300";
|
||||||
|
fail_text = "learn to write, idiot";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
24
homeConfigs/global/wayland/logout.nix
Normal file
24
homeConfigs/global/wayland/logout.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.wleave.enable = true;
|
||||||
|
programs.wleave.settings.buttons= [
|
||||||
|
{
|
||||||
|
action = "echo systemctl poweroff";
|
||||||
|
keybind = "y";
|
||||||
|
label = "shutdown";
|
||||||
|
text = "sync and shutdown";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "echo systemctl soft-reboot";
|
||||||
|
keybind = "s";
|
||||||
|
label = "reboot";
|
||||||
|
text = "soft reboot2";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "echo \"touch ~/.nosync && systemctl poweroff\"";
|
||||||
|
keybind = "n";
|
||||||
|
label = "shutdown";
|
||||||
|
text = "shutdown without syncing";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
10
homeConfigs/global/wayland/packages.nix
Normal file
10
homeConfigs/global/wayland/packages.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
wl-clipboard
|
||||||
|
swaybg
|
||||||
|
];
|
||||||
|
}
|
||||||
19
homeConfigs/global/wayland/waybar/battery.nix
Normal file
19
homeConfigs/global/wayland/waybar/battery.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
battery = {
|
||||||
|
bat = "BAT0";
|
||||||
|
full-at = 79;
|
||||||
|
states = {
|
||||||
|
good = 20;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format-time = " {H}:{m}";
|
||||||
|
format-discharging = "{icon} {capacity}%{time}";
|
||||||
|
format-charging = " {capacity}%{time}";
|
||||||
|
format-plugged = "";
|
||||||
|
format-icons = [" " " " " " " " " "];
|
||||||
|
interval = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
10
homeConfigs/global/wayland/waybar/clock.nix
Normal file
10
homeConfigs/global/wayland/waybar/clock.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
clock = {
|
||||||
|
interval = 1;
|
||||||
|
format-alt = "{:%Y-%m-%d}";
|
||||||
|
format = "{:%H:%M:%S}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
homeConfigs/global/wayland/waybar/cpu.nix
Normal file
15
homeConfigs/global/wayland/waybar/cpu.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
cpu = {
|
||||||
|
format = " {usage}%";
|
||||||
|
format-low = "";
|
||||||
|
states = {
|
||||||
|
low = 0;
|
||||||
|
working = 30;
|
||||||
|
high = 80;
|
||||||
|
};
|
||||||
|
interval = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
12
homeConfigs/global/wayland/waybar/disk.nix
Normal file
12
homeConfigs/global/wayland/waybar/disk.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
disk = {
|
||||||
|
format-low ="";
|
||||||
|
format = " {percentage_used}%";
|
||||||
|
states.low = 0;
|
||||||
|
states.warning = 70;
|
||||||
|
states.high= 90;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
61
homeConfigs/global/wayland/waybar/global_style.nix
Normal file
61
homeConfigs/global/wayland/waybar/global_style.nix
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.style = ''
|
||||||
|
* {
|
||||||
|
font-family: "Iosevka Nerd Font";
|
||||||
|
font-size: 14px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: #cdd6f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-right, #window {
|
||||||
|
border: 1px solid #444444;
|
||||||
|
background-color: #1e1e2e;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-right .module {
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-right: 4px;
|
||||||
|
background-color: rgba(127, 132, 156, 0.3);
|
||||||
|
padding: 1px 6px;
|
||||||
|
border-radius: 5px;
|
||||||
|
|
||||||
|
transition: background-color 200ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes red_blink {
|
||||||
|
from { background-color: rgba(127, 132, 156, 0.6); }
|
||||||
|
to { background-color: rgba(193,89,118, 0.5); }
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-separator {
|
||||||
|
background-color: transparent;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px
|
||||||
|
}
|
||||||
|
|
||||||
|
#network, #clock {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
color: #f53c3c;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module.warning {
|
||||||
|
background-color: rgba(249, 226, 175, 0.4);
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module.high, .module.critical {
|
||||||
|
background-color: rgba(193,89,118, 0.5);
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
16
homeConfigs/global/wayland/waybar/memory.nix
Normal file
16
homeConfigs/global/wayland/waybar/memory.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
memory = {
|
||||||
|
format = " {}%";
|
||||||
|
format-low = "";
|
||||||
|
interval = 5;
|
||||||
|
states = {
|
||||||
|
low = 0;
|
||||||
|
show = 50;
|
||||||
|
elevated = 80;
|
||||||
|
critical = 95;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
12
homeConfigs/global/wayland/waybar/music.nix
Normal file
12
homeConfigs/global/wayland/waybar/music.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
"custom/music" = {
|
||||||
|
exec-if = "${lib.getExe pkgs.playerctl} metadata 2>&1 >/dev/null";
|
||||||
|
exec = "${lib.getExe pkgs.playerctl} metadata --format ' {{ artist }} - {{title}}'";
|
||||||
|
interval = 1;
|
||||||
|
interval-if = 5;
|
||||||
|
max-length = 50;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
12
homeConfigs/global/wayland/waybar/network.nix
Normal file
12
homeConfigs/global/wayland/waybar/network.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
network = {
|
||||||
|
format-wifi = "{icon} {essid}";
|
||||||
|
format-ethernet = " {ifname}";
|
||||||
|
format-disconnected = " ";
|
||||||
|
format-icons = [" " " " " " " "];
|
||||||
|
max-length = 20;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
25
homeConfigs/global/wayland/waybar/pulseaudio.nix
Normal file
25
homeConfigs/global/wayland/waybar/pulseaudio.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
pulseaudio = {
|
||||||
|
format = "{icon}{volume}%";
|
||||||
|
format-bluetooth = " {icon} {volume}%";
|
||||||
|
format-muted = "";
|
||||||
|
format-icons = {
|
||||||
|
headphones = " ";
|
||||||
|
handsfree = " ";
|
||||||
|
headset = " ";
|
||||||
|
phone = " ";
|
||||||
|
portable = " ";
|
||||||
|
car = " ";
|
||||||
|
default = [" " " " " "];
|
||||||
|
};
|
||||||
|
on-click = "${lib.getExe pkgs.pavucontrol}";
|
||||||
|
states = {
|
||||||
|
low = 79;
|
||||||
|
warning = 99;
|
||||||
|
high = 100000;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
homeConfigs/global/wayland/waybar/temperature.nix
Normal file
15
homeConfigs/global/wayland/waybar/temperature.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
temperature = {
|
||||||
|
thermal-zone = lib.mkDefault 0;
|
||||||
|
critical-threshold = lib.mkDefault 85;
|
||||||
|
warning-threshold = lib.mkDefault 60;
|
||||||
|
interval = 5;
|
||||||
|
format = "";
|
||||||
|
format-warning ="{icon} {temperatureC}°C";
|
||||||
|
format-critical ="{icon} {temperatureC}°C";
|
||||||
|
format-icons = ["" "" "" "" ""];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
35
homeConfigs/global/wayland/waybar/waybar.nix
Normal file
35
homeConfigs/global/wayland/waybar/waybar.nix
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.waybar.enable = true;
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
layer = "top";
|
||||||
|
position ="top";
|
||||||
|
height = 24;
|
||||||
|
margin-left = 5;
|
||||||
|
margin-right = 5;
|
||||||
|
modules-left = ["hyprland/workspaces" "custom/music"];
|
||||||
|
modules-center = ["hyprland/window"];
|
||||||
|
modules-right = [
|
||||||
|
"disk"
|
||||||
|
"pulseaudio"
|
||||||
|
"cpu"
|
||||||
|
"temperature"
|
||||||
|
"memory"
|
||||||
|
"battery"
|
||||||
|
|
||||||
|
"network"
|
||||||
|
"custom/separator"
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
|
||||||
|
"hyprland/window" = {
|
||||||
|
max-length = 50;
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/separator" = {
|
||||||
|
format = "|";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
42
homeConfigs/global/wayland/waybar/workspaces.nix
Normal file
42
homeConfigs/global/wayland/waybar/workspaces.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.waybar.style = ''
|
||||||
|
#workspaces {
|
||||||
|
border: 1px solid #444444;
|
||||||
|
background-color: #1e1e2e;
|
||||||
|
padding-left: 3px;
|
||||||
|
padding-right: 3px;
|
||||||
|
padding-top: 2px;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
background-color: transparent;
|
||||||
|
padding: 0px 3px;
|
||||||
|
margin: 0px 5px;
|
||||||
|
min-height: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background-color: rgba(127, 132, 156, 0.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
animation: red_blink 500ms infinite alternate;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.empty #window {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
programs.waybar.settings.mainBar = {
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
disable-scroll = true;
|
||||||
|
all-outputs = false;
|
||||||
|
format = "{id}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -6,77 +6,35 @@
|
|||||||
# 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/05/12 12:35:00 by tomoron ### ########.fr #
|
# Updated: 2026/06/15 01:53:27 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
{lib, pkgs, username ? "tom" ,homeDir ? "/home/tom", isOs ? false, ... }:
|
{
|
||||||
|
lib,
|
||||||
|
username ? "tom",
|
||||||
|
homeDir ? "/home/tom",
|
||||||
|
isOs ? false,
|
||||||
|
configSops ? true,
|
||||||
|
minimal,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = lib.concatLists [
|
imports = (lib.fileset.toList ./modules)
|
||||||
[ ./packages.nix ]
|
++ (lib.lists.optionals minimal (lib.fileset.toList ./global/minimal))
|
||||||
(lib.fileset.toList ./modules)
|
++ (lib.lists.optionals (!minimal) (lib.fileset.toList ./global));
|
||||||
];
|
|
||||||
|
|
||||||
home.username = lib.mkIf (!isOs) "${username}";
|
home.username = lib.mkIf (!isOs) "${username}";
|
||||||
home.homeDirectory = lib.mkIf (!isOs) "${homeDir}";
|
home.homeDirectory = lib.mkIf (!isOs) "${homeDir}";
|
||||||
|
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "25.11";
|
||||||
|
|
||||||
# programs.ghostty.enable = true;
|
sops = lib.mkIf configSops{
|
||||||
# programs.ghostty.settings = {
|
defaultSopsFile = ../secrets/secrets.yaml;
|
||||||
# theme = "catppuccin-mocha";
|
age.keyFile = "${homeDir}/.config/sops/age/keys.txt";
|
||||||
# font-size = 9;
|
|
||||||
# };
|
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
gtk.enable = true;
|
|
||||||
package = pkgs.bibata-cursors;
|
|
||||||
name = "Bibata-Modern-Classic";
|
|
||||||
size = 16;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk = {
|
services.dunst.enable = true;
|
||||||
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;
|
|
||||||
};
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,6 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
mods.game.enable = false;
|
|
||||||
mods.hyprland.enable = false;
|
|
||||||
mods.x11.enable = true;
|
|
||||||
programs.firefox.enable = false;
|
|
||||||
|
|
||||||
services.picom = {
|
services.picom = {
|
||||||
backend = "xrender";
|
backend = "xrender";
|
||||||
settings = {
|
settings = {
|
||||||
@ -1,28 +1,28 @@
|
|||||||
{ ... }:
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
mods.x11.enable = true;
|
programs.waybar.settings.mainBar.temperature.thermal-zone = 2;
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
monitor = [
|
monitor = [
|
||||||
"HDMI-A-1, 1920x1080@60, 0x0, auto"
|
"DP-2, 1920x1080@60Hz, -1920x0, auto"
|
||||||
"HDMI-A-3, 1920x1080@60, 1920x0, auto"
|
"HDMI-A-3, 1920x1080@60Hz, 0x0, auto"
|
||||||
"DP-1, 1280x1024@60, 3840x0, auto"
|
"DP-3, 1920x1080@60.00Hz, 1920x0, auto"
|
||||||
"DP-3, 1280x1024@60, 5120x0, auto"
|
"DP-4, 1280x1024@75.03Hz, 3840x0, auto"
|
||||||
];
|
];
|
||||||
workspace = [
|
workspace = [
|
||||||
"1, monitor:HDMI-A-1"
|
"3, monitor:DP-2"
|
||||||
"2, monitor:HDMI-A-3, default:true"
|
"1, monitor:HDMI-A-3, default:true"
|
||||||
"3, monitor:DP-1"
|
"2, monitor:DP-3"
|
||||||
"4, monitor:DP-3"
|
"4, monitor:DP-4"
|
||||||
];
|
];
|
||||||
env = [
|
env = [
|
||||||
"AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0"
|
"AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card2"
|
||||||
"LIBVA_DRIVER_NAME,nvidia"
|
"LIBVA_DRIVER_NAME,nvidia"
|
||||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||||
];
|
];
|
||||||
|
|
||||||
cursor.no_hardware_cursors = true;
|
cursor.no_hardware_cursors = true;
|
||||||
misc.vrr = 1;
|
misc.vrr = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
mods.hyprland.autoSuspend = false;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
{ lib, pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
mods.nonChromium.enable = false;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,14 +5,14 @@
|
|||||||
modules-right = lib.mkBefore ["custom/fans" "custom/dgpu"];
|
modules-right = lib.mkBefore ["custom/fans" "custom/dgpu"];
|
||||||
"custom/dgpu" = {
|
"custom/dgpu" = {
|
||||||
exec-if = "test \"$(supergfxctl -g)\" = \"Hybrid\" || test \"$(supergfxctl -g)\" = \"Vfio\"";
|
exec-if = "test \"$(supergfxctl -g)\" = \"Hybrid\" || test \"$(supergfxctl -g)\" = \"Vfio\"";
|
||||||
exec = "echo \" on |\"";
|
exec = "echo \" on\"";
|
||||||
interval-if = 10;
|
interval-if = 10;
|
||||||
interval = 100;
|
interval = 100;
|
||||||
};
|
};
|
||||||
|
|
||||||
"custom/fans" = {
|
"custom/fans" = {
|
||||||
exec-if = "test \"$(cat /sys/class/hwmon/hwmon6/fan1_input)\" -gt 0 -o \"$(cat /sys/class/hwmon/hwmon6/fan2_input)\" -gt 0";
|
exec-if = "test \"$(cat /sys/class/hwmon/hwmon6/fan1_input)\" -gt 0 -o \"$(cat /sys/class/hwmon/hwmon6/fan2_input)\" -gt 0";
|
||||||
exec = "echo \" \" \"$(cat /sys/class/hwmon/hwmon6/fan1_input).$(cat /sys/class/hwmon/hwmon6/fan2_input) |\"";
|
exec = "echo \" \" \"$(($(cat /sys/class/hwmon/hwmon6/fan1_input) / 100)).$(($(cat /sys/class/hwmon/hwmon6/fan2_input) / 100))\"";
|
||||||
interval = 1;
|
interval = 1;
|
||||||
interval-if = 1;
|
interval-if = 1;
|
||||||
};
|
};
|
||||||
@ -28,7 +28,6 @@
|
|||||||
", XF86Launch4, exec, pkill activate-linux"
|
", XF86Launch4, exec, pkill activate-linux"
|
||||||
];
|
];
|
||||||
monitor= [
|
monitor= [
|
||||||
# "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"
|
||||||
"HDMI-A-1, 1920x1080@60, auto, auto"
|
"HDMI-A-1, 1920x1080@60, auto, auto"
|
||||||
];
|
];
|
||||||
@ -36,10 +35,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
stremio
|
|
||||||
blender
|
blender
|
||||||
wireshark
|
wireshark
|
||||||
];
|
];
|
||||||
|
|
||||||
#mods.sync.syncedAdditions = ["VirtualBox VMs"];
|
services.mpris-proxy.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,4 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
mods.bash.goback = false;
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor= [
|
|
||||||
"virt-1, 1920x1080@60, 0x0, 1.0"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = ["WLR_BACKENDS,headless"];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +0,0 @@
|
|||||||
{ lib, config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.alacritty.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "install and config alacritty";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.alacritty.enable {
|
|
||||||
programs.alacritty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
window.opacity = 0.95;
|
|
||||||
env.XTERM = "xterm-256color";
|
|
||||||
font.size = 9;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
{ lib, config, ...}:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.bash.goback = lib.mkOption{
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "go back to last cd when starting bash";
|
|
||||||
};
|
|
||||||
|
|
||||||
config.programs.bash.bashrcExtra = lib.mkIf config.mods.bash.goback ''
|
|
||||||
cd() {
|
|
||||||
builtin cd "$@"
|
|
||||||
echo -n "$PWD" > ~/.last_directory
|
|
||||||
}
|
|
||||||
[ -z "\$${PS1:-}" ] && return
|
|
||||||
|
|
||||||
if [ -f ~/.last_directory ];then
|
|
||||||
echo -n going to
|
|
||||||
cat ~/.last_directory
|
|
||||||
echo
|
|
||||||
builtin cd "$(cat ~/.last_directory)"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
{ config, lib, inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.firefox.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "install and configure firefox";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.firefox.enable {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = lib.mkDefault true;
|
|
||||||
profiles.default = {
|
|
||||||
extensions.packages = with inputs.firefox-addons.packages."x86_64-linux";
|
|
||||||
[vimium ublock-origin];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.game.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "install packages for games (except steam , it's installed systemwide)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.game.enable {
|
|
||||||
home.packages = with pkgs;[
|
|
||||||
lutris
|
|
||||||
mangohud
|
|
||||||
moonlight-qt
|
|
||||||
prismlauncher
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.git.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "git configuration";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.git.enable {
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
lfs.enable = true;
|
|
||||||
userEmail = "tomoron@student.42angouleme.fr";
|
|
||||||
userName = "tomoron";
|
|
||||||
extraConfig = {
|
|
||||||
init.defaultBranch="master";
|
|
||||||
pull.rebase = true;
|
|
||||||
push.autoSetupRemote = true;
|
|
||||||
rerere.enabled = true;
|
|
||||||
help.autocorrect = 1;
|
|
||||||
};
|
|
||||||
aliases = {
|
|
||||||
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
|
|
||||||
back = "reset HEAD~";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.nonChromium.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "all chromium/electron based application can't be built by act-runner, so they can't be in the iso";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.nonChromium.enable {
|
|
||||||
home.packages = with pkgs;[
|
|
||||||
discord
|
|
||||||
google-chrome
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
{ lib, config, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
defPathLst = ["desktop" "42_desktop" "Downloads"];
|
defPathLst = [ "desktop" "42_desktop" ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.mods.sync = {
|
options.mods.sync = {
|
||||||
@ -19,7 +19,7 @@ in
|
|||||||
|
|
||||||
destFolder = lib.mkOption {
|
destFolder = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "/raid/pc_sync";
|
default = "/raid/crit/pc_sync";
|
||||||
description = "where on the server";
|
description = "where on the server";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -41,15 +41,17 @@ in
|
|||||||
description = "hostname used by unison";
|
description = "hostname used by unison";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
config = lib.mkIf config.mods.sync.enable {
|
||||||
config.home.file.".unison/default.prf" = lib.mkIf config.mods.sync.enable {
|
home.packages = with pkgs;[ unison ];
|
||||||
text = (lib.strings.concatStrings [''
|
home.file.".unison/default.prf" = {
|
||||||
auto=true
|
text = (lib.strings.concatStrings [''
|
||||||
root=${config.mods.sync.homeFolder}
|
auto=true
|
||||||
root=ssh://tom@tmoron.fr:1880/${config.mods.sync.destFolder}
|
root=${config.mods.sync.homeFolder}
|
||||||
''
|
root=ssh://tom@d.tmoron.fr:1880/${config.mods.sync.destFolder}
|
||||||
(lib.strings.concatMapStrings (x: "\npath=" + x) (( if config.mods.sync.defaultSynced then defPathLst else [] ) ++ config.mods.sync.syncedAdditions ))
|
''
|
||||||
(if !(isNull config.mods.sync.customHostName) then "\nclientHostName=${config.mods.sync.customHostName}" else "")
|
(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 "")
|
||||||
|
]);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,102 +0,0 @@
|
|||||||
{config, lib, pkgs, ...}:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.vim.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "install and configure vim";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.vim.enable {
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
clang-tools
|
|
||||||
nixd
|
|
||||||
nodejs_24
|
|
||||||
glsl_analyzer
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.neovim.extraConfig = ''
|
|
||||||
set number
|
|
||||||
set ai
|
|
||||||
autocmd BufWinLeave *.* mkview
|
|
||||||
autocmd BufWinEnter *.* silent! loadview
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set scrolloff=10
|
|
||||||
set preserveindent
|
|
||||||
map <silent> <C-N> :bnext<CR>
|
|
||||||
map <silent> <C-P> :bprevious<CR>
|
|
||||||
nmap <silent> <c-k> :wincmd k<CR>
|
|
||||||
nmap <silent> <c-j> :wincmd j<CR>
|
|
||||||
nmap <silent> <c-h> :wincmd h<CR>
|
|
||||||
nmap <silent> <c-l> :wincmd l<CR>
|
|
||||||
set hidden
|
|
||||||
set path +=**
|
|
||||||
set wildmenu
|
|
||||||
set wildignore+=**/node_modules/**
|
|
||||||
|
|
||||||
let mapleader=";"
|
|
||||||
|
|
||||||
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
|
||||||
\| PlugInstall --sync
|
|
||||||
\| endif
|
|
||||||
|
|
||||||
call plug#begin('~/.config/nvim/plugged')
|
|
||||||
Plug 'bling/vim-bufferline'
|
|
||||||
Plug 'nvim-lua/plenary.nvim'
|
|
||||||
Plug 'nvim-telescope/telescope.nvim'
|
|
||||||
Plug 'andweeb/presence.nvim'
|
|
||||||
Plug 'neovim/nvim-lspconfig'
|
|
||||||
Plug 'bluz71/vim-nightfly-colors'
|
|
||||||
Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
|
|
||||||
Plug 'tikhomirov/vim-glsl'
|
|
||||||
Plug 'lambdalisue/nerdfont.vim'
|
|
||||||
Plug 'lambdalisue/glyph-palette.vim'
|
|
||||||
Plug 'lambdalisue/fern-renderer-nerdfont.vim'
|
|
||||||
Plug 'lambdalisue/fern-git-status.vim'
|
|
||||||
Plug 'lambdalisue/fern.vim'
|
|
||||||
call plug#end()
|
|
||||||
|
|
||||||
colorscheme catppuccin-mocha
|
|
||||||
|
|
||||||
lua require'lspconfig'.clangd.setup{}
|
|
||||||
lua require'lspconfig'.nixd.setup{}
|
|
||||||
lua require'lspconfig'.glsl_analyzer.setup{}
|
|
||||||
set signcolumn=no
|
|
||||||
|
|
||||||
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
|
||||||
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
|
||||||
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
|
||||||
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
|
||||||
nnoremap <leader>fi <cmd>Fern %:h<cr>
|
|
||||||
|
|
||||||
let g:user42 = 'tomoron'
|
|
||||||
let g:mail42 = 'tomoron@student.42angouleme.fr'
|
|
||||||
let g:fern#renderer = "nerdfont"
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
#install plug.vim
|
|
||||||
".local/share/nvim/site/autoload/plug.vim".source = "${builtins.fetchGit {
|
|
||||||
url = "https://github.com/junegunn/vim-plug";
|
|
||||||
rev = "d80f495fabff8446972b8695ba251ca636a047b0";
|
|
||||||
ref = "master";
|
|
||||||
}}/plug.vim";
|
|
||||||
|
|
||||||
#install stdheader 42
|
|
||||||
".config/nvim/plugin/stdheader.vim".source = "${builtins.fetchGit {
|
|
||||||
url = "https://github.com/42Paris/42header";
|
|
||||||
rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
|
|
||||||
ref = "master";
|
|
||||||
}}/plugin/stdheader.vim";
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
{ lib, config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.hyprland.autoSuspend = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "enable hypridle suspend after 10min";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.hyprland.enable {
|
|
||||||
services.hypridle = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general.lock_cmd = "hyprlock";
|
|
||||||
general.before_sleep_cmd = "loginctl lock-session";
|
|
||||||
listener = [
|
|
||||||
{
|
|
||||||
timeout = 300;
|
|
||||||
on-timeout = "brightnessctl -s set 0";
|
|
||||||
on-resume = "brightnessctl -r";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = 300;
|
|
||||||
on-timeout = "loginctl lock-session";
|
|
||||||
}
|
|
||||||
] ++ lib.lists.optional config.mods.hyprland.autoSuspend {
|
|
||||||
timeout = 600;
|
|
||||||
on-timeout = "systemctl suspend";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,180 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.hyprland.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "install and configure hyprland and others";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.hyprland.enable {
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland.enable = true;
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
"$mainMod" = "SUPER";
|
|
||||||
bind = [
|
|
||||||
" , Print, exec, grim -t png -g \"$(slurp)\" /dev/stdout | tee ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png | wl-copy -t image/png"
|
|
||||||
"$mainMod, Return, exec, alacritty"
|
|
||||||
"CTRL_ALT, Q, killactive,"
|
|
||||||
"SUPER_ALT, Q, exit,"
|
|
||||||
"$mainMod, S, togglefloating,"
|
|
||||||
"$mainMod, I, pin,"
|
|
||||||
"$mainMod, D, exec, rofi -show drun -show-icons"
|
|
||||||
"$mainMod, M, fullscreen, 1"
|
|
||||||
"$mainMod, F, fullscreen, 0"
|
|
||||||
|
|
||||||
# Move focus
|
|
||||||
"$mainMod, h, movefocus, l"
|
|
||||||
"$mainMod, l, movefocus, r"
|
|
||||||
"$mainMod, k, movefocus, u"
|
|
||||||
"$mainMod, j, movefocus, d"
|
|
||||||
|
|
||||||
#swap windows
|
|
||||||
"$mainMod SHIFT, h, swapwindow, l"
|
|
||||||
"$mainMod SHIFT, l, swapwindow, r"
|
|
||||||
"$mainMod SHIFT, k, swapwindow, u"
|
|
||||||
"$mainMod SHIFT, j, swapwindow, d"
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
"$mainMod, 1, workspace, 1"
|
|
||||||
"$mainMod, 2, workspace, 2"
|
|
||||||
"$mainMod, 3, workspace, 3"
|
|
||||||
"$mainMod, 4, workspace, 4"
|
|
||||||
"$mainMod, 5, workspace, 5"
|
|
||||||
"$mainMod, 6, workspace, 6"
|
|
||||||
"$mainMod, 7, workspace, 7"
|
|
||||||
"$mainMod, 8, workspace, 8"
|
|
||||||
"$mainMod, 9, workspace, 9"
|
|
||||||
"$mainMod, 0, workspace, 10"
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
|
|
||||||
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
|
|
||||||
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
|
|
||||||
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
|
|
||||||
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
|
|
||||||
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
|
|
||||||
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
|
|
||||||
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
|
|
||||||
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
|
|
||||||
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
|
||||||
"$mainMod, mouse_down, workspace, e+1"
|
|
||||||
"$mainMod, mouse_up, workspace, e-1"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindm = [
|
|
||||||
"$mainMod, mouse:272, movewindow"
|
|
||||||
"$mainMod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindel = [
|
|
||||||
" ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
|
||||||
" ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
|
||||||
" ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
|
||||||
" ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
||||||
" ,XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
|
||||||
" ,XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
|
||||||
" ,XF86KbdBrightnessUp, exec, asusctl -n"
|
|
||||||
" ,XF86KbdBrightnessDown, exec, asusctl -p"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindl = [
|
|
||||||
" , XF86AudioNext, exec, playerctl next"
|
|
||||||
" , XF86AudioPrev, exec, playerctl previous"
|
|
||||||
" , XF86AudioPause, exec, playerctl play-pause"
|
|
||||||
" , XF86AudioPlay, exec, playerctl play-pause"
|
|
||||||
"$mainMod, n, exec, playerctl next"
|
|
||||||
"$mainMod, p, exec, playerctl previous"
|
|
||||||
"$mainMod, o, exec, playerctl play-pause"
|
|
||||||
];
|
|
||||||
|
|
||||||
windowrulev2 = [
|
|
||||||
#ignore maximize requests
|
|
||||||
"suppressevent maximize, class:.*"
|
|
||||||
#fix dragging issues with xwayland
|
|
||||||
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
|
||||||
];
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "fr";
|
|
||||||
kb_variant = "us";
|
|
||||||
follow_mouse = 2;
|
|
||||||
kb_options = "caps:none";
|
|
||||||
touchpad.natural_scroll = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
force_default_wallpaper = 1;
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
mouse_move_focuses_monitor = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = true;
|
|
||||||
force_split = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
|
|
||||||
bezier = [
|
|
||||||
"easeInOut, 0.77, 0, 0.175, 1"
|
|
||||||
"easeOut, 0.24, 0.66, 0.04, 1"
|
|
||||||
];
|
|
||||||
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 2, easeInOut"
|
|
||||||
"windowsIn, 1, 2, easeInOut, slide"
|
|
||||||
"windowsOut, 1, 2, easeInOut, slide"
|
|
||||||
"fade, 1, 2, easeInOut"
|
|
||||||
"workspaces, 1, 2, easeOut"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = 10;
|
|
||||||
|
|
||||||
shadow = {
|
|
||||||
enabled = true;
|
|
||||||
range = 4;
|
|
||||||
render_power = 3;
|
|
||||||
color = "rgba(1a1a1aee)";
|
|
||||||
};
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
size = 3;
|
|
||||||
passes = 1;
|
|
||||||
vibrancy = 0.1696;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
|
||||||
gaps_in = 3;
|
|
||||||
gaps_out = 7;
|
|
||||||
border_size = 2;
|
|
||||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
|
||||||
"col.inactive_border" = "rgba(595959aa)";
|
|
||||||
resize_on_border = false;
|
|
||||||
allow_tearing = false;
|
|
||||||
layout = "dwindle";
|
|
||||||
};
|
|
||||||
|
|
||||||
cursor.no_warps = true;
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"HYPRCURSOR_SIZE,17"
|
|
||||||
"HYPRCURSOR_THEME,bibata-modern-classic"
|
|
||||||
];
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"swaybg -i ~/.config/wallpaper.png&"
|
|
||||||
"(sleep 2;activate-linux)&"
|
|
||||||
"waybar&"
|
|
||||||
"alacritty&"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
{ lib, config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
config = lib.mkIf config.mods.hyprland.enable {
|
|
||||||
programs.hyprlock.enable = true;
|
|
||||||
programs.hyprlock.settings = {
|
|
||||||
general = {
|
|
||||||
no_fade_out = true;
|
|
||||||
ignore_empty_input = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
background = {
|
|
||||||
monitor = "";
|
|
||||||
path = "~/.config/pc.jpg";
|
|
||||||
# blur_passes = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
input-field = {
|
|
||||||
monitor = "";
|
|
||||||
size = "300, 50";
|
|
||||||
dot_size = "0.2";
|
|
||||||
dots_fade_time = 100;
|
|
||||||
inner_color = "rgb(139,89,100)";
|
|
||||||
outer_color = "rgb(139,89,100)";
|
|
||||||
outline_thickness = 1;
|
|
||||||
|
|
||||||
fail_transition = "300";
|
|
||||||
fail_text = "learn to write, idiot";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
config = lib.mkIf config.mods.hyprland.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
rofi-wayland
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
wl-clipboard
|
|
||||||
swaybg
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,163 +0,0 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
config = lib.mkIf config.mods.hyprland.enable {
|
|
||||||
programs.waybar.enable = true;
|
|
||||||
programs.waybar.style = ''
|
|
||||||
* {
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
font-family: "Iosevka Nerd Font";
|
|
||||||
font-size: 15px;
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background: transparent;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
padding: 0 5px;
|
|
||||||
background: transparent;
|
|
||||||
color: white;
|
|
||||||
border-top: 2px solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.focused {
|
|
||||||
color: #c9545d;
|
|
||||||
border-top: 2px solid #c9545d;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
color : #88ff88;
|
|
||||||
background-color : rgba(220,255, 220, 0.3)
|
|
||||||
}
|
|
||||||
|
|
||||||
#mode {
|
|
||||||
background: #64727D;
|
|
||||||
border-bottom: 3px solid white;
|
|
||||||
}
|
|
||||||
|
|
||||||
#network.disconnected {
|
|
||||||
color: #f53c3c;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#temperature.critical {
|
|
||||||
color: #ff2222;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.critical {
|
|
||||||
color: #ff2222;
|
|
||||||
}
|
|
||||||
#cpu.high {
|
|
||||||
color: #ff2222;
|
|
||||||
}
|
|
||||||
#disk.high {
|
|
||||||
color: #ff2222;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.waybar.settings.mainBar = {
|
|
||||||
layer = "top";
|
|
||||||
position ="top";
|
|
||||||
height = 24;
|
|
||||||
margin-left = 5;
|
|
||||||
margin-right = 5;
|
|
||||||
modules-left = ["hyprland/workspaces" "custom/music"];
|
|
||||||
modules-center = ["hyprland/window"];
|
|
||||||
modules-right = ["disk" "pulseaudio" "network" "custom/pipe" "cpu" "custom/pipe" "temperature" "custom/pipe" "memory" "battery" "clock"];
|
|
||||||
|
|
||||||
"hyprland/workspaces" = {
|
|
||||||
disable-scroll = true;
|
|
||||||
all-outputs = false;
|
|
||||||
format = "{id}";
|
|
||||||
};
|
|
||||||
|
|
||||||
clock = {
|
|
||||||
interval = 1;
|
|
||||||
format-alt = " {:%Y-%m-%d}";
|
|
||||||
format = " {:%H:%M:%S}";
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu = {
|
|
||||||
format = " {usage}% ";
|
|
||||||
states.high = 80;
|
|
||||||
interval = 5;
|
|
||||||
};
|
|
||||||
|
|
||||||
memory = {
|
|
||||||
format = " {}% |";
|
|
||||||
interval = 5;
|
|
||||||
};
|
|
||||||
|
|
||||||
battery = {
|
|
||||||
bat = "BAT0";
|
|
||||||
full-at = 79;
|
|
||||||
states = {
|
|
||||||
good = 20;
|
|
||||||
critical = 15;
|
|
||||||
};
|
|
||||||
format-time = " {H}:{m}";
|
|
||||||
format-discharging = " {icon} {capacity}%{time} |";
|
|
||||||
format-charging = " {capacity}%{time} |";
|
|
||||||
format-plugged = "";
|
|
||||||
format-icons = [" " " " " " " " " "];
|
|
||||||
interval = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
network = {
|
|
||||||
format-wifi = " {icon} {essid} ";
|
|
||||||
format-ethernet = " {ifname}: {ipaddr}/{cidr} ";
|
|
||||||
format-disconnected = " ⚠ Disconnected ";
|
|
||||||
format-icons =[" " " " " " " "];
|
|
||||||
};
|
|
||||||
|
|
||||||
pulseaudio = {
|
|
||||||
format = " {icon}{volume}% |";
|
|
||||||
format-bluetooth = " {icon} {volume}% |";
|
|
||||||
format-muted = "";
|
|
||||||
format-icons = {
|
|
||||||
headphones = " ";
|
|
||||||
handsfree = " ";
|
|
||||||
headset = " ";
|
|
||||||
phone = " ";
|
|
||||||
portable = " ";
|
|
||||||
car = " ";
|
|
||||||
default = [" " " " " "];
|
|
||||||
};
|
|
||||||
on-click = "pavucontrol";
|
|
||||||
};
|
|
||||||
|
|
||||||
temperature = {
|
|
||||||
thermal-zone = 0;
|
|
||||||
critical-threshold = 80;
|
|
||||||
interval = 5;
|
|
||||||
format =" {icon} {temperatureC}°C ";
|
|
||||||
format-icons = ["" "" "" "" ""];
|
|
||||||
};
|
|
||||||
|
|
||||||
disk = {
|
|
||||||
format =" {percentage_used}% |";
|
|
||||||
states.high = "5";
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/pipe" = {
|
|
||||||
format = "|";
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/music" = {
|
|
||||||
exec-if = "playerctl metadata 2>&1 >/dev/null";
|
|
||||||
exec = "playerctl metadata --format ' {{ artist }} - {{title}}'";
|
|
||||||
interval = 1;
|
|
||||||
interval-if = 5;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -6,11 +6,11 @@
|
|||||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/02/10 00:32:47 by tomoron #+# #+# #
|
# Created: 2025/02/10 00:32:47 by tomoron #+# #+# #
|
||||||
# Updated: 2025/02/10 01:17:29 by tomoron ### ########.fr #
|
# Updated: 2026/06/16 23:09:20 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
{ lib, config, ... }:
|
{pkgs, lib, config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.mods.x11.enable {
|
config = lib.mkIf config.mods.x11.enable {
|
||||||
@ -67,9 +67,9 @@
|
|||||||
"alt + F7" = "brightnessctl s 10-";
|
"alt + F7" = "brightnessctl s 10-";
|
||||||
"alt + F8" = "brightnessctl s 10+";
|
"alt + F8" = "brightnessctl s 10+";
|
||||||
|
|
||||||
"super + shift + o" = "playerctl play-pause";
|
"super + shift + o" = "${lib.getExe pkgs.playerctl} play-pause";
|
||||||
"super + shift + p" = "playerctl previous";
|
"super + shift + p" = "${lib.getExe pkgs.playerctl} previous";
|
||||||
"super + shift + n" = "playerctl next";
|
"super + shift + n" = "${lib.getExe pkgs.playerctl} next";
|
||||||
"super + shift + alt + b" = "polybar-msg cmd hide";
|
"super + shift + alt + b" = "polybar-msg cmd hide";
|
||||||
"super + shift + b" = "polybar-msg cmd show";
|
"super + shift + b" = "polybar-msg cmd show";
|
||||||
};
|
};
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 145 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.1 MiB |
31
osConfigs/global/boot.nix
Normal file
31
osConfigs/global/boot.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# boot.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:37:58 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/14 17:50:09 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{pkgs, ... } :
|
||||||
|
|
||||||
|
{
|
||||||
|
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; [ nixos-bgrt-plymouth ];
|
||||||
|
};
|
||||||
|
}
|
||||||
13
osConfigs/global/displayManager.nix
Normal file
13
osConfigs/global/displayManager.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.displayManager.enable = true;
|
||||||
|
services.displayManager.ly.enable = true;
|
||||||
|
services.displayManager.ly.settings = {
|
||||||
|
animation = "gameoflife";
|
||||||
|
min_refresh_delta = 50;
|
||||||
|
bigclock = "en";
|
||||||
|
sleep_cmd = "systemctl sleep";
|
||||||
|
asterisk = "A";
|
||||||
|
auth_fails= 3;
|
||||||
|
};
|
||||||
|
}
|
||||||
6
osConfigs/global/games.nix
Normal file
6
osConfigs/global/games.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.steam.enable = true;
|
||||||
|
programs.steam.protontricks.enable = true;
|
||||||
|
programs.gamescope.enable = true;
|
||||||
|
}
|
||||||
148
osConfigs/global/ld.nix
Normal file
148
osConfigs/global/ld.nix
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# ld.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/12/30 20:37:07 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/05/28 23:20:01 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
programs.nix-ld.libraries = with pkgs; [
|
||||||
|
zlib
|
||||||
|
zstd
|
||||||
|
stdenv.cc.cc
|
||||||
|
curl
|
||||||
|
openssl
|
||||||
|
attr
|
||||||
|
libssh
|
||||||
|
bzip2
|
||||||
|
libxml2
|
||||||
|
acl
|
||||||
|
libsodium
|
||||||
|
util-linux
|
||||||
|
xz
|
||||||
|
systemd
|
||||||
|
|
||||||
|
fribidi
|
||||||
|
harfbuzz
|
||||||
|
libgpg-error
|
||||||
|
gmp
|
||||||
|
|
||||||
|
libxcomposite
|
||||||
|
libxtst
|
||||||
|
libxrandr
|
||||||
|
libxext
|
||||||
|
libx11
|
||||||
|
libxfixes
|
||||||
|
libGL
|
||||||
|
libva
|
||||||
|
pipewire
|
||||||
|
libxcb
|
||||||
|
libxdamage
|
||||||
|
libxshmfence
|
||||||
|
libxxf86vm
|
||||||
|
libelf
|
||||||
|
|
||||||
|
glib
|
||||||
|
gtk2
|
||||||
|
|
||||||
|
networkmanager
|
||||||
|
vulkan-loader
|
||||||
|
libgbm
|
||||||
|
libdrm
|
||||||
|
libxcrypt
|
||||||
|
coreutils
|
||||||
|
pciutils
|
||||||
|
zenity
|
||||||
|
|
||||||
|
libxinerama
|
||||||
|
libxcursor
|
||||||
|
libxrender
|
||||||
|
libxscrnsaver
|
||||||
|
libxi
|
||||||
|
libsm
|
||||||
|
libice
|
||||||
|
gnome2.GConf
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
cups
|
||||||
|
libcap
|
||||||
|
SDL2
|
||||||
|
libusb1
|
||||||
|
dbus-glib
|
||||||
|
ffmpeg
|
||||||
|
libudev0-shim
|
||||||
|
|
||||||
|
# needed to run unity
|
||||||
|
gtk3
|
||||||
|
icu
|
||||||
|
libnotify
|
||||||
|
gsettings-desktop-schemas
|
||||||
|
|
||||||
|
libxt
|
||||||
|
libxmu
|
||||||
|
libogg
|
||||||
|
libvorbis
|
||||||
|
SDL
|
||||||
|
SDL2_image
|
||||||
|
glew_1_10
|
||||||
|
libidn
|
||||||
|
tbb
|
||||||
|
|
||||||
|
# Other things from runtime
|
||||||
|
flac
|
||||||
|
freeglut
|
||||||
|
libjpeg
|
||||||
|
libpng
|
||||||
|
libpng12
|
||||||
|
libsamplerate
|
||||||
|
libmikmod
|
||||||
|
libtheora
|
||||||
|
libtiff
|
||||||
|
pixman
|
||||||
|
speex
|
||||||
|
SDL_image
|
||||||
|
SDL_ttf
|
||||||
|
SDL_mixer
|
||||||
|
SDL2_ttf
|
||||||
|
SDL2_mixer
|
||||||
|
libappindicator-gtk2
|
||||||
|
libdbusmenu-gtk2
|
||||||
|
libindicator-gtk2
|
||||||
|
libcaca
|
||||||
|
libcanberra
|
||||||
|
libgcrypt
|
||||||
|
libvpx
|
||||||
|
librsvg
|
||||||
|
libxft
|
||||||
|
libvdpau
|
||||||
|
|
||||||
|
pango
|
||||||
|
cairo
|
||||||
|
atk
|
||||||
|
gdk-pixbuf
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
dbus
|
||||||
|
alsa-lib
|
||||||
|
expat
|
||||||
|
# for blender
|
||||||
|
libxkbcommon
|
||||||
|
|
||||||
|
libxcrypt-legacy # For natron
|
||||||
|
libGLU # For natron
|
||||||
|
|
||||||
|
fuse
|
||||||
|
e2fsprogs
|
||||||
|
|
||||||
|
webkitgtk_4_1
|
||||||
|
libsoup_3
|
||||||
|
];
|
||||||
|
}
|
||||||
31
osConfigs/global/minimal/boot.nix
Normal file
31
osConfigs/global/minimal/boot.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# boot.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2026/06/14 17:49:47 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/14 17:50:06 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
boot.loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
systemd-boot.memtest86.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
timeout = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.tmp.cleanOnBoot = true;
|
||||||
|
|
||||||
|
services.journald.extraConfig = ''
|
||||||
|
SystemMaxUse=100M
|
||||||
|
SystemMaxFileSize=50M
|
||||||
|
'';
|
||||||
|
}
|
||||||
18
osConfigs/global/minimal/nix.nix
Normal file
18
osConfigs/global/minimal/nix.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# nix.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:42:17 by tomoron #+# #+# #
|
||||||
|
# Updated: 2025/09/05 23:42:20 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
}
|
||||||
23
osConfigs/global/minimal/other.nix
Normal file
23
osConfigs/global/minimal/other.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# other.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2026/06/14 18:02:15 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/15 02:06:17 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
networking.hostName = lib.mkDefault "unnamed-nixos";
|
||||||
|
networking.networkmanager.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Paris";
|
||||||
|
|
||||||
|
services.fstrim.enable = true; # trims all the ssds on the machine every week
|
||||||
|
catppuccin.enable = lib.mkDefault false;
|
||||||
|
catppuccin.autoEnable = false;
|
||||||
|
}
|
||||||
23
osConfigs/global/minimal/packages.nix
Normal file
23
osConfigs/global/minimal/packages.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# packages.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2026/06/14 18:03:28 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/15 12:36:24 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
neovim
|
||||||
|
pciutils
|
||||||
|
|
||||||
|
gnumake
|
||||||
|
home-manager
|
||||||
|
];
|
||||||
|
}
|
||||||
8
osConfigs/global/minimal/sops.nix
Normal file
8
osConfigs/global/minimal/sops.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
sops = {
|
||||||
|
defaultSopsFile = ../../../secrets/secrets.yaml;
|
||||||
|
age.keyFile = "/home/tom/.config/sops/age/keys.txt";
|
||||||
|
};
|
||||||
|
}
|
||||||
25
osConfigs/global/minimal/user.nix
Normal file
25
osConfigs/global/minimal/user.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# user.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/14 18:07:45 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
users.users.tom = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [
|
||||||
|
"wheel" # can sudo
|
||||||
|
"docker" # can use docker
|
||||||
|
];
|
||||||
|
|
||||||
|
initialPassword = "password";
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -1,63 +1,35 @@
|
|||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
# #
|
# #
|
||||||
# ::: :::::::: #
|
# ::: :::::::: #
|
||||||
# global.nix :+: :+: :+: #
|
# other.nix :+: :+: :+: #
|
||||||
# +:+ +:+ +:+ #
|
# +:+ +:+ +:+ #
|
||||||
# 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/04/23 20:31:46 by tomoron ### ########.fr #
|
# Updated: 2026/06/15 02:06:30 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
{ lib, pkgs, flakeName, ... }:
|
{ lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = lib.concatLists [[
|
programs.fuse.enable = true;
|
||||||
./hardware-configuration.nix
|
|
||||||
./packages.nix
|
|
||||||
]
|
|
||||||
(lib.fileset.toList ./modules)
|
|
||||||
];
|
|
||||||
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
|
||||||
|
|
||||||
boot.loader = {
|
|
||||||
systemd-boot.enable = true;
|
|
||||||
systemd-boot.memtest86.enable = true;
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
timeout = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.networkmanager.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
time.timeZone = "Europe/Paris";
|
|
||||||
|
|
||||||
services.xserver.enable = lib.mkDefault true;
|
services.xserver.enable = lib.mkDefault true;
|
||||||
services.xserver.displayManager.startx.enable = true;
|
services.xserver.displayManager.startx.enable = true;
|
||||||
|
|
||||||
|
programs.hyprland.enable = lib.mkDefault true;
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.tom = {
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = [ "wheel" "docker" "libvirtd" "dialout" "wireshark"];
|
|
||||||
initialPassword = "password";
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
virtualisation.docker.enableOnBoot = lib.mkDefault false;
|
|
||||||
|
|
||||||
programs.hyprland.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
environment.etc.nixosFlakeName.text = "${flakeName}";
|
|
||||||
|
|
||||||
hardware.logitech.wireless.enable = true;
|
hardware.logitech.wireless.enable = true;
|
||||||
hardware.logitech.wireless.enableGraphical = true;
|
hardware.logitech.wireless.enableGraphical = true;
|
||||||
|
|
||||||
|
programs.noisetorch.enable = true;
|
||||||
|
programs.droidcam.enable = true;
|
||||||
|
|
||||||
|
catppuccin.enable = true;
|
||||||
}
|
}
|
||||||
26
osConfigs/global/packages.nix
Normal file
26
osConfigs/global/packages.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# packages.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:57:21 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/15 12:36:24 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
cryptsetup
|
||||||
|
usbutils
|
||||||
|
ntfs3g
|
||||||
|
acpi
|
||||||
|
|
||||||
|
unison
|
||||||
|
|
||||||
|
# nss //is this supposed to be here ?
|
||||||
|
];
|
||||||
|
}
|
||||||
156
osConfigs/global/probeRsUdevRules.nix
Normal file
156
osConfigs/global/probeRsUdevRules.nix
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
# Copy this file to /etc/udev/rules.d/
|
||||||
|
# If rules fail to reload automatically, you can refresh udev rules
|
||||||
|
# with the command "udevadm control --reload"
|
||||||
|
|
||||||
|
# This rules are based on the udev rules from the OpenOCD project, with unsupported probes removed.
|
||||||
|
# See http://openocd.org/ for more details.
|
||||||
|
#
|
||||||
|
# This file is available under the GNU General Public License v2.0
|
||||||
|
|
||||||
|
ACTION!="add|change", GOTO="probe_rs_rules_end"
|
||||||
|
|
||||||
|
SUBSYSTEM=="gpio", MODE="0660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
SUBSYSTEM!="usb|tty|hidraw", GOTO="probe_rs_rules_end"
|
||||||
|
|
||||||
|
# Please keep this list sorted by VID:PID
|
||||||
|
|
||||||
|
# STMicroelectronics ST-LINK V1
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# STMicroelectronics ST-LINK/V2
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# STMicroelectronics ST-LINK/V2.1
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# STMicroelectronics STLINK-V3
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3753", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3754", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3757", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# SEGGER J-Link
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0101", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0102", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0103", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0104", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0105", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0107", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0108", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1001", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1002", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1003", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1004", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1005", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1006", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1007", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1008", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1009", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="100f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1010", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1012", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1013", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1014", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1015", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1016", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1017", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1018", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1019", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="101f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1020", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1021", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1022", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1023", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1024", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1025", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1026", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1027", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1028", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1029", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="102f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1050", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1051", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1052", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1053", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1054", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1055", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1056", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1057", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1058", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1059", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="105f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1060", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1061", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1062", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1063", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1064", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1065", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1066", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1067", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1068", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1069", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="106f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# FT232H
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
# FT2232x
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
# FT4232H
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# FTDI-based Olimex devices
|
||||||
|
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x0003", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x0004", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x002a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="0x15ba", ATTRS{idProduct}=="0x002b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# Espressif USB JTAG/serial debug unit
|
||||||
|
ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1001", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
# Espressif USB Bridge
|
||||||
|
ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1002", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# CMSIS-DAP compatible adapters
|
||||||
|
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
# WCH Link (CMSIS-DAP compatible adapter)
|
||||||
|
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="8010", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="8011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
# Infineon KitProg
|
||||||
|
ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="f155", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
|
||||||
|
LABEL="probe_rs_rules_end"
|
||||||
|
'';
|
||||||
|
}
|
||||||
23
osConfigs/global/user.nix
Normal file
23
osConfigs/global/user.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# user.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/22 15:42:08 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
users.users.tom = {
|
||||||
|
extraGroups = [
|
||||||
|
"libvirtd" # can use libvirtd
|
||||||
|
"dialout" # can use serial devices
|
||||||
|
"wireshark" # can use wireshask
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -1,30 +1,46 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# desktop.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:57:04 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/24 18:42:19 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
{ config, lib, inputs, pkgs, ... }:
|
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
boot.kernelParams = [ "nvidia-drm-modset=1" ];
|
boot.kernelParams = [ "nvidia-drm-modset=1" ];
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
cudatoolkit
|
|
||||||
lm_sensors
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.hostName = "nixos-fixe";
|
networking.hostName = "nixos-fixe";
|
||||||
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
hardware.cpu.intel.updateMicrocode = true;
|
||||||
|
|
||||||
|
mods.yubikey.pam.enable = true;
|
||||||
|
mods.nvidia.enable = true;
|
||||||
|
|
||||||
boot.kernelModules = [ "kvm-intel" "nvidia" ];
|
boot.kernelModules = [ "kvm-intel" "nvidia" ];
|
||||||
mods.displayManager.enable = true;
|
|
||||||
|
|
||||||
hardware.nvidia = {
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
|
||||||
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;
|
||||||
|
|
||||||
|
networking.hostId = "98e475dd";
|
||||||
|
|
||||||
|
mods.zfs.enable = true;
|
||||||
|
|
||||||
|
mods.docker = {
|
||||||
|
enable = true;
|
||||||
|
boot = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.sync = {
|
||||||
|
isNormalUser = true;
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIkVmIAJZewJVC6i1f39P7D36OPsdKqMNejALhBo92Td backup@server"
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIPy6ObpsitxHkRZzGbYdBpsBbR1YygtZOeClN2C/thu4AAAABHNzaDo= ssh:"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,18 @@
|
|||||||
{lib, inputs, pkgs, ... }:
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# iso.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:57:02 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/14 18:25:39 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../packages.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
users.users.tom = {
|
users.users.tom = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "networkmanager" "video" ];
|
extraGroups = [ "wheel" "networkmanager" "video" ];
|
||||||
@ -13,13 +21,4 @@
|
|||||||
|
|
||||||
services.getty.autologinUser = lib.mkForce "tom";
|
services.getty.autologinUser = lib.mkForce "tom";
|
||||||
services.getty.helpLine = lib.mkForce "";
|
services.getty.helpLine = lib.mkForce "";
|
||||||
# programs.hyprland.enable = true;
|
|
||||||
|
|
||||||
# home-manager.extraSpecialArgs = { inherit inputs; inherit pkgs; isOs = true;};
|
|
||||||
# home-manager.users.tom = {
|
|
||||||
# imports = [
|
|
||||||
# ../../homeConfigs/home.nix
|
|
||||||
# ../../homeConfigs/hosts/iso.nix
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,78 +1,109 @@
|
|||||||
{ config, pkgs, ... }:
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# laptop.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/15 02:11:29 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
|
services.udev.packages = [ pkgs.yubikey-personalization ];
|
||||||
boot.initrd.luks.devices.cryptroot.allowDiscards = true;
|
boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
|
||||||
|
boot.initrd.systemd.enable = true;
|
||||||
|
boot.initrd.luks.yubikeySupport = false;
|
||||||
|
boot.initrd.luks.devices.cryptroot = {
|
||||||
|
device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
|
||||||
|
allowDiscards = true;
|
||||||
|
#set up initial : https://wiki.nixos.org/wiki/Yubikey_based_Full_Disk_Encryption_(FDE)_on_NixOS
|
||||||
|
#yubikey = { #bad implementation upstream. unlock with be with fallback password until it's better
|
||||||
|
# twoFactor = false;
|
||||||
|
# keyLength = 64;
|
||||||
|
# saltLength = 32;
|
||||||
|
# storage = {
|
||||||
|
# device = "/dev/disk/by-uuid/BA5C-F216";
|
||||||
|
# path = "/default";
|
||||||
|
# };
|
||||||
|
#};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup, loaded automatically when gpu is started
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mods.displayManager.enable = true;
|
|
||||||
mods.virtualManager.enable = false;
|
|
||||||
networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
networking.hostName = "patate-douce";
|
networking.hostName = "patate-douce";
|
||||||
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 = {
|
|
||||||
boot.kernel.sysctl."vm.nr_hugepages" = 5120;
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
|
|
||||||
boot.kernelModules = [ "kvmfr" ];
|
|
||||||
boot.extraModprobeConfig = ''
|
|
||||||
options kvmfr static_size_mb=128
|
|
||||||
blacklist xpad
|
|
||||||
'';
|
|
||||||
virtualisation.libvirtd.qemu.verbatimConfig = ''
|
|
||||||
cgroup_device_acl = [
|
|
||||||
"/dev/kvmfr0", "/dev/null", "/dev/full", "/dev/zero",
|
|
||||||
"/dev/random", "/dev/urandom",
|
|
||||||
"/dev/ptmx", "/dev/kvm",
|
|
||||||
"/dev/rtc","/dev/hpet",
|
|
||||||
"/dev/input/by-id/[some_mouse_device]-event-mouse",
|
|
||||||
"/dev/input/by-id/[some_keyboard_device]-event-kbd"
|
|
||||||
]
|
|
||||||
'';
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
SUBSYSTEM=="kvmfr", OWNER="tom", GROUP="kvm", MODE="0660"
|
|
||||||
'';
|
|
||||||
environment.systemPackages = with pkgs; [ looking-glass-client ];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.virt-manager.enable = true;
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
virtualisation.libvirtd.qemu.runAsRoot = true;
|
|
||||||
virtualisation.libvirtd.qemu.vhostUserPackages = [ pkgs.virtiofsd ];
|
|
||||||
|
|
||||||
networking.dhcpcd.enable = false;
|
networking.dhcpcd.enable = false;
|
||||||
systemd.network.enable = true;
|
systemd.network.enable = true;
|
||||||
networking.useNetworkd = true;
|
networking.useNetworkd = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
specialisation.vfio_ready.configuration = {
|
||||||
acpi
|
#vfio ready configuration sets up kvmfr0 kernel module, disables xbox controller on host os, enables libvirtd and installs looking-glass
|
||||||
tlp
|
|
||||||
fprintd
|
|
||||||
];
|
|
||||||
|
|
||||||
hardware.nvidia.prime.offload = {
|
mods.virtualHost.enable = true;
|
||||||
enable = true;
|
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
|
||||||
enableOffloadCmd = true;
|
boot.kernelModules = [ "kvmfr" ];
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options kvmfr static_size_mb=128
|
||||||
|
blacklist xpad
|
||||||
|
'';
|
||||||
|
virtualisation.libvirtd.qemu.verbatimConfig = ''
|
||||||
|
cgroup_device_acl = [
|
||||||
|
"/dev/kvmfr0", "/dev/null", "/dev/full", "/dev/zero",
|
||||||
|
"/dev/random", "/dev/urandom",
|
||||||
|
"/dev/ptmx", "/dev/kvm",
|
||||||
|
"/dev/rtc","/dev/hpet",
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="kvmfr", OWNER="tom", GROUP="kvm", MODE="0660"
|
||||||
|
'';
|
||||||
|
environment.systemPackages = with pkgs; [ looking-glass-client ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.libinput.enable = true;
|
|
||||||
services.libinput.touchpad.clickMethod = "clickfinger";
|
|
||||||
services.libinput.touchpad.tapping = false;
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
|
|
||||||
#power management
|
environment.systemPackages = with pkgs; [
|
||||||
powerManagement.enable = true;
|
impala
|
||||||
powerManagement.cpuFreqGovernor = "powersave";
|
openvr
|
||||||
|
];
|
||||||
|
|
||||||
|
mods.touchpad.enable = true;
|
||||||
|
|
||||||
|
mods.powerSave = {
|
||||||
|
enable = true;
|
||||||
|
powahCommandAdditions = [
|
||||||
|
"supergfxctl -m Hybrid"
|
||||||
|
"if [ $# -gt 0 ] && [[ \"$1\" == \"moar\" ]] ; then asusctl profile set Performance; fi"
|
||||||
|
];
|
||||||
|
tagueuleCommandAdditions = [
|
||||||
|
"echo \"can't safely turn off the GPU\""
|
||||||
|
"asusctl profile set Quiet"
|
||||||
|
];
|
||||||
|
cpuMaxFreq = 4465261;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
services.asusd = {
|
services.asusd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableUserService = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.supergfxd.enable = true;
|
services.supergfxd.enable = true;
|
||||||
services.supergfxd.settings = {
|
services.supergfxd.settings = {
|
||||||
mode = "Integrated";
|
mode = lib.mkDefault "Integrated";
|
||||||
vfio_enable = true;
|
vfio_enable = true;
|
||||||
vfio_save = true;
|
vfio_save = true;
|
||||||
always_reboot = false;
|
always_reboot = false;
|
||||||
@ -81,29 +112,42 @@
|
|||||||
hotplug_type = "None";
|
hotplug_type = "None";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.auto-cpufreq.enable = true;
|
|
||||||
services.auto-cpufreq.settings = {
|
|
||||||
battery = {
|
|
||||||
governor = "powersave";
|
|
||||||
turbo = "never";
|
|
||||||
};
|
|
||||||
charger = {
|
|
||||||
governor = "performance";
|
|
||||||
turbo = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.upower.enable = true;
|
|
||||||
|
|
||||||
services.udev.packages = [ pkgs.yubikey-personalization ];
|
|
||||||
|
|
||||||
programs.wireshark.enable = true;
|
programs.wireshark.enable = true;
|
||||||
programs.wireshark.usbmon.enable = true;
|
programs.wireshark.usbmon.enable = true;
|
||||||
|
|
||||||
# boot.plymouth = {
|
mods.yubikey.pam.enable = true;
|
||||||
# enable = true;
|
mods.docker.enable = true;
|
||||||
# theme = "ycontre-glow";
|
mods.nvidia.enable = true;
|
||||||
# themePackages = [
|
mods.nvidia.prime = true;
|
||||||
# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux
|
|
||||||
# ];
|
|
||||||
# };
|
services.usbmuxd.enable = true; #iphone usb service sometimes hangs when shutting down
|
||||||
|
|
||||||
|
services.avahi.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
raopOpenFirewall = true;
|
||||||
|
|
||||||
|
extraConfig.pipewire = {
|
||||||
|
"10-airplay"."context.modules" = [
|
||||||
|
{ name = "libpipewire-module-raop-discover"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.pipewire.wireplumber.extraConfig."10-bluez" = {
|
||||||
|
"monitor.bluez.properties" = {
|
||||||
|
"bluez5.enable-sbc-xq" = true;
|
||||||
|
"bluez5.enable-msbc" = true;
|
||||||
|
"bluez5.enable-hw-volume" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.settings = {
|
||||||
|
General = {
|
||||||
|
Enable = "Source,Sink,Media,Socket";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.corectrl.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,100 +1,194 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# server.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/24 20:34:47 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
{ config, lib, inputs, pkgs, ... }:
|
{ lib, config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
let
|
||||||
imports = [
|
ports = [
|
||||||
../modules/game.nix
|
22 #git ssh
|
||||||
../modules/vboxHost.nix
|
80 443 #http server
|
||||||
../modules/nvidia.nix
|
5000 #frigate
|
||||||
|
8083 137 138 139 445 548 3702 5357 #prob some samba shit
|
||||||
|
24454 #minecraft voice chat
|
||||||
|
25565 # minecraft server
|
||||||
|
9091 # transmission web interface
|
||||||
|
];
|
||||||
|
portRanges = [
|
||||||
|
{from = 47950; to = 49000;} #moonlight (wolf)
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
boot.extraModulePackages = [
|
||||||
|
config.boot.kernelPackages.gasket #driver for google coral edge tpu
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amdgpu.vm_update_mode=3"
|
||||||
|
"amdgpu.gpu_recovery=1"
|
||||||
];
|
];
|
||||||
boot.kernelPackages = pkgs.linuxPackages;
|
|
||||||
boot.extraModulePackages = [ config.boot.kernelPackages.gasket ];
|
|
||||||
|
|
||||||
networking.hostName = "server";
|
|
||||||
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 ];
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
sops.secrets."cloudflared/token" = {};
|
||||||
|
sops.secrets."zfs/p_user" = {};
|
||||||
|
sops.secrets."zfs/p_token" = {};
|
||||||
|
systemd.services.cloudflared = {
|
||||||
|
after = [
|
||||||
|
"network.target"
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
|
wants = [
|
||||||
|
"network.target"
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = ''${pkgs.bash}/bin/bash -c '${pkgs.cloudflared}/bin/cloudflared tunnel --no-autoupdate run --token "$(cat ${config.sops.secrets."cloudflared/token".path})"' '';
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
options amdgpu virtual_display=1
|
options amdgpu virtual_display=1
|
||||||
'';
|
# create dummy display to be able to start x11
|
||||||
|
'';
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
mods.zfs.enable = true;
|
||||||
zfs
|
boot.zfs.forceImportRoot = false;
|
||||||
nvidia-docker
|
boot.zfs.extraPools = [ "raid_vol" ];
|
||||||
libnvidia-container
|
|
||||||
screen
|
|
||||||
|
systemd.timers."nextcloud-cron-job" = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "5m";
|
||||||
|
OnUnitActiveSec = "5m";
|
||||||
|
Unit = "nextcloud-cron-job.service";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services."nextcloud-cron-job" = {
|
||||||
|
script = ''
|
||||||
|
${pkgs.docker}/bin/docker exec -u www-data nextcloud php /var/www/html/cron.php
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
User = "root";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
inputs.dockermcmgr.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
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})";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
services.sanoid.enable = true;
|
||||||
|
services.sanoid.datasets."raid_vol" = {
|
||||||
|
daily = 31;
|
||||||
|
hourly = 24;
|
||||||
|
monthly = 12;
|
||||||
|
autosnap = true;
|
||||||
|
autoprune = true;
|
||||||
|
};
|
||||||
|
services.sanoid.datasets."raid_vol/crit" = {
|
||||||
|
daily = 31;
|
||||||
|
hourly = 24;
|
||||||
|
monthly = 12;
|
||||||
|
autosnap = true;
|
||||||
|
autoprune = true;
|
||||||
|
};
|
||||||
|
|
||||||
# services.cron.enable = false;
|
users.users.backup.isNormalUser = true;
|
||||||
# services.cron.systemCronJobs = [
|
|
||||||
# # m h dom m dow
|
|
||||||
# # https://crontab.guru <3
|
|
||||||
# ];
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [
|
services.syncoid.enable = true;
|
||||||
22 #git ssh
|
services.syncoid.user = "backup";
|
||||||
80 443 #http server
|
services.syncoid.group = "users";
|
||||||
5000 #frigate
|
|
||||||
8083 137 138 139 445 548 3702 5357 #prob some samba shit
|
services.syncoid.service.serviceConfig = {
|
||||||
24454 #minecraft voice chat
|
BindReadOnlyPaths = [ "/home/backup/.ssh" ];
|
||||||
25565 # minecraft server
|
ProtectHome = lib.mkForce false;
|
||||||
];
|
};
|
||||||
networking.firewall.allowedUDPPorts = [
|
|
||||||
22 #git ssh
|
services.syncoid.sshKey = "/home/backup/.ssh/id_ed25519";
|
||||||
80 443 #http server
|
services.syncoid.commands."raid_vol-critical" = {
|
||||||
5000 #frigate
|
source = "raid_vol/crit";
|
||||||
8083 137 138 139 445 548 3702 5357 #prob some samba shit
|
target = "sync@192.168.1.41:stor";
|
||||||
24454 #minecraft voice chat
|
};
|
||||||
25565 # minecraft server
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.firewall.allowedUDPPortRanges = [
|
|
||||||
{from = 47950; to = 49000;}
|
|
||||||
];
|
|
||||||
networking.firewall.allowedTCPPortRanges = [
|
|
||||||
{from = 47950; to = 49000;}
|
|
||||||
];
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
|
hostName = "server";
|
||||||
|
|
||||||
interfaces.eth0.ipv4.addresses = [ {
|
interfaces.eth0.ipv4.addresses = [ {
|
||||||
address = "192.168.1.24";
|
address = "192.168.1.24";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
defaultGateway.address = "192.168.1.254";
|
defaultGateway.address = "192.168.1.254";
|
||||||
defaultGateway.interface = "eth0";
|
defaultGateway.interface = "eth0";
|
||||||
nameservers = ["8.8.8.8" "8.8.4.4" "1.1.1.1"];
|
nameservers = ["8.8.8.8" "8.8.4.4" "1.1.1.1"];
|
||||||
hostId = "68290da7";
|
hostId = "68290da7";
|
||||||
};
|
|
||||||
virtualisation.docker = {
|
|
||||||
liveRestore = false;
|
|
||||||
enableOnBoot = true;
|
|
||||||
# package = inputs.pkgs-docker-2750.legacyPackages."x86_64-linux".docker;
|
|
||||||
# daemon.settings = {
|
|
||||||
# runtimes.nvidia.path = "${pkgs.nvidia-docker}/bin/nvidia-container-runtime";
|
|
||||||
# exec-opts = ["native.cgroupdriver=cgroupfs"];
|
|
||||||
# };
|
|
||||||
|
|
||||||
|
firewall.allowedTCPPorts = ports;
|
||||||
|
firewall.allowedUDPPorts = ports;
|
||||||
|
firewall.allowedUDPPortRanges = portRanges;
|
||||||
|
firewall.allowedTCPPortRanges = portRanges;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.fail2ban.enable = true;
|
services.fail2ban.enable = true;
|
||||||
services.fail2ban.bantime = "2h";
|
services.fail2ban.bantime = "5h";
|
||||||
|
|
||||||
hardware.nvidia-container-toolkit.enable = true;
|
mods.nvidia.enable = true;
|
||||||
|
mods.nvidia.beta = true;
|
||||||
|
mods.nvidia.containerToolkit = true;
|
||||||
|
|
||||||
hardware.nvidia = {
|
mods.docker = {
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
enable = true;
|
||||||
open = true;
|
boot = true;
|
||||||
|
|
||||||
# prime.nvidiaBusId = "PCI:1:0:0";
|
|
||||||
# prime.amdgpuBusId = "PCI:13:0:0";
|
|
||||||
# prime.sync.enable = true;
|
|
||||||
|
|
||||||
# modesetting.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.services.dockermcmgr-server = {
|
||||||
|
enable = true;
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
restartIfChanged = true;
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${inputs.dockermcmgr.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/dmm serverMode";
|
||||||
|
User = "tom";
|
||||||
|
Group= "users";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
nix.settings.trusted-users = [ "root" "builder" "tom" ];
|
||||||
|
|
||||||
|
users.users.builder = {
|
||||||
|
isNormalUser = true;
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICzRsLTBnow52e63Qp6JqUaLNOCpoIsPpJFOAhJOgF1M root@patate-douce"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIl6m5mdyfixhVgcDIOHhRQRSyCH4//2XJ/MRmOLD8R4 root@nixos-fixe"
|
||||||
|
];
|
||||||
|
group = "builder";
|
||||||
|
};
|
||||||
|
users.groups.builder = {};
|
||||||
|
|
||||||
|
mods.remote-build.enable = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,18 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# vbox.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:56:42 by tomoron #+# #+# #
|
||||||
|
# Updated: 2025/09/06 00:56:52 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
virtualisation.virtualbox.guest.enable = true;
|
virtualisation.virtualbox.guest.enable = true;
|
||||||
mods.nvidia-graphics.enable = false;
|
|
||||||
mods.virtualManager.enable = false;
|
|
||||||
mods.gayming.enable = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,24 +0,0 @@
|
|||||||
{config, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.displayManager.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = false;
|
|
||||||
description = "enable the display manager";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.displayManager.enable {
|
|
||||||
services.displayManager.enable = true;
|
|
||||||
services.displayManager.ly.enable = true;
|
|
||||||
services.displayManager.ly.settings =
|
|
||||||
{
|
|
||||||
animation = "doom";
|
|
||||||
min_refresh_delta = 50;
|
|
||||||
bigclock = "en";
|
|
||||||
sleep_cmd = "systemctl sleep";
|
|
||||||
asterisk = "A";
|
|
||||||
auth_fails= 3;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
36
osConfigs/modules/docker.nix
Normal file
36
osConfigs/modules/docker.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# docker.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:10:58 by tomoron #+# #+# #
|
||||||
|
# Updated: 2025/09/06 01:06:23 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.mods.docker = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "enable docker";
|
||||||
|
};
|
||||||
|
boot = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "start docker with the system (if false, trigered by docker.socket)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.docker.enable {
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
liveRestore = false;
|
||||||
|
enableOnBoot = config.mods.docker.boot;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -1,14 +0,0 @@
|
|||||||
{config, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.gayming.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "enable games on the host";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.gayming.enable {
|
|
||||||
programs.steam.enable = true;
|
|
||||||
programs.steam.protontricks.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,19 +1,65 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# nvidia.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
|
||||||
|
# Updated: 2025/12/23 18:42:01 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
{ config, lib, inputs, pkgs, ... }:
|
|
||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
options.mods.nvidia-graphics.enable = lib.mkOption {
|
options.mods.nvidia = {
|
||||||
type = lib.types.bool;
|
enable = lib.mkOption {
|
||||||
default = true;
|
type = lib.types.bool;
|
||||||
description = "enable my nvidia graphics settings";
|
default = false;
|
||||||
|
description = "enable nvidia drivers";
|
||||||
|
};
|
||||||
|
beta = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "use beta version of the drivers";
|
||||||
|
};
|
||||||
|
open = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "use open version of the drivers (on newer gpu)";
|
||||||
|
};
|
||||||
|
containerToolkit = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "enable the nvidia container toolkit (gpu in docker)";
|
||||||
|
};
|
||||||
|
prime = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "enable nvidia prime offload (saves battery). prime ?";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.mods.nvidia-graphics.enable {
|
config = lib.mkIf config.mods.nvidia.enable {
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
package = lib.mkIf config.mods.nvidia.beta config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
|
open = config.mods.nvidia.open;
|
||||||
|
|
||||||
|
prime.offload = lib.mkIf config.mods.nvidia.prime {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.nvidia-container-toolkit.enable = config.mods.nvidia.containerToolkit;
|
||||||
|
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
125
osConfigs/modules/powerSave.nix
Normal file
125
osConfigs/modules/powerSave.nix
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# powerSave.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:45:04 by tomoron #+# #+# #
|
||||||
|
# Updated: 2025/09/23 04:25:20 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.mods.powerSave = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "enable services and settings to save power";
|
||||||
|
};
|
||||||
|
|
||||||
|
powahCommandAdditions = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = [];
|
||||||
|
description = "commands the `powah` script runs";
|
||||||
|
};
|
||||||
|
tagueuleCommandAdditions = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = [];
|
||||||
|
description = "commands the `tagueule` script runs";
|
||||||
|
};
|
||||||
|
|
||||||
|
pStateCompatible = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "is the cpu p-state compatible. only most of intel cpu's";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpuMaxFreq = lib.mkOption {
|
||||||
|
type = lib.types.ints.positive;
|
||||||
|
default = 5000000;
|
||||||
|
description = "the max frequency of the cpu (in KHz)";
|
||||||
|
};
|
||||||
|
|
||||||
|
governorPowers = {
|
||||||
|
ac.min = lib.mkOption {
|
||||||
|
type = lib.types.ints.unsigned;
|
||||||
|
default = 30;
|
||||||
|
description = "min frequency on AC";
|
||||||
|
};
|
||||||
|
ac.max = lib.mkOption {
|
||||||
|
type = lib.types.ints.unsigned;
|
||||||
|
default = 100;
|
||||||
|
description = "max frequency on AC";
|
||||||
|
};
|
||||||
|
bat.min = lib.mkOption {
|
||||||
|
type = lib.types.ints.unsigned;
|
||||||
|
default = 0;
|
||||||
|
description = "min frequency on BAT";
|
||||||
|
};
|
||||||
|
bat.max = lib.mkOption {
|
||||||
|
type = lib.types.ints.unsigned;
|
||||||
|
default = 40;
|
||||||
|
description = "max frequency on BAT";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.powerSave.enable {
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
TLP_DEFAULT_MODE = "BAT";
|
||||||
|
TLP_PERSISTENT_DEFAULT = 1;
|
||||||
|
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||||
|
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||||
|
}
|
||||||
|
// lib.optionalAttrs (!config.mods.powerSave.pStateCompatible) (with config.mods.powerSave; {
|
||||||
|
CPU_SCALING_MIN_FREQ_ON_AC = (cpuMaxFreq * governorPowers.ac.min) / 100;
|
||||||
|
CPU_SCALING_MAX_FREQ_ON_AC = (cpuMaxFreq * governorPowers.ac.max) / 100;
|
||||||
|
CPU_SCALING_MIN_FREQ_ON_BAT = (cpuMaxFreq * governorPowers.bat.min) / 100;
|
||||||
|
CPU_SCALING_MAX_FREQ_ON_BAT = (cpuMaxFreq * governorPowers.bat.max) / 100;
|
||||||
|
})
|
||||||
|
// lib.optionalAttrs config.mods.powerSave.pStateCompatible (with config.mods.powerSave.governorPowers; {
|
||||||
|
CPU_MIN_PERF_ON_AC = ac.min;
|
||||||
|
CPU_MAX_PERF_ON_AC = ac.max;
|
||||||
|
CPU_MIN_PERF_ON_BAT = bat.min;
|
||||||
|
CPU_MAX_PERF_ON_BAT = bat.max;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.writeShellApplication {
|
||||||
|
name = "powah";
|
||||||
|
runtimeInputs = with pkgs; [ tlp ];
|
||||||
|
text = ''
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
exec sudo bash "$0" "$@"
|
||||||
|
fi
|
||||||
|
tlp ac
|
||||||
|
'' + lib.concatStringsSep "\n" config.mods.powerSave.powahCommandAdditions;
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.writeShellApplication {
|
||||||
|
name = "tagueule";
|
||||||
|
runtimeInputs = with pkgs; [ tlp ];
|
||||||
|
text = ''
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
exec sudo bash "$0" "$@"
|
||||||
|
fi
|
||||||
|
tlp bat
|
||||||
|
'' + lib.concatStringsSep "\n" config.mods.powerSave.tagueuleCommandAdditions;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
powerManagement.enable = true;
|
||||||
|
mods.nvidia.prime = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
46
osConfigs/modules/remote_build.nix
Normal file
46
osConfigs/modules/remote_build.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# remote_build.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/13 23:44:37 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.mods.remote-build.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "setup remote nix builder";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.remote-build.enable {
|
||||||
|
nix.buildMachines = [
|
||||||
|
{
|
||||||
|
hostName = "tmoron.fr";
|
||||||
|
sshUser = "builder";
|
||||||
|
protocol = "ssh-ng";
|
||||||
|
|
||||||
|
sshKey = "/root/.ssh/id_ed25519";
|
||||||
|
|
||||||
|
system = "x86_64-linux";
|
||||||
|
|
||||||
|
maxJobs = 2;
|
||||||
|
speedFactor = 2;
|
||||||
|
|
||||||
|
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
nix.distributedBuilds = true;
|
||||||
|
programs.ssh.extraConfig = ''
|
||||||
|
Host tmoron.fr
|
||||||
|
HostName tmoron.fr
|
||||||
|
Port 1880
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
29
osConfigs/modules/touchpad.nix
Normal file
29
osConfigs/modules/touchpad.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# touchpad.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:39:41 by tomoron #+# #+# #
|
||||||
|
# Updated: 2025/09/06 01:02:41 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.mods.touchpad = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "enable touchpad support";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.touchpad.enable {
|
||||||
|
services.libinput.enable = true;
|
||||||
|
services.libinput.touchpad.clickMethod = "clickfinger";
|
||||||
|
services.libinput.touchpad.tapping = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -1,19 +0,0 @@
|
|||||||
{ config, lib, inputs, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.mods.virtualManager.enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "enable virtual manager as host";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.virtualManager.enable {
|
|
||||||
programs.virt-manager.enable = true;
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
virtualisation.libvirtd.qemu.runAsRoot = true;
|
|
||||||
virtualisation.libvirtd.qemu.vhostUserPackages = [ pkgs.virtiofsd ];
|
|
||||||
virtualisation.spiceUSBRedirection.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ spice-gtk ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
31
osConfigs/modules/virtualHost.nix
Normal file
31
osConfigs/modules/virtualHost.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# virtualHost.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/15 02:01:25 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.mods.virtualHost.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "enable virtual manager as host";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.virtualHost.enable {
|
||||||
|
programs.virt-manager.enable = true;
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
virtualisation.libvirtd.qemu.runAsRoot = true;
|
||||||
|
virtualisation.libvirtd.qemu.vhostUserPackages = [ pkgs.virtiofsd ];
|
||||||
|
virtualisation.spiceUSBRedirection.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [ spice-gtk ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -1,20 +1,32 @@
|
|||||||
{ config, lib, inputs, pkgs, ... }:
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# yubikey.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/05 23:47:20 by tomoron #+# #+# #
|
||||||
|
# Updated: 2025/09/06 01:03:54 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
options.mods.yubikey = {
|
options.mods.yubikey.pam = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = true;
|
default = false;
|
||||||
description = "enable yubikey";
|
description = "enable yubikey pam module\nuse `ykpamcfg` to configure";
|
||||||
};
|
};
|
||||||
|
|
||||||
id = lib.mkOption {
|
id = lib.mkOption {
|
||||||
type = lib.str;
|
type = lib.str;
|
||||||
description = "yubikey id";
|
description = "id of the yubikey written under connector";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.mods.yubikey.enable {
|
config = lib.mkIf config.mods.yubikey.pam.enable {
|
||||||
programs.gnupg.agent = {
|
programs.gnupg.agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSSHSupport = true;
|
enableSSHSupport = true;
|
||||||
@ -22,8 +34,12 @@
|
|||||||
|
|
||||||
security.pam.yubico = {
|
security.pam.yubico = {
|
||||||
enable = true;
|
enable = true;
|
||||||
id = config.mods.yubikey.id;
|
id = config.mods.yubikey.pam.id;
|
||||||
mode = "challenge-response";
|
mode = "challenge-response";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
yubico-pam
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
13
osConfigs/modules/zfs.nix
Normal file
13
osConfigs/modules/zfs.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
{
|
||||||
|
options.mods.zfs.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "does this system support zfs filesystems";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.zfs.enable {
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages;
|
||||||
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
27
osConfigs/os.nix
Normal file
27
osConfigs/os.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# os.nix :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2025/09/06 00:56:36 by tomoron #+# #+# #
|
||||||
|
# Updated: 2026/06/14 18:56:12 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
{ lib, flakeName, minimal, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = (lib.concatLists [
|
||||||
|
[ ./hardware-configuration.nix ]
|
||||||
|
(lib.fileset.toList ./modules)
|
||||||
|
])
|
||||||
|
++ (lib.lists.optionals minimal (lib.fileset.toList ./global/minimal))
|
||||||
|
++ (lib.lists.optionals (!minimal) (lib.fileset.toList ./global));
|
||||||
|
|
||||||
|
|
||||||
|
system.stateVersion ="25.05";
|
||||||
|
environment.etc.nixosFlakeName.text = "${flakeName}";
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,14 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
home-manager
|
|
||||||
vim
|
|
||||||
pciutils
|
|
||||||
usbutils
|
|
||||||
ntfs3g
|
|
||||||
cryptsetup
|
|
||||||
acpi
|
|
||||||
yubico-pam
|
|
||||||
];
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user