Compare commits

...

68 Commits

Author SHA1 Message Date
92e5a1671d Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-09-20 08:20:09 -03:00
8ec20b96d6 Added docker compose to home profile 2024-09-20 08:19:51 -03:00
1da8bcdfd5 Fixed hearth hardware config 2024-09-17 21:39:22 +00:00
12d4f46367 Fixed printers for regular users 2024-09-15 07:33:51 -03:00
c87bb2a81d Enable flatpak repo 2024-09-14 12:32:50 -03:00
1809debd9b Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-09-14 12:15:10 -03:00
f0d145c9f5 Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-09-14 12:15:01 -03:00
94b26d8651 Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-09-14 12:10:09 -03:00
03eb3b604a Rename gwen to chamuel and generize it 2024-09-14 12:09:57 -03:00
015506c0a9 Added ingrid thinkpad t470 2024-09-14 13:57:45 +00:00
b7fe8183e2 Added laptop for ingridi 2024-09-14 09:29:53 -03:00
2196c9aac3 Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-09-12 15:37:51 -03:00
ea0e37aa82 Hopefully turning off fine-grained fixes some nvidia gpu issues 2024-09-12 11:30:56 -03:00
66d0de2aa6 Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-09-07 10:57:17 -03:00
18e1d2644a Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-09-05 13:17:11 -03:00
25d882f6ac Minor nvidia tweaks 2024-09-05 13:16:54 -03:00
traverseda
f4983500fd Update README.md 2024-09-05 13:07:22 +00:00
traverseda
f8145f3731 Update README.md 2024-09-05 12:31:18 +00:00
5020f2dcc6 Fix nvidia GPU issues on azrael 2024-09-03 13:38:04 -03:00
16d42cfd4e Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-08-24 08:25:48 -03:00
0528a60060 Added lazydocker 2024-08-24 08:25:43 -03:00
8ff07c6d47 Added support for foreign deployments 2024-08-16 15:28:03 +00:00
traverseda
9fe5f6e656 Update flake.nix 2024-08-16 14:40:53 +00:00
traverseda
3ec815d3e6 Update README.md 2024-08-16 14:30:50 +00:00
aa51a62839 A few minor tweaks while I have this open 2024-08-07 11:45:37 -03:00
b25386163e Fixed nixvim release 2024-08-07 11:32:06 -03:00
f90b2bed4e Broken update test 2024-08-07 10:53:28 -03:00
63637c1120 Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-08-07 10:41:01 -03:00
612a38c3f7 An update, misc small fixes 2024-08-07 10:40:53 -03:00
88395bdce5 Provision adrial 2024-07-16 22:21:26 -03:00
af9699399b Python nix-ld 2024-06-24 10:22:08 -03:00
7174fd6ed8 More minor work tweaks 2024-06-19 10:54:54 -03:00
12e292260d Update keybinds 2024-06-12 14:56:39 -03:00
87a21720f2 nixvim most of the way there 2024-06-11 16:44:13 -03:00
4503aeb775 Bump flake.lock for signal-desktop 2024-06-09 11:44:52 -03:00
c61fbf3d42 DSLR-webcam works reliably 2024-06-06 15:48:20 -03:00
4831928351 Use a systemd container to manage dslr-webcam 2024-06-06 15:05:19 -03:00
1f3653c6fb DSLR-webcam, so old vr-desktop crap I was playing with but didn't remove 2024-06-06 13:31:48 -03:00
a3a16daf2a Auto cleanup older generations 2024-06-05 12:24:17 -03:00
138933566b Disable docker liverestore so reboot doesn't hang 2024-06-04 12:18:00 -03:00
2c5538ad3e Include cadsketcher blender dependencies by defaul 2024-06-02 18:29:32 -03:00
30a5f03eed blender-cadsketcher is compiling 2024-06-02 18:11:04 -03:00
4811ba6d00 Work on blender-cadsketcher, some tweaks to make Traverse's life easier 2024-06-02 14:30:43 -03:00
f7cc91e850 Added vscode and htop 2024-06-02 12:25:41 -03:00
1ca723e500 Currently not-working dslr-webcam 2024-06-01 11:44:18 -03:00
d97b5629fc Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-05-31 09:53:51 -03:00
1baab2c82e Misc minor changes 2024-05-31 09:53:35 -03:00
7c04a2da97 Enable home-manager for users 2024-05-31 09:42:28 -03:00
3dfdd8c074 Added comma 2024-05-31 09:36:03 -03:00
36094b083a Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-05-31 09:28:47 -03:00
e625e79bda Add traverse to family users 2024-05-31 09:20:03 -03:00
fae95bef71 Yesterday I tried to get blender cad stuff to work, today I needed to
add focus-follows-mous
2024-05-27 08:41:10 -03:00
52727239f6 Vim 2024-05-26 12:57:09 -03:00
67decdc3c8 Integrated plasma-manager config 2024-05-26 09:37:00 -03:00
35360563be Allow the family module to be unloaded 2024-05-25 08:05:59 -03:00
b6a57da145 Reprovision ariel for work, still undecided 2024-05-25 07:33:41 -03:00
d8fa2eb8c9 Added new laptop to the flee 2024-05-24 17:33:02 -03:00
843270e01f Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-05-24 16:39:38 -03:00
825829228e Add autools 2024-05-24 16:39:30 -03:00
7d56fbed00 Renamed work computer hostname 2024-05-24 13:04:13 -03:00
0a726e9740 Added act action runner 2024-05-24 09:20:53 -03:00
a807e8550b Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-05-24 07:53:23 -03:00
a3bfc27024 Don't specify trusted interfaces, it breaks printer auto discovery 2024-05-24 07:52:22 -03:00
58128b2ee6 Removed extra flake flags 2024-05-24 07:08:18 -03:00
a67e367c68 Changed auto-update to just pull form git 2024-05-24 07:00:23 -03:00
71bcde6239 Enable autoupdate 2024-05-23 21:53:07 -03:00
d78d7c278d Merge branch 'main' of https://codeberg.org/traverseda/nixos-config 2024-05-23 18:35:49 -03:00
3f9e7ece81 Gwen's laptop hardware config 2024-05-14 20:48:43 -03:00
29 changed files with 1228 additions and 426 deletions

View File

@ -1,4 +1,3 @@
https://github.com/Misterio77/nix-starter-configs https://github.com/Misterio77/nix-starter-configs
## Notes ## Notes
@ -8,6 +7,13 @@ https://github.com/Misterio77/nix-starter-configs
nixos-rebuild build-vm --flake ./#athame nixos-rebuild build-vm --flake ./#athame
``` ```
```bash
sh <(curl -L https://nixos.org/nix/install) --daemon
nix-shell -p home-manager
home-manager switch --flake git+https://codeberg.org/traverseda/nixos-config.git?ref=main#traverseda@generic --extra-experimental-features nix-command --extra-experimental-features flakes
```
## Building a LiveCD ## Building a LiveCD
To build a livecd using this flake, you can use the following command: To build a livecd using this flake, you can use the following command:

