diff --git a/README.md b/README.md index 9ba323f..e7c3467 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ -# myNixOSConfig +# nixos-configuration from Vieta -ich bedanke mich bei vieta und dem ccchh für die rettungen die noch kommen werden \ No newline at end of file +# Done +- OptInState Ready + +## TODO +- Add more configs + - Servers + - Diskosetup + - EraseYourDarlings + diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..1185db4 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,66 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./system/hosts/nixos/nixos.nix + ./system/lang.nix + ./users/i3le.nix + ./services/network.nix + #./services/media.nix + #./services/guix.nix + ./services/containers.nix + #./services/vpn.nix + ./services/bluetooth.nix + ]; + + # keep it up to date + system.stateVersion = "24.05"; + + nix = { + settings = { + experimental-features = [ "nix-command" "flakes" ]; + auto-optimise-store = true; + }; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 7d"; + }; + }; + + nixpkgs.config.allowUnfree = true; + documentation.nixos.enable = false; + #services.openssh.enable = true; + + + environment.systemPackages = with pkgs; [ + neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + wget + powertop + btop + htop + tree + curl + usbutils + ]; + + + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + +# Nonflake + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + +} + diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..9755ace --- /dev/null +++ b/flake.lock @@ -0,0 +1,812 @@ +{ + "nodes": { + "chaotic": { + "inputs": { + "compare-to": "compare-to", + "fenix": "fenix", + "flake-schemas": "flake-schemas", + "home-manager": "home-manager", + "jovian": "jovian", + "nixpkgs": "nixpkgs", + "systems": "systems", + "yafas": "yafas" + }, + "locked": { + "lastModified": 1725648456, + "narHash": "sha256-tvUH4BPgk8jVVJrXlTQDu6sqHsSDOLWMEhy+iuLR2RA=", + "owner": "chaotic-cx", + "repo": "nyx", + "rev": "61032d2f00185066bcd0db424f60dd3e4aa7ed89", + "type": "github" + }, + "original": { + "owner": "chaotic-cx", + "ref": "nyxpkgs-unstable", + "repo": "nyx", + "type": "github" + } + }, + "compare-to": { + "locked": { + "lastModified": 1695341185, + "narHash": "sha256-htO6DSbWyCgaDkxi7foPjXwJFPzGjVt3RRUbPSpNtZY=", + "rev": "98b8e330823a3570d328720f87a1153f8a7f2224", + "revCount": 2, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nix-empty-flake/0.1.2%2Brev-98b8e330823a3570d328720f87a1153f8a7f2224/018aba35-d228-7fa9-b205-7616c89ef4e0/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/chaotic-cx/nix-empty-flake/%3D0.1.2.tar.gz" + } + }, + "devshell": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722113426, + "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", + "owner": "numtide", + "repo": "devshell", + "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "chaotic", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1725517947, + "narHash": "sha256-sB8B3M6CS0Y0rnncsCPz0htg6LoC1RbI2Mq9K88tSOk=", + "owner": "nix-community", + "repo": "fenix", + "rev": "96072c2af73da16c7db013dbb8c8869000157235", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-schemas": { + "locked": { + "lastModified": 1693491534, + "narHash": "sha256-ifw8Td8kD08J8DxFbYjeIx5naHcDLz7s2IFP3X42I/U=", + "rev": "c702cbb663d6d70bbb716584a2ee3aeb35017279", + "revCount": 21, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.1/018a4c59-80e1-708a-bb4d-854930c20f72/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.1.tar.gz" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flakey-profile": { + "locked": { + "lastModified": 1712898590, + "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", + "owner": "lf-", + "repo": "flakey-profile", + "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", + "type": "github" + }, + "original": { + "owner": "lf-", + "repo": "flakey-profile", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "nixvim", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724857454, + "narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "chaotic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1725180166, + "narHash": "sha256-fzssXuGR/mCeGbzM1ExaTqDz7QDGta3WA4jJsZyRruo=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "471e3eb0a114265bcd62d11d58ba8d3421ee68eb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1725628988, + "narHash": "sha256-Y6TBMTGu4bddUwszGjlcOuN0soVc1Gv43hp+1sT/GNI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "127ccc3eb7e36fa75e8c3fbd8a343154f66cc1c6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724435763, + "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "jovian": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "chaotic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1725153537, + "narHash": "sha256-8+BJdXM1WBAttY+C63pEMUmUtSEWXHEhXOkLK4k1s2E=", + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "rev": "b13488a1f8ab01db6a3d18629f7b22a430f03984", + "type": "github" + }, + "original": { + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "type": "github" + } + }, + "lix": { + "flake": false, + "locked": { + "lastModified": 1720626042, + "narHash": "sha256-f8k+BezKdJfmE+k7zgBJiohtS3VkkriycdXYsKOm3sc=", + "rev": "2a4376be20d70feaa2b0e640c5041fb66ddc67ed", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/2a4376be20d70feaa2b0e640c5041fb66ddc67ed.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/lix/archive/2.90.0.tar.gz" + } + }, + "lix-module": { + "inputs": { + "flake-utils": "flake-utils", + "flakey-profile": "flakey-profile", + "lix": "lix", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720641669, + "narHash": "sha256-yEO2cGNgzm9x/XxiDQI+WckSWnZX63R8aJLBRSXtYNE=", + "rev": "5c48c833c15bb80d127a398a8c2484d42fdd8257", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/5c48c833c15bb80d127a398a8c2484d42fdd8257.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz" + } + }, + "nix-alien": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_2", + "nix-filter": "nix-filter", + "nix-index-database": "nix-index-database", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1725216861, + "narHash": "sha256-GaCobLXfPYBuhxy2TdlEDAfS3PD4mrUj6NQIPOzQq48=", + "owner": "thiagokokada", + "repo": "nix-alien", + "rev": "f92c20327b240ce2098d227c3674d7c02beea51b", + "type": "github" + }, + "original": { + "owner": "thiagokokada", + "repo": "nix-alien", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724561770, + "narHash": "sha256-zv8C9RNa86CIpyHwPIVO/k+5TfM8ZbjGwOOpTe1grls=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "ac5694a0b855a981e81b4d9f14052e3ff46ca39e", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1710156097, + "narHash": "sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj+rL8sRQsSM=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "3342559a24e85fc164b295c3444e8a139924675b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "chaotic", + "jovian", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1690328911, + "narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=", + "owner": "zhaofengli", + "repo": "nix-github-actions", + "rev": "96df4a39c52f53cb7098b923224d8ce941b64747", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "matrix-name", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-index-database": { + "inputs": { + "nixpkgs": [ + "nix-alien", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723352546, + "narHash": "sha256-WTIrvp0yV8ODd6lxAq4F7EbrPQv0gscBnyfn559c3k8=", + "owner": "nix-community", + "repo": "nix-index-database", + "rev": "ec78079a904d7d55e81a0468d764d0fffb50ac06", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-index-database", + "type": "github" + } + }, + "nix-ld": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1721411691, + "narHash": "sha256-fN0NjkYcQrdVSvWlSnvdu8XD34q8tl84SEz5BOJYROA=", + "owner": "Mic92", + "repo": "nix-ld", + "rev": "7a990656e51465a18ba70f49c2cf9c8d0947b4c9", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-ld", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1725432240, + "narHash": "sha256-+yj+xgsfZaErbfYM3T+QvEE2hU7UuE+Jf0fJCJ8uPS0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ad416d066ca1222956472ab7d0555a6946746a80", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1725103162, + "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1723362943, + "narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a58bc8ad779655e790115244571758e8de055e3d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1725432240, + "narHash": "sha256-+yj+xgsfZaErbfYM3T+QvEE2hU7UuE+Jf0fJCJ8uPS0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ad416d066ca1222956472ab7d0555a6946746a80", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "home-manager": "home-manager_3", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "nuschtosSearch": "nuschtosSearch", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1725631974, + "narHash": "sha256-7r3WWcombWthNv28cHRzNChG3Jt6a3Wdp/zq1HsCQRg=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "9a156ae60cacce99bdec4d94275f38e7d5ca12fe", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nuschtosSearch": { + "inputs": { + "flake-utils": "flake-utils_4", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724584782, + "narHash": "sha256-7FfHv7b1jwMPSu9SPY9hdxStk8E6EeSwzqdvV69U4BM=", + "owner": "NuschtOS", + "repo": "search", + "rev": "5a08d691de30b6fc28d58ce71a5e420f2694e087", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, + "root": { + "inputs": { + "chaotic": "chaotic", + "home-manager": "home-manager_2", + "lix-module": "lix-module", + "nix-alien": "nix-alien", + "nix-ld": "nix-ld", + "nixpkgs": "nixpkgs_4", + "nixvim": "nixvim" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1725444219, + "narHash": "sha256-VjItfg2kZJ2to3bnNlkWAClKQLssIi86QcE1/vcRvv0=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "50882fbfa204027c84753e6d51a1a12884dc1b19", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "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" + } + }, + "systems_5": { + "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": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724833132, + "narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "3ffd842a5f50f435d3e603312eefa4790db46af5", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "yafas": { + "inputs": { + "flake-schemas": [ + "chaotic", + "flake-schemas" + ], + "systems": [ + "chaotic", + "systems" + ] + }, + "locked": { + "lastModified": 1695926485, + "narHash": "sha256-wNFFnItckgSs8XeYhhv8vlJs2WF09fSQaWgw4xkDqHQ=", + "owner": "UbiqueLambda", + "repo": "yafas", + "rev": "7772afd6686458ca0ddbc599a52cf5d337367653", + "type": "github" + }, + "original": { + "owner": "UbiqueLambda", + "repo": "yafas", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..4c9f924 --- /dev/null +++ b/flake.nix @@ -0,0 +1,80 @@ +{ + description = "systemflake"; + + inputs = { + nixpkgs = { + url = "github:NixOS/nixpkgs/nixos-unstable"; + # url = "github:NixOS/nixpkgs/nixos-23.11"; + }; + chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; + + + lix-module = { + url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nix-alien.url = "github:thiagokokada/nix-alien"; + nix-ld.url = "github:Mic92/nix-ld"; + nix-ld.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.url = "github:nix-community/home-manager"; + #home-manager.url = "github:nix-community/home-manager-23.11"; + nixvim = { url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + #nix-doom-emacs.url = "github:nix-community/nix-doom-emacs"; + }; + + nixConfig = { + extra-substituters = [ + "https://nyx.chaotic.cx/" + ]; + extra-trusted-public-keys = [ + "chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8=" + ]; + }; + + outputs = { + self, + nixpkgs, + home-manager, + nixvim, + nix-ld, + nix-alien, + lix-module, + chaotic, + #nix-doom-emacs, + ... + }: { + nixosConfigurations = { + # Add hostname here + nixos = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + + modules = [ + ./configuration.nix + lix-module.nixosModules.default + + chaotic.nixosModules.default + #nix-ld.nixosModules.nix-ld + #{ programs.nix-ld.dev.enable = true; } +/* +home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.i3le = { ... }: { + imports = [ + ./system/home-manager/home.nix + #nix-doom-emacs.hmModule + nixvim.homeManagerModules.nixvim + + ]; + }; + } # comment out for fallback +*/ + ]; + + }; + }; + }; +} diff --git a/services/bluetooth.nix b/services/bluetooth.nix new file mode 100644 index 0000000..75fb46e --- /dev/null +++ b/services/bluetooth.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: +{ + + hardware.bluetooth.enable = true; + + +} diff --git a/services/container/phpmyadmin.nix b/services/container/phpmyadmin.nix new file mode 100644 index 0000000..02c857e --- /dev/null +++ b/services/container/phpmyadmin.nix @@ -0,0 +1,28 @@ +{ lib, pkgs, config, ...}: +{ + image = "phpmyadmin:latest"; + + environment = { + "TZ" = "Europe/Berlin"; + "MYSQL_ROOT_PASSWORD" = "testdata"; + "PMA_HOST" = "127.0.0.1"; + #"PMA_ABSOLUTE_URI" = "http://localhost/phpmad.local"; + "UPLOAD_LIMIT" = "10M"; + }; + + volumes = [ + "/home/dbuser/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php" + ]; + + extraOptions = [ + "--pull=newer" # Pull if the image on the registry is newer than the one in the local containers storage + "--name=phpmyadmin" + "--hostname=phpmyadmin" + "--network=net_macvlan" + "--ip=IP" + "--mac-address=MAC" + ]; + + #dependsOn = [ "mariadb" ]; + +} diff --git a/services/containers.nix b/services/containers.nix new file mode 100644 index 0000000..b99a0cb --- /dev/null +++ b/services/containers.nix @@ -0,0 +1,49 @@ +{ lib, config, pkgs, ... }: +{ +#import = [ ]; + +virtualisation = { + podman = { + enable = true; + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; + }; + environment.etc."/containers/containers.conf".text = ""; + +/* +# PHPmyadmin + systemd.services.create-podman-network = with config.virtualisation.oci-containers; { + serviceConfig.Type = "oneshot"; + wantedBy = [ "${backend}-phpmyadmin.service" ]; + script = ''${pkgs.podman}/bin/podman network exists net_macvlan || \ ${pkgs.podman}/bin/podman network create --driver=macvlan --gateway=192.168.178.134.1 --subnet=192.168.178.134.0/24 -o parent=ens18 net_macvlan''; +}; + containers = { + phpmyadmin = import ./container/phpmyadmin.nix; + }; + # Create folders for the containers +system.activationScripts = { + script.text = '' + # phpMyAdmin + install -d -m 755 /home/dbuser/phpmyadmin -o root -g root + test -f /home/dbuser/phpmyadmin/config.user.inc.php || echo -e " /home/dbuser/phpmyadmin/config.user.inc.php + ''; + }; +*/ + + # podman as systemd service + /* + virtualisation.oci-containers.backend = "podman"; + virtualisation.oci-containers.containers = { + container-name = { + image = "container-image"; + autoStart = true; + ports = [ "127.0.0.1:1234:1234" ]; + }; + }; + */ + + services.flatpak.enable = true; +} diff --git a/services/guix.nix b/services/guix.nix new file mode 100644 index 0000000..aaeda93 --- /dev/null +++ b/services/guix.nix @@ -0,0 +1,24 @@ +{ config, lib, pkgs, ...}: +{ + services.guix = { + enable = true; + gc = { + enable = true; + extraArgs = [ + "--optimize" + ]; + dates = "weekly"; + }; + storeDir = "/gnu/store"; + stateDir = "/gnu/var"; + publish.generateKeyPair = "true"; + publish.user = "guix-publish"; + publish.port = "8181"; + publish.extraArgs = [ + "--compression=zstd:6" + "--discover=no" + ]; + group = "guixbuild"; + #nrBuildUsers = "10"; + }; +} diff --git a/services/media.nix b/services/media.nix new file mode 100644 index 0000000..04d7d26 --- /dev/null +++ b/services/media.nix @@ -0,0 +1,4 @@ +{ lib, config, pkgs, ...}: +{ + services.mpd.enable = true; +} diff --git a/services/mosh.nix b/services/mosh.nix new file mode 100644 index 0000000..e69de29 diff --git a/services/network.nix b/services/network.nix new file mode 100644 index 0000000..cfdc4ab --- /dev/null +++ b/services/network.nix @@ -0,0 +1,13 @@ +{ lib, config, pkgs, ... }: +{ + networking.networkmanager.enable = true; + #networking.interfaces.wlan0.useDHCP = true; + #networking.wireless.interfaces = ["wlan0"]; + #networking.wireless.iwd.enable = true; + #networking.networkmanager.wifi.backend = "iwd"; + #services.connman.enable = true; + #services.connman.extraFlags = [ ] + + #services.openssh.enable = true; + +} diff --git a/services/secrets/configwiregurd b/services/secrets/configwiregurd new file mode 100644 index 0000000..1518261 --- /dev/null +++ b/services/secrets/configwiregurd @@ -0,0 +1,12 @@ +[Interface] +Address = 2a01:4f8:c012:59b8:ac1e::3/128 +PrivateKey = cAiqoZUf8eYt0LOFL2PCrQ6ZPcsKbGyRSnZzPIdRlnI= +DNS = 1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001 +MTU = 1300 + +[Peer] +PublicKey = /W5HGgyFBPB+3GLRgKwkAB14d4TOhPDR/3sYHu1d/wI= +PresharedKey = JTecKVDA3RSfwcbaBtcEUG4RsTEUUJTJyb65aABQAmg= +AllowedIPs = 0.0.0.0/0,::/0 +Endpoint = fumbled.strangled.net:51820 +PersistentKeepalive = 15 diff --git a/services/secrets/pre b/services/secrets/pre new file mode 100644 index 0000000..04c22a7 --- /dev/null +++ b/services/secrets/pre @@ -0,0 +1 @@ +JTecKVDA3RSfwcbaBtcEUG4RsTEUUJTJyb65aABQAmg= diff --git a/services/secrets/private b/services/secrets/private new file mode 100644 index 0000000..521cc57 --- /dev/null +++ b/services/secrets/private @@ -0,0 +1 @@ +cAiqoZUf8eYt0LOFL2PCrQ6ZPcsKbGyRSnZzPIdRlnI= diff --git a/services/secrets/public b/services/secrets/public new file mode 100644 index 0000000..105c127 --- /dev/null +++ b/services/secrets/public @@ -0,0 +1 @@ +/W5HGgyFBPB+3GLRgKwkAB14d4TOhPDR/3sYHu1d/wI= diff --git a/services/vms.nix b/services/vms.nix new file mode 100644 index 0000000..5bf2021 --- /dev/null +++ b/services/vms.nix @@ -0,0 +1,12 @@ +{ lib, config, pkgs, ...}: +{ + #virtualisation.virtualbox.host.enable = true; + #users.extraGroups.vboxusers.members = [ "vieta" ]; + #virtualisation.virtualbox.guest.enable = true; + #virtualisation.virtualbox.guest.x11 = true; + + #virtualisation.waydroid.enable = true; + boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; + + +} diff --git a/services/vpn1.nix b/services/vpn1.nix new file mode 100644 index 0000000..8b2c10b --- /dev/null +++ b/services/vpn1.nix @@ -0,0 +1,67 @@ +{ lib,config, pkgs, ...}: +{ + + networking.firewall = { + allowedUDPPorts = [ 51820 ]; # Clients and peers can use the same port, see listenport + }; + + +networking.wireguard.interfaces = { + # "wg0" is the network interface name. You can name the interface arbitrarily. + wg0 = { + # Determines the IP address and subnet of the client's end of the tunnel interface. + ips = [ "2a01:4f8:c012:59b8:ac1e::3/128" ]; + listenPort = 51820; # to match firewall allowedUDPPorts (without this wg uses random port numbers) + #dns = ["1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001"]; + mtu = ["1300"]; + # Path to the private key file. + # + # Note: The private key can also be included inline via the privateKey option, + # but this makes the private key world-readable; thus, using privateKeyFile is + # recommended. + privateKeyFile = "./secrets/private"; + + peers = [ + # For a client configuration, one peer entry for the server will suffice. + + { + # Public key of the server (not a file path). + publicKey = "JTecKVDA3RSfwcbaBtcEUG4RsTEUUJTJyb65aABQAmg="; + presharedKeyFile = "./secrets/pre"; + # Forward all the traffic via VPN. + allowedIPs = [ "0.0.0.0/0,::/0" ]; + # Or forward only particular subnets + #allowedIPs = [ "10.100.0.1" "91.108.12.0/22" ]; + + # Set this to the server IP and port. + endpoint = "fumbled.strangled.net:51820"; # ToDo: route to endpoint not automatically configured https://wiki.archlinux.org/index.php/WireGuard#Loop_routing https://discourse.nixos.org/t/solved-minimal-firewall-setup-for-wireguard-client/7577 + + # Send keepalives every 25 seconds. Important to keep NAT tables alive. + persistentKeepalive = 15; + } + ]; + }; + }; + networks.wg0 = { + # See also man systemd.network + matchConfig.Name = "wg0"; + # IP addresses the client interface will have + #address = [ + # "fe80::3/64" + # "fc00::3/120" + # "10.100.0.2/24" + #]; + #DHCP = "no"; + #dns = ["1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001"]; + #ntp = ["fc00::123"]; + #gateway = [ + # "fc00::1" + # "10.100.0.1" + #]; + #networkConfig = { + # IPv6AcceptRA = false; + #}; + }; + +} + diff --git a/services/vpn2.nix b/services/vpn2.nix new file mode 100644 index 0000000..79833ad --- /dev/null +++ b/services/vpn2.nix @@ -0,0 +1,53 @@ +{ lib,config, pkgs, ...}: +{ + + networking.firewall = { + allowedUDPPorts = [ 51820 ]; # Clients and peers can use the same port, see listenport + }; + boot.extraModulePackages = [config.boot.kernelPackages.wireguard]; + systemd.network = { + enable = true; + netdevs = { + "10-wg0" = { + netdevConfig = { + Kind = "wireguard"; + Name = "wg0"; + MTUBytes = "1300"; + }; + # See also man systemd.netdev (also contains info on the permissions of the key files) + wireguardConfig = { + # Don't use a file from the Nix store as these are world readable. Must be readable by the systemd.network user + PrivateKeyFile = "./secrets/vpn2.nix"; + ListenPort = 51820; + }; + wireguardPeers = [ + { + PublicKey = "/W5HGgyFBPB+3GLRgKwkAB14d4TOhPDR/3sYHu1d/wI="; + AllowedIPs = ["0.0.0.0/0,::/0" ]; + Endpoint = "fumbled.strangled.ne:51820"; + } + ]; + }; + }; + networks.wg0 = { + # See also man systemd.network + matchConfig.Name = "wg0"; + # IP addresses the client interface will have + address = [ + "fe80::3/64" + "fc00::3/120" + "10.100.0.2/24" + ]; + DHCP = "no"; + dns = ["fc00::53"]; + ntp = ["fc00::123"]; + gateway = [ + "fc00::1" + "10.100.0.1" + ]; + networkConfig = { + IPv6AcceptRA = false; + }; + }; + }; +} diff --git a/system/desktop/dm.nix b/system/desktop/dm.nix new file mode 100644 index 0000000..5264c3b --- /dev/null +++ b/system/desktop/dm.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: +{ + /* + import = [ + ./xmonad/xmonad.nix + ]; +*/ + + services.xserver.enable = true; + services.xserver = { + xkb.layout = "de"; + xkb.variant = ""; + }; + services.displayManager.sddm.enable = true; + #services.xserver.displayManager.sddm.enable = true; + services.xserver.excludePackages = with pkgs; [ + xterm + ]; + + xdg = { + portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + }; + }; + + +programs.dconf.enable = true; +/* +services.xserver.displayManager.sddm.theme = "${(pkgs.fetchFromGitHub { + owner = "MarianArlt"; + repo = "kde-plasma-chili"; + rev = "a371123959676f608f01421398f7400a2f01ae06"; + sha256 = "17pkxpk4lfgm14yfwg6rw6zrkdpxilzv90s48s2hsicgl3vmyr3x"; +})}"; +*/ +} diff --git a/system/desktop/fonts.nix b/system/desktop/fonts.nix new file mode 100644 index 0000000..dbab775 --- /dev/null +++ b/system/desktop/fonts.nix @@ -0,0 +1,52 @@ +{ lib, config, pkgs, ... }: +{ + + system.fsPackages = [ pkgs.bindfs ]; + fileSystems = let + mkRoSymBind = path: { + device = path; + fsType = "fuse.bindfs"; + options = [ "ro" "resolve-symlinks" "x-gvfs-hide" ]; + }; + aggregatedIcons = pkgs.buildEnv { + name = "system-icons"; + paths = with pkgs; [ + libsForQt5.breeze-qt5 # for plasma + #gnome.gnome-themes-extra + ]; + pathsToLink = [ "/share/icons" ]; + }; + aggregatedFonts = pkgs.buildEnv { + name = "system-fonts"; + paths = config.fonts.packages; + pathsToLink = [ "/share/fonts" ]; + }; + in { + "/usr/share/icons" = mkRoSymBind "${aggregatedIcons}/share/icons"; + "/usr/local/share/fonts" = mkRoSymBind "${aggregatedFonts}/share/fonts"; + }; + + fonts = { + fontDir.enable = true; + packages = with pkgs; [ + carlito + dejavu_fonts + ipafont + kochi-substitute + source-code-pro + ttf_bitstream_vera + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + liberation_ttf + # waybar + /* + font-awesome + powerline-fonts + powerline-symbols + (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })*/ + ]; + }; + +} + diff --git a/system/desktop/gnome.nix b/system/desktop/gnome.nix new file mode 100644 index 0000000..b3a9c0c --- /dev/null +++ b/system/desktop/gnome.nix @@ -0,0 +1,39 @@ +{lib, conig, pkgs, ...}: +{ + imports = [ + ./dm.nix + ./fonts.nix + ]; + #services.xserver.enable = true; + #services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + + environment.gnome.excludePackages = (with pkgs; [ + gnome-photos + gnome-tour + ]) ++ (with pkgs.gnome; [ + cheese # webcam tool + gnome-music + gedit # text editor + epiphany # web browser + geary # email reader + gnome-characters + tali # poker game + iagno # go game + hitori # sudoku game + atomix # puzzle game + yelp # Help view + gnome-contacts + gnome-initial-setup + ]); + programs.dconf.enable = true; + services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + environment.systemPackages = with pkgs; [ + gnome.adwaita-icon-theme + agnomeExtensions.appindicator + gnomeExtensions.gnome-clipboard + gnome-console # kgx + + ]; + +} diff --git a/system/desktop/gnome/gnome-manager.nix b/system/desktop/gnome/gnome-manager.nix new file mode 100644 index 0000000..4194ee8 --- /dev/null +++ b/system/desktop/gnome/gnome-manager.nix @@ -0,0 +1,122 @@ +{ config, lib, pkgs, inputs, ...}: +{ + + dconf = { + enable = true; + settings = { + "org/gnome/shell" = { + favorite-apps = [ + "floorp.desktop" + "discord.desktop" + "alacritty.desktop" + "libreoffice-qt.desktop" + "org.gnome.Terminal.desktop" + #"virt-manager.desktop" + "org.gnome.Nautilus.desktop" + ]; + }; + "org/gnome/desktop/wm/preferences" = { + workspace-names = [ "Main" ]; + }; + "org/gnome/desktop/background" = { + picture-uri = "file://" + ../wallpaper/haskellwp.png; + picture-uri-dark = "file://" + ../wallpaper/haskellwp.png; + color-shading-type = "solid"; + picture-options = "zoom"; + #picture-uri = "file:///run/current-system/sw/share/backgrounds/gnome/vnc-l.png"; + #picture-uri-dark = "file:///run/current-system/sw/share/backgrounds/gnome/vnc-d.png"; + }; + /* + "org/gnome/desktop/screensaver" = { + picture-uri = "file:///run/current-system/sw/share/backgrounds/gnome/vnc-d.png"; + primary-color = "#3465a4"; + secondary-color = "#000000"; + };*/ + # Keybind + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + name = "alacritty"; + command = "alacritty"; + binding = "y"; + }; + # Touchpad + "org/gnome/desktop/peripherals/touchpad" = { + tap-to-click = true; + two-finger-scrolling-enabled = true; + }; + # Bar + "org/gnome/desktop/interface" = { + clock-show-seconds = true; + clock-show-weekday = true; + color-scheme = "prefer-dark"; + enable-hot-corners = false; + font-antialiasing = "grayscale"; + font-hinting = "slight"; + #gtk-theme = "Nordic"; + toolkit-accessibility = true; + }; + # OtherBind + "org/gnome/desktop/wm/keybindings" = { + activate-window-menu = "disabled"; + toggle-message-tray = "disabled"; + close = ["q"]; + maximize = "disabled"; + #minimize = ["comma"]; + move-to-monitor-down = "disabled"; + move-to-monitor-left = "disabled"; + move-to-monitor-right = "disabled"; + move-to-monitor-up = "disabled"; + move-to-workspace-down = "disabled"; + move-to-workspace-up = "disabled"; + toggle-maximized = ["m"]; + unmaximize = "disabled"; + }; + "org/gnome/shell" = { + disable-user-extensions = false; + + # `gnome-extensions list` for a list + enabled-extensions = [ + "user-theme@gnome-shell-extensions.gcampax.github.com" + "trayIconsReloaded@selfmade.pl" + "Vitals@CoreCoding.com" + ]; + }; + }; +}; + + # Theming + gtk = { + enable = true; + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + theme = { + name = "palenight"; + package = pkgs.palenight-theme; + }; + cursorTheme = { + name = "Numix-Cursor"; + package = pkgs.numix-cursor-theme; + }; + gtk3.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + + gtk4.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + }; + + home.packages = with pkgs; [ + gnomeExtensions.user-themes + palenight-theme + gnomeExtensions.vitals + gnomeExtensions.tray-icons-reloaded + gnomeExtensions.copier + ]; + +} diff --git a/system/desktop/gnome/gnome.nix b/system/desktop/gnome/gnome.nix new file mode 100644 index 0000000..8e0ec6f --- /dev/null +++ b/system/desktop/gnome/gnome.nix @@ -0,0 +1,39 @@ +{lib, conig, pkgs, ...}: +{ + imports = [ + ../dm.nix + #../fonts.nix + ]; + #services.xserver.enable = true; + #services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + services.dbus.packages = with pkgs; [ gnome2.GConf ]; + + environment.gnome.excludePackages = (with pkgs; [ + gnome-photos + gnome-tour + gedit # text editor + ]) ++ (with pkgs.gnome; [ + cheese # webcam tool + gnome-music + #gedit # text editor + epiphany # web browser + geary # email reader + gnome-characters + tali # poker game + iagno # go game + hitori # sudoku game + atomix # puzzle game + yelp # Help view + gnome-contacts + gnome-initial-setup + ]); + programs.dconf.enable = true; + environment.systemPackages = with pkgs; [ + gnome.adwaita-icon-theme + alacritty + ]; + + +} diff --git a/system/desktop/hyprland.conf b/system/desktop/hyprland.conf new file mode 100644 index 0000000..d603d0f --- /dev/null +++ b/system/desktop/hyprland.conf @@ -0,0 +1,197 @@ + +######################################################################################## +AUTOGENERATED HYPR CONFIG. +PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, +OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +######################################################################################## + +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# + +#autogenerated = 1 # remove this line to remove the warning + +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor=,preferred,auto,auto +#monitor=DP-1,1920x1080@60,0x0,1 +#monitor=DP-1, 1920x1080, 0x0, 1 +monitor=,highres,auto,1 +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = waybar & hyprpaper & firefox + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Some default env vars. +env = XCURSOR_SIZE,24 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 4 + gaps_out = 15 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + blur { + enabled = true + size = 3 + passes = 1 + } + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +#$mainMod = SUPER +$mainMod = ALT_L + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, RETURN, exec, alacritty +bind = $mainMod SHIFT, Q, killactive, +bind = $mainMod SHIFT, E, exit, +bind = $mainMod, F, exec, dolphin +bind = $mainMod, space, togglefloating, +bind = $mainMod, D, exec, fuzzel +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, S, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, T, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + + +# Screenshot +bind =,Print, exec, grim #-l 0 "(slurp)" - | wl-copy + +# Volume +bind = , XF86AudioRaiseVolume, exec, pamixer -i 5 +bind = , XF86AudioLowerVolume, exec, pamixer -d 5 +bind = , XF86AudioMicMute, exec, pamixer --default-source -m +bind = , XF86AudioMute, exec, pamixer -t +bind = , XF86AudioPlay, exec, playerctl play-pause +bind = , XF86AudioPause, exec, playerctl play-pause +bind = , XF86AudioNext, exec, playerctl next +bind = , XF86AudioPrev, exec, playerctl previous diff --git a/system/desktop/hyprland.nix b/system/desktop/hyprland.nix new file mode 100644 index 0000000..6921e37 --- /dev/null +++ b/system/desktop/hyprland.nix @@ -0,0 +1,105 @@ +{lib, config, pkgs, ...}: +{ + imports = [ + ./dm.nix + ./fonts.nix + ]; + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + # light + services.illum.enable = true; + + programs.dconf.enable = true; + + environment.systemPackages = with pkgs; [ + # theme + libsForQt5.qt5.qtquickcontrols2 + libsForQt5.qt5.qtgraphicaleffects + waybar + # workspace correction + (pkgs.waybar.overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; + }) + ) + # notify daemon + dunst + libnotify + # wallpaper + swww + swaybg + # terminal + alacritty + # app launcher + tofi + #bemenu + #rofi-wayland + #wofi + fuzzel + # screenshot + grim + slurp + wl-clipboard + # sound control + pavucontrol + pamixer + # brightness extra + brightnessctl + # fm + #xfce.thunar + #dolphin + gnome.nautilus + #cinnamon.nemo + # lockscreen + swaylock + # applets + #networkmanagerapplet + #flameshot + ]; + /*xdg.portal.enable = true; + xdg.portal.extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + ];*/ + security.pam.services.swaylock = {}; + /* + fonts.packages = with pkgs; [ + font-awesome + powerline-fonts + powerline-symbols + (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) + ]; + */ + environment.sessionVariables = { + #WLR_NO_HARDWARE_CURSORS = "1"; + # electron support + NIXOS_OZONE_WL = "1"; + }; + + /* + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = "/usr/bin/env hyprland"; + user = "vieta"; + }; + default_session = initial_session; + }; + }; + */ +/* + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = "${pkgs.hyprland}/bin/Hyprland"; + user = "vieta"; + }; + default_session = initial_session; + #default_session = initial_session; + }; + }; +*/ + +} diff --git a/system/desktop/hyprland/hyprland-manager.nix b/system/desktop/hyprland/hyprland-manager.nix new file mode 100644 index 0000000..b521152 --- /dev/null +++ b/system/desktop/hyprland/hyprland-manager.nix @@ -0,0 +1,261 @@ +{ input, options, lib, config, pkgs, ... }: +{ + + wayland.windowManager.hyprland.enable = true; + wayland.windowManager.hyprland.settings = { + "$mod" = "ALT_L"; + bind = + [ + "$mod, F, exec, floorp" + ", Print, exec, grimblast copy area" + + ] + ++ ( + # workspaces + # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} + builtins.concatLists (builtins.genList ( + x: let + ws = let + c = (x + 1) / 10; + in + builtins.toString (x + 1 - (c * 10)); + in [ + "$mod, ${ws}, workspace, ${toString (x + 1)}" + "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" + ] + ) + 10) + ); + }; + +home.pointerCursor = { + gtk.enable = true; + x11.enable = true; + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; + size = 16; +}; + +gtk = { + enable = true; + theme = { + package = pkgs.flat-remix-gtk; + name = "Flat-Remix-GTK-Grey-Darkest"; + }; + + iconTheme = { + package = pkgs.gnome.adwaita-icon-theme; + name = "Adwaita"; + }; + + font = { + name = "Sans"; + size = 11; + }; +}; + +/* +home.file = { + # ".screenrc".source = dotfiles/screenrc; + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + # HELIX +".config/hyprland/hyprland.config".text = '' +# generated by home-manager + +#autogenerated = 1 # remove this line to remove the warning + +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor=,preferred,auto,auto +#monitor=DP-1,1920x1080@60,0x0,1 +#monitor=DP-1, 1920x1080, 0x0, 1 +monitor=,highres,auto,1 +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +#exec-once = waybar & hyprpaper & firefox +exec-once = eww + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Some default env vars. +env = XCURSOR_SIZE,24 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 4 + gaps_out = 15 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + blur { + enabled = true + size = 3 + passes = 1 + } + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +#$mainMod = SUPER +$mainMod = ALT_L + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, RETURN, exec, alacritty +bind = $mainMod SHIFT, Q, killactive, +bind = $mainMod SHIFT, E, exit, +bind = $mainMod, F, exec, dolphin +bind = $mainMod, space, togglefloating, +bind = $mainMod, D, exec, fuzzel +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, S, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, T, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Clipboard +exec-once = wl-paste --type text --watch cliphist store #Stores only text data +exec-once = wl-paste --type image --watch cliphist store #Stores only image data + +# Screenshot +bind =,Print, exec, grim #-l 0 "(slurp)" - | wl-copy + +# Volume +bind = , XF86AudioRaiseVolume, exec, pamixer -i 5 +bind = , XF86AudioLowerVolume, exec, pamixer -d 5 +bind = , XF86AudioMicMute, exec, pamixer --default-source -m +bind = , XF86AudioMute, exec, pamixer -t +bind = , XF86AudioPlay, exec, playerctl play-pause +bind = , XF86AudioPause, exec, playerctl play-pause +bind = , XF86AudioNext, exec, playerctl next +bind = , XF86AudioPrev, exec, playerctl previous +''; +}; +*/ + +} diff --git a/system/desktop/hyprland/hyprland.nix b/system/desktop/hyprland/hyprland.nix new file mode 100644 index 0000000..8c213d6 --- /dev/null +++ b/system/desktop/hyprland/hyprland.nix @@ -0,0 +1,115 @@ +{lib, config, pkgs, ...}: +{ + imports = [ + ../dm.nix + ../fonts.nix + ]; + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + # light + services.illum.enable = true; + + #programs.dconf.enable = true; + + environment.systemPackages = with pkgs; [ + # theme + gnome.adwaita-icon-theme + libsForQt5.qt5.qtquickcontrols2 + libsForQt5.qt5.qtgraphicaleffects + #theme-obsidian2 + eww + #waybar + # workspace correction + (pkgs.waybar.overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; + }) + ) + # notify daemon + dunst + libnotify + # wallpaper + swww + swaybg + # terminal + alacritty + # app launcher + tofi + #bemenu + #rofi-wayland + #wofi + fuzzel + # screenshot + #ksnip + swappy + gwenview + grim + slurp + wl-clipboard + cliphist + gscreenshot + # sound control + pavucontrol + pamixer + # brightness extra + brightnessctl + # fm + #xfce.thunar + #dolphin + gnome.nautilus + #cinnamon.nemo + # lockscreen + swaylock + # applets + #networkmanagerapplet + #flameshot + grimblast + ]; + xdg.portal.extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + ]; + security.pam.services.swaylock = {}; + + fonts.packages = with pkgs; [ + + font-awesome + powerline-fonts + powerline-symbols + (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) + + ]; + + environment.sessionVariables = { + #WLR_NO_HARDWARE_CURSORS = "1"; + # electron support + NIXOS_OZONE_WL = "1"; + }; +/* +gtk = { + enable = true; + theme = { + package = pkgs.adw-gtk3; + name = "adw-gtk3"; + }; +};*/ + qt = { + enable = true; + platformTheme = "gnome"; + style = "adwaita-dark"; + }; + + /* + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = "/usr/bin/env hyprland"; + user = "vieta"; + }; + default_session = initial_session; + }; + }; + */ + +} diff --git a/system/desktop/leftwm/leftwm-manager.nix b/system/desktop/leftwm/leftwm-manager.nix new file mode 100644 index 0000000..d483b47 --- /dev/null +++ b/system/desktop/leftwm/leftwm-manager.nix @@ -0,0 +1,18 @@ +{ lib, pkgs, config, inputs, ...}: +{ + xdg = { + + enable = true; + + configFile."leftwm/themes/current" = { + + source = ./xmobar; + + + #recursive = true; + + }; + portal.config.common.default = ""; + }; + +} diff --git a/system/desktop/leftwm/leftwm.nix b/system/desktop/leftwm/leftwm.nix new file mode 100644 index 0000000..6db6ecd --- /dev/null +++ b/system/desktop/leftwm/leftwm.nix @@ -0,0 +1,8 @@ +{ lib, config, pkgs, ... }: +{ + imports = [ + ../dm.nix + ../fonts.nix + ]; + services.xserver.windowManager.leftwm.enable = true; +} diff --git a/system/desktop/leftwm/xmobar/background.jpg b/system/desktop/leftwm/xmobar/background.jpg new file mode 100644 index 0000000..5130f25 Binary files /dev/null and b/system/desktop/leftwm/xmobar/background.jpg differ diff --git a/system/desktop/leftwm/xmobar/change_to_tag b/system/desktop/leftwm/xmobar/change_to_tag new file mode 100755 index 0000000..d652de4 --- /dev/null +++ b/system/desktop/leftwm/xmobar/change_to_tag @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +leftwm-command "SendWorkspaceToTag $1 $2" diff --git a/system/desktop/leftwm/xmobar/down b/system/desktop/leftwm/xmobar/down new file mode 100755 index 0000000..4e4f66a --- /dev/null +++ b/system/desktop/leftwm/xmobar/down @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" + +#set background +if [ -x "$(command -v feh)" ]; then + feh --bg-scale $SCRIPTPATH/reset.jpg +fi + +leftwm-command "UnloadTheme" + + +ps -alh | grep xmobar_control_script | awk '{print $3}' | xargs kill + +pkill compton +pkill picom +pkill xmobar +pkill xmobar + diff --git a/system/desktop/leftwm/xmobar/reset.jpg b/system/desktop/leftwm/xmobar/reset.jpg new file mode 100644 index 0000000..da757f7 Binary files /dev/null and b/system/desktop/leftwm/xmobar/reset.jpg differ diff --git a/system/desktop/leftwm/xmobar/sizes.liquid b/system/desktop/leftwm/xmobar/sizes.liquid new file mode 100644 index 0000000..020a3a2 --- /dev/null +++ b/system/desktop/leftwm/xmobar/sizes.liquid @@ -0,0 +1,3 @@ +{% for w in workspaces %} +Static { xpos = {{w.x}} , ypos = {{w.y}}, width = {{w.w}}, height = 24 } +{% endfor %} diff --git a/system/desktop/leftwm/xmobar/template.liquid b/system/desktop/leftwm/xmobar/template.liquid new file mode 100644 index 0000000..9a5423a --- /dev/null +++ b/system/desktop/leftwm/xmobar/template.liquid @@ -0,0 +1,12 @@ +{% for tag in workspace.tags %} +{% if tag.mine %} + {{tag.name}} +{% elsif tag.visible %} + {{tag.name}} +{% elsif tag.busy %} + {{tag.name}}* +{% else %} + {{tag.name}} +{% endif %} +{% endfor %} + {{ window_title }} diff --git a/system/desktop/leftwm/xmobar/theme.ron b/system/desktop/leftwm/xmobar/theme.ron new file mode 100644 index 0000000..b0467ba --- /dev/null +++ b/system/desktop/leftwm/xmobar/theme.ron @@ -0,0 +1,6 @@ +(border_width: 2, +margin: 12, +default_border_color: "#222222", +floating_border_color: "#555555", +focused_border_color: "#FF3333", +) \ No newline at end of file diff --git a/system/desktop/leftwm/xmobar/up b/system/desktop/leftwm/xmobar/up new file mode 100755 index 0000000..92f3b45 --- /dev/null +++ b/system/desktop/leftwm/xmobar/up @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +export SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" + + +#down the last running theme +if [ -f "/tmp/leftwm-theme-down" ]; then + /tmp/leftwm-theme-down + rm /tmp/leftwm-theme-down +fi +ln -s $SCRIPTPATH/down /tmp/leftwm-theme-down + + +#boot compton or picom if it exists +if [ -x "$(command -v compton)" ]; then + compton &> /dev/null & +elif [ -x "$(command -v picom)" ]; then + picom &> /dev/null & +fi + +#set the theme.ron config +leftwm-command "LoadTheme $SCRIPTPATH/theme.ron" + + +#set background +if [ -x "$(command -v feh)" ]; then + feh --bg-scale $SCRIPTPATH/background.jpg +fi + +index=0 +leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid | sed -r '/^\s*$/d' | while read size +do + leftwm-state -w $index -t $SCRIPTPATH/template.liquid | xmobar -p "$size" $SCRIPTPATH/xmobar-config.hs & + let index=index+1 +done + diff --git a/system/desktop/leftwm/xmobar/xmobar-config.hs b/system/desktop/leftwm/xmobar/xmobar-config.hs new file mode 100644 index 0000000..c7b2a5a --- /dev/null +++ b/system/desktop/leftwm/xmobar/xmobar-config.hs @@ -0,0 +1,23 @@ + + +Config { font = "-misc-fixed-*-*-*-*-13-*-*-*-*-*-*-*" + , bgColor = "black" + , fgColor = "grey" + , position = Top + , lowerOnStart = True + , allDesktops = True + , pickBroadest = False + , overrideRedirect = False + , commands = [ Run Weather "KSHV" ["-t"," F","-L","64","-H","77","--normal","green","--high","red","--low","lightblue"] 36000 + , Run Network "eno1" ["-L","0","-H","32","--normal","green","--high","red"] 10 + , Run MultiCpu ["-L","15","-H","50","--normal","green","--high","red"] 10 + , Run Memory [] 10 + , Run Swap [] 10 + , Run TopProc [] 10 + , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10 + , Run UnsafeStdinReader + ] + , sepChar = "%" + , alignSep = "}{" + , template = "%UnsafeStdinReader% }{ %top% | %multicpu% | %memory% * %swap% | %eno1% | %date% | %KSHV%" +} diff --git a/system/desktop/plasma.nix b/system/desktop/plasma.nix new file mode 100644 index 0000000..1c64425 --- /dev/null +++ b/system/desktop/plasma.nix @@ -0,0 +1,38 @@ +{ config, pkgs, lib, ... }: +{ + imports = [ + ./dm.nix + ./fonts.nix + #./xmonad/xmonad.nix + ]; + + services.desktopManager.plasma6.enable = true; + services.desktopManager.plasma6.enableQt5Integration = true; + + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + elisa + oxygen + khelpcenter + plasma-browser-integration + print-manager + ]; + + programs.dconf.enable = true; + #services.system76-scheduler.enable = true; + # Enable CUPS to print documents. + # services.printing.enable = true; + #hardware.bluetooth.enable = true; + +/* + xdg = { + portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + }; + }; +*/ + +} diff --git a/system/desktop/plasma/plasma-manager.nix b/system/desktop/plasma/plasma-manager.nix new file mode 100644 index 0000000..e69de29 diff --git a/system/desktop/plasma/plasma.nix b/system/desktop/plasma/plasma.nix new file mode 100644 index 0000000..39d0a59 --- /dev/null +++ b/system/desktop/plasma/plasma.nix @@ -0,0 +1,38 @@ +{ config, pkgs, lib, ... }: +{ + imports = [ + ../dm.nix + ../fonts.nix + ]; + + # Enable the Plasma 5 Desktop Environment. + #services.xserver.displayManager.sddm.enable = true; + services.xserver.desktopManager.plasma5.enable = true; + environment.plasma5.excludePackages = with pkgs.libsForQt5; [ + elisa + oxygen + khelpcenter + plasma-browser-integration + print-manager + ]; + #programs.dconf.enable = true; + services.xserver.displayManager.defaultSession = "plasmawayland"; + #services.system76-scheduler.enable = true; + # Enable CUPS to print documents. + # services.printing.enable = true; + #hardware.bluetooth.enable = true; + +/* + xdg = { + portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + }; + }; +*/ + +} + diff --git a/system/desktop/plasma/plasma5.nix b/system/desktop/plasma/plasma5.nix new file mode 100644 index 0000000..bd5fe31 --- /dev/null +++ b/system/desktop/plasma/plasma5.nix @@ -0,0 +1,24 @@ +{lib, config, pkgs, ...}: +{ +services.xserver.enable = true; +services.xserver= { + xkb.layout ="de"; + xkb.variant = ""; +}; +services.xserver.displayManager.sddm.enable = true; +services.xserver.desktopManager.plasma5.enable = true; +environment.plasma5.excludePackages = with pkgs.libsForQt5; [ + plasma-browser-integration + #konsole + oxygen + kate +]; +qt = { + enable = true; + platformTheme = "gnome"; + style = "adwaita"; +}; +programs.dconf.enable = true; +services.xserver.displayManager.defaultSession = "plasmawayland"; + +} diff --git a/system/desktop/river/river.nix b/system/desktop/river/river.nix new file mode 100644 index 0000000..f2180ad --- /dev/null +++ b/system/desktop/river/river.nix @@ -0,0 +1,18 @@ +# called by Home manager +{ options, config, lib, pkgs, inputs, ... }: +{ + programs.river.enable = true; + #programs.river.package + /* + programs.river.extraPackages = with pkgs; + [ + #swaylock + #alacritty + #foot + #dmenu + wofi + light + ];*/ + #services.illum.enable = true; + +} diff --git a/system/desktop/themes.nix b/system/desktop/themes.nix new file mode 100644 index 0000000..f801a78 --- /dev/null +++ b/system/desktop/themes.nix @@ -0,0 +1,23 @@ +# called by home-manager +{ lib, config, pkgs, ... }: +{ + gtk = { + enable = true; + cursorTheme = { + package = pkgs.capitaine-cursors; + name = "capitaine-cursors"; + size = 32; + }; + iconTheme.package = pkgs.tela-icon-theme; + iconTheme.name = "Tela"; + + theme.package = pkgs.graphite-gtk-theme; + theme.name = "Graphite-Dark"; + }; + + qt = { + enable = true; + platformTheme = "gtk"; + }; +} + diff --git a/system/desktop/wallpaper/haskellwp.png b/system/desktop/wallpaper/haskellwp.png new file mode 100644 index 0000000..8e1d552 Binary files /dev/null and b/system/desktop/wallpaper/haskellwp.png differ diff --git a/system/desktop/xfce.nix b/system/desktop/xfce.nix new file mode 100644 index 0000000..154ad9a --- /dev/null +++ b/system/desktop/xfce.nix @@ -0,0 +1,28 @@ +{ lib, pkgs, config, ... }: +{ + services.xserver.enable = true; + services.xserver.desktopManager.xfce.enableXfwm = true; + # Enable the XFCE Desktop Environment. + services.xserver.displayManager.lightdm.enable = true; + services.xserver.desktopManager.xfce.enable = true; + programs.xwayland.enable = true; + # Configure keymap in X11 + services.xserver = { + layout = "de"; + xkbVariant = ""; + }; + environment.systemPackages = with pkgs; [ + xfce.xfce4-pulseaudio-plugin + ]; + + xdg = { + portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + }; + }; + +} diff --git a/system/desktop/xmonad/theme.yml b/system/desktop/xmonad/theme.yml new file mode 100644 index 0000000..0d0dfcf --- /dev/null +++ b/system/desktop/xmonad/theme.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x1b182c' + foreground: '0xcbe3e7' + + # Normal colors + normal: + black: '0x100e23' + red: '0xff8080' + green: '0x95ffa4' + yellow: '0xffe9aa' + blue: '0x91ddff' + magenta: '0xc991e1' + cyan: '0xaaffe4' + white: '0xcbe3e7' + + # Bright colors + bright: + black: '0x565575' + red: '0xff5458' + green: '0x62d196' + yellow: '0xffb378' + blue: '0x65b2ff' + magenta: '0x906cff' + cyan: '0x63f2f1' + white: '0xa6b3cc' diff --git a/system/desktop/xmonad/xfce.nix b/system/desktop/xmonad/xfce.nix new file mode 100644 index 0000000..dc2f29b --- /dev/null +++ b/system/desktop/xmonad/xfce.nix @@ -0,0 +1,27 @@ +{ lib, config, pkgs, ...}: +{ + imports = [ + ./xmonad.hs + ]; + services.xserver = { + desktopManager = { + xfce = { + enable = true; + noDesktop = true; + enableXfwm = false; + }; + }; + windowManager = { + xmonad = { + enable = true; + enableContribAndExtras = true; + extraPackages = haskellPackages : [ + haskellPackages.xmonad-contrib + haskellPackages.xmonad-extras + haskellPackages.xmonad + ]; + }; + }; + # displayManager.defaultSession = "xfce+xmonad"; + }; +} diff --git a/system/desktop/xmonad/xmonad-config.hs b/system/desktop/xmonad/xmonad-config.hs new file mode 100644 index 0000000..d05d58c --- /dev/null +++ b/system/desktop/xmonad/xmonad-config.hs @@ -0,0 +1,6 @@ +import XMonad + +main = xmonad defaultConfig + { modMask = mod1Mask -- super instead of alt (usually Windows key) + , terminal = "alacritty" + } diff --git a/system/desktop/xmonad/xmonad-manager.nix b/system/desktop/xmonad/xmonad-manager.nix new file mode 100644 index 0000000..b81919a --- /dev/null +++ b/system/desktop/xmonad/xmonad-manager.nix @@ -0,0 +1,25 @@ +{ lib, config, pkgs, ...}: +{ + xsession = { + enable = true; + + #initExtra = polybarOpts; + + windowManager.xmonad = { + #enable = true; + #enableContribAndExtras = true; + extraPackages = hp: [ + hp.dbus + hp.monad-logger + hp.xmonad-contrib + ]; + config = ./xmonad-config.hs; + }; + }; + + programs.rofi = { + enable = true; + terminal = "${pkgs.alacritty}/bin/alacritty"; + theme = ./theme.yml; + }; +} diff --git a/system/desktop/xmonad/xmonad.hs b/system/desktop/xmonad/xmonad.hs new file mode 100644 index 0000000..f5a8c45 --- /dev/null +++ b/system/desktop/xmonad/xmonad.hs @@ -0,0 +1,7 @@ + import XMonad + import XMonad.Config.Xfce + main = xmonad xfceConfig + { terminal = "alacritty" + , modMask = mod1Mask -- optional: use Win key instead of Alt as MODi key + , startupHook = ewmhDesktopsStartup >> setWMName "LG3D" -- for some reason the double greater sign is escaped here due to wiki formatting, replace this with proper greater signs! + } diff --git a/system/desktop/xmonad/xmonad.nix b/system/desktop/xmonad/xmonad.nix new file mode 100644 index 0000000..c086b87 --- /dev/null +++ b/system/desktop/xmonad/xmonad.nix @@ -0,0 +1,72 @@ +{ config, lib, pkgs, ... }: + +{ + /* + import = [ + ../../dm.nix + ]; + */ + services = { + gnome.gnome-keyring.enable = true; + upower.enable = true; + + dbus = { + enable = true; + packages = [ pkgs.dconf ]; + }; + + xserver = { + #startDbusSession = true; + + libinput = { + enable = true; + #disableWhileTyping = true; + }; + + #displayManager.defaultSession = "none+xmonad"; + + windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + extraPackages = haskellPackages: [ + haskellPackages.dbus + haskellPackages.List + haskellPackages.monad-logger + haskellPackages.xmobar + haskellPackages.xmonad-contrib + haskellPackages.xmonad-extras + ]; + }; + + xkbOptions = "caps:ctrl_modifier"; + + serverLayoutSection = '' + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" + ''; + + displayManager = { + defaultSession = "none+xmonad"; + }; + + }; + }; + + #hardware.bluetooth.enable = true; + services.blueman.enable = true; + + systemd.services.upower.enable = true; + + environment.systemPackages = with pkgs; [ + alacritty + ]; +/* + env = { + XMONAD_CONFIG_DIR_HOME = "$XDG_CONFIG_HOME/xmonad"; + XMONAD_CACHE_DIR = "$XDG_CONFIG_HOME/xmonad"; + XMONAD_DATA_DIR = "$XDG_CONFIG_HOME/xmonad"; + }; + */ + +} diff --git a/system/drivers/intapu.nix b/system/drivers/intapu.nix new file mode 100644 index 0000000..94770ab --- /dev/null +++ b/system/drivers/intapu.nix @@ -0,0 +1,29 @@ +{ lib, config, pkgs, ... }: +{ + hardware = { + opengl = { + extraPackages = with pkgs; [ + intel-media-driver + intel-ocl + vaapiIntel + vaapiVdpau + libvdpau + libvdpau-va-gl + ]; + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + video = { hidpi.enable = true; }; + }; + + powerManagement = { + enable = true; + cpuFreqGovernor = "powersave"; + resumeCommands = '' + modprobe -r psmouse + modprobe psmouse + ''; + }; + +} diff --git a/system/drivers/nvidia.nix b/system/drivers/nvidia.nix new file mode 100644 index 0000000..3e67560 --- /dev/null +++ b/system/drivers/nvidia.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: +{ + # GPU +/* +hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; +*/ + services.xserver.videoDrivers = ["nvidia"]; + #pkgs.autoAddDriverRunpath + hardware.nvidia = { + modesetting.enable = true; + # Enable power management (do not disable this unless you have a reason to). + # Likely to cause problems on laptops and with screen tearing if disabled. + powerManagement.enable = true; + # Do not disable this unless your GPU is unsupported or if you have a good reason to. + open = true; + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + + environment.systemPackages = with pkgs; [ + #nvtop-nvidia + nvtopPackages.nvidia + ]; + + +} diff --git a/system/drivers/razer.nix b/system/drivers/razer.nix new file mode 100644 index 0000000..bc1fa75 --- /dev/null +++ b/system/drivers/razer.nix @@ -0,0 +1,11 @@ +{ config, pkgs, lib, ...}: +{ + hardware.openrazer.enable = true; + hardware.openrazer.users = ["vieta"]; + /* + environment.systemPackages = with pkgs; [ + razergenie + ]; + */ +} + diff --git a/system/drivers/sound.nix b/system/drivers/sound.nix new file mode 100644 index 0000000..8bdc459 --- /dev/null +++ b/system/drivers/sound.nix @@ -0,0 +1,27 @@ +{ config, pkgs, lib, ...}: +{ +#sound.enable = true; + +security.rtkit.enable = true; +services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; +}; + # To enable disable pipewire + hardware.pulseaudio = { + enable = false; + extraConfig = " + load-module module-switch-on-connect + "; + support32Bit = true; + }; + hardware.bluetooth.settings = { + General = { + Enable = "Source,Sink,Media,Socket"; + }; + }; + +} + diff --git a/system/extras/guix.nix b/system/extras/guix.nix new file mode 100644 index 0000000..3453980 --- /dev/null +++ b/system/extras/guix.nix @@ -0,0 +1,6 @@ +{ lib , config, pkgs, ... }: +{ + + #services.guix.enable = true; + +} diff --git a/system/extras/stable.nix b/system/extras/stable.nix new file mode 100644 index 0000000..324e4b8 --- /dev/null +++ b/system/extras/stable.nix @@ -0,0 +1,6 @@ +{ lib, conifg, pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + xz + ]; +} diff --git a/system/home-manager/apps.nix b/system/home-manager/apps.nix new file mode 100644 index 0000000..11d4072 --- /dev/null +++ b/system/home-manager/apps.nix @@ -0,0 +1,77 @@ +{ options, config, lib, pkgs, inputs, nixvim,... }: +{ + home.packages = with pkgs; [ + #nixpkgs.overlays = [(self: super: { discord = super.discord.overrideAttrs (_: { src = builtins.fetchTarball https://discord.com/api/download?platform=linux&format=deb; });})]; + /* + (pkgs.discord.override { + withOpenASAR = true; + withVencord = true; + }) + */ + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + #vimpc + #vimiv-qt + + ]; + + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + wlrobs + #obs-backgroundremoval + #obs-pipewire-audio-capture + #droidcam-obs + ]; + }; + + + #home.file."./.config/nvim/" = { + # source = ./homeFiles/nvim; + # recursive = true; + #}; + + #xdg.configFile.nvim.source = ./homeFiles/nvim; + programs.nixvim = { + enable = true; + colorschemes.gruvbox.enable = false; + plugins.lightline.enable = true; + extraPlugins = with pkgs.vimPlugins; [ + #vim2nix + vim-nix + vim-lsp-ultisnips + vim-lsp + nerdtree + #haskellPackages.nvim-hs + ]; + opts = { + number = true; # Show line numbers + #relativenumber = true; # Show relative line numbers + shiftwidth = 2; # Tab width should be 2 + }; + }; + + +/* +programs.emacs = { + enable = true; + #package = pkgs.doom-emacs; # use programs.emacs.package instead if using home-manager +}; +*/ +/* + programs.vscode = { + enable = true; + package = pkgs.vscodium; + extensions = with pkgs.vscode-extensions; [ + #dracula-theme.theme-dracula + vscodevim.vim + #ayzhang.markdown-all-in-one + ]; + }; +*/ + + + +} diff --git a/system/home-manager/home-configuration.scm b/system/home-manager/home-configuration.scm new file mode 100644 index 0000000..63ee578 --- /dev/null +++ b/system/home-manager/home-configuration.scm @@ -0,0 +1,12 @@ +(use-modules (gnu home) + (gnu packages) + (gnu services) + (guix gexp) + (gnu home services shells)) + +(home-environment + ;; Unterhalb ist die Liste der Pakete, die in Ihrem Persönlichen Profil + ;; in ~/.guix-home/profile verfügbar sein werden. + (packages (specifications->packages (list "neofetch" + "pfetch"))) + diff --git a/system/home-manager/home.nix b/system/home-manager/home.nix new file mode 100644 index 0000000..55dc16c --- /dev/null +++ b/system/home-manager/home.nix @@ -0,0 +1,47 @@ +{ lib, config, pkgs, ... }: + +{ + imports = [ + ./apps.nix + #../desktop/xmonad/xmonad-manager.nix + #./theme.nix + #./plasma-manager.nix + #./hyperland-manager.nix + ]; + + home.username = "i3le"; + home.homeDirectory = "/home/i3le"; + home.stateVersion = "24.05"; + +programs = { + + nixpkgs = { + config = { + allowUnfree = true; + allowUnfreePredicate = (_: true); + }; + }; + + #programs.helix.themes = [ "base16_transparent" ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. +# home.file = { + # ".screenrc".source = dotfiles/screenrc; + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + # HELIX + # ".config/helix/config.toml".text = '' + # theme ="base16_transparent" + # ''; + # }; + home.sessionVariables = { + # EDITOR = "emacs"; + }; + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +}; + +} diff --git a/system/home-manager/theme.nix b/system/home-manager/theme.nix new file mode 100644 index 0000000..badcf9e --- /dev/null +++ b/system/home-manager/theme.nix @@ -0,0 +1,18 @@ +{ lib, config, pkgs, ... }: +{ +programs = { + # GTK + gtk.enable = true; + gtk.cursorTheme.package = pkgs.bibata-cursors; + gtk.cursorTheme.namee = "Bibata-Modern-Ice; + gtk.theme.package = pkgs.adw-gtk3; + gtk.theme.namee = "GruvboxPlus"; + + + # QT + qt.enable = true; + qt.style.name = "adwaita-dark"; + qt.style.package = pkgs.adwaita-qt; + }: + +} diff --git a/system/hosts/nixos/drives.nix b/system/hosts/nixos/drives.nix new file mode 100644 index 0000000..4b1864b --- /dev/null +++ b/system/hosts/nixos/drives.nix @@ -0,0 +1,12 @@ +{ config, pkgs, lib, ... }: +{ + + fileSystems."/mnt/Data1" = { + device = "/dev/disk/by-uuid/ba0058fd-0055-4c96-a6f6-210f1f1fb6e3"; + fsType = "ext4"; + options = [ "nofail" "user" "rw" "exec"]; + }; + + +} + diff --git a/system/hosts/nixos/hardware-configuration.nix b/system/hosts/nixos/hardware-configuration.nix new file mode 100644 index 0000000..51bb05a --- /dev/null +++ b/system/hosts/nixos/hardware-configuration.nix @@ -0,0 +1,72 @@ +# 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, ... }: + +{ + + boot.supportedFilesystems = [ "btrfs" ]; + + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/808ce7d4-256c-497e-8f78-83327350846c"; + fsType = "btrfs"; + options = [ "subvol=root" ]; + }; + + boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/926f0f32-87be-4c95-b840-64b4255bd3db"; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/808ce7d4-256c-497e-8f78-83327350846c"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/808ce7d4-256c-497e-8f78-83327350846c"; + fsType = "btrfs"; + options = [ "subvol=nix" ]; + }; + + fileSystems."/persist" = + { device = "/dev/disk/by-uuid/808ce7d4-256c-497e-8f78-83327350846c"; + fsType = "btrfs"; + options = [ "subvol=persist" ]; + }; + + fileSystems."/var/log" = + { device = "/dev/disk/by-uuid/808ce7d4-256c-497e-8f78-83327350846c"; + fsType = "btrfs"; + # enable noatime and zstd to the other subvolumes aswell + options = [ "subvol=log" "compress=zstd" "noatime" ]; + # to have a correct log order + neededForBoot = true; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/35B5-7D91"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp6s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/system/hosts/nixos/nixos.nix b/system/hosts/nixos/nixos.nix new file mode 100644 index 0000000..fd900e5 --- /dev/null +++ b/system/hosts/nixos/nixos.nix @@ -0,0 +1,142 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +{ config, lib, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ./drives.nix + ../../drivers/nvidia.nix + ../../drivers/razer.nix + ../../drivers/sound.nix + ../../desktop/plasma.nix + ]; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + nixpkgs.config.allowUnfree = true; + + boot = { + kernelPackages = pkgs.linuxPackages_cachyos; + #kernelPackages = pkgs.linuxPackages_zen; + #kernelPackages = pkgs.linuxPackages; + + extraModulePackages = with config.boot.kernelPackages; [ + v4l2loopback # akvcam + ]; + }; + chaotic.scx.enable = true; + chaotic.scx.scheduler = "scx_layered"; + + boot.supportedFilesystems = [ + "btrfs" + "ntfs" + # "bcachefs" + ]; + +services.wg-netmanager.enable = true; + networking.wireguard.enable = true; + networking.hostName = "nixos"; # Define your hostname. + # Pick only one of the below networking options. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + # Set your time zone. + # time.timeZone = "Europe/Amsterdam"; + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Select internationalisation properties. + # i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + # }; + + # Enable the X11 windowing system. + # services.xserver.enable = true; + + + + + # Configure keymap in X11 + # services.xserver.xkb.layout = "us"; + # services.xserver.xkb.options = "eurosign:e,caps:escape"; + + # Enable CUPS to print documents. + # services.printing.enable = true; + + # Enable sound. + # hardware.pulseaudio.enable = true; + # OR + # services.pipewire = { + # enable = true; + # pulse.enable = true; + # }; + + # Enable touchpad support (enabled default in most desktopManager). + # services.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + + # List packages installed in system profile. To search, run: + # $ nix search wget + # environment.systemPackages = with pkgs; [ + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + # ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + services.openssh.enable = true; + hardware.opentabletdriver.enable = true; + hardware.opentabletdriver.daemon.enable = true; + zramSwap.enable = true; + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "24.05"; # Did you read the comment? + +} + diff --git a/system/lang.nix b/system/lang.nix new file mode 100644 index 0000000..408e36e --- /dev/null +++ b/system/lang.nix @@ -0,0 +1,25 @@ +{ inputs, config, pkgs, ... }: +{ + + time.timeZone = "Europe/Berlin"; + + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + programs.dconf.enable = true; + + i18n.defaultLocale = "de_DE.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; + + console.keyMap = "de"; + +} diff --git a/users/i3le.nix b/users/i3le.nix new file mode 100644 index 0000000..3df77a5 --- /dev/null +++ b/users/i3le.nix @@ -0,0 +1,136 @@ +{ inputs, config, pkgs, ... }: +{ + services.udev.packages = with pkgs; [ + android-udev-rules + ]; + services.hardware.openrgb.enable = true; + programs.adb.enable = true; + users.users.i3le = { + isNormalUser = true; + extraGroups = [ + "wheel" "networkManager" "libvirtd" "video" + "user-with-access-to-virtualbox" "iwd" + "adbusers" + + ]; + shell = pkgs.bash; + packages = with pkgs; [ + signal-desktop + git + #cura + qcad + sshuttle + nextcloud-client + openrgb-with-all-plugins + bashInteractive + wl-clipboard + xclip + micro + neovim + firefox + tree + dino + #jtsi-meet + #ungoogled-chromium + #jami + #jitsi + tor-browser + #freetube + qpwgraph + #kate + #revolt-desktop + #librewolf + # Office + hexdino + #logseq + libreoffice-qt + okteta + okular + xournalpp + #libreoffice + # IDE + #ciscoPacketTracer8 + #texstudio + #jetbrains.idea-ultimate + # studio + #obs-studio + somafm-cli + razergenie + kdenlive + audacity + blender + mpv + # Extras + keepassxc + #helix + distrobox + podman-desktop + podman-compose + # Design + inkscape + krita + gimp + #cobang + prusa-slicer + #blender + openscad + #freecad + # imager + rpi-imager + # network + wireshark + nmap + #zmap + magic-wormhole-rs + #gns3-gui + # shellenv + #fh + # compress + unzip + p7zip + unrar + # memes + fastfetch + #nyancat + #oneke + # devel + adbfs-rootless + android-tools + # simulation + qucs-s + # shelli + shellify + shellspec + procs + delta + tokei + bat + file + ffmpeg#-headless + yt-dlp + fzf + git + fh + pandoc + imagemagick + typst + + # games + #xivlauncher + #sauerbraten + xbill + ]; + }; + + +/* + services.emacs = { + enable = true; + package = inputs.doom-emacs.packages..doom-emacs.override { + doomPrivateDir = ./dots/doom.d; + }; + }; +*/ + + +}