adding qcad and more

This commit is contained in:
Nixoskiste01 2024-09-07 08:36:34 +02:00
parent c02eb8255f
commit ee9a53dc09
67 changed files with 3323 additions and 2 deletions

View file

@ -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
# Done
- OptInState Ready
## TODO
- Add more configs
- Servers
- Diskosetup
- EraseYourDarlings

66
configuration.nix Normal file
View file

@ -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;
}

812
flake.lock Normal file
View file

@ -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
}

80
flake.nix Normal file
View file

@ -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
*/
];
};
};
};
}

7
services/bluetooth.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
hardware.bluetooth.enable = true;
}

View file

@ -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" ];
}

49
services/containers.nix Normal file
View file

@ -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 "<?php\n\n\$cfg['ShowPhpInfo'] = true; // Adds a link to phpinfo() on the home page\n\$cfg['SendErrorReports'] = 'never';" > /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;
}

24
services/guix.nix Normal file
View file

@ -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";
};
}

4
services/media.nix Normal file
View file

@ -0,0 +1,4 @@
{ lib, config, pkgs, ...}:
{
services.mpd.enable = true;
}

0
services/mosh.nix Normal file
View file

13
services/network.nix Normal file
View file

@ -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;
}

View file

@ -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

1
services/secrets/pre Normal file
View file

@ -0,0 +1 @@
JTecKVDA3RSfwcbaBtcEUG4RsTEUUJTJyb65aABQAmg=

1
services/secrets/private Normal file
View file

@ -0,0 +1 @@
cAiqoZUf8eYt0LOFL2PCrQ6ZPcsKbGyRSnZzPIdRlnI=

1
services/secrets/public Normal file
View file

@ -0,0 +1 @@
/W5HGgyFBPB+3GLRgKwkAB14d4TOhPDR/3sYHu1d/wI=

12
services/vms.nix Normal file
View file

@ -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" ];
}

67
services/vpn1.nix Normal file
View file

@ -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;
#};
};
}

53
services/vpn2.nix Normal file
View file

@ -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;
};
};
};
}

40
system/desktop/dm.nix Normal file
View file

@ -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";
})}";
*/
}

52
system/desktop/fonts.nix Normal file
View file

@ -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" ]; })*/
];
};
}

39
system/desktop/gnome.nix Normal file
View file

@ -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
];
}

View file

@ -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 = "<Ctrl><Alt>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 = ["<Super>q"];
maximize = "disabled";
#minimize = ["<Super>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 = ["<Super>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
];
}

View file

@ -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
];
}

View file

@ -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

105
system/desktop/hyprland.nix Normal file
View file

@ -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;
};
};
*/
}

View file

@ -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
'';
};
*/
}

View file

@ -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;
};
};
*/
}

View file

@ -0,0 +1,18 @@
{ lib, pkgs, config, inputs, ...}:
{
xdg = {
enable = true;
configFile."leftwm/themes/current" = {
source = ./xmobar;
#recursive = true;
};
portal.config.common.default = "";
};
}

View file

@ -0,0 +1,8 @@
{ lib, config, pkgs, ... }:
{
imports = [
../dm.nix
../fonts.nix
];
services.xserver.windowManager.leftwm.enable = true;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

View file

@ -0,0 +1,2 @@
#!/usr/bin/env bash
leftwm-command "SendWorkspaceToTag $1 $2"

View file

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

View file

@ -0,0 +1,3 @@
{% for w in workspaces %}
Static { xpos = {{w.x}} , ypos = {{w.y}}, width = {{w.w}}, height = 24 }
{% endfor %}

View file

@ -0,0 +1,12 @@
{% for tag in workspace.tags %}
{% if tag.mine %}
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`><fc=#FF0000> {{tag.name}} </fc></action>
{% elsif tag.visible %}
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`><fc=#FF9999> {{tag.name}} </fc></action>
{% elsif tag.busy %}
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`> {{tag.name}}* </action>
{% else %}
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`><fc=#FFFFFF> {{tag.name}} </fc></action>
{% endif %}
{% endfor %}
<fc=#555555> {{ window_title }}</fc>

View file

@ -0,0 +1,6 @@
(border_width: 2,
margin: 12,
default_border_color: "#222222",
floating_border_color: "#555555",
focused_border_color: "#FF3333",
)

35
system/desktop/leftwm/xmobar/up Executable file
View file

@ -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

View file

@ -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"," <tempF>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%"
}

38
system/desktop/plasma.nix Normal file
View file

@ -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
];
};
};
*/
}

View file

View file

@ -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
];
};
};
*/
}

View file

@ -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";
}

View file

@ -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;
}

23
system/desktop/themes.nix Normal file
View file

@ -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";
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

28
system/desktop/xfce.nix Normal file
View file

@ -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
];
};
};
}

View file

@ -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'

View file

@ -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";
};
}

View file

@ -0,0 +1,6 @@
import XMonad
main = xmonad defaultConfig
{ modMask = mod1Mask -- super instead of alt (usually Windows key)
, terminal = "alacritty"
}

View file

@ -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;
};
}

View file

@ -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 &gt;&gt; setWMName "LG3D" -- for some reason the double greater sign is escaped here due to wiki formatting, replace this with proper greater signs!
}

View file

@ -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";
};
*/
}

29
system/drivers/intapu.nix Normal file
View file

@ -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
'';
};
}

34
system/drivers/nvidia.nix Normal file
View file

@ -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
];
}

11
system/drivers/razer.nix Normal file
View file

@ -0,0 +1,11 @@
{ config, pkgs, lib, ...}:
{
hardware.openrazer.enable = true;
hardware.openrazer.users = ["vieta"];
/*
environment.systemPackages = with pkgs; [
razergenie
];
*/
}

27
system/drivers/sound.nix Normal file
View file

@ -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";
};
};
}

6
system/extras/guix.nix Normal file
View file

@ -0,0 +1,6 @@
{ lib , config, pkgs, ... }:
{
#services.guix.enable = true;
}

6
system/extras/stable.nix Normal file
View file

@ -0,0 +1,6 @@
{ lib, conifg, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
xz
];
}

View file

@ -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
];
};
*/
}

View file

@ -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")))

View file

@ -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;
};
}

View file

@ -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;
}:
}

View file

@ -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"];
};
}

View file

@ -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.<interface>.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;
}

View file

@ -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?
}

25
system/lang.nix Normal file
View file

@ -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";
}

136
users/i3le.nix Normal file
View file

@ -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;
};
};
*/
}