View File

@ -8,11 +8,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1715290355, "lastModified": 1723293904,
"narHash": "sha256-2T7CHTqBXJJ3ZC6R/4TXTcKoXWHcvubKNj9SfomURnw=", "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "8d37c5bdeade12b6479c85acd133063ab53187a0", "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -61,18 +61,17 @@
}, },
"devshell": { "devshell": {
"inputs": { "inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1713532798, "lastModified": 1722113426,
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=", "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
"owner": "numtide", "owner": "numtide",
"repo": "devshell", "repo": "devshell",
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40", "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -119,11 +118,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1714641030, "lastModified": 1725234343,
"narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -132,43 +131,10 @@
"type": "github" "type": "github"
} }
}, },
"flake-root": {
"locked": {
"lastModified": 1713493429,
"narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=",
"owner": "srid",
"repo": "flake-root",
"rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "flake-root",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_3"
},
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
@ -183,21 +149,30 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": { "git-hooks": {
"inputs": { "inputs": {
"systems": "systems_4" "flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1705309234, "lastModified": 1724857454,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", "narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=",
"owner": "numtide", "owner": "cachix",
"repo": "flake-utils", "repo": "git-hooks.nix",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", "rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "cachix",
"repo": "flake-utils", "repo": "git-hooks.nix",
"type": "github" "type": "github"
} }
}, },
@ -205,7 +180,7 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
"pre-commit-hooks", "git-hooks",
"nixpkgs" "nixpkgs"
] ]
}, },
@ -251,16 +226,15 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715930644, "lastModified": 1726142087,
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", "narHash": "sha256-uT4TRd3PgreUD5sJaNioVfMemdyWFLoPHqN4AFszGmw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", "rev": "da8406a6ff556b86dc368e96ca8bd81b2704a91a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "master",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -273,15 +247,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715486357, "lastModified": 1720042825,
"narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-24.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -313,11 +288,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715653378, "lastModified": 1725189302,
"narHash": "sha256-6kbg/PI3+SBP17f4T0js3CBsMLVtlD0JqJhDKgzk1mQ=", "narHash": "sha256-IhXok/kwQqtusPsoguQLCHA+h6gKvgdCrkhIaN+kByA=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "de8b0d60d6fd34f35abffc46adc94ebaa6996ce2", "rev": "7c4b53a7d9f3a3df902b3fddf2ae245ef20ebcda",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -326,6 +301,26 @@
"type": "github" "type": "github"
} }
}, },
"nix-index-database": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1725765290,
"narHash": "sha256-hwX53i24KyWzp2nWpQsn8lfGQNCP0JoW/bvQmcR1DPY=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "642275444c5a9defce57219c944b3179bf2adaa9",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-index-database",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1703013332, "lastModified": 1703013332,
@ -359,11 +354,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1686501370, "lastModified": 1725983898,
"narHash": "sha256-G0WuM9fqTPRc2URKP9Lgi5nhZMqsfHGrdEbrLvAPJcg=", "narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "75a5ebf473cd60148ba9aec0d219f72e5cf52519", "rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -375,48 +370,16 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1714076141, "lastModified": 1725930920,
"narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", "narHash": "sha256-RVhD9hnlTT2nJzPHlAqrWqCkA7T6CYrP41IoVRkciZM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", "rev": "44a71ff39c182edaf25a7ace5c9454e7cba2c658",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1715787315,
"narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1707268954,
"narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=",
"owner": "lopsided98",
"repo": "nixpkgs",
"rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1",
"type": "github"
},
"original": {
"owner": "lopsided98",
"ref": "nix-ros",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -426,52 +389,49 @@
"devshell": "devshell", "devshell": "devshell",
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"flake-root": "flake-root", "git-hooks": "git-hooks",
"home-manager": "home-manager_3", "home-manager": "home-manager_3",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_3", "nixpkgs": [
"pre-commit-hooks": "pre-commit-hooks", "nixpkgs"
],
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1715976947, "lastModified": 1725350106,
"narHash": "sha256-cfU0THstf6phd6vpzIzsew89Ns5JdPq7CyeiLRajE1g=", "narHash": "sha256-TaMMlI2KPJ3wCyxJk6AShOLhNuTeabHCnvYRkLBlEFs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "7c4fe30f814595bc617d6b1b682ab9cbfe535d33", "rev": "0f2c31e6a57a83ed4e6fa3adc76749620231055d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "nixos-24.05",
"repo": "nixvim", "repo": "nixvim",
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": { "plasma-manager": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "home-manager": [
"flake-utils": "flake-utils_2", "home-manager"
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
], ],
"nixpkgs-stable": [ "nixpkgs": [
"nixvim",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1715609711, "lastModified": 1725914634,
"narHash": "sha256-/5u29K0c+4jyQ8x7dUIEUWlz2BoTSZWUP2quPwFCE7M=", "narHash": "sha256-U74hu15xSb6JNySMOwyJrsh4uk1DVa182bdHLeHdYMc=",
"owner": "cachix", "owner": "pjones",
"repo": "pre-commit-hooks.nix", "repo": "plasma-manager",
"rev": "c182c876690380f8d3b9557c4609472ebfa1b141", "rev": "60becd0e994e25b372c8d0500fc944396f6c1085",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "pjones",
"repo": "pre-commit-hooks.nix", "repo": "plasma-manager",
"type": "github" "type": "github"
} }
}, },
@ -480,23 +440,27 @@
"agenix": "agenix", "agenix": "agenix",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nix-colors": "nix-colors", "nix-colors": "nix-colors",
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim", "nixvim": "nixvim",
"plasma-manager": "plasma-manager",
"ros": "ros" "ros": "ros"
} }
}, },
"ros": { "ros": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_4" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1713569614, "lastModified": 1725666703,
"narHash": "sha256-ouEmZMCZ1XMhLr3Fh3rtoR5hHRiQ/zgz5qkM+9OUnOg=", "narHash": "sha256-OHnLgECPj014C0ii1DrFk+TBgUD3JhHeo1T45Oyk67k=",
"owner": "lopsided98", "owner": "lopsided98",
"repo": "nix-ros-overlay", "repo": "nix-ros-overlay",
"rev": "1d5ae52f3e9c71604c52c6464c5e4eed4f8b14b8", "rev": "74a15df3f911919b6baa9abaa02f4ff5f6455b15",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -535,36 +499,6 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"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": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -573,11 +507,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1714058656, "lastModified": 1724833132,
"narHash": "sha256-Qv4RBm4LKuO4fNOfx9wl40W2rBbv5u5m+whxRYUMiaA=", "narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "c6aaf729f34a36c445618580a9f95a48f5e4e03f", "rev": "3ffd842a5f50f435d3e603312eefa4790db46af5",
"type": "github" "type": "github"
}, },
"original": { "original": {

105
flake.nix
View File

@ -3,24 +3,44 @@
inputs = { inputs = {
# Nixpkgs # Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nix-index-database.url = "github:nix-community/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
# You can access packages and modules from different nixpkgs revs # You can access packages and modules from different nixpkgs revs
# at the same time. Here's an working example: # at the same time. Here's an working example:
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Also see the 'unstable-packages' overlay at 'overlays/default.nix'. # Also see the 'unstable-packages' overlay at 'overlays/default.nix'.
# Home manager home-manager = {
home-manager.url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim/nixos-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:pjones/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
ros = {
url = "github:lopsided98/nix-ros-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
ros.url = "github:lopsided98/nix-ros-overlay";
agenix.url = "github:ryantm/agenix"; agenix.url = "github:ryantm/agenix";
# Shameless plug: looking for a way to nixify your themes and make # Shameless plug: looking for a way to nixify your themes and make
# everything match nicely? Try nix-colors! # everything match nicely? Try nix-colors!
nix-colors.url = "github:misterio77/nix-colors"; nix-colors.url = "github:misterio77/nix-colors";
nixvim.url = "github:nix-community/nixvim";
}; };
@ -28,6 +48,8 @@
self, self,
nixpkgs, nixpkgs,
home-manager, home-manager,
nixvim,
plasma-manager,
ros, ros,
agenix, agenix,
... ...
@ -63,7 +85,7 @@
# NixOS configuration entrypoint # NixOS configuration entrypoint
nixosConfigurations = { nixosConfigurations = {
#Personal laptop, thinkpad t490 #Traverse's laptop, thinkpad t490
athame = nixpkgs.lib.nixosSystem { athame = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit inputs outputs; inherit inputs outputs;
@ -74,14 +96,14 @@
./nixos/kde-desktop.nix ./nixos/kde-desktop.nix
./nixos/cad.nix ./nixos/cad.nix
./nixos/zerotier.nix ./nixos/zerotier.nix
./nixos/work.nix ./nixos/family.nix
]; ];
}; };
#Work laptop, dell g15. #Work laptop, dell g15.
metatron = nixpkgs.lib.nixosSystem { azrael = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit inputs outputs; inherit inputs outputs;
hostname = "metatron"; hostname = "azrael";
}; };
modules = [ modules = [
./nixos/configuration.nix ./nixos/configuration.nix
@ -91,6 +113,22 @@
./nixos/work.nix ./nixos/work.nix
]; ];
}; };
#Lenovo T15
adrial = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs;
hostname = "adrial";
};
modules = [
./nixos/configuration.nix
./nixos/kde-desktop.nix
./nixos/zerotier.nix
./nixos/work.nix
./nixos/vr-desktop.nix
./nixos/cad.nix
./nixos/gaming.nix
];
};
hearth = nixpkgs.lib.nixosSystem { hearth = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit inputs outputs; inherit inputs outputs;
@ -102,11 +140,38 @@
./nixos/zerotier.nix ./nixos/zerotier.nix
]; ];
}; };
gwen = nixpkgs.lib.nixosSystem { selaphiel = nixpkgs.lib.nixosSystem {
#Ingrid thinkpad t480
specialArgs = { specialArgs = {
inherit inputs outputs; inherit inputs outputs;
hostname = "gwen"; hostname = "selaphiel";
mainUser = "gwen"; mainUser = "ingrid";
};
modules = [
./nixos/configuration.nix
./nixos/kde-desktop.nix
./nixos/family.nix
./nixos/zerotier.nix
./nixos/gaming.nix
];
};
chamuel = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs;
hostname = "chamuel";
};
modules = [
./nixos/configuration.nix
./nixos/kde-desktop.nix
./nixos/family.nix
./nixos/zerotier.nix
];
};
bill = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs;
hostname = "bill";
mainUser = "bill";
}; };
modules = [ modules = [
./nixos/configuration.nix ./nixos/configuration.nix
@ -120,14 +185,24 @@
# Standalone home-manager configuration entrypoint # Standalone home-manager configuration entrypoint
# Available through 'home-manager --flake .#your-username@your-hostname' # Available through 'home-manager --flake .#your-username@your-hostname'
homeConfigurations = { homeConfigurations = {
"traverseda@athame" = home-manager.lib.homeManagerConfiguration { "traverseda@generic" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
extraSpecialArgs = {inherit inputs outputs;}; extraSpecialArgs = {inherit inputs outputs;};
modules = [ modules = [
# > Our main home-manager configuration file < # > Our main home-manager configuration file <
./home-manager/home.nix ./home-manager/traverseda/home.nix
]; ];
}; };
"spiri@generic" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.aarch64-linux; # Home-manager requires 'pkgs' instance
extraSpecialArgs = {inherit inputs outputs;
homeUser = "spiri";
homeDir = "/home/spiri";
};
modules = [
./home-manager/traverseda/home.nix
];
};
}; };
}; };
} }

