Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
daad575767 | ||
|
|
347fcf9166 | ||
|
|
a06445de9c
|
||
|
|
ef88f515c7 | ||
|
|
8477dd841c | ||
|
|
c83bbfa593 | ||
|
|
a0c6caa22b | ||
|
|
68a0cd09e3
|
||
|
|
12e1ea7fe6 | ||
|
|
989b8860c6 | ||
|
|
6b1f2f8bf1 | ||
|
|
a979f964d4 | ||
|
|
f958a14c31 | ||
|
|
2f6a5eb36e
|
||
|
|
642bdcd5f4
|
||
|
|
1495bdebb3
|
||
|
|
78f43ad41d
|
||
|
|
81192b265a
|
||
|
|
3a64c1a901
|
||
|
|
a63ed7af42
|
||
|
|
48cb0cc36f
|
||
|
|
733dec3054
|
||
|
|
a0674ee668 | ||
|
|
8306d99fde
|
||
|
|
97128f20aa
|
||
|
|
40ba5b73b5 | ||
|
|
a8339a0107 | ||
|
|
47999901e8
|
||
|
|
6840f944fe
|
||
|
|
8aa212287e
|
||
|
|
7f3a5de7af
|
||
|
|
4d951f8a10 | ||
|
|
ceabee6188
|
||
|
|
87fa4814f9 | ||
|
|
4c4c5e54a1
|
||
|
|
a2db2b1922
|
||
|
|
cd26a6891e | ||
|
|
ec8b9eb1b8
|
||
|
|
69915d089d
|
||
|
|
5b70399dba
|
||
|
|
38ce579039 | ||
|
|
cacc3c20a4 | ||
|
|
390c6e3a3d
|
||
|
|
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
|
No files matched your search
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
tmp/
|
||||
@@ -4,7 +4,8 @@ FLAKE ?= .
|
||||
MODE ?= switch
|
||||
|
||||
|
||||
FLAGS = --impure --cores $(THREADS) -j $(THREADS)
|
||||
EXTRAFLAGS ?=
|
||||
FLAGS = --impure -j 1 -L $(EXTRAFLAGS)
|
||||
|
||||
ifdef OFFLINE
|
||||
FLAGS += --option binary-caches ''
|
||||
@@ -14,7 +15,6 @@ all: os home
|
||||
|
||||
update:
|
||||
cd $(FLAKE);nix flake update
|
||||
$(MAKE) all
|
||||
|
||||
os:
|
||||
sudo nixos-rebuild $(MODE) $(FLAGS) --flake $(FLAKE)#$(HOST)
|
||||
@@ -30,6 +30,9 @@ hoem : home
|
||||
home :
|
||||
home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST)
|
||||
|
||||
home_build :
|
||||
home-manager build $(FLAGS) --flake $(FLAKE)#$(HOST)
|
||||
|
||||
iso :
|
||||
nix build ".#nixosConfigurations.iso.config.system.build.isoImage" $(FLAGS)
|
||||
cp result/iso/*.iso nixos.iso
|
||||
|
||||
Generated
+155
-31
@@ -5,11 +5,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775994227,
|
||||
"narHash": "sha256-4VKeWtl9dEubrgpy9fSXkXbjBZlNXPNlQQM5l1ppHv4=",
|
||||
"lastModified": 1791672482,
|
||||
"narHash": "sha256-ylziBSu4bmVGfrc7zZ+o9Qut3KD0Rei+9G4sx/oAnbM=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "d0a9a21ed8e235956a768fc624242ec9a3e15575",
|
||||
"rev": "ad8b2c6592638fb7b3d05597eafc9c6386ffe7e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -18,6 +18,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dockermcmgr": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1791407777,
|
||||
"narHash": "sha256-zUeymj+qOD+AxaKhEJvKU3eNzRwrfMggWM8WcTMQBmY=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "a59487c4689f136c0a3a6f2191ed92d3a183036b",
|
||||
"revCount": 51,
|
||||
"type": "git",
|
||||
"url": "https://git.tmoron.fr/tom/dockermcmgr"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.tmoron.fr/tom/dockermcmgr"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -26,11 +49,11 @@
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1776139376,
|
||||
"narHash": "sha256-rBykvCL5GRT6VmiY39XnxAR10cohBsLeAENP0+3JM/0=",
|
||||
"lastModified": 1791691571,
|
||||
"narHash": "sha256-btJ4vVIAyQp3BqlARGdbJb9iq3WD7/KTSj0QW5DmvLM=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "ccfaa2303117e22752bda4e1a1bb07d17f38ea2d",
|
||||
"rev": "17a8cf0be701c3f264e42c8465368a0cc602bb18",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -40,6 +63,22 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -47,26 +86,30 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776136611,
|
||||
"narHash": "sha256-b2pu3Pb28W0bJzQVP3OJHZC5+dgOOeqjlli2WVakKEU=",
|
||||
"lastModified": 1791642191,
|
||||
"narHash": "sha256-0bK0A59rVUn1SRZzo4cNi4VSqAe7vR1gL2/MZl53Frw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "8a423e444b17dde406097328604a64fc7429e34e",
|
||||
"rev": "c58f54c733a7894d84fa2fdff26cc12088c4b78c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "master",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775490113,
|
||||
"narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
|
||||
"lastModified": 1791721963,
|
||||
"narHash": "sha256-BYhx89XJltnRyQeuDKHVL5eSqbbfAcOKuDts7QRsrxQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
|
||||
"rev": "60a624466c08787ee8303393b7d4752d1826f14f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -78,32 +121,58 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1775423009,
|
||||
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
|
||||
"type": "github"
|
||||
"lastModified": 1790652569,
|
||||
"narHash": "sha256-k8Fu4c9Z+4Nh7mUr0cfw++ITQiyEhlWxoJBOkI3tOcQ=",
|
||||
"rev": "b6c8664de9b6cc07fe5666a29f91884ba81197c4",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1082290.b6c8664de9b6/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1775710090,
|
||||
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
|
||||
"lastModified": 1770107345,
|
||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
|
||||
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1789546076,
|
||||
"narHash": "sha256-vWkSk5bbfTqdtMoSgD9FshACO8JCvXTFi+3cqEp0mH0=",
|
||||
"rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1074753.b1b875982b17/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1791935857,
|
||||
"narHash": "sha256-Zrhxwe8+HMRiDpjsOIoOIUvK6b8HCp3FL5R50N901hU=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "952dd4355e1932709b993aa31de5e5b7bbe114f7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "release-26.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -111,11 +180,13 @@
|
||||
"root": {
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"dockermcmgr": "dockermcmgr",
|
||||
"firefox-addons": "firefox-addons",
|
||||
"home-manager": "home-manager",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"sops-nix": "sops-nix"
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"sops-nix": "sops-nix",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
@@ -125,11 +196,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776119890,
|
||||
"narHash": "sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M=",
|
||||
"lastModified": 1791710405,
|
||||
"narHash": "sha256-mVD4XIc5JkqMW2K04IkFUzHgHmyJZlzw5ktfgMDCbKU=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "d4971dd58c6627bfee52a1ad4237637c0a2fb0cd",
|
||||
"rev": "ee48786c6f9160d2c1a084aac841f68195b8420c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -137,6 +208,59 @@
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1780220602,
|
||||
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1791627880,
|
||||
"narHash": "sha256-qpJE5ug1T+7LEdXRLI9/ZIwe/rzqjILR9BpMg/sNVtM=",
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "458cd16116c362a5e92d5db6bdc3599e4e8b1f4a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/10/17 18:15:24 by tomoron #+# #+# #
|
||||
# Updated: 2025/12/16 19:01:21 by tomoron ### ########.fr #
|
||||
# Updated: 2026/08/16 16:22:46 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
description = "Nixos and home-manager config flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/release-26.05";
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
|
||||
sops-nix = {
|
||||
@@ -23,7 +23,7 @@
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
@@ -33,6 +33,17 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
dockermcmgr = {
|
||||
url = "git+https://git.tmoron.fr/tom/dockermcmgr";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
zen-browser = {
|
||||
url = "github:youwen5/zen-browser-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
||||
#plymouth-theme-ycontre-glow = {
|
||||
# url = "git+file:///home/tom/desktop/bordel/ycontre-glow";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -43,8 +54,8 @@
|
||||
let
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; };
|
||||
|
||||
osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; flakeName = flakeName; };
|
||||
osConfig = {flakeName, minimal ? false, extraModules ? []}: nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; flakeName = flakeName; minimal = minimal; };
|
||||
modules = nixpkgs.lib.concatLists [
|
||||
[
|
||||
./osConfigs/os.nix
|
||||
@@ -56,9 +67,9 @@
|
||||
];
|
||||
};
|
||||
|
||||
homeConfig = {flakeName, sops ? true, 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;
|
||||
extraSpecialArgs = { inherit inputs; username = username; homeDir = homeDir; isOs = false; configSops = sops; };
|
||||
extraSpecialArgs = { inherit inputs; username = username; homeDir = homeDir; isOs = false; configSops = sops; minimal = minimal; };
|
||||
modules = nixpkgs.lib.concatLists [
|
||||
[
|
||||
./homeConfigs/home.nix
|
||||
@@ -71,9 +82,8 @@
|
||||
};
|
||||
|
||||
in {
|
||||
|
||||
nixosConfigurations = {
|
||||
server = osConfig {flakeName = "server";};
|
||||
server = osConfig {flakeName = "server"; minimal = true;};
|
||||
vbox = osConfig {flakeName = "vbox";};
|
||||
laptop = osConfig {flakeName = "laptop"; extraModules = [ nixos-hardware.nixosModules.asus-zephyrus-ga401 ];};
|
||||
desktop = osConfig {flakeName = "desktop";};
|
||||
@@ -94,7 +104,7 @@
|
||||
ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron"; sops = false;};
|
||||
laptop = homeConfig { flakeName = "laptop"; };
|
||||
desktop = homeConfig { flakeName = "desktop"; };
|
||||
server = homeConfig { flakeName = "server"; };
|
||||
server = homeConfig { flakeName = "server"; minimal = true; };
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
File renamed without changes.
@@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
{
|
||||
catppuccin.alacritty.enable = true;
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
env.XTERM = "xterm-256color";
|
||||
font.size = 9;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
{
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
autoEnable = false;
|
||||
|
||||
flavor = "mocha";
|
||||
|
||||
dunst.enable = true;
|
||||
@@ -12,15 +14,16 @@
|
||||
};
|
||||
|
||||
gtk = {
|
||||
gtk4.theme = config.gtk.theme;
|
||||
enable = true;
|
||||
theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; };
|
||||
theme = { package = pkgs.yaru-remix-theme; name = "Yaru-remix-dark"; };
|
||||
gtk4.theme = config.gtk.theme;
|
||||
font = { name = "Sans"; size = 11; };
|
||||
};
|
||||
|
||||
qt.style.name = "kvantum";
|
||||
|
||||
home.pointerCursor = {
|
||||
enable = true;
|
||||
gtk.enable = true;
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
@@ -28,7 +31,7 @@
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".config/wallpaper.png".source = lib.mkDefault ../utils/wallpaper.png;
|
||||
".config/lock_screen.jpg".source = lib.mkDefault ../utils/lock_screen.jpg;
|
||||
".config/wallpaper.png".source = lib.mkDefault ../assets/wallpaper.png;
|
||||
".config/lock_screen.jpg".source = lib.mkDefault ../assets/lock_screen.jpg;
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
|
||||
dunst.enable = true;
|
||||
dunst.flavor="frappe";
|
||||
|
||||
kvantum.apply = true;
|
||||
rofi.enable = false;
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs;[
|
||||
lutris
|
||||
mangohud
|
||||
moonlight-qt
|
||||
prismlauncher
|
||||
|
||||
r2modman
|
||||
];
|
||||
}
|
||||
File renamed without changes.
@@ -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~";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
catppuccin.enable = lib.mkDefault false;
|
||||
catppuccin.autoEnable = lib.mkDefault false;
|
||||
}
|
||||
@@ -1,27 +1,32 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# game.nix :+: :+: :+: #
|
||||
# packages.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
|
||||
# Updated: 2025/10/27 00:50:29 by tomoron ### ########.fr #
|
||||
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
|
||||
# Updated: 2026/08/16 00:46:53 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{config, lib, ... }:
|
||||
{ pkgs, ...}:
|
||||
|
||||
{
|
||||
options.mods.gayming.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable steam and other";
|
||||
};
|
||||
home.packages = with pkgs;[
|
||||
lrzip
|
||||
git
|
||||
lm_sensors
|
||||
wget
|
||||
curl
|
||||
man-pages
|
||||
ffmpeg-full
|
||||
nix-index
|
||||
sops
|
||||
screen
|
||||
btop
|
||||
htop
|
||||
|
||||
config = lib.mkIf config.mods.gayming.enable {
|
||||
programs.steam.enable = true;
|
||||
programs.steam.protontricks.enable = true;
|
||||
programs.gamescope.enable = true;
|
||||
};
|
||||
gnupg
|
||||
];
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{ homeDir, ... }:
|
||||
|
||||
{
|
||||
home.shell.enableBashIntegration = true;
|
||||
home.shellAliases = {
|
||||
@@ -6,7 +7,6 @@
|
||||
grep = "grep --color=auto";
|
||||
vim = "nvim";
|
||||
vi = "nvim";
|
||||
hl = "Hyprland";
|
||||
clr = "clear";
|
||||
noidle = "systemctl --user stop hypridle";
|
||||
};
|
||||
@@ -24,4 +24,17 @@
|
||||
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
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,228 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# vim.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2026/06/14 19:22:40 by tomoron #+# #+# #
|
||||
# Updated: 2026/07/09 14:59:29 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({
|
||||
experimental = { ghost_text = true },
|
||||
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)
|
||||
|
||||
require "lsp_signature".setup(cfg)
|
||||
'';
|
||||
|
||||
programs.neovim.extraConfig = ''
|
||||
set number
|
||||
autocmd BufWinLeave *.* mkview
|
||||
autocmd BufWinEnter *.* silent! loadview
|
||||
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/**
|
||||
|
||||
set scrolloff=10
|
||||
|
||||
set ai
|
||||
set smartindent
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
filetype plugin indent on
|
||||
|
||||
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 'ray-x/lsp_signature.nvim'
|
||||
|
||||
Plug 'hrsh7th/cmp-vsnip'
|
||||
Plug 'hrsh7th/vim-vsnip'
|
||||
call plug#end()
|
||||
|
||||
colorscheme catppuccin-mocha
|
||||
|
||||
set signcolumn=auto
|
||||
set exrc
|
||||
|
||||
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 = {
|
||||
#set nix indent
|
||||
".config/nvim/after/ftplugin/nix.lua".text= ''
|
||||
vim.bo.shiftwidth = 2
|
||||
vim.bo.tabstop = 2
|
||||
vim.bo.expandtab = true
|
||||
'';
|
||||
|
||||
#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,46 +6,42 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
|
||||
# Updated: 2026/03/27 12:00:06 by tomoron ### ########.fr #
|
||||
# Updated: 2026/09/12 22:26:37 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ pkgs, ...}:
|
||||
{ inputs, pkgs, ...}:
|
||||
|
||||
{
|
||||
home.packages = with pkgs;[
|
||||
lrzip
|
||||
pigz
|
||||
htop
|
||||
gnumake
|
||||
git
|
||||
fastfetch
|
||||
clang
|
||||
ninja
|
||||
gdb
|
||||
valgrind
|
||||
wget
|
||||
cmake
|
||||
man-pages
|
||||
stress
|
||||
ffmpeg-full
|
||||
ripgrep
|
||||
|
||||
activate-linux
|
||||
unison
|
||||
brightnessctl
|
||||
playerctl
|
||||
vlc
|
||||
nix-index
|
||||
yubikey-manager
|
||||
bibata-cursors
|
||||
libcaca
|
||||
nasm
|
||||
nerd-fonts.iosevka
|
||||
compiledb
|
||||
yubikey-personalization
|
||||
sops
|
||||
libreoffice
|
||||
doxygen
|
||||
qimgv
|
||||
compiledb
|
||||
yubikey-personalization
|
||||
libreoffice
|
||||
doxygen
|
||||
qimgv
|
||||
acpi
|
||||
|
||||
discord
|
||||
google-chrome
|
||||
|
||||
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
localsend
|
||||
];
|
||||
}
|
||||
@@ -1,21 +1,23 @@
|
||||
{ config, homeDir, ... }:
|
||||
{ config, lib, homeDir, configSops, ... }:
|
||||
{
|
||||
programs.rclone.enable = true;
|
||||
sops.secrets."nextcloud_fuse/password" = {};
|
||||
programs.rclone.remotes.nextcloud = {
|
||||
config = {
|
||||
type = "webdav";
|
||||
url = "https://nc.tmoron.fr/remote.php/dav/files/tom";
|
||||
vendor = "nextcloud";
|
||||
user = "tom";
|
||||
config = lib.mkIf configSops {
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
secrets.pass = config.sops.secrets."nextcloud_fuse/password".path;
|
||||
mounts = {
|
||||
"/" = {
|
||||
enable = true;
|
||||
mountPoint = "${homeDir}/nextcloud";
|
||||
options.vfs-cache-mode = "writes";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
theme = "rounded-nord-dark";
|
||||
};
|
||||
|
||||
home.file.".local/share/rofi/themes".source = "${builtins.fetchGit {
|
||||
home.file.".local/share/rofi/themes".source = "${fetchGit {
|
||||
url = "https://github.com/newmanls/rofi-themes-collection";
|
||||
rev = "c8239a45edced3502894e1716a8b661fdea8f1c9";
|
||||
ref = "master";
|
||||
|
||||
@@ -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 #tests broken
|
||||
# python-lsp-ruff #broken
|
||||
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
|
||||
}
|
||||
})
|
||||
'';
|
||||
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
curve = [
|
||||
{ _args = [
|
||||
"easeInOut"
|
||||
{ type = "bezier"; points = lib.generators.mkLuaInline "{ {0.77, 0}, {0.175, 1} }"; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"easeOut"
|
||||
{ type = "bezier"; points = lib.generators.mkLuaInline "{ {0.24, 0.66}, {0.04, 1} }"; }
|
||||
];}
|
||||
];
|
||||
animation = [
|
||||
{leaf = "windows"; enabled = true; speed = 2; bezier = "easeInOut";}
|
||||
{leaf = "windowsIn"; enabled = true; speed = 2; bezier = "easeInOut"; style = "slide";}
|
||||
{leaf = "windowsOut"; enabled = true; speed = 2; bezier = "easeInOut"; style = "slide";}
|
||||
{leaf = "fade"; enabled = true; speed = 2; bezier = "easeInOut";}
|
||||
{leaf = "workspaces"; enabled = true; speed = 2; bezier = "easeOut";}
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
{ _args = [
|
||||
"XF86AudioRaiseVolume"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86AudioLowerVolume"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
{ _args = [
|
||||
"XF86AudioMute"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86AudioMicMute"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
|
||||
|
||||
{ _args = [
|
||||
"XF86AudioNext"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} next\")")
|
||||
{locked = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86AudioPrev"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} previous\")")
|
||||
{locked = true;}
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86AudioPause"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} pause\")")
|
||||
{locked = true;}
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86AudioPlay"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} play\")")
|
||||
{locked = true;}
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + N\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} next\")")
|
||||
{locked = true;}
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + P\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} previous\")")
|
||||
{locked = true;}
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + O\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} play-pause\")")
|
||||
{locked = true;}
|
||||
];}
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + Return\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"alacritty\")")
|
||||
]; }
|
||||
{ _args = [
|
||||
"CTRL + ALT + Q"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.close()")
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"CTRL + ALT + SHIFT + Q"
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.kill()")
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + ALT + Q\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.exit()")
|
||||
{long_press = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + S\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.float({action = \"toggle\"})")
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + I\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.pin({action = \"toggle\"})")
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + D\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.rofi} -show drun -show-icons\")")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + D\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.rofi} -show run -show-icons\")")
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + M\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen({mode = \"maximized\", action = \"toggle\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + F\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen({mode = \"fullscreen\", action = \"toggle\"})")
|
||||
];}
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
{ _args = [
|
||||
"XF86MonBrightnessUp"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.brightnessctl} s 10%+\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86MonBrightnessDown"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.brightnessctl} s 10%-\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86KbdBrightnessUp"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${pkgs.asusctl}/bin/asusctl -n\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"XF86KbdBrightnessDown"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${pkgs.asusctl}/bin/asusctl -p\")")
|
||||
{locked = true; repeating = true; }
|
||||
];}
|
||||
|
||||
{ _args = [
|
||||
"Print"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png\")")
|
||||
]; }
|
||||
{ _args = [
|
||||
"SHIFT + Print"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png\")")
|
||||
]; }
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
#mouse binds
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + mouse:272\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.drag()")
|
||||
{mouse = true;}
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + mouse:273\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.resize()")
|
||||
{mouse = true;}
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + mouse:276\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen({mode = \"maximized\", action = \"toggle\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + mouse:276\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen({mode = \"fullscreen\", action = \"toggle\"})")
|
||||
];}
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
# Move focus
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + H\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"l\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + L\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"r\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + K\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"u\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + J\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"d\"})")
|
||||
];}
|
||||
|
||||
#swap windows
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + H\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"l\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + L\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"r\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + K\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"u\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + J\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"d\"})")
|
||||
];}
|
||||
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 1\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"1\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 2\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"2\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 3\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"3\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 4\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"4\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 5\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"5\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 6\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"6\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 7\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"7\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 8\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"8\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 9\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"9\"})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + 0\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"10\"})")
|
||||
];}
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 1\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"1\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 2\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"2\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 3\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"3\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 4\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"4\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 5\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"5\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 6\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"6\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 7\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"7\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 8\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"8\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 9\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"9\", follow = false})")
|
||||
];}
|
||||
{ _args = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 0\"")
|
||||
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"0\", follow = false})")
|
||||
];}
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
config = {
|
||||
ecosystem = {
|
||||
no_update_news = true;
|
||||
no_donation_nag = true;
|
||||
};
|
||||
|
||||
debug = {
|
||||
disable_logs = false;
|
||||
disable_time = false;
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 1;
|
||||
disable_hyprland_logo = true;
|
||||
mouse_move_focuses_monitor = false;
|
||||
enable_anr_dialog = false;
|
||||
};
|
||||
|
||||
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" = lib.generators.mkLuaInline "{colors = {\"rgba(33ccffee)\", \"rgba(00ff99ee)\"}, angle = 45}";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
cursor = {
|
||||
no_warps = true;
|
||||
inactive_timeout = 3;
|
||||
hide_on_key_press = true;
|
||||
};
|
||||
|
||||
animations = { enabled = true;};
|
||||
|
||||
input = {
|
||||
kb_layout = "fr";
|
||||
kb_variant = "us";
|
||||
follow_mouse = 2;
|
||||
kb_options = "caps:none";
|
||||
touchpad.natural_scroll = false;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
force_split = 2;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{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 = "lua";
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
mod = { _var = "SUPER"; };
|
||||
|
||||
env = [
|
||||
{ _args = [ "HYPRCURSOR_SIZE" "17" ]; }
|
||||
{ _args = [ "HYPRCURSOR_THEME" "bibata-modern-classic" ];}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
window_rule = [
|
||||
{ _args = [
|
||||
{match = { class = "(pinentry-)(.*)"; };}
|
||||
{stay_focused = true;}
|
||||
];}
|
||||
];
|
||||
|
||||
layer_rule = [
|
||||
{ _args = [
|
||||
{
|
||||
name = "no_anim_for_selection";
|
||||
no_anim = true;
|
||||
match = { namespace = "selection"; };
|
||||
}
|
||||
];}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
on = [
|
||||
{ _args = [
|
||||
"hyprland.start"
|
||||
(lib.generators.mkLuaInline ''function()
|
||||
hl.exec_cmd("${lib.getExe pkgs.swaybg} -i ~/.config/wallpaper.png")
|
||||
hl.exec_cmd("(sleep 2;${lib.getExe pkgs.activate-linux})")
|
||||
hl.exec_cmd("waybar")
|
||||
|
||||
hl.exec_cmd("firefox", { workspace = "3" })
|
||||
hl.exec_cmd("alacritty", { workspace = "1" })
|
||||
end
|
||||
'')
|
||||
]; }
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.hyprsunset.enable = true;
|
||||
services.hyprsunset.settings = {
|
||||
profile = [
|
||||
{
|
||||
time = "9:00";
|
||||
identity = true;
|
||||
gamma = 1;
|
||||
}
|
||||
|
||||
{
|
||||
time = "21:30";
|
||||
temperature = 5000;
|
||||
}
|
||||
{
|
||||
time = "22:30";
|
||||
temperature = 4000;
|
||||
}
|
||||
{
|
||||
time = "23:30";
|
||||
temperature = 3000;
|
||||
}
|
||||
{
|
||||
time = "00:30";
|
||||
temperature = 2500;
|
||||
}
|
||||
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swaybg
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.waybar.settings.mainBar = {
|
||||
clock = {
|
||||
interval = 1;
|
||||
format-alt = "{:%Y-%m-%d}";
|
||||
format = "{:%H:%M:%S}";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.waybar.settings.mainBar = {
|
||||
cpu = {
|
||||
format = " {usage}%";
|
||||
format-low = "";
|
||||
states = {
|
||||
low = 0;
|
||||
working = 30;
|
||||
high = 80;
|
||||
};
|
||||
interval = 5;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.waybar.settings.mainBar = {
|
||||
disk = {
|
||||
format-low ="";
|
||||
format = " {percentage_used}%";
|
||||
states.low = 0;
|
||||
states.warning = 70;
|
||||
states.high= 90;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.waybar.settings.mainBar = {
|
||||
memory = {
|
||||
format = " {}%";
|
||||
format-low = "";
|
||||
interval = 5;
|
||||
states = {
|
||||
low = 0;
|
||||
show = 50;
|
||||
elevated = 80;
|
||||
critical = 95;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.waybar.settings.mainBar = {
|
||||
network = {
|
||||
format-wifi = "{icon} {essid}";
|
||||
format-ethernet = " {ifname}";
|
||||
format-disconnected = " ";
|
||||
format-icons = [" " " " " " " "];
|
||||
max-length = 20;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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 = ["" "" "" "" ""];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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 = "|";
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@@ -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,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/24 02:08:41 by tomoron ### ########.fr #
|
||||
# Updated: 2026/06/15 01:53:27 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@@ -16,22 +16,21 @@ username ? "tom",
|
||||
homeDir ? "/home/tom",
|
||||
isOs ? false,
|
||||
configSops ? true,
|
||||
minimal,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = lib.concatLists [
|
||||
[ ./packages.nix ]
|
||||
(lib.fileset.toList ./modules)
|
||||
(lib.fileset.toList ./global)
|
||||
];
|
||||
imports = (lib.fileset.toList ./modules)
|
||||
++ (lib.lists.optionals minimal (lib.fileset.toList ./global/minimal))
|
||||
++ (lib.lists.optionals (!minimal) (lib.fileset.toList ./global));
|
||||
|
||||
home.username = lib.mkIf (!isOs) "${username}";
|
||||
home.homeDirectory = lib.mkIf (!isOs) "${homeDir}";
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
home.stateVersion = "25.11";
|
||||
|
||||
sops = lib.mkIf configSops{
|
||||
sops = lib.mkIf configSops {
|
||||
defaultSopsFile = ../secrets/secrets.yaml;
|
||||
age.keyFile = "${homeDir}/.config/sops/age/keys.txt";
|
||||
};
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
mods.game.enable = false;
|
||||
mods.hyprland.enable = false;
|
||||
mods.x11.enable = true;
|
||||
programs.firefox.enable = false;
|
||||
|
||||
services.picom = {
|
||||
backend = "xrender";
|
||||
settings = {
|
||||
|
||||
@@ -1,28 +1,33 @@
|
||||
{ ... }:
|
||||
{ lib, pkgs, config, ... }:
|
||||
|
||||
{
|
||||
mods.x11.enable = true;
|
||||
programs.waybar.settings.mainBar.temperature.thermal-zone = 2;
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
monitor = [
|
||||
"DP-2, 1920x1080@60Hz, -1920x0, auto"
|
||||
"HDMI-A-3, 1920x1080@60Hz, 0x0, auto"
|
||||
"DP-3, 1920x1080@60.00Hz, 1920x0, auto"
|
||||
"DP-4, 1280x1024@75.03Hz, 3840x0, auto"
|
||||
{ output = "DP-2"; mode = "1920x1080@60Hz"; position = "-1920x0"; scale="auto"; }
|
||||
{ output = "HDMI-A-3"; mode = "1920x1080@60Hz"; position = "0x0"; scale = "auto"; }
|
||||
{ output = "DP-3"; mode = "1920x1080@60.00Hz"; position = "1920x0"; scale = "auto"; }
|
||||
{ output = "DP-4"; mode = "1280x1024@75.03Hz"; position = "3840x0"; scale = "auto"; }
|
||||
];
|
||||
workspace = [
|
||||
"3, monitor:DP-2"
|
||||
"1, monitor:HDMI-A-3, default:true"
|
||||
"2, monitor:DP-3"
|
||||
"4, monitor:DP-4"
|
||||
];
|
||||
env = [
|
||||
"AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card2"
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
];
|
||||
cursor.no_hardware_cursors = true;
|
||||
misc.vrr = 1;
|
||||
};
|
||||
|
||||
mods.hyprland.autoSuspend = false;
|
||||
workspace_rule = [
|
||||
{ workspace = "3"; monitor = "DP-2";}
|
||||
{ workspace = "1"; monitor = "HDMI-A-3"; default = true; }
|
||||
{ workspace = "2"; monitor = "DP-3"; }
|
||||
{ workspace = "4"; monitor = "DP-4"; }
|
||||
];
|
||||
|
||||
env = [
|
||||
{ _args = [ "AQ_DRM_DEVICES" "/dev/dri/card1:/dev/dri/card2" ];}
|
||||
{ _args = [ "LIBVA_DRIVER_NAME" "nvidia" ];}
|
||||
{ _args = [ "__GLX_VENDOR_LIBRARY_NAME" "nvidia" ];}
|
||||
];
|
||||
|
||||
config = {
|
||||
cursor.no_hardware_cursors = true;
|
||||
misc.vrr = 1;
|
||||
};
|
||||
};
|
||||
services.hypridle.enable = lib.mkForce false;
|
||||
}
|
||||
@@ -7,16 +7,14 @@
|
||||
rofi
|
||||
];
|
||||
|
||||
mods.game.enable = false;
|
||||
mods.hyprland.enable = false;
|
||||
mods.x11.enable = true;
|
||||
programs.firefox.enable = false;
|
||||
programs.firefox.enable = lib.mkForce false;
|
||||
|
||||
mods.polybar.fspath = "/home/tomoron";
|
||||
|
||||
mods.sync.homeFolder = "/home/tomoron/sync";
|
||||
mods.sync.defaultSynced = false;
|
||||
mods.sync.syncedAdditions = [ "42_desktop" "Downloads" ];
|
||||
mods.sync.syncedAdditions = [ "42_desktop" ];
|
||||
mods.sync.customHostName = "pc42";
|
||||
|
||||
programs.bash.profileExtra =
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
mods.nonChromium.enable = false;
|
||||
}
|
||||
@@ -5,46 +5,46 @@
|
||||
modules-right = lib.mkBefore ["custom/fans" "custom/dgpu"];
|
||||
"custom/dgpu" = {
|
||||
exec-if = "test \"$(supergfxctl -g)\" = \"Hybrid\" || test \"$(supergfxctl -g)\" = \"Vfio\"";
|
||||
exec = "echo \" on |\"";
|
||||
exec = "echo \" on\"";
|
||||
interval-if = 10;
|
||||
interval = 100;
|
||||
};
|
||||
|
||||
"custom/fans" = {
|
||||
exec-if = "test \"$(cat /sys/class/hwmon/hwmon6/fan1_input)\" -gt 0 -o \"$(cat /sys/class/hwmon/hwmon6/fan2_input)\" -gt 0";
|
||||
exec = "echo \" \" \"$(cat /sys/class/hwmon/hwmon6/fan1_input).$(cat /sys/class/hwmon/hwmon6/fan2_input) |\"";
|
||||
exec = "echo \" \" \"$(($(cat /sys/class/hwmon/hwmon6/fan1_input) / 100)).$(($(cat /sys/class/hwmon/hwmon6/fan2_input) / 100))\"";
|
||||
interval = 1;
|
||||
interval-if = 1;
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
workspace = [
|
||||
"1, monitor:eDP-1"
|
||||
"2, monitor:HDMI-A-1, default:true"
|
||||
workspace_rule = [
|
||||
{ workspace = "1"; monitor = "eDP-1"; }
|
||||
{ workspace = "2"; monitor = "HDMI-A-1"; default = true; }
|
||||
];
|
||||
bind = [
|
||||
", XF86Launch1, exec, hyprlock"
|
||||
", XF86Launch4, exec, pkill activate-linux"
|
||||
];
|
||||
bindl = [
|
||||
# ",switch:off:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, 1920x1080@120, 0x0, 1\""
|
||||
# ",switch:on:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, disable\""
|
||||
|
||||
];
|
||||
bind = [
|
||||
{ _args = [
|
||||
"XF86Launch1"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprlock\")")
|
||||
];}
|
||||
{ _args = [
|
||||
"XF86Launch4"
|
||||
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"pkill activate-linux\")")
|
||||
];}
|
||||
];
|
||||
monitor= [
|
||||
# "eDP-1, modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync, 0x0, 1"
|
||||
"eDP-1, 1920x1080@120, 0x0, 1"
|
||||
"HDMI-A-1, 1920x1080@60, auto, auto"
|
||||
{ output = "DP-2"; mode = "1920x1080@60Hz"; position = "-1920x0"; scale="auto"; }
|
||||
{ output = "eDP-1"; mode = "1920x1080@120"; position = "0x0"; scale = "1"; }
|
||||
{ output = "HDMI-A-1"; mode = "1920x1080@60"; position = "auto"; scale = "auto"; }
|
||||
];
|
||||
env = [ "AQ_DRM_DEVICES,/dev/dri/card1"];
|
||||
env = [ { _args = ["AQ_DRM_DEVICES" "/dev/dri/card1"]; } ];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
blender
|
||||
wireshark
|
||||
localsend
|
||||
impala
|
||||
wireshark
|
||||
];
|
||||
|
||||
services.mpris-proxy.enable = true;
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
mods.bash.goback = false;
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
monitor= [
|
||||
"virt-1, 1920x1080@60, 0x0, 1.0"
|
||||
];
|
||||
|
||||
env = ["WLR_BACKENDS,headless"];
|
||||
};
|
||||
}
|
||||
@@ -1,21 +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 {
|
||||
catppuccin.alacritty.enable = true;
|
||||
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,21 +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 {
|
||||
catppuccin.firefox.enable = true;
|
||||
programs.firefox = {
|
||||
enable = lib.mkDefault true;
|
||||
profiles.default = {
|
||||
extensions.packages = with inputs.firefox-addons.packages."x86_64-linux";
|
||||
[vimium ublock-origin];
|
||||
extensions.force = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,20 +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
|
||||
|
||||
r2modman
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,34 +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;
|
||||
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~";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
defPathLst = ["desktop" "42_desktop" "Downloads"];
|
||||
defPathLst = [ "desktop" "42_desktop" ];
|
||||
in
|
||||
{
|
||||
options.mods.sync = {
|
||||
@@ -19,7 +19,7 @@ in
|
||||
|
||||
destFolder = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/raid/pc_sync";
|
||||
default = "/raid/crit/pc_sync";
|
||||
description = "where on the server";
|
||||
};
|
||||
|
||||
@@ -41,15 +41,17 @@ in
|
||||
description = "hostname used by unison";
|
||||
};
|
||||
};
|
||||
|
||||
config.home.file.".unison/default.prf" = lib.mkIf config.mods.sync.enable {
|
||||
text = (lib.strings.concatStrings [''
|
||||
auto=true
|
||||
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 "")
|
||||
]);
|
||||
config = lib.mkIf config.mods.sync.enable {
|
||||
home.packages = with pkgs;[ unison ];
|
||||
home.file.".unison/default.prf" = {
|
||||
text = (lib.strings.concatStrings [''
|
||||
auto=true
|
||||
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 "")
|
||||
]);
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,228 +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
|
||||
rust-analyzer
|
||||
nodejs_24
|
||||
glsl_analyzer
|
||||
(pkgs.python3.withPackages (ps: with ps; [
|
||||
python-lsp-server
|
||||
pylsp-mypy
|
||||
python-lsp-ruff
|
||||
pycodestyle
|
||||
]))
|
||||
];
|
||||
|
||||
# programs.neovim.extraLuaConfig = ''
|
||||
# vim.lsp.config('pylsp', {})
|
||||
# '';
|
||||
|
||||
programs.neovim.initLua= ''
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||
end,
|
||||
},
|
||||
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
}),
|
||||
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'vsnip' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
|
||||
-- Set configuration for specific filetype.
|
||||
--[[ cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'git' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
require("cmp_git").setup() ]]--
|
||||
|
||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
}),
|
||||
matching = { disallow_symbol_nonprefix_matching = false }
|
||||
})
|
||||
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
|
||||
vim.lsp.enable('clangd')
|
||||
vim.lsp.config('clangd', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('nixd')
|
||||
vim.lsp.config('nixd', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('glsl_analyzer')
|
||||
vim.lsp.config('glsl_analyzer', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('pylsp')
|
||||
vim.lsp.config('pylsp', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('rust_analyzer')
|
||||
vim.lsp.config('rust_analyzer', {
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
cargo = {
|
||||
features = "all"
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_lines = {
|
||||
current_line = true
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
'';
|
||||
|
||||
programs.neovim.extraConfig = ''
|
||||
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";
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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,192 +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.systemd.variables = [ "--all" ];
|
||||
|
||||
programs.hyprshot.enable = true;
|
||||
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
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, rofi -show drun -show-icons"
|
||||
"$mainMod SHIFT, D, exec, 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, 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 = 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 = [
|
||||
"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,12 +0,0 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
config = lib.mkIf config.mods.hyprland.enable {
|
||||
home.packages = with pkgs; [
|
||||
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,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/02/10 00:21:11 by tomoron #+# #+# #
|
||||
# Updated: 2025/06/18 15:49:03 by tomoron ### ########.fr #
|
||||
# Updated: 2026/10/14 10:23:32 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
{lib, config, ... }:
|
||||
@@ -30,9 +30,8 @@
|
||||
pgrep picom > /dev/null || picom &
|
||||
pgrep dunst >/dev/null || dunst &
|
||||
numlockx on &
|
||||
polybar &
|
||||
polybar &
|
||||
setxkbmap fr us&
|
||||
nitrogen --restore &
|
||||
pgrep activate-linux >/dev/null || (sleep 2;activate-linux -d)&
|
||||
''; # this is messy but i don't care, x11 is just a fallback now
|
||||
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
{ config, lib, pkgs, homeDir, ... }:
|
||||
|
||||
let
|
||||
background = "${homeDir}/.config/wallpaper.png";
|
||||
in
|
||||
{
|
||||
config = lib.mkIf config.mods.x11.enable {
|
||||
|
||||
home.file.".config/nitrogen/bg-saved.cfg".text = ''
|
||||
[xin_0]
|
||||
file=${background}
|
||||
mode=5
|
||||
bgcolor=#000000
|
||||
|
||||
[xin_1]
|
||||
file=${background}
|
||||
mode=5
|
||||
bgcolor=#000000
|
||||
|
||||
[xin_2]
|
||||
file=${background}
|
||||
mode=5
|
||||
bgcolor=#000000
|
||||
|
||||
[xin_3]
|
||||
file=${background}
|
||||
mode=5
|
||||
bgcolor=#000000
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
@@ -6,11 +6,11 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# 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 {
|
||||
@@ -67,9 +67,9 @@
|
||||
"alt + F7" = "brightnessctl s 10-";
|
||||
"alt + F8" = "brightnessctl s 10+";
|
||||
|
||||
"super + shift + o" = "playerctl play-pause";
|
||||
"super + shift + p" = "playerctl previous";
|
||||
"super + shift + n" = "playerctl next";
|
||||
"super + shift + o" = "${lib.getExe pkgs.playerctl} play-pause";
|
||||
"super + shift + p" = "${lib.getExe pkgs.playerctl} previous";
|
||||
"super + shift + n" = "${lib.getExe pkgs.playerctl} next";
|
||||
"super + shift + alt + b" = "polybar-msg cmd hide";
|
||||
"super + shift + b" = "polybar-msg cmd show";
|
||||
};
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
config = lib.mkIf config.mods.x11.enable {
|
||||
home.file.".xinitrc".text = "exec bspwm";
|
||||
home.packages = with pkgs; [
|
||||
nitrogen
|
||||
xwallpaper
|
||||
numlockx
|
||||
];
|
||||
};
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 145 KiB |
@@ -6,22 +6,13 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:37:58 by tomoron #+# #+# #
|
||||
# Updated: 2026/04/03 11:46:09 by tomoron ### ########.fr #
|
||||
# Updated: 2026/06/14 17:50:09 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{lib, pkgs, ... } :
|
||||
{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.consoleLogLevel = 3;
|
||||
boot.initrd.verbose = false;
|
||||
boot.kernelParams = [
|
||||
@@ -35,16 +26,6 @@
|
||||
boot.plymouth = {
|
||||
enable = true;
|
||||
theme = "nixos-bgrt";
|
||||
themePackages = with pkgs; [ #(adi1090x-plymouth-themes.override {
|
||||
# selected_themes = [ "black_hud" "circle_hud" "square_hud" "spinner_alt" ];
|
||||
# })
|
||||
# catppuccin-plymouth
|
||||
nixos-bgrt-plymouth
|
||||
];
|
||||
themePackages = with pkgs; [ nixos-bgrt-plymouth ];
|
||||
};
|
||||
|
||||
services.journald.extraConfig = ''
|
||||
SystemMaxUse=100M
|
||||
SystemMaxFileSize=50M
|
||||
'';
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.steam.enable = true;
|
||||
programs.steam.protontricks.enable = true;
|
||||
programs.gamescope.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
programs.gnupg.agent.enable = true;
|
||||
programs.gnupg.agent.enableSSHSupport = true;
|
||||
services.pcscd.enable = true;
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/12/30 20:37:07 by tomoron #+# #+# #
|
||||
# Updated: 2026/02/21 13:54:43 by tomoron ### ########.fr #
|
||||
# Updated: 2026/08/11 15:33:10 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@@ -29,6 +29,11 @@
|
||||
util-linux
|
||||
xz
|
||||
systemd
|
||||
|
||||
fribidi
|
||||
harfbuzz
|
||||
libgpg-error
|
||||
gmp
|
||||
|
||||
libxcomposite
|
||||
libxtst
|
||||
@@ -64,7 +69,6 @@
|
||||
libxi
|
||||
libsm
|
||||
libice
|
||||
gnome2.GConf
|
||||
nspr
|
||||
nss
|
||||
cups
|
||||
@@ -108,9 +112,6 @@
|
||||
SDL_mixer
|
||||
SDL2_ttf
|
||||
SDL2_mixer
|
||||
libappindicator-gtk2
|
||||
libdbusmenu-gtk2
|
||||
libindicator-gtk2
|
||||
libcaca
|
||||
libcanberra
|
||||
libgcrypt
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# boot.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2026/06/14 17:49:47 by tomoron #+# #+# #
|
||||
# Updated: 2026/09/13 13:01:22 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.settings.Journal = {
|
||||
SystemMaxUse = "100M";
|
||||
SystemMaxFileSize = "50M";
|
||||
};
|
||||
}
|
||||
File renamed without changes.
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# packages.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2026/06/14 18:03:28 by tomoron #+# #+# #
|
||||
# Updated: 2026/08/16 00:40:05 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
pciutils
|
||||
gnumake
|
||||
home-manager
|
||||
];
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
{lib, ...}:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
sops = {
|
||||
defaultSopsFile = ../../secrets/secrets.yaml;
|
||||
defaultSopsFile = ../../../secrets/secrets.yaml;
|
||||
age.keyFile = "/home/tom/.config/sops/age/keys.txt";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
programs.ssh.extraConfig = ''
|
||||
Host srv
|
||||
HostName tmoron.fr
|
||||
RemoteForward /run/user/1000/gnupg/S.gpg-agent /run/user/1000/gnupg/S.gpg-agent
|
||||
StreamLocalBindUnlink yes
|
||||
Port 1880
|
||||
|
||||
Host tmoron-builder
|
||||
HostName tmoron.fr
|
||||
User builder
|
||||
Port 1880
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# user.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
|
||||
# Updated: 2026/08/16 00:33:56 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
users.users.tom = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel" # can sudo
|
||||
"docker" # can use docker
|
||||
];
|
||||
|
||||
uid = 1000;
|
||||
initialPassword = "password";
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
let
|
||||
nix-alien-pkgs = import (
|
||||
builtins.fetchTarball "https://github.com/thiagokokada/nix-alien/tarball/master"
|
||||
) { };
|
||||
in
|
||||
{
|
||||
environment.systemPackages = with nix-alien-pkgs; [
|
||||
nix-alien
|
||||
];
|
||||
}
|
||||
@@ -6,20 +6,15 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/02/09 01:43:46 by tomoron #+# #+# #
|
||||
# Updated: 2026/04/03 22:08:01 by tomoron ### ########.fr #
|
||||
# Updated: 2026/09/13 13:03:00 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
networking.hostName = lib.mkDefault "unnamed-nixos";
|
||||
networking.networkmanager.enable = lib.mkDefault true;
|
||||
|
||||
programs.fuse.enable = true;
|
||||
|
||||
time.timeZone = "Europe/Paris";
|
||||
|
||||
services.xserver.enable = lib.mkDefault true;
|
||||
services.xserver.displayManager.startx.enable = true;
|
||||
|
||||
@@ -31,7 +26,10 @@
|
||||
};
|
||||
|
||||
hardware.logitech.wireless.enable = true;
|
||||
hardware.logitech.wireless.enableGraphical = true;
|
||||
programs.solaar.enable = true;
|
||||
|
||||
services.fstrim.enable = true; # trims all the ssds on the machine every week
|
||||
programs.noisetorch.enable = true;
|
||||
programs.droidcam.enable = true;
|
||||
|
||||
catppuccin.enable = true;
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:57:21 by tomoron #+# #+# #
|
||||
# Updated: 2025/12/30 18:12:05 by tomoron ### ########.fr #
|
||||
# Updated: 2026/07/23 15:21:06 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
home-manager
|
||||
vim
|
||||
pciutils
|
||||
cryptsetup
|
||||
usbutils
|
||||
ntfs3g
|
||||
cryptsetup
|
||||
acpi
|
||||
apfs-fuse
|
||||
|
||||
nss
|
||||
unison
|
||||
|
||||
# nss //is this supposed to be here ?
|
||||
];
|
||||
}
|
||||
@@ -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"
|
||||
'';
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:42:18 by tomoron #+# #+# #
|
||||
# Updated: 2026/01/13 16:32:42 by tomoron ### ########.fr #
|
||||
# Updated: 2026/07/07 17:49:04 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@@ -14,15 +14,12 @@
|
||||
|
||||
{
|
||||
users.users.tom = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel" # can sudo
|
||||
"docker" # can use docker
|
||||
"libvirtd" # can use libvirtd
|
||||
"dialout" # can use serial devices
|
||||
"wireshark" # can use wireshask
|
||||
"plugdev" #some esp things
|
||||
];
|
||||
|
||||
initialPassword = "password";
|
||||
};
|
||||
users.groups.plugdev = {};
|
||||
}
|
||||
+25
-24
@@ -6,46 +6,47 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:57:04 by tomoron #+# #+# #
|
||||
# Updated: 2026/03/30 13:46:43 by tomoron ### ########.fr #
|
||||
# Updated: 2026/08/16 00:52:08 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
|
||||
{ config, lib, inputs, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
boot.kernelParams = [ "nvidia-drm-modset=1" ];
|
||||
environment.systemPackages = with pkgs; [
|
||||
lm_sensors # can be user (and global)
|
||||
];
|
||||
|
||||
networking.hostName = "nixos-fixe";
|
||||
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
mods.yubikey.pam.enable = true;
|
||||
mods.nvidia.enable = true;
|
||||
|
||||
boot.kernelModules = [ "kvm-intel" "nvidia" ];
|
||||
mods.displayManager.enable = true;
|
||||
|
||||
mods.nvidia.enable = true;
|
||||
mods.gayming.enable = true;
|
||||
|
||||
programs.noisetorch.enable = true;
|
||||
|
||||
# hardware.nvidia = {
|
||||
# open = true;
|
||||
#
|
||||
# prime.nvidiaBusId = "PCI:1:0:0";
|
||||
# prime.intelBusId = "PCI:0:2:0";
|
||||
# prime.sync.enable = true;
|
||||
#
|
||||
# modesetting.enable = true;
|
||||
# };
|
||||
|
||||
services.openssh.enable = true;
|
||||
programs.droidcam.enable = true;
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
networking.hostId = "98e475dd";
|
||||
|
||||
mods.zfs.enable = true;
|
||||
boot.zfs.forceImportRoot = false;
|
||||
boot.zfs.extraPools = [ "stor" ];
|
||||
|
||||
networking.firewall.enable = false;
|
||||
|
||||
services.usbmuxd.enable = true; #iphone usb service, hangs sometimes when shutting down
|
||||
|
||||
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:"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -6,17 +6,13 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:57:02 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 00:57:03 by tomoron ### ########.fr #
|
||||
# Updated: 2026/06/14 18:25:39 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../global/packages.nix
|
||||
];
|
||||
|
||||
users.users.tom = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "networkmanager" "video" ];
|
||||
|
||||
+17
-40
@@ -6,46 +6,36 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:56:57 by tomoron #+# #+# #
|
||||
# Updated: 2026/04/10 20:07:49 by tomoron ### ########.fr #
|
||||
# Updated: 2026/07/04 01:59:26 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.udev.packages = [ pkgs.yubikey-personalization ];
|
||||
boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
|
||||
boot.initrd.luks.yubikeySupport = true;
|
||||
boot.initrd.systemd.enable = true;
|
||||
boot.initrd.luks.devices.cryptroot = {
|
||||
device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f";
|
||||
allowDiscards = true;
|
||||
#set up initial : https://wiki.nixos.org/wiki/Yubikey_based_Full_Disk_Encryption_(FDE)_on_NixOS
|
||||
yubikey = {
|
||||
twoFactor = false;
|
||||
keyLength = 64;
|
||||
saltLength = 32;
|
||||
storage = {
|
||||
device = "/dev/disk/by-uuid/BA5C-F216";
|
||||
path = "/default";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup
|
||||
programs.droidcam.enable = true;
|
||||
boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup, loaded automatically when gpu is started
|
||||
|
||||
|
||||
|
||||
mods.displayManager.enable = true;
|
||||
mods.yubikey.pam.enable = true;
|
||||
networking.firewall.enable = false;
|
||||
|
||||
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.dhcpcd.enable = false;
|
||||
systemd.network.enable = true;
|
||||
networking.useNetworkd = true;
|
||||
|
||||
specialisation.vfio_ready.configuration = {
|
||||
#vfio ready configuration sets up kvmfr0 kernel module, disables xbox controller on host os, enables libvirtd and installs looking-glass
|
||||
|
||||
mods.virtualHost.enable = true;
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ];
|
||||
@@ -68,27 +58,13 @@
|
||||
environment.systemPackages = with pkgs; [ looking-glass-client ];
|
||||
};
|
||||
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||
'';
|
||||
|
||||
|
||||
networking.dhcpcd.enable = false;
|
||||
systemd.network.enable = true;
|
||||
networking.useNetworkd = true;
|
||||
|
||||
programs.noisetorch.enable = true;
|
||||
|
||||
services.postgresql.enable = true;
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
acpi # can be user (global)
|
||||
impala
|
||||
openvr
|
||||
];
|
||||
|
||||
|
||||
mods.touchpad.enable = true;
|
||||
|
||||
mods.powerSave = {
|
||||
@@ -105,10 +81,8 @@
|
||||
|
||||
};
|
||||
|
||||
|
||||
services.asusd = {
|
||||
enable = true;
|
||||
# enableUserService = true;
|
||||
};
|
||||
|
||||
services.supergfxd.enable = true;
|
||||
@@ -125,14 +99,13 @@
|
||||
programs.wireshark.enable = true;
|
||||
programs.wireshark.usbmon.enable = true;
|
||||
|
||||
mods.yubikey.pam.enable = true;
|
||||
mods.docker.enable = true;
|
||||
mods.gayming.enable = true;
|
||||
mods.nvidia.enable = true;
|
||||
mods.nvidia.prime = true;
|
||||
|
||||
|
||||
services.usbmuxd.enable = true; #sometimes hangs when shutting down
|
||||
|
||||
services.usbmuxd.enable = true; #iphone usb service sometimes hangs when shutting down
|
||||
|
||||
services.avahi.enable = true;
|
||||
services.pipewire = {
|
||||
@@ -152,9 +125,13 @@
|
||||
"bluez5.enable-hw-volume" = true;
|
||||
};
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.settings = {
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
};
|
||||
};
|
||||
|
||||
programs.corectrl.enable = true;
|
||||
}
|
||||
+89
-13
@@ -6,11 +6,11 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:57:09 by tomoron #+# #+# #
|
||||
# Updated: 2026/04/09 13:21:07 by tomoron ### ########.fr #
|
||||
# Updated: 2026/08/16 00:14:24 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ lib, config, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
ports = [
|
||||
@@ -27,13 +27,14 @@ let
|
||||
];
|
||||
in
|
||||
{
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
boot.extraModulePackages = [
|
||||
config.boot.kernelPackages.gasket #driver for google coral edge tpu
|
||||
];
|
||||
|
||||
|
||||
|
||||
boot.kernelParams = [
|
||||
"amdgpu.vm_update_mode=3"
|
||||
"amdgpu.gpu_recovery=1"
|
||||
];
|
||||
|
||||
services.openssh.enable = true;
|
||||
services.openssh.settings.PasswordAuthentication = false;
|
||||
@@ -63,7 +64,34 @@ in
|
||||
# create dummy display to be able to start x11
|
||||
'';
|
||||
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
mods.zfs.enable = true;
|
||||
boot.zfs.forceImportRoot = false;
|
||||
boot.zfs.extraPools = [ "raid_vol" ];
|
||||
|
||||
|
||||
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;
|
||||
@@ -82,11 +110,32 @@ in
|
||||
autosnap = true;
|
||||
autoprune = true;
|
||||
};
|
||||
services.sanoid.datasets."raid_vol/crit" = {
|
||||
daily = 31;
|
||||
hourly = 24;
|
||||
monthly = 12;
|
||||
autosnap = true;
|
||||
autoprune = true;
|
||||
};
|
||||
|
||||
users.users.backup.isNormalUser = true;
|
||||
|
||||
services.syncoid.enable = true;
|
||||
services.syncoid.user = "backup";
|
||||
services.syncoid.group = "users";
|
||||
|
||||
services.syncoid.service.serviceConfig = {
|
||||
BindReadOnlyPaths = [ "/home/backup/.ssh" ];
|
||||
ProtectHome = lib.mkForce false;
|
||||
};
|
||||
|
||||
services.syncoid.sshKey = "/home/backup/.ssh/id_ed25519";
|
||||
services.syncoid.commands."raid_vol-critical" = {
|
||||
extraArgs = [ "--delete-target-snapshots" ];
|
||||
source = "raid_vol/crit";
|
||||
target = "sync@192.168.1.41:stor";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
zfs
|
||||
screen #can be user (and global)
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "server";
|
||||
@@ -94,12 +143,11 @@ in
|
||||
interfaces.eth0.ipv4.addresses = [ {
|
||||
address = "192.168.1.24";
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
} ];
|
||||
defaultGateway.address = "192.168.1.254";
|
||||
defaultGateway.interface = "eth0";
|
||||
nameservers = ["8.8.8.8" "8.8.4.4" "1.1.1.1"];
|
||||
hostId = "68290da7";
|
||||
hostId = "68290da7";
|
||||
|
||||
firewall.allowedTCPPorts = ports;
|
||||
firewall.allowedUDPPorts = ports;
|
||||
@@ -118,4 +166,32 @@ in
|
||||
enable = true;
|
||||
boot = 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" ];
|
||||
|
||||
boot.binfmt.emulatedSystems = [ "i686-linux" ];
|
||||
|
||||
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,36 +1,40 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# displayManager.nix :+: :+: :+: #
|
||||
# remote_build.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:16 by tomoron #+# #+# #
|
||||
# Updated: 2025/11/17 14:32:13 by tomoron ### ########.fr #
|
||||
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
|
||||
# Updated: 2026/08/16 15:50:29 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.displayManager.enable = lib.mkOption {
|
||||
options.mods.remote-build.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable the ly display manager";
|
||||
default = true;
|
||||
description = "setup remote nix builder";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.displayManager.enable {
|
||||
services.displayManager.enable = true;
|
||||
services.displayManager.ly.enable = true;
|
||||
services.displayManager.ly.settings =
|
||||
{
|
||||
animation = "gameoflife";
|
||||
min_refresh_delta = 50;
|
||||
bigclock = "en";
|
||||
sleep_cmd = "systemctl sleep";
|
||||
asterisk = "A";
|
||||
auth_fails= 3;
|
||||
};
|
||||
config = lib.mkIf config.mods.remote-build.enable {
|
||||
nix.buildMachines = [
|
||||
{
|
||||
hostName = "tmoron-builder";
|
||||
protocol = "ssh-ng";
|
||||
|
||||
sshKey = "/root/.ssh/id_ed25519";
|
||||
|
||||
systems = ["x86_64-linux" "i686-linux"];
|
||||
|
||||
maxJobs = 2;
|
||||
speedFactor = 2;
|
||||
|
||||
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||
}
|
||||
];
|
||||
nix.distributedBuilds = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 01:03:07 by tomoron ### ########.fr #
|
||||
# Updated: 2026/06/15 02:01:25 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
};
|
||||
|
||||
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 ];
|
||||
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 ];
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
}
|
||||
+9
-6
@@ -6,19 +6,22 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:56:36 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 00:56:37 by tomoron ### ########.fr #
|
||||
# Updated: 2026/06/14 18:56:12 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ lib, flakeName, ... }:
|
||||
{ lib, flakeName, minimal, ... }:
|
||||
|
||||
{
|
||||
imports = lib.concatLists [
|
||||
imports = (lib.concatLists [
|
||||
[ ./hardware-configuration.nix ]
|
||||
(lib.fileset.toList ./global)
|
||||
(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";
|
||||
|
||||
system.stateVersion ="25.05";
|
||||
environment.etc.nixosFlakeName.text = "${flakeName}";
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user