View File

@ -1,174 +0,0 @@
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
# You can import other home-manager modules here
imports = [
# If you want to use modules your own flake exports (from modules/home-manager):
# outputs.homeManagerModules.example
# Or modules exported from other flakes (such as nix-colors):
# inputs.nix-colors.homeManagerModules.default
# You can also split up your configuration and import pieces of it here:
# ./nvim.nix
];
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
# Workaround for https://github.com/nix-community/home-manager/issues/2942
allowUnfreePredicate = _: true;
};
};
home = {
username = "traverseda";
homeDirectory = "/home/traverseda";
};
programs.git = {
enable = true;
userName = "Alex Davies";
userEmail = "traverse.da@gmail.com";
extraConfig = {
core = {
editor = "vim"; # Set default editor for Git
};
color = {
ui = "auto"; # Enable colored output in the terminal
};
push = {
default = "simple"; # Default push behavior to 'simple'
};
pull = {
rebase = "false"; # Avoid rebasing by default on pull
};
credential = {
helper = "cache --timeout=3600"; # Cache credentials for 1 hour (3600 seconds)
};
};
};
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
plugins = with pkgs.vimPlugins; [
nvim-lspconfig
nvim-treesitter.withAllGrammars
vim-bufferline
tokyonight-nvim
{
plugin = which-key-nvim;
}
];
};
programs.ssh = {
enable = true; # Enable SSH module
extraConfig = ''
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
'';
};
home.packages = with pkgs; [
pkgs.htop
pkgs.zsh
pkgs.xclip
pkgs.ripgrep
pkgs.mosh
pkgs.waypipe
pkgs.pwgen
pkgs.chezmoi
pkgs.neovim-remote
pkgs.pipx
pkgs.rclone
pkgs.pyright
pkgs.mosh
pkgs.jq
pkgs.copier
pkgs.pv
pkgs.poetry
pkgs.nmap
pkgs.dig
pkgs.tree
pkgs.curl
pkgs.wget
pkgs.wl-clipboard
(pkgs.nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Hack"]; })
(pkgs.writeShellScriptBin "nvr-edit" ''
nvr --remote-wait $@
'')
(pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec "$@"
'')
];
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
history.size = 10000;
history.path = "${config.xdg.dataHome}/zsh/history";
oh-my-zsh = {
enable = true;
plugins = [ "git" "docker" "docker-compose"];
theme = "robbyrussell";
};
initExtra = ''
if [[ -n ''${NVIM+x} ]]; then
alias vim="nvr --remote"
export EDITOR=nvr-edit
fi
'';
};
# Enable home-manager and git
programs.home-manager.enable = true;
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "23.05";
}

View File

@ -0,0 +1,383 @@
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
inputs,
outputs,
# lib,
config,
pkgs,
specialArgs,
...
}: {
# You can import other home-manager modules here
imports = [
inputs.nixvim.homeManagerModules.nixvim
inputs.nix-index-database.hmModules.nix-index
];
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
# Workaround for https://github.com/nix-community/home-manager/issues/2942
allowUnfreePredicate = _: true;
};
};
home = {
username = specialArgs.homeUser or "traverseda";
homeDirectory = specialArgs.homeDir or "/home/traverseda";
};
programs.git = {
enable = true;
userName = "Alex Davies";
userEmail = "traverse.da@gmail.com";
extraConfig = {
core = {
editor = "vim"; # Set default editor for Git
};
color = {
ui = "auto"; # Enable colored output in the terminal
};
push = {
default = "simple"; # Default push behavior to 'simple'
};
pull = {
rebase = "false"; # Avoid rebasing by default on pull
};
credential = {
helper = "cache --timeout=3600"; # Cache credentials for 1 hour (3600 seconds)
};
oh-my-zsh = {
"hide-dirty" = "1";
};
init = {
defaultBranch = "main";
};
};
};
programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
#We use bufferline for the top line
plugins.bufferline.enable = true;
#And lualine for the bottom line
plugins.lualine = {
enable = true;
sections = {
lualine_c = [ "os.date('%X')"];
lualine_x = [
{name= "hostname";}
];
};
};
#Enable which key
plugins.which-key.enable = true;
extraPlugins = with pkgs.vimPlugins; [
vim-suda
];
#enable autocomplete
plugins.cmp = {
enable = true;
settings = {
mapping = {
__raw = ''
cmp.mapping.preset.insert({
['<C-j>'] = cmp.mapping.select_next_item(),
['<C-k>'] = cmp.mapping.select_prev_item(),
['<C-e>'] = cmp.mapping.abort(),
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<S-CR>'] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }),
})
'';
};
sources = [
{name = "copilot";}
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
{name = "treesitter";}
{name = "bash";}
];
};
};
plugins.indent-blankline.enable = true;
plugins.lsp-format.enable = true;
plugins.commentary.enable = true;
plugins.lsp = {
enable = true;
};
plugins.lsp-lines.enable = true;
plugins.lint = {
enable = true;
};
plugins.nix.enable = true;
plugins.clipboard-image = {
enable = true;
clipboardPackage = pkgs.xclip;
};
colorschemes.tokyonight = {
enable = true;
settings.style = "night";
};
extraConfigLua = ''
-- Automatically enter insert mode when opening a terminal
vim.api.nvim_create_autocmd("TermOpen", {
pattern = "*",
command = "startinsert"
})
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "term://*",
command = "startinsert"
})
-- Open files with sudo if needed
vim.g.suda_smart_edit = 1
-- Make my cursor a block
vim.opt.guicursor = "n-v-c:block"
-- Disable ctrl+a incrementing numbers
vim.api.nvim_set_keymap('i', '<C-a>', '<nop>', { noremap = true })
-- Use system clipboard by default
vim.opt.clipboard:append("unnamedplus")
-- Keep selection when changing indentation
-- keep visual mode after indent
vim.api.nvim_set_keymap('v', '<', '<gv', { noremap = true })
vim.api.nvim_set_keymap('v', '>', '>gv', { noremap = true })
-- Basic indentation settings
vim.o.tabstop = 4 -- Number of spaces that a <Tab> in the file counts for
vim.o.shiftwidth = 4 -- Number of spaces to use for each step of (auto)indent
vim.o.expandtab = true -- Use spaces instead of tabs
vim.o.autoindent = true -- Copy indent from current line when starting a new line
vim.o.smartindent = true -- Do smart autoindenting when starting a new line
-- Enable list mode
vim.opt.list = true
vim.opt.listchars:append({ tab = '>-', trail = 'x' })
-- Enable undofile support
vim.o.undofile = true
'';
globals.mapleader = " ";
keymaps = [
{
#Clear the search buffer when I press esc twice
mode = ["n" "t"];
key = "<esc><esc>";
options = { noremap = true; desc = "Clear search"; };
action = ":nohlsearch<cr>";
}
{
mode = ["n" "t"];
key = "<C-a>c";
options = { noremap = true; desc = "Open new terminal"; };
action = "<cmd>:term<cr>";
}
{
mode = ["n"];
key = "<C-a>x";
options = { noremap = true; desc = "Close tab"; };
action = "<cmd>:bd<cr>";
}
{
mode = ["t"];
key = "<C-a>x";
options = { noremap = true; desc = "Close tab"; };
action = "<cmd>:bd!<cr>";
}
{
mode = ["n" "t"];
key = "<C-a>s";
options = { noremap = true; desc = "Pick buffer"; };
action = "<cmd>:BufferLinePick<CR>";
}
{
mode = "t";
key = "<Esc><Esc>";
options = { noremap = true; };
action = "<C-\\><C-n>";
}
{
mode = ["n"];
key = "<leader>w";
options = { noremap = true; desc = "+windows"; };
action = "+windows";
}
{
mode = ["n"];
key = "<leader>w<Left>";
options = { noremap = true; desc = "Move Left"; };
action = "<C-w>h";
}
{
mode = ["n"];
key = "<leader>w<Right>";
options = { noremap = true; desc = "Move Right"; };
action = "<C-w>l";
}
{
mode = ["n"];
key = "<leader>w<Up>";
options = { noremap = true; desc = "Move Up"; };
action = "<C-w>k";
}
{
mode = ["n"];
key = "<leader>w<Down>";
options = { noremap = true; desc = "Move Down"; };
action = "<C-w>j";
}
{
mode = ["n"];
key = "<leader>wx";
options = { noremap = true; desc = "Close Window"; };
action = "<cmd>:close<cr>";
}
{
mode = ["n"];
key = "<leader>ws";
options = { noremap = true; desc = "+splits"; };
action = "+splits";
}
{
mode = ["n"];
key = "<leader>wsh";
options = { noremap = true; desc = "Horizontal Split"; };
action = "<cmd>:split<cr>";
}
{
mode = ["n"];
key = "<leader>wsv";
options = { noremap = true; desc = "Vertical Split"; };
action = "<cmd>:vsplit<cr>";
}
];
};
programs.ssh = {
enable = true; # Enable SSH module
controlMaster = "auto"; # Enable ControlMaster
controlPersist = "10m"; # Enable Control
};
home.packages = [
pkgs.htop
pkgs.zsh
pkgs.xclip
pkgs.ripgrep
pkgs.waypipe
pkgs.pwgen
pkgs.neovim-remote
#pkgs.pipx
pkgs.rclone
pkgs.pyright
pkgs.mosh
pkgs.jq
pkgs.copier
pkgs.pv
#pkgs.poetry
pkgs.lazydocker
pkgs.nmap
pkgs.dig
pkgs.tree
pkgs.curl
pkgs.wget
pkgs.wl-clipboard
pkgs.atool
pkgs.zig
pkgs.comma
pkgs.docker-compose
(pkgs.writeShellScriptBin "poetry" ''
export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
exec ${pkgs.poetry}/bin/poetry "$@"
'')
(pkgs.writeShellScriptBin "pipx" ''
export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
exec ${pkgs.pipx}/bin/pipx "$@"
'')
(pkgs.nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Hack"]; })
(pkgs.writeShellScriptBin "nvr-edit" ''
nvr --remote-wait $@
'')
];
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
autocd = false;
history.size = 10000;
history.path = "${config.xdg.dataHome}/zsh/history";
oh-my-zsh = {
enable = true;
plugins = [ "git" "docker" "docker-compose"];
theme = "robbyrussell";
};
initExtra = ''
if [[ -n ''${NVIM+x} ]]; then
alias vim="nvr --remote"
export EDITOR=nvr-edit
fi
'';
};
programs.bash = {
enable = true;
enableCompletion = true;
initExtra = ''
if [[ -n ''${NVIM+x} ]]; then
alias vim="nvr --remote"
export EDITOR=nvr-edit
fi
'';
};
# Enable home-manager and git
programs.home-manager.enable = true;
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "23.05";
}

View File

@ -0,0 +1,66 @@
{
inputs,
outputs,
lib,
config,
pkgs,
...
}:
{
imports = [
inputs.plasma-manager.homeManagerModules.plasma-manager
];
programs.plasma = {
enable = true;
# workspace = {
# theme = "breeze-dark";
# colorScheme = "BreezeDark";
# };
shortcuts = {
"services/org.kde.konsole.desktop"."_launch" = ["Meta+Return" "Ctrl+Alt+T"];
"kwin"."Window Close" = ["Meta+Shift+C" "Alt+F4"];
"kwin"."Cube" = "Meta+C";
};
shortcuts.plasmashell = {
"activate task manager entry 1" = "";
"activate task manager entry 2" = "";
"activate task manager entry 3" = "";
"activate task manager entry 4" = "";
"activate task manager entry 5" = "";
"activate task manager entry 6" = "";
"activate task manager entry 7" = "";
"activate task manager entry 8" = "";
"activate task manager entry 9" = "";
};
shortcuts.kwin = {
"Switch to Desktop 1" = "Meta+1";
"Window to Desktop 1" = "Meta+!";
"Switch to Desktop 2" = "Meta+2";
"Window to Desktop 2" = "Meta+@";
"Switch to Desktop 3" = "Meta+3";
"Window to Desktop 3" = "Meta+#";
"Switch to Desktop 4" = "Meta+4";
"Window to Desktop 4" = "Meta+$";
"Switch to Desktop 5" = "Meta+5";
"Window to Desktop 5" = "Meta+%";
"Switch to Desktop 6" = "Meta+6";
"Window to Desktop 6" = "Meta+^";
"Switch to Desktop 7" = "Meta+7";
"Window to Desktop 7" = "Meta+&";
"Switch to Desktop 8" = "Meta+8";
"Window to Desktop 8" = "Meta+*";
"Switch to Desktop 9" = "Meta+9";
"Window to Desktop 9" = "Meta+(";
"Switch to Desktop 10" = "Meta+0";
"Window to Desktop 10" = "Meta+)";
};
configFile = {
"kwinrc"."Desktops"."Number"."value" = 10;
"kwinrc"."Desktops"."Rows"."value" = 2;
"kwinrc"."Plugins"."cubeEnabled" = true;
"kwinrc"."Windows"."FocusPolicy" = "FocusFollowsMouse";
};
};
}

29
hostnames.md Normal file
View File

@ -0,0 +1,29 @@
Raphael
Michael
Uriel
#Azrael
#Ariel
Cassiel
Jophiel
Zadkiel
#Raziel
Raguel
Chamuel
Haniel
Jeremiel
#Metatron
Sandalphon
Sariel
#Selaphiel
Barachiel
Zaphkiel
Gadreel
Remiel
Anael
Raguel
Samael
Raziel
Tzaphkiel
Tzadkiel
Sachiel
Adriel

View File

@ -1,11 +1,12 @@
{ config, pkgs, lib, ... }: {
# config,
pkgs,
# lib,
... }:
{ {
environment.systemPackages = [
environment.systemPackages = with pkgs; [ #pkgs.creality-print
pkgs.openscad
pkgs.blender
pkgs.freecad
(pkgs.appimageTools.wrapType2 (pkgs.appimageTools.wrapType2
{ {
name = "creality-print"; name = "creality-print";
@ -14,6 +15,11 @@
sha256 = "sha256-WUsL7UbxSY94H4F1Ww8vLsfRyeg2/DZ+V4B6eH3M6+M="; sha256 = "sha256-WUsL7UbxSY94H4F1Ww8vLsfRyeg2/DZ+V4B6eH3M6+M=";
}; };
}) })
pkgs.lightburn
pkgs.openscad
pkgs.blender-cadsketcher
#pkgs.py-slvs
pkgs.freecad
# (pkgs.appimageTools.wrapType2 # (pkgs.appimageTools.wrapType2
# { # {
# name = "orca-slicer"; # name = "orca-slicer";

View File

@ -43,10 +43,10 @@
}; };
}; };
networking.hostName = hostname; # Define your hostname. networking.hostName = hostname; # Define your hostname.
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
nix.settings.trusted-users = [ "root" "traverseda" "logic11"];
nix.optimise.automatic = true;
virtualisation.vmVariant = { virtualisation.vmVariant = {
# following configuration is added only when building VM with build-vm # following configuration is added only when building VM with build-vm
@ -54,6 +54,11 @@
virtualisation.memorySize = 4096; virtualisation.memorySize = 4096;
}; };
#Fix various minor ADB issues
services.udev.packages = [
pkgs.android-udev-rules
];
# This will add each flake input as a registry # This will add each flake input as a registry
# To make nix3 commands consistent with your flake # To make nix3 commands consistent with your flake
nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs);
@ -72,21 +77,45 @@
nix.settings = { nix.settings = {
# Enable flakes and new 'nix' command # Enable flakes and new 'nix' command
experimental-features = "nix-command flakes"; experimental-features = "nix-command flakes";
# Deduplicate and optimize nix store };
auto-optimise-store = true;
#Deduplicate nix store on a timer
nix.optimise.automatic = true;
#Delete old generations
nix.gc.automatic = true;
nix.gc.dates = "weekly";
nix.gc.options = "--delete-older-than 30d";
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget # wget
pkgs.neovim
pkgs.mosh pkgs.mosh
pkgs.htop
pkgs.git pkgs.git
pkgs.usbutils pkgs.usbutils
pkgs.pciutils pkgs.pciutils
appimage-run pkgs.lsof
pkgs.p7zip
pkgs.atool
pkgs.comma
pkgs.home-manager
pkgs.appimage-run
pkgs.linuxPackages.usbip
]; ];
programs.git = {
enable = true;
lfs.enable = true;
};
boot.binfmt.registrations.appimage = { boot.binfmt.registrations.appimage = {
wrapInterpreterInShell = false; wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run"; interpreter = "${pkgs.appimage-run}/bin/appimage-run";
@ -102,6 +131,7 @@
services.automatic-timezoned.enable = true; services.automatic-timezoned.enable = true;
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
virtualisation.docker.liveRestore = false;
#Puts fonts in /run/current-system/sw/share/X11/fonts #Puts fonts in /run/current-system/sw/share/X11/fonts
fonts.fontDir.enable = true; fonts.fontDir.enable = true;
@ -127,7 +157,7 @@
extraSpecialArgs = { inherit inputs outputs; }; extraSpecialArgs = { inherit inputs outputs; };
backupFileExtension = ".bak"; backupFileExtension = ".bak";
users = { users = {
traverseda = import ../home-manager/home.nix; traverseda = import ../home-manager/traverseda/home.nix;
}; };
}; };
@ -143,6 +173,26 @@
AllowUsers = [ "traverseda" ]; AllowUsers = [ "traverseda" ];
}; };
}; };
system.autoUpgrade = {
enable = true;
flake = "git+https://codeberg.org/traverseda/nixos-config#${hostname}";
flags = [
];
dates = "02:00";
randomizedDelaySec = "45min";
};
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
];
#Create ldpadmin group for printer access
services.printing.extraFilesConf = ''
SystemGroup root wheel lpadmin
'';
users.groups = {
lpadmin = { };
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "23.05"; system.stateVersion = "23.05";

View File

@ -1,17 +1,30 @@
{ inputs, outputs, lib, config, pkgs, hostname, specialArgs, ... }: { { inputs, outputs, lib, config, pkgs, hostname, specialArgs, ... }:
services.displayManager = { let
autoLoginUser = specialArgs.mainUser or null;
in
{
services.displayManager = lib.mkIf (autoLoginUser != null) {
autoLogin.enable = true; autoLogin.enable = true;
autoLogin.user = "${specialArgs.mainUser}"; autoLogin.user = autoLoginUser;
}; };
users.users = { users.users = {
gwen = { gwen = {
# You can set an initial password for your user.
# If you do, you can skip setting a root password by passing '--no-root-passwd' to nixos-install.
# Be sure to change it (using passwd) after rebooting!
isNormalUser = true; isNormalUser = true;
extraGroups = [ "networkManager" ]; extraGroups = [ "networkManager" "lpadmin" ];
};
ingrid = {
isNormalUser = true;
extraGroups = [ "networkManager" "lpadmin" ];
};
bill = {
isNormalUser = true;
extraGroups = [ "networkManager" "lpadmin" ];
};
logic11 = {
isNormalUser = true;
extraGroups = [ "wheel" "dialout" "networkmanager" "dialout" "docker" "plugdev" "vboxusers" ];
}; };
}; };
} }

View File

@ -8,6 +8,7 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
pkgs.discord
]; ];
} }

42
nixos/hardware/adrial.nix Normal file
View File

@ -0,0 +1,42 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/115f9271-46e1-4a41-accb-1645a9e82a0e";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/8A22-C3C6";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/18d77521-9857-4be8-a7da-f10288cfa3b0"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

40
nixos/hardware/ariel.nix Normal file
View File

@ -0,0 +1,40 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/fe5ec606-9052-463e-b402-e37dd206b87f";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/C746-7DF9";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/654049ca-318f-453d-ad70-9d2a35d42a6d"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -29,18 +29,21 @@
device = "/dev/nvme0n1p3"; device = "/dev/nvme0n1p3";
randomEncryption.enable = true; randomEncryption.enable = true;
} ]; } ];
hardware.nvidia-container-toolkit.enable = true;
hardware.nvidia = {
powerManagement.finegrained = false;
prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable; # Make sure to use the correct Bus ID values for your system!
hardware.nvidia.prime = { intelBusId = "PCI:0:0:2";
offload = { nvidiaBusId = "PCI:1:0:0";
enable = true; };
enableOffloadCmd = true; };
}; services.xserver.videoDrivers = [ "nvidia" ];
# Make sure to use the correct Bus ID values for your system!
intelBusId = "PCI:0:0:2";
nvidiaBusId = "PCI:1:0:0";
};
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View File

@ -0,0 +1,38 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/946dac58-4ad2-463d-b0a4-46064a3e9e2f";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/6D60-03A9";
fsType = "vfat";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -8,32 +8,30 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/91d9a91c-9c69-4d82-85dc-42598b9ceaec"; { device = "/dev/disk/by-uuid/946dac58-4ad2-463d-b0a4-46064a3e9e2f";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/BED6-71B3"; { device = "/dev/disk/by-uuid/6D60-03A9";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices = [ ];
[ { device = "/dev/disk/by-uuid/693adc19-c9d6-43a2-8e80-044f93a73af9"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; # networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; # networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View File

@ -14,17 +14,17 @@
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/50ac51e9-5ac3-4f11-ae92-f3d43b5b602e"; { device = "/dev/disk/by-uuid/df5a8047-3bbb-4a48-9b9e-5ffa8b292339";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/F953-8DA5"; { device = "/dev/disk/by-uuid/F953-8DA5";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/067ac10e-d118-4e8c-bbe8-01ac99065024"; } [ { device = "/dev/disk/by-uuid/c66d85ae-e3b7-4aee-a457-d13cfe87ec84"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/1c4d73a3-ce64-42c8-beda-b27e085a80c1";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/B16C-FE36";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/24533029-c0f8-44d7-b3f5-12a5e5327ed1"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -1,14 +1,30 @@
{ config, pkgs, lib, ... }: { inputs, outputs, lib, config, pkgs, hostname, specialArgs, options, ... }:
{ {
imports = [
./misc/dslr-webcam.nix
./misc/wifi-multiplex.nix
];
# Enable the KDE Desktop Environment. # Enable the KDE Desktop Environment.
services.xserver.enable = true; services.xserver.enable = true;
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
services.displayManager.sddm.wayland.enable = true; services.displayManager.sddm.wayland.enable = true;
services.displayManager.defaultSession = "plasma"; services.displayManager.defaultSession = "plasma";
services.displayManager = {
autoLogin.enable = lib.mkDefault false;
};
services.flatpak.enable = true; services.flatpak.enable = true;
environment.etc = {
"flatpak/remotes.d/flathub.flatpakrepo".source = pkgs.fetchurl {
url = "https://dl.flathub.org/repo/flathub.flatpakrepo";
hash = "sha256-M3HdJQ5h2eFjNjAHP+/aFTzUQm9y9K+gwzc64uj+oDo="
;
};
};
services.packagekit.enable = true; services.packagekit.enable = true;
services.fwupd.enable = true; services.fwupd.enable = true;
@ -24,6 +40,15 @@
services.printing.enable = true; services.printing.enable = true;
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
#Enable flatpak repo by default for all users
systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ];
script = ''
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
'';
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
pkgs.krfb pkgs.krfb
pkgs.krdc pkgs.krdc
@ -39,6 +64,8 @@
pkgs.nextcloud-client pkgs.nextcloud-client
pkgs.iw pkgs.iw
pkgs.vlc pkgs.vlc
pkgs.signal-desktop
pkgs.anki
]; ];
programs.dconf.enable = true; programs.dconf.enable = true;
@ -76,6 +103,14 @@ programs.dconf.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true; hardware.bluetooth.powerOnBoot = true;
home-manager = {
extraSpecialArgs = { inherit inputs outputs; };
backupFileExtension = ".bak";
users = {
traverseda = import ../home-manager/traverseda/kde-desktop.nix;
};
};
#Enable support for my logitech bluetooth peripherals #Enable support for my logitech bluetooth peripherals
hardware.logitech.wireless.enable = true; hardware.logitech.wireless.enable = true;
hardware.logitech.wireless.enableGraphical = true; hardware.logitech.wireless.enableGraphical = true;

View File

@ -0,0 +1,60 @@
{ pkgs, lib, ... }:
let
dslrWebcamConfContent = ''
alias dslr-webcam v4l2loopback
options v4l2loopback exclusive_caps=1 max_buffers=2 card_label="DSLR" video_nr=10
'';
dslrUdevRule = ''
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04a9", ENV{ID_USB_MODEL}=="Canon_Digital_Camera", RUN+="${pkgs.systemd}/bin/systemctl start dslr-webcam.service"
ACTION=="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="04a9", ENV{ID_USB_MODEL}=="Canon_Digital_Camera", RUN+="${pkgs.systemd}/bin/systemctl stop dslr-webcam.service"
'';
dslrWebcamScript = ''
#!/bin/sh
modprobe dslr-webcam || true
exec "${pkgs.gphoto2}/bin/gphoto2" --stdout --capture-movie | "${pkgs.ffmpeg}/bin/ffmpeg" -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video10
'';
dslrWebcamService = ''
[Unit]
Description=DSLR Webcam Service
After=network.target
[Service]
ExecStart=${pkgs.writeScriptBin "dslr-webcam" dslrWebcamScript}/bin/dslr-webcam
ExecStop=/bin/kill -s TERM $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
'';
in
{
# Ensure your system configuration includes these options:
boot.extraModulePackages = [ pkgs.linuxPackages.v4l2loopback ];
# Load v4l2loopback module with the required options
boot.extraModprobeConfig = dslrWebcamConfContent;
# Udev rule for DSLR camera
services.udev.extraRules = dslrUdevRule;
# Install dslr-webcam script and systemd service
environment.systemPackages = with pkgs; [
(writeScriptBin "dslr-webcam" dslrWebcamScript)
];
systemd.services.dslr-webcam = {
description = "DSLR Webcam Service";
serviceConfig = {
ExecStart = "${pkgs.writeScriptBin "dslr-webcam" dslrWebcamScript}/bin/dslr-webcam";
Restart = "on-failure";
};
};
}

BIN
nixos/misc/test_plate.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -0,0 +1,14 @@
{ pkgs, lib, ... }:
let
wifiUdevRule = ''
ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", KERNEL!="virt_", RUN+="${pkgs.iw}/bin/iw dev %k interface add virt_%k_ap type station"
'';
in
{
environment.systemPackages = with pkgs; [
iw
];
services.udev.extraRules = wifiUdevRule;
}

16
nixos/vr-desktop.nix Normal file
View File

@ -0,0 +1,16 @@
{ config, pkgs, lib, ... }:
{
nixpkgs.overlays = [
# (import (pkgs.fetchFromGitHub "https://github.com/SimulaVR/Simula.git"))
];
services.monado.enable = true;
programs.alvr = {
enable = true;
openFirewall = true;
};
environment.systemPackages = with pkgs; [
];
}

View File

@ -1,14 +1,79 @@
{ config, pkgs, lib, ros, ... }: {
# config,
pkgs,
# lib,
# ros,
... }:
{ {
virtualisation.virtualbox.host.enable = true; virtualisation.virtualbox.host.enable = true;
users.extraGroups.vboxusers.members = [ "traverseda" ]; users.extraGroups.vboxusers.members = [ "traverseda" ];
boot.binfmt.emulatedSystems = ["aarch64-linux"];
environment.systemPackages = with pkgs; [ security.wrappers = {
firejail = {
source = "${pkgs.firejail.out}/bin/firejail";
};
};
programs.firejail = {
enable = true;
};
programs.nix-ld = {
enable = true;
#Include libstdc++ in the nix-ld profile
libraries = [
pkgs.stdenv.cc.cc
pkgs.zlib
pkgs.fuse3
pkgs.icu
pkgs.nss
pkgs.openssl
pkgs.curl
pkgs.expat
pkgs.xorg.libX11
pkgs.vulkan-headers
pkgs.vulkan-loader
pkgs.vulkan-tools
pkgs.kdePackages.full
pkgs.qt5.full
pkgs.libxkbcommon
pkgs.mesa
pkgs.glib
pkgs.fontconfig
pkgs.freetype
];
};
environment.systemPackages = [
pkgs.qemu
pkgs.qgroundcontrol pkgs.qgroundcontrol
pkgs.distrobox pkgs.vscode
pkgs.stdenv
pkgs.gcc
pkgs.rustc
pkgs.cargo
pkgs.zig
pkgs.kompare
pkgs.unstable.distrobox
pkgs.element-desktop pkgs.element-desktop
pkgs.logseq pkgs.act
# pkgs.logseq
(pkgs.writeShellScriptBin "python" ''
export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
exec ${pkgs.python3}/bin/python "$@"
'')
(pkgs.writeShellScriptBin "poetry" ''
export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
exec ${pkgs.poetry}/bin/poetry "$@"
'')
(pkgs.writeShellScriptBin "pipx" ''
export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
exec ${pkgs.pipx}/bin/pipx "$@"
'')
]; ];
} }

View File

@ -5,10 +5,10 @@ let
in { in {
networking.firewall.trustedInterfaces = privateZeroTierInterfaces; # TRUST VPN ONLY networking.firewall.trustedInterfaces = privateZeroTierInterfaces; # TRUST VPN ONLY
services.avahi = { services.avahi = {
enable = true; enable = true;
allowInterfaces = privateZeroTierInterfaces; # ONLY BROADCAST ON VPN #allowInterfaces = privateZeroTierInterfaces; # ONLY BROADCAST ON VPN
ipv6 = true; ipv6 = true;
publish.enable = true; publish.enable = true;
publish.userServices = true; publish.userServices = true;
@ -18,7 +18,7 @@ in {
publish.workstation = true; # ADDED TO DESKTOP MACHINES publish.workstation = true; # ADDED TO DESKTOP MACHINES
cacheEntriesMax = 512; cacheEntriesMax = 512;
}; };
systemd.services.createDevicemap = { systemd.services.createDevicemap = {
description = "Create ZeroTier devicemap file"; description = "Create ZeroTier devicemap file";
before = [ "zerotierone.service" ]; # Ensure ZeroTier service has started before = [ "zerotierone.service" ]; # Ensure ZeroTier service has started

View File

@ -12,8 +12,11 @@
# }); # });
}; };
ros = inputs.ros.overlay;
# When applied, the unstable nixpkgs set (declared in the flake inputs) will # When applied, the unstable nixpkgs set (declared in the flake inputs) will
# be accessible through 'pkgs.unstable' # be accessible through 'pkgs.unstable'
unstable-packages = final: _prev: { unstable-packages = final: _prev: {
unstable = import inputs.nixpkgs-unstable { unstable = import inputs.nixpkgs-unstable {
system = final.system; system = final.system;

View File

@ -0,0 +1,40 @@
{ lib, blender, python3Packages, pkgs, fetchurl }:
let
py-slvs = python3Packages.buildPythonPackage rec {
pname = "py-slvs";
version = "1.0.6";
src = python3Packages.fetchPypi {
pname = "py_slvs";
version = "1.0.6";
sha256 = "sha256-U6T/aXy0JTC1ptL5oBmch0ytSPmIkRA8XOi31NpArnI=";
};
pyproject = true;
nativeBuildInputs = with pkgs; [
swig
];
propagatedBuildInputs = with python3Packages; [
cmake
ninja
setuptools
scikit-build
];
dontUseCmakeConfigure = true;
meta = with pkgs.lib; {
description = "Python binding of SOLVESPACE geometry constraint solver";
homepage = "https://github.com/realthunder/slvs_py";
license = licenses.gpl3;
};
};
blenderWithPySlvs = blender.withPackages (p: [py-slvs]);
in
blenderWithPySlvs

View File

@ -1,11 +1,16 @@
{ pkgs ? import <nixpkgs> {} }: { pkgs ? import <nixpkgs> {} }:
let let
# URL and SHA256 for Creality Print AppImage
appimageUrl = "https://file2-cdn.creality.com/file/05a4538e0c7222ce547eb8d58ef0251e/Creality_Print-v4.3.7.6627-x86_64-Release.AppImage";
appimageSha256 = "sha256-WUsL7UbxSY94H4F1Ww8vLsfRyeg2/DZ+V4B6eH3M6+M=";
# Wrap the AppImage using appimageTools
creality-print = pkgs.appimageTools.wrapType2 { creality-print = pkgs.appimageTools.wrapType2 {
name = "creality-print"; name = "creality-print";
src = pkgs.fetchurl { src = pkgs.fetchurl {
url = "https://file2-cdn.creality.com/file/05a4538e0c7222ce547eb8d58ef0251e/Creality_Print-v4.3.7.6627-x86_64-Release.AppImage"; url = appimageUrl;
sha256 = "sha256-WUsL7UbxSY94H4F1Ww8vLsfRyeg2/DZ+V4B6eH3M6+M="; sha256 = appimageSha256;
}; };
profile = '' profile = ''
export LC_ALL=C.UTF-8 export LC_ALL=C.UTF-8
@ -13,34 +18,46 @@ let
multiPkgs = pkgs: with pkgs; [ qt5.qtbase libGL libz ]; multiPkgs = pkgs: with pkgs; [ qt5.qtbase libGL libz ];
}; };
desktopItem = pkgs.makeDesktopItem {
name = "creality-print";
exec = "${creality-print}/bin/creality-print";
icon = "creality-print";
desktopName = "Creality Print";
genericName = "3D Printer Software";
categories = [ "Graphics" ];
};
in in
# Define the package
pkgs.stdenv.mkDerivation { pkgs.stdenv.mkDerivation {
name = "creality-print-app"; name = "creality-print";
buildInputs = [ creality-print ]; buildInputs = [ creality-print pkgs.bash ];
nativeBuildInputs = [ pkgs.makeWrapper ]; nativeBuildInputs = [ pkgs.makeWrapper pkgs.icoutils pkgs.unpacker ];
# No sources to unpack
unpackPhase = "true"; unpackPhase = "true";
# Extraction phase to get the icon from the AppImage
installPhase = '' installPhase = ''
mkdir -p $out/bin $out/share/applications mkdir -p $out/bin $out/share/applications $out/share/icons/hicolor/256x256/apps
# Extract the AppImage content
appimage-extract ${creality-print}/bin/creality-print
# Find and copy the icon (typically the largest icon available)
cp ./squashfs-root/*.png $out/share/icons/hicolor/256x256/apps/creality-print.png || true
# Copy the binary files
cp ${creality-print}/bin/* $out/bin cp ${creality-print}/bin/* $out/bin
ln -s ${desktopItem}/share/applications/* $out/share/applications/
# Create the desktop entry with the extracted icon
cat > $out/share/applications/creality-print.desktop <<EOF
[Desktop Entry]
Name=Creality Print
Exec=$out/bin/creality-print
Icon=creality-print
Type=Application
Categories=Graphics;
EOF
''; '';
# Package metadata
meta = with pkgs.lib; { meta = with pkgs.lib; {
description = "Creality Print is a 3D printer software for Creality printers"; description = "Creality Print is a 3D printer software for Creality printers";
homepage = "https://www.creality.com/"; homepage = "https://www.creality.com/";
license = licenses.unfree; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -6,4 +6,5 @@
{ {
# example = pkgs.callPackage ./example { }; # example = pkgs.callPackage ./example { };
creality-print = pkgs.callPackage ./creality-print { }; creality-print = pkgs.callPackage ./creality-print { };
blender-cadsketcher = pkgs.callPackage ./blender-cadsketcher { };
} }