Compare commits

..

6 commits

Author SHA1 Message Date
5be4192143
Opened Firewall, Added Dashboard-stuff
Some checks failed
/ Check NixOS Configuration (push) Has been cancelled
2024-11-30 02:34:20 +01:00
e8e469f2a9
Trying to Connect to VMs 8080 Port 2024-11-30 02:19:06 +01:00
ec7839fa36
Added SSH Public Key 2024-11-30 02:18:21 +01:00
e77200dcd0
Added Run Instructions 2024-11-30 00:59:13 +01:00
bd8e133730
Fixed Module Enable 2024-11-30 00:58:59 +01:00
57a2d11ae6
Added Configuration for Audiobookshelf (does not evaluate yet)
Some checks are pending
/ Check NixOS Configuration (push) Waiting to run
2024-11-29 03:15:56 +01:00
57 changed files with 1121 additions and 2388 deletions

View file

@ -1,12 +1,23 @@
on: [push, pull_request, workflow_dispatch] on: [push, pull_request, workflow_dispatch]
jobs: jobs:
flake-check: build-HyperC:
runs-on: nixos runs-on: docker
name: "Check Nix Flake" container:
image: ghcr.io/lix-project/lix:latest
name: "Check NixOS Configuration"
steps: steps:
- name: "Git Clone" - name: "Git Clone"
run: git clone https://git.kb-one.de/kb01/aux-config . run: git clone https://git.kb-one.de/kb01/aux-config .
- name: "Check Nix Flake" - name: "Nix Flake Update"
run: nix flake check --extra-experimental-features 'nix-command flakes' run: nix flake update --experimental-features 'nix-command flakes'
- name: "Check evaluation"
run: nix flake check --no-build --all-systems --experimental-features 'nix-command flakes'
- name: "Do linting"
run: nix run nixpkgs#statix -- check . --experimental-features 'nix-command flakes'
- name: "Check formatting"
run: nix fmt -- --fail-on-change --experimental-features 'nix-command flakes'

View file

@ -1,9 +1,10 @@
keys: keys:
- &server_kb-game-01 age165jt2q3uxp79k4jfsegnq7ul9j54l2rqsn87rq0qjkcv3y5krcmqsznyw7 - &kbwork_yerukall CEFAA4772EBDE0F5CFD1D1B3ED7E4FF32820BDE8
- &client_LANA9Z age12v97unnfjmhm3ataxpl3mp89kxsr9hdqs4kmgsx8ys75m4ljey5qkf4t55 - &kbwork_yerukall2 age1lyv48cuxvnwp4ykugw57zjl728pn2tvss6486n9avgvw6uqj3ydqddkrmu
- &client_LoyAdjo age19tr9srawrft90s2a0cydqhuqt3f08aezmj82s43yhgzdte4fv4wstkchsz
creation_rules: creation_rules:
- path_regex: modules/nixos/services/minecraft/secrets.yaml$ - path_regex: systems/x86_64-linux/yerukall/secrets/secrets.yaml$
key_groups: key_groups:
- age: - pgp:
- *server_kb-game-01 - *kbwork_yerukall
age:
- *kbwork_yerukall2

View file

View file

@ -1,7 +1,7 @@
# My NixOS Configurations # My NixOS Configurations
![Forgejo Issues](https://img.shields.io/gitea/issues/open/kb01/nix-config?gitea_url=https%3A%2F%2Fgit.kb-one.de) ![Forgejo Issues](https://img.shields.io/gitea/issues/open/kb01/nix-config?gitea_url=https%3A%2F%2Fgit.kb-one.de)
![Forgejo Last Commit](https://img.shields.io/gitea/last-commit/kb01/aux-config?gitea_url=https%3A%2F%2Fgit.kb-one.de) ![Forgejo Release](https://img.shields.io/gitea/v/release/kb01/nix-config?gitea_url=https%3A%2F%2Fgit.kb-one.de)
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
This repository contains my Flake based NixOS Configuration Files. This repository contains my Flake based NixOS Configuration Files.
@ -14,46 +14,90 @@ Clone this Repository somewhere you can edit it easily:
git clone https://git.kb-one.de/kb01/aux-config ~/Project/aux-config git clone https://git.kb-one.de/kb01/aux-config ~/Project/aux-config
``` ```
Check if the Hostname of your System matches one of the [Systems](./systems/). Check if your Hostname matches one of the [Hosts](#hosts) in the config.
```bash ```bash
hostname hostname
``` ```
<details> <details>
<summary>Hostname does not Match (click to expand)</summary> <summary>Hostname does not Match (click to expand)</summary>
Install NixOS on the current System with forced Hostname. Install NixOS on the current system with forced hostname.
```bash ```bash
cd ~/Project/aux-config cd ~/Project/aux-config
sudo nixos-rebuild switch --flake .#LoyAdjo sudo nixos-rebuild switch --flake .#voloxo
``` ```
> **Warning** > **Warning**
> >
> This will change the Hostname of your System to LoyAdjo! > This will change the Hostname of your System to voloxo!
</details> </details>
Install NixOS System with current Hostname. Install NixOS for your current Hostname.
```bash ```bash
cd ~/Project/aux-config cd ~/Project/aux-config
sudo nixos-rebuild switch --flake . sudo nixos-rebuild switch --flake .
``` ```
### Updating the Flake based NixOS installation ### Updating the Flake Based NixOS Installation
```bash ```bash
cd ~/Project/aux-config cd ~/Project/aux-config
sudo nix flake --update # This Updates the flake.lock sudo nix flake --update # This Updates the flake.lock
sudo nixos-rebuild switch --flake . sudo nixos-rebuild switch --flake .
``` ```
### Modify NixOS installation ### Modify NixOS Installation
1. Edit the config in ~/Project/aux-config `vim system/x86_64-linux/$HOST/default.nix` 1. Edit the config in ~/Project/aux-config `vim system/x86_64-linux/$HOST/default.nix`
2. Stage the Changes if you created or deleted Files `git add .` (They will be ignored if you miss this step!) 2. Stage the Changes if you created or deleted Files `git add .` (They will be ignored if you miss this step!)
3. Build your System to apply the changes `sudo nixos-rebuild switch --flake .` 3. Build your System to apply the changes `sudo nixos-rebuild switch --flake .`
4. Commit your Changes if satisfied `git commit -m "Added Software hello-world"` 4. Commit your Changes if satisfied `git commit -m "Added Software hello-world"`
5. Then Push your Changes to the Remote, so that other systems can update `git push` 5. Then Push your Changes to the Remote, so that other systems can update `git push`
## Hosts
### [HyperC](./systems/x86_64-linux/HyperC)
Surface Pro 2017 Tablet
User: [kb@HyperC](./homes/x86_64-linux/kb@HyperC)
Cpu: Intel i5-7300U
Ram: 8GB
### [LoyAdjo](./systems/x86_64-linux/LoyAdjo)
My Gaming Desktop
User: [kb@LoyAdjo](./homes/x86_64-linux/kb@LoyAdjo)
Cpu: AMD Ryzen 5 5600X
Ram: 32GB
Gpu: NVIDIA GeForce GTX 1070
### [kb-games-01](./systems/x86_64-linux/kb-games-01)
My KVM Server for Gameservers (wip)
Cpu: AMD EPYC 7702P 64-Core (4 Cores)
Ram: 16GB
### [U3ncSovm](./systems/x86_64-linux/U3ncSovm)
My NAS Server, currently under construction only as VM.
Cpu: 3 Cores of Host
Ram: 3GB of Host
Build: `nixos-rebuild build-vm --flake .#U3ncSovm`
Run VM:
```bash
export QEMU_NET_OPTS="hostfwd=tcp::443-:443"
/nix/store/00your00hash00of00build999999999-nixos-vm/bin/run-U3ncSovm-vm
```
## License ## License
[MIT © kB01](./LICENSE) [MIT © kB01](../LICENSE)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

133
flake.lock generated
View file

@ -3,11 +3,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1673956053,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -37,11 +37,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1726560853,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -74,11 +74,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1681202837,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -127,11 +127,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748227609, "lastModified": 1732482255,
"narHash": "sha256-SaSdslyo6UGDpPUlmrPA4dWOEuxCy2ihRN9K6BnqYsA=", "narHash": "sha256-GUffLwzawz5WRVfWaWCg78n/HrBJrOG7QadFY6rtV8A=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "d23d20f55d49d8818ac1f1b2783671e8a6725022", "rev": "a9953635d7f34e7358d5189751110f87e3ac17da",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -143,15 +143,15 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1746827285, "lastModified": 1729298361,
"narHash": "sha256-hsFe4Tsqqg4l+FfQWphDtjC79WzNCZbEFhHI8j2KJzw=", "narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
"rev": "47aad376c87e2e65967f17099277428e4b3f8e5a", "rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/47aad376c87e2e65967f17099277428e4b3f8e5a.tar.gz?rev=47aad376c87e2e65967f17099277428e4b3f8e5a" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/2.93.0.tar.gz" "url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
} }
}, },
"lix-module": { "lix-module": {
@ -159,18 +159,20 @@
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"flakey-profile": "flakey-profile", "flakey-profile": "flakey-profile",
"lix": "lix", "lix": "lix",
"nixpkgs": "nixpkgs" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1746838955, "lastModified": 1729360442,
"narHash": "sha256-11R4K3iAx4tLXjUs+hQ5K90JwDABD/XHhsM9nkeS5N8=", "narHash": "sha256-6U0CyPycIBc04hbYy2hBINnVso58n/ZyywY2BD3hu+s=",
"rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc", "rev": "9098ac95768f7006d7e070b88bae76939f6034e6",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz?rev=cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc" "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/9098ac95768f7006d7e070b88bae76939f6034e6.tar.gz?rev=9098ac95768f7006d7e070b88bae76939f6034e6"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz" "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"
} }
}, },
"nix-minecraft": { "nix-minecraft": {
@ -182,11 +184,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748225187, "lastModified": 1732585961,
"narHash": "sha256-gpNN43fNJQoHhnK1Z+nms4lo6i/t9t2rfZMAxc165vQ=", "narHash": "sha256-qZk3i/Kk3JL4roSeXlrD2rqjsowBVzoBkXHIzxBGyPs=",
"owner": "Infinidoge", "owner": "Infinidoge",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "98c1bcaaa4dbd5980523a08a5b32e35d44e830e5", "rev": "eb1c9ac4398dcc55d644003548c64964c854fac1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -195,49 +197,13 @@
"type": "github" "type": "github"
} }
}, },
"nixlib": {
"locked": {
"lastModified": 1736643958,
"narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixos-generators": {
"inputs": {
"nixlib": "nixlib",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1747663185,
"narHash": "sha256-Obh50J+O9jhUM/FgXtI3he/QRNiV9+J53+l+RlKSaAk=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-generators",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1747900541, "lastModified": 1732483221,
"narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", "narHash": "sha256-kF6rDeCshoCgmQz+7uiuPdREVFuzhIorGOoPXMalL2U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", "rev": "45348ad6fb8ac0e8415f6e5e96efe47dd7f39405",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -249,27 +215,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1746663147, "lastModified": 1732014248,
"narHash": "sha256-Ua0drDHawlzNqJnclTJGf87dBmaO/tn7iZ+TCkTRpRc=", "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dda3dcd3fe03e991015e9a74b22d35950f264a54", "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1748190013,
"narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "62b852f6c6742134ade1abdd2a21685fd617a291",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -284,9 +234,8 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"lix-module": "lix-module", "lix-module": "lix-module",
"nix-minecraft": "nix-minecraft", "nix-minecraft": "nix-minecraft",
"nixos-generators": "nixos-generators",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs",
"snowfall-lib": "snowfall-lib", "snowfall-lib": "snowfall-lib",
"sops-nix": "sops-nix" "sops-nix": "sops-nix"
} }
@ -300,11 +249,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1736130495, "lastModified": 1732544274,
"narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=", "narHash": "sha256-qvzLIxuqukl0nxpXHEh5+iw1BLeLxYOwRC0+7cFUbPo=",
"owner": "snowfallorg", "owner": "snowfallorg",
"repo": "lib", "repo": "lib",
"rev": "02d941739f98a09e81f3d2d9b3ab08918958beac", "rev": "cfeacd055545ab5de0ecfd41e09324dcd8fb2bbb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -320,11 +269,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747603214, "lastModified": 1732575825,
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", "narHash": "sha256-xtt95+c7OUMoqZf4OvA/7AemiH3aVuWHQbErYQoPwFk=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", "rev": "3433ea14fbd9e6671d0ff0dd45ed15ee4c156ffa",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -6,67 +6,45 @@
snowfall-lib.inputs.nixpkgs.follows = "nixpkgs"; snowfall-lib.inputs.nixpkgs.follows = "nixpkgs";
sops-nix.url = "github:Mic92/sops-nix"; sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs"; sops-nix.inputs.nixpkgs.follows = "nixpkgs";
lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"; lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
lix-module.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-minecraft.url = "github:Infinidoge/nix-minecraft"; nix-minecraft.url = "github:Infinidoge/nix-minecraft";
nix-minecraft.inputs.nixpkgs.follows = "nixpkgs"; nix-minecraft.inputs.nixpkgs.follows = "nixpkgs";
nixos-generators.url = "github:nix-community/nixos-generators";
nixos-generators.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs: inputs.snowfall-lib.mkFlake { outputs = inputs: inputs.snowfall-lib.mkFlake {
inherit inputs; inherit inputs;
src = ./.; src = ./.;
# Configure Nix channels-config.allowUnfree = false;
nix.gc = { nix.gc = {
automatic = true; automatic = true;
options = "--delete-older-than 30d"; options = "--delete-older-than 30d";
}; };
nix.optimise.automatic = true; nix.optimise.automatic = true;
channels-config.allowUnfree = false;
# Configure Flake Utils Plus
supportedSystems = inputs.snowfall-lib.inputs.flake-utils-plus.lib.defaultSystems ++ ["i686-linux"];
# Configure Snowfall Lib
snowfall = {
meta.name = "kB01s System Configuration Flake";
meta.title = "kB01s System Configuration Flake";
namespace = "kb-one";
};
# Modules for Host HyperC # Modules for Host HyperC
systems.hosts.HyperC.modules = with inputs; [ systems.hosts.HyperC.modules = with inputs; [
lix-module.nixosModules.default
]; ];
# Modules for Host LoyAdjo # Modules for Host voloxo
systems.hosts.LoyAdjo.modules = with inputs; [ systems.hosts.voloxo.modules = with inputs; [
lix-module.nixosModules.default
]; ];
# Modules for Host Rubtrm # Modules for Host kb-games-01
systems.hosts.Rubtrm.modules = with inputs; [ systems.hosts.kb-games-01.modules = with inputs; [
# lix-module.nixosModules.default
]; ];
# Modules that get imported to every NixOS system # Modules that get imported to every NixOS system
systems.modules.nixos = with inputs; [ systems.modules.nixos = with inputs; [
sops-nix.nixosModules.sops lix-module.nixosModules.default
]; ];
outputs-builder = channels: { formatter = channels.nixpkgs.nixfmt-rfc-style; }; outputs-builder = channels: { formatter = channels.nixpkgs.nixfmt-rfc-style; };
}; };
# outputs = { self, nixpkgs, ... }@inputs: {
# nixosConfigurations."Rubtrm" = nixpkgs.lib.nixosSystem {
# system = "i686-linux";
# modules = [ ./systems/i686-linux/Rubtrm/default.nix ];
# };
# };
} }

View file

@ -22,12 +22,13 @@ in {
kdePackages.kcalc kdePackages.kcalc
fastfetch fastfetch
btop btop
kdePackages.filelight filelight
# Office # Office
thunderbird thunderbird
libreoffice-qt libreoffice-qt
logseq logseq
xournalpp xournalpp
xournal
rnote rnote
# Security # Security
gnupg gnupg
@ -66,7 +67,6 @@ in {
# Development # Development
vscodium vscodium
scrcpy scrcpy
android-tools
# Experiments # Experiments
# Gaming # Gaming
prismlauncher prismlauncher

View file

@ -1,23 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
{
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
commandLineArgs = [
"--extension-mime-request-handling=always-prompt-for-install" # Enable Extension-Install Dialogue
"--enable-features=ClearDataOnExit,NoReferrers,SpoofWebGLInfo" # Feature Flags
"--no-default-browser-check"
];
extensions = [
{ # Chromium Web Store
id = "ocaahdebbfolfmndjeplogmgcagdmblk";
updateUrl = "https://github.com/NeverDecaf/chromium-web-store/releases/latest/download/Chromium.Web.Store.crx";
}
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock Origin
{ id = "edibdbjcniadpccecjdfdjjppcpchdlm"; } # I still don't care about cookies
{ id = "oboonakemofpalcgghocfoadofidjkkk"; } # KeePassXC-Browser
{ id = "oldceeleldhonbafppcapldpdifcinji"; } # LanguageTool
{ id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; } # dark reader
];
};
}

View file

@ -1,14 +1,24 @@
{ config, pkgs, lib, inputs, ... }: { config, pkgs, lib, inputs, ... }:
{ let
imports = [ # Firefox Profile Setting States
./firefox.nix lock-false = {
./chromium.nix Value = false;
]; Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
lock-empty-string = {
Value = "";
Status = "locked";
};
in {
home.username = "kb"; home.username = "kb";
home.homeDirectory = "/home/kb"; home.homeDirectory = "/home/kb";
home.packages = with pkgs; [ home.packages = with pkgs; [
# System # System
kdePackages.kate kate
kdePackages.kcalc kdePackages.kcalc
# Office # Office
thunderbird thunderbird
@ -38,6 +48,7 @@
signal-desktop signal-desktop
webcord webcord
# Customization # Customization
nerdfonts
razergenie razergenie
firefoxpwa firefoxpwa
# Development # Development
@ -50,11 +61,8 @@
mangohud mangohud
prismlauncher prismlauncher
# Terminal Tools # Terminal Tools
tmux
mosh
btop btop
fastfetch fastfetch
kb-one.olympus
]; ];
services.syncthing.enable = true; services.syncthing.enable = true;
@ -62,11 +70,77 @@
"--config=/home/kb/.config/syncthing" "--config=/home/kb/.config/syncthing"
"--data=/home/kb/sync" "--data=/home/kb/sync"
]; ];
services.safeeyes.enable = true;
services.gpg-agent.enable = true; services.gpg-agent.enable = true;
services.ssh-agent.enable = true; services.ssh-agent.enable = true;
programs.firefox = {
enable = true;
nativeMessagingHosts = [ pkgs.firefoxpwa ];
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableFirefoxAccounts = true;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
OfferToSaveLogins = false;
FirefoxHome.TopSites = false;
FirefoxHome.SponsoredTopSites = false;
Preferences = {
"browser.newtabpage.pinned" = lock-empty-string;
"browser.topsites.contile.enabled" = lock-false;
};
DontCheckDefaultBrowser = true;
DisableProfileImport = true;
SearchBar = "unified";
SearchEngines.Add = [ # Only Available in ESR Releases https://mozilla.github.io/policy-templates/#searchengines--add
{
Name = "Brave";
URLTemplate = "https://search.brave.com/search?q={SearchTerms}";
Alias = "br";
}
];
ExtensionSettings = { # See https://mozilla.github.io/policy-templates/#extensionsettings
"extension@tabliss.io" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/3940751/tabliss-2.6.0.xpi";
installation_mode = "normal_installed";
};
"gdpr@cavi.au.dk" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4362793/consent_o_matic-1.1.3.xpi";
installation_mode = "normal_installed";
};
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4382536/ublock_origin-1.61.0.xpi";
installation_mode = "normal_installed";
};
"keepassxc-browser@keepassxc.org" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4376326/keepassxc_browser-1.9.4.xpi";
installation_mode = "normal_installed";
};
"offline-qr-code@rugk.github.io" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4349427/offline_qr_code_generator-1.9.xpi";
installation_mode = "normal_installed";
};
"addon@darkreader.org" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4378073/darkreader-4.9.96.xpi";
installation_mode = "normal_installed";
};
"firefoxpwa@filips.si" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4383345/pwas_for_firefox-2.13.1.xpi";
installation_mode = "normal_installed";
};
};
Bookmarks = [
{
Title = "Syncthing";
URL = "localhost:8384";
Placement = "toolbar";
}
];
};
};
home.stateVersion = "24.05"; home.stateVersion = "24.05";
} }

View file

@ -1,176 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
let
# Firefox Profile Setting States
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
lock-empty-string = {
Value = "";
Status = "locked";
};
in {
programs.firefox = {
enable = true;
nativeMessagingHosts = [ pkgs.firefoxpwa ];
policies = {
# --------- Privacy ---------
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableFirefoxAccounts = true;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
OfferToSaveLogins = false;
FirefoxHome.TopSites = false;
FirefoxHome.SponsoredTopSites = false;
Preferences = {
"browser.newtabpage.pinned" = lock-empty-string;
"browser.topsites.contile.enabled" = lock-false;
};
# -------- Opiniated --------
DontCheckDefaultBrowser = true;
DisableProfileImport = true;
SearchBar = "unified";
SearchEngines.Add = [ # Only Available in ESR Releases https://mozilla.github.io/policy-templates/#searchengines--add
{
Name = "Brave";
URLTemplate = "https://search.brave.com/search?q={SearchTerms}";
Alias = "br";
}
];
# Extensions https://mozilla.github.io/policy-templates#extensionsettings
ExtensionSettings = {
"uBlock0@raymondhill.net" = { # uBlock Origin: https://addons.mozilla.org/en-US/firefox/addon/ublock-origin
install_url = "https://addons.mozilla.org/firefox/downloads/file/4458450/ublock_origin-1.63.2.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"idcac-pub@guus.ninja" = { # I still don't care about cookies: https://addons.mozilla.org/en-US/firefox/addon/istilldontcareaboutcookies/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4216095/istilldontcareaboutcookies-1.1.4.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"keepassxc-browser@keepassxc.org" = { # KeePassXC-Browser: https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser
install_url = "https://addons.mozilla.org/firefox/downloads/file/4441759/keepassxc_browser-1.9.7.xpi";
installation_mode = "normal_installed";
};
"offline-qr-code@rugk.github.io" = { # Offline QR Code Generator: https://addons.mozilla.org/en-US/firefox/addon/offline-qr-code-generator/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4349427/offline_qr_code_generator-1.9.xpi";
installation_mode = "normal_installed";
};
"addon@darkreader.org" = { # Dark Reader: https://addons.mozilla.org/en-US/firefox/addon/darkreader/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4439735/darkreader-4.9.103.xpi";
installation_mode = "normal_installed";
};
"languagetool-webextension@languagetool.org" = { # LanguageTool: https://addons.mozilla.org/en-US/firefox/addon/languagetool
install_url = "https://addons.mozilla.org/firefox/downloads/file/4470413/languagetool-8.19.4.xpi";
installation_mode = "normal_installed";
};
};
Bookmarks = [
{
Title = "Syncthing";
URL = "localhost:8384";
Placement = "toolbar";
}
{
Title = "BayZeit";
URL = "https://bayzeit-web.ur.de/";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Zimbra";
URL = "https://my.ohmportal.de/zimbra/#1";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Moodle";
URL = "https://elearning.ohmportal.de/my/courses.php";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Ohmportal";
URL = "https://my.ohmportal.de/";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Intranet";
URL = "https://intern.ohmportal.de/seitenbaum/home/page.html";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Kantine Hohfederstraße";
URL = "https://www.werkswelt.de/?id=hohf";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Kantine Keßlerplatz";
URL = "https://www.werkswelt.de/index.php?id=mohm";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "NixOS Search - Packages";
URL = "https://search.nixos.org/packages?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "NixOS Search - Options";
URL = "https://search.nixos.org/options?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Home Manager Search - Options";
URL = "https://home-manager-options.extranix.com/?release=master";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Lix";
URL = "https://lix.systems/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Homepage";
URL = "https://auxolotl.org/en/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Forum";
URL = "https://forum.aux.computer/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "NixOS & Flakes Book";
URL = "https://nixos-and-flakes.thiscute.world/introduction/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Nix Pills";
URL = "https://nixos.org/guides/nix-pills/";
Placement = "toolbar";
Folder = "NixOS";
}
];
};
};
}

View file

@ -1,79 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
{
imports = [
./firefox.nix
./ssh.nix
];
home.username = "kb";
home.homeDirectory = "/home/kb";
home.packages = with pkgs; [
# System
kdePackages.kate
kdePackages.kcalc
# Office
thunderbird
libreoffice-qt6-fresh
logseq
kdePackages.itinerary
ungoogled-chromium
# Security
gnupg
keepassxc
pass-wayland
veracrypt
protonvpn-gui
# Media
freetube
inkscape
blender
obs-studio
cheese
gimp
vlc
kid3
#calibre
spotify-player
tidal-hifi
# Messengers
element-desktop # Matrix Client
signal-desktop
deltachat-desktop
webcord
# Customization
razergenie
firefoxpwa
# Development
vscodium
scrcpy
# Experiments
yazi # Terminal File-Manager
# Gaming
ryujinx # Experimental Nitendo Switch Emulator
mangohud
prismlauncher
kb-one.olympus
gnome-sudoku
# Terminal Tools
mosh
btop
fastfetch
];
services.syncthing.enable = true;
services.syncthing.extraOptions = [
"--config=/home/kb/.config/syncthing"
"--data=/home/kb/sync"
];
services.kdeconnect.enable = true;
services.safeeyes.enable = true;
services.gpg-agent.enable = true;
programs.vim.enable = true;
programs.vim.defaultEditor = true;
programs.helix.enable = true;
home.stateVersion = "24.05";
}

View file

@ -1,127 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
let
# Firefox Profile Setting States
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
lock-empty-string = {
Value = "";
Status = "locked";
};
in {
programs.firefox = {
enable = true;
nativeMessagingHosts = []; # pkgs.firefoxpwa removed. I use ungoogled-chromiums PWA Implementation for better stability.
policies = {
# --------- Privacy ---------
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableFirefoxAccounts = true;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
OfferToSaveLogins = false;
FirefoxHome.TopSites = false;
FirefoxHome.SponsoredTopSites = false;
Preferences = {
"browser.newtabpage.pinned" = lock-empty-string;
"browser.topsites.contile.enabled" = lock-false;
};
# -------- Opiniated --------
DontCheckDefaultBrowser = true;
DisableProfileImport = true;
SearchBar = "unified";
SearchEngines.Add = [ # Only Available in ESR Releases https://mozilla.github.io/policy-templates/#searchengines--add
{
Name = "Brave";
URLTemplate = "https://search.brave.com/search?q={SearchTerms}";
Alias = "br";
}
];
# Extensions https://mozilla.github.io/policy-templates#extensionsettings
ExtensionSettings = {
"uBlock0@raymondhill.net" = { # uBlock Origin: https://addons.mozilla.org/en-US/firefox/addon/ublock-origin
install_url = "https://addons.mozilla.org/firefox/downloads/file/4458450/ublock_origin-1.63.2.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"idcac-pub@guus.ninja" = { # I still don't care about cookies: https://addons.mozilla.org/en-US/firefox/addon/istilldontcareaboutcookies/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4216095/istilldontcareaboutcookies-1.1.4.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"keepassxc-browser@keepassxc.org" = { # KeePassXC-Browser: https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser
install_url = "https://addons.mozilla.org/firefox/downloads/file/4441759/keepassxc_browser-1.9.7.xpi";
installation_mode = "normal_installed";
};
"offline-qr-code@rugk.github.io" = { # Offline QR Code Generator: https://addons.mozilla.org/en-US/firefox/addon/offline-qr-code-generator/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4349427/offline_qr_code_generator-1.9.xpi";
installation_mode = "normal_installed";
};
"addon@darkreader.org" = { # Dark Reader: https://addons.mozilla.org/en-US/firefox/addon/darkreader/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4439735/darkreader-4.9.103.xpi";
installation_mode = "normal_installed";
};
"languagetool-webextension@languagetool.org" = { # LanguageTool: https://addons.mozilla.org/en-US/firefox/addon/languagetool
install_url = "https://addons.mozilla.org/firefox/downloads/file/4470413/languagetool-8.19.4.xpi";
installation_mode = "normal_installed";
};
};
Bookmarks = [
{
Title = "Syncthing";
URL = "localhost:8384";
Placement = "toolbar";
}
{
Title = "NixOS Search - Packages";
URL = "https://search.nixos.org/packages?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "NixOS Search - Options";
URL = "https://search.nixos.org/options?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Home Manager Search - Options";
URL = "https://home-manager-options.extranix.com/?release=master";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Lix";
URL = "https://lix.systems/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Homepage";
URL = "https://auxolotl.org/en/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Forum";
URL = "https://forum.aux.computer/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Nix Pills";
URL = "https://nixos.org/guides/nix-pills/";
Placement = "toolbar";
Folder = "NixOS";
}
];
};
};
}

View file

@ -1,52 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
{
# SSH Configuration
services.ssh-agent.enable = true;
programs.ssh.enable = true;
programs.ssh.matchBlocks."kb01@kb-one-git" = {
host = "git.kb-one.de";
user = "git";
identityFile = "~/.ssh/kb01@kb-one-git";
port = 9522;
};
programs.ssh.matchBlocks."kb01@0x90-git" = {
host = "git.0x90.space";
user = "git";
identityFile = "~/.ssh/kb01@0x90-git";
};
programs.ssh.matchBlocks."master@pkpnafs" = {
host = "pkpnafs";
hostname = "pkpnafs.kb-one.de";
user = "master";
identityFile = "~/.ssh/master@pkpnafs";
port = 3422;
};
programs.ssh.matchBlocks."master@kb-web-01" = {
host = "kb-web-01";
hostname = "kb-one.de";
user = "master";
identityFile = "~/.ssh/master@kb-web-01";
port = 2222;
};
programs.ssh.matchBlocks."remoteunlock-senfnvp" = {
host = "remoteunlock-senfnvp";
hostname = "senfnvp.kb-one.de";
user = "root";
identityFile = "~/.ssh/remoteunlock-senfnvp";
port = 7299;
};
programs.ssh.matchBlocks."master@senfnvp" = {
host = "senfnvp";
hostname = "senfnvp.kb-one.de";
user = "master";
identityFile = "~/.ssh/master@senfnvp";
port = 9553;
};
programs.ssh.matchBlocks."master@mow0m" = {
host = "mow0m";
hostname = "mow0m.lan";
user = "master";
identityFile = "~/.ssh/master@mow0m";
port = 9553;
};
}

View file

@ -1,43 +0,0 @@
{
inputs,
config,
lib,
pkgs,
system,
...
}:
let
cfg = config.hardware.bosto-touchpad;
in
{
options.hardware.bosto-touchpad.enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "Enable Bosto Touchpad Support";
};
config = lib.mkIf (cfg.enable) {
# boot.kernelModules = [ "hid-magicmouse" ];
# Add Driver Options to extra ModprobeConfig, to support reloading hid-magicmouse
boot.extraModprobeConfig = ''
options hid-magicmouse emulate_scroll_wheel=Y emulate_3button=Y middle_click_3finger=Y scroll_acceleration=Y scroll_speed=10
'';
# Service to load Driver with options
systemd.services."bostoService" = {
description = "Bosto Touchpad Service";
path = [ pkgs.kmod ];
serviceConfig = {
Type = "oneshot";
ExecStart = ''
${pkgs.kmod.out}/bin/modprobe -r hid-magicmouse
${pkgs.kmod.out}/bin/modprobe hid-magicmouse emulate_scroll_wheel=Y emulate_3button=Y middle_click_3finger=Y scroll_acceleration=Y scroll_speed=10
'';
};
wantedBy = [ "multi-user.target" ];
};
};
}

View file

@ -1,38 +0,0 @@
{
inputs,
config,
lib,
pkgs,
system,
...
}:
let
cfg = config.hardware.t2-mac-WirelessReload;
in
{
options.hardware.t2-mac-WirelessReload.enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "Reloads the Wireless Drivers";
};
config = lib.mkIf (cfg.enable) {
# Service to load Driver with options
systemd.services."t2-mac-WirelessReload" = {
description = "Reloads Wireless Drivers for Mac";
path = [ pkgs.kmod ];
serviceConfig = {
Type = "oneshot";
ExecStart = ''
${pkgs.kmod.out}/bin/modprobe -r brcmfmac_wcc || true
${pkgs.kmod.out}/bin/modprobe -r brcmfmac || true
${pkgs.kmod.out}/bin/modprobe brcmfmac || true
${pkgs.kmod.out}/bin/modprobe -r hci_bcm4377 || true
${pkgs.kmod.out}/bin/modprobe hci_bcm4377 || true
'';
};
wantedBy = [ "multi-user.target" ];
};
};
}

View file

@ -0,0 +1,43 @@
{ inputs, config, lib, pkgs, ... }:
let
cfg = config.services.minecraft;
in
{
imports = [
inputs.nix-minecraft.nixosModules.minecraft-servers
./vanilla-test.nix
./survival.nix
./velocity.nix
];
options.services.minecraft = {
enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "Enable minecraft server";
};
servers.vanilla.enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "test server";
};
servers.survival.enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "Survival Server";
};
servers.velocity.enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "Velocity Proxy Server";
};
};
config = lib.mkIf cfg.enable {
services.minecraft-servers = {
enable = true;
eula = true;
};
};
}

View file

@ -0,0 +1,39 @@
{
inputs,
config,
lib,
pkgs,
system,
...
}:
let
cfg = config.services.minecraft;
in
{
config = lib.mkIf (cfg.enable && cfg.servers.survival.enable) {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"minecraft-server"
];
services.minecraft-servers.servers."survival" = {
enable = true;
autoStart = true;
enableReload = true;
package = pkgs.paperServers.paper-1_21_3-build_25;
whitelist = {
kB01guy = "1ff88b66-beda-4386-85b9-a00a5c27437a";
};
serverProperties = {
difficulty = 3;
gamemode = 1;
max-players = 5;
};
openFirewall = false; # Should use Velocity Player Proxy
serverProperties.server-port = 41000;
symlinks = {
"plugins/LuckPerms.jar" = pkgs.fetchurl { url = "https://download.luckperms.net/1561/bukkit/loader/LuckPerms-Bukkit-5.4.146.jar"; sha512 = "3yx163xas6g30crj41ad8j9gh55ygfh7vbaq12hlm4rxf1npnxh95rhn2nx0qcjd4nl1rz8f8pbvmlh6ka32ahvn6x9rxsc8g6v24jz"; };
};
};
};
}

View file

@ -0,0 +1,30 @@
{
inputs,
config,
lib,
pkgs,
system,
...
}:
let
cfg = config.services.minecraft;
in
{
config = lib.mkIf (cfg.enable && cfg.servers.vanilla.enable) {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"minecraft-server"
];
services.minecraft-servers.servers."vanilla-test" = {
enable = true;
autoStart = true;
enableReload = true;
package = pkgs.vanillaServers.vanilla;
whitelist = {
kB01guy = "1ff88b66-beda-4386-85b9-a00a5c27437a";
};
openFirewall = true;
};
};
}

View file

@ -0,0 +1,30 @@
{
inputs,
config,
lib,
pkgs,
system,
...
}:
let
cfg = config.services.minecraft;
in
{
config = lib.mkIf (cfg.enable && cfg.servers.velocity.enable) {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"minecraft-server"
];
services.minecraft-servers.servers."velocity" = {
enable = true;
autoStart = true;
enableReload = true;
package = pkgs.velocityServers.velocity;
openFirewall = true;
symlinks = {
"plugins/LuckPerms.jar" = pkgs.fetchurl { url = "https://download.luckperms.net/1561/velocity/LuckPerms-Velocity-5.4.146.jar"; sha512 = "1xk7fwb5z3bz0x3hpmnyg7cldzrf9anpp4aavq5s69lz2idzxvkjn9b5iv2yy22p17k26lqwfn8n9ivi59srz2hvgdb1jibqg5d5hj5"; };
};
};
};
}

View file

@ -0,0 +1,29 @@
{
inputs,
config,
lib,
pkgs,
system,
...
}:
let
cfg = config.services.nas;
in
{
config = lib.mkIf (cfg.enable && cfg.servers.audiobookshelf.enable) {
services.audiobookshelf = {
enable = true;
port = 63001;
};
services.traefik.dynamicConfigOptions = {
http.routers.audiobookshelf.entrypoints = "websecure";
http.routers.audiobookshelf.tls = true;
http.routers.audiobookshelf.rule = "Host(`audiobookshelf.localhost`)";
http.routers.audiobookshelf.service = "audiobookshelf";
services.audiobookshelf.loadBalancer.servers = [ { url = "http://localhost:63001/"; } ];
};
};
}

View file

@ -0,0 +1,29 @@
{ inputs, config, lib, pkgs, ... }:
let
cfg = config.services.nas;
in
{
imports = [
./traefik-proxy.nix
./audiobookshelf.nix
];
options.services.nas = {
enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "Enable NAS Server Configuration";
};
useTraefik.enable = lib.mkOption {
type = with lib.types; uniq bool;
default = true;
description = "Enables Traefik Reverese Proxy";
};
servers.audiobookshelf.enable = lib.mkOption {
type = with lib.types; uniq bool;
default = false;
description = "Audiobookshelf Server";
};
};
}

View file

@ -0,0 +1,37 @@
{
inputs,
config,
lib,
pkgs,
system,
...
}:
let
cfg = config.services.nas;
in
{
config = lib.mkIf (cfg.enable && cfg.useTraefik.enable) {
# Default Config
services.traefik = {
enable = true;
staticConfigOptions = {
entryPoints.web.address = ":80";
entryPoints.websecure.address = ":443";
};
};
networking.firewall.interfaces.eth0.allowedTCPPorts = [ 80 443 ];
# Enable Secure Dashboard
services.traefik.staticConfigOptions.api = {};
services.traefik.dynamicConfigOptions = {
http.routers.dashboard.entrypoints = "websecure";
http.routers.dashboard.tls = true;
http.routers.dashboard.rule = "Host(`traefik.localhost`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))";
http.routers.dashboard.service = "api@internal";
http.routers.dashboard.middlewares = "auth";
http.middlewares.auth.basicauth.users = "master:\$\$2y\$\$05\$\$JwzsNHz7CMJh0RU1eMe3AOfY5H30Qr1Q/glS1r/qEHCNpo5LvWnRW";
};
};
}

View file

@ -1,105 +0,0 @@
{ config, lib, pkgs, ... }:
# Source: https://github.com/Lykos153/numen-nix
with lib;
let
cfg = config.services.numen;
in
{
options.services.numen = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Enables Numen Voice Control. Only available to Users in Group "input".
'';
};
numenPkg = mkOption {
type = types.package;
default = pkgs.kb-one.numen;
};
modelPkg = mkOption {
type = types.package;
default = pkgs.kb-one.vosk-model-small-en-us;
description = ''
Vosk model to be loaded by numen. Overrides modelPkg!
'';
};
# models = mkOption {
# type = types.uniq types.listOf types.package;
# default = [vosk-model-small-en-us];
# example = "[vosk-model-small-en-us]";
# description = ''
# List of vosk models to be loaded by numen. They can be referred to using the index, eg. model0 or model1.
# '';
# };
dotoolPkg = mkOption {
type = types.package;
default = pkgs.kb-one.dotool;
};
autoStart = mkOption {
type = types.bool;
default = true;
};
phrases = mkOption {
type = types.listOf types.path;
default = [
./phrases/character.phrases
./phrases/control.phrases
./phrases/environment.phrases
./phrases/voice.phrases
];
description = ''
Phrases to be loaded by numen. If empty, the default phrases are used.
'';
};
extraArgs = mkOption {
type = types.singleLineStr;
default = "";
description = ''
Additional arguments to be passed to numen.
'';
};
dotoolXkbLayout = mkOption {
type = types.singleLineStr;
default = "de";
description = ''
The XKB keyboard layout that should be used by dotool.
'';
};
};
config = mkIf cfg.enable {
# System Configuration
environment.systemPackages = [
cfg.numenPkg
cfg.dotoolPkg
cfg.modelPkg
];
services.udev.extraRules = ''
KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"
'';
# Enable AutoStart Service
systemd.user.services.numen = mkIf cfg.autoStart {
description = "Numen voice control";
after = [ "graphical-session-pre.target" ];
partOf = [ "graphical-session.target" ];
wantedBy = [ "graphical-session.target" ];
environment = {
DOTOOL_XKB_LAYOUT = "${cfg.dotoolXkbLayout}";
NUMEN_MODEL = "${cfg.modelPkg}/usr/share/vosk-models/small-en-us/";
};
serviceConfig.ExecStart = "${cfg.numenPkg}/bin/numen ${cfg.extraArgs} ${lib.strings.concatStringsSep " " cfg.phrases}";
};
};
}

View file

@ -1,71 +0,0 @@
air: press a
bat: press b
cap: press c
drum: press d
each: press e
fig: press f
gust: press g
hoof: press h
ice: press i
jive: press j
kid: press k
link: press l
made: press m
nerd: press n
odd: press o
pit: press p
quench: press q
red: press r
sun: press s
trap: press t
urge: press u
void: press v
whiz: press w
plex: press x
yank: press y
zip: press z
newt: press 0
one: press 1
two: press 2
three: press 3
four: press 4
five: press 5
six: press 6
sept: press 7
eight: press 8
nine: press 9
ask: press question
plus: press plus
mine: press minus
tide: press asciitilde
yell: press exclam
quid: press dollar
score: press underscore
clause: press colon
same: press semicolon
wax: press parenleft
wane: press parenright
curl: press braceleft
crimp: press braceright
bric: press bracketleft
brac: press bracketright
small: press less
big: press greater
star: press asterisk
hash: press numbersign
mood: press percent
blunt: press asciicircum
snail: press at
gain: press ampersand
vert: press bar
spoke: press quotedbl
mark: press apostrophe
tick: press grave
slash: press slash
slope: press backslash
list: press comma
point: press period
match: press equal

View file

@ -1,85 +0,0 @@
space: press space
yes: press Return
tab: press Tab
scape: stick off \
press Escape
# Enable a modifier for the next press
# (The Super modifier is also known as the "Windows key")
shy: mod shift
troy: mod ctrl
hype: mod alt
shock: mod super \
stick off
# Clear modifiers
cleanse: mod clear \
caps off \
stick off
# Enable Caps Lock until the end of the sentence or you say "cleanse"
shout: caps on
<complete>: caps off
# Start holding down each pressed key, and stop by saying "cleanse"
squeeze: run notify-send STICKING & \
stick off \
stick on
hack: press BackSpace
mince: press BackSpace BackSpace
toss: press Delete
smite: press Delete Delete
raze: press BackSpace BackSpace BackSpace BackSpace
# Delete a word (depending on the program)
swipe: press ctrl+BackSpace
left: press Left
right: press Right
up: press Up
down: press Down
lunge: press Left Left
rush: press Right Right
leave: press Left Left Left Left
charge: press Right Right Right Right
# I use these to navigate words and to complete bits of shell autosuggestions
stretch: press ctrl+Right
wrench: press ctrl+Left
# PageDown, PageUp, Home, End
page: press Next
reel: press Prior
home: press Home
end: press End
# Paste the clipboard (depending on the program)
gluten: stick off \
press XF86Paste
# Repeat the previous press etc.
more: repeat 1
bunch: repeat 2
handful: repeat 4
fistful: repeat 8
plateful: repeat 12
frank one: press F1
frank two: press F2
frank three: press F3
frank four: press F4
frank five: press F5
frank six: press F6
frank sept: press F7
frank eight: press F8
frank nine: press F9
frank one newt: press F10
frank one one: press F11
frank one two: press F12
# This saves your changes in vi-style programs
save: caps off \
press Escape colon w Return
# This cycles round splits in Vim
switch: caps off \
press Escape ctrl+w w

View file

@ -1,36 +0,0 @@
# I use these for managing application windows but they just simulate keys,
# so you'll need to configure your desktop environment, or you can use my
# preconfigured desktop environment: https://git.sr.ht/~geb/tiles
# Navigate to the window in the given direction
west: stick off \
press super+Left
east: stick off \
press super+Right
north: stick off \
press super+Up
south: stick off \
press super+Down
# Cycle round the windows
cycle: stick off \
press super+c
recycle: stick off \
press super+C
# Close window
exterminate: stick off \
press super+q
# Toggle fullscreen
screen: stick off \
press super+f
# These two are just for --gadget mode.
# Switch to controlling the gadget
@gadget shock gadget: handler uinput
# Switch to controlling the host machine
@gadget shock host: handler gadget

View file

@ -1,67 +0,0 @@
# Cancel sentence
# For example, "four down no five down" would just do "five down".
@cancel no:
# Transcribe a sentence
# For example, "scribe please type this".
@transcribe scribe: set numen_fmt echo normal \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# Transcribe a sentence formatted...
# With the first letter uppercase
@transcribe scrub: set numen_fmt echo sentence \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# With Each First Letter Uppercase
@transcribe tight scribe: set numen_fmt echo title \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# with_underscrores_inbetween
@transcribe snake: set numen_fmt echo snake \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# with-dashes-inbetween
@transcribe dash: set numen_fmt echo dash \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# with.dots.inbetween
@transcribe dot scribe: set numen_fmt echo dot \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# with, commas, inbetween
@transcribe roh scribe: set numen_fmt echo list \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# with/slashes/inbetween
@transcribe path scribe: set numen_fmt echo path \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# allsmashedtogether
@transcribe kludge: set numen_fmt echo smash \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# camelCase
@transcribe camel: set numen_fmt echo camel \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# PascalCase
@transcribe pascal: set numen_fmt echo pascal \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# dot.camelCase
@transcribe dot camel: set numen_fmt echo dotcamel \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# dot.PascalCase
@transcribe dot pascal: set numen_fmt echo dotpascal \
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
# (You can also do "shout scribe" etc.)
# Erase the transcription
ditch: eval /etc/numen/scripts/transcripts | sed 's/./ BackSpace/g; s/^/press/; q'
# Go to the start of the transcription
trudge: eval /etc/numen/scripts/transcripts | sed 's/./ Left/g; s/^/press/; q'
# Menus to type or choose another transcription result
# They use the dmenu command (only works in X11) or the command specified
# by $NUMEN_DMENU or $DMENU (you could use wmenu if you're on Wayland).
transcripts: run /etc/numen/scripts/menu | numenc & \
run sleep 0.1
change: run /etc/numen/scripts/menu change | numenc & \
run sleep 0.1
# Ignore this, vosk-model-small-en-us-0.15 can output huh after a long silence.
huh:

View file

@ -1,18 +0,0 @@
{ fetchFromSourcehut, buildGoModule, pkg-config, libxkbcommon, tree }:
# Source: https://github.com/Lykos153/numen-nix
buildGoModule rec {
pname = "dotool";
version = "1.5";
src = fetchFromSourcehut {
owner = "~geb";
repo = pname;
rev = version;
hash = "sha256-4QmTHeU3TnpRATKIvilkIA3i2hDjM5zQwSvmRvoWuNE=";
};
vendorHash = "sha256-IQ847LHDYJPboWL/6lQNJ4vPPD/+xkrGI2LSZ7kBnp4=";
nativeBuildInputs = [ pkg-config tree ];
buildInputs = [ libxkbcommon ];
postInstall = ''
install -D $src/80-dotool.rules $out/lib/udev/rules.d/80-dotool.rules
'';
}

View file

@ -1,66 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkgs,
...
}:
stdenv.mkDerivation rec {
pname = "intel-media-sdk";
version = "23.2.2";
src = fetchFromGitHub {
owner = "Intel-Media-SDK";
repo = "MediaSDK";
rev = "intel-mediasdk-${version}";
hash = "sha256-wno3a/ZSKvgHvZiiJ0Gq9GlrEbfHCizkrSiHD6k/Loo=";
};
patches = [
# Search oneVPL-intel-gpu in NixOS specific /run/opengl-driver/lib directory
# See https://github.com/NixOS/nixpkgs/pull/315425
./nixos-search-onevplrt-in-run-opengl-driver-lib.patch
# https://github.com/Intel-Media-SDK/MediaSDK/pull/3005
(pkgs.fetchpatch {
name = "include-cstdint-explicitly.patch";
url = "https://github.com/Intel-Media-SDK/MediaSDK/commit/a4f37707c1bfdd5612d3de4623ffb2d21e8c1356.patch";
hash = "sha256-OPwGzcMTctJvHcKn5bHqV8Ivj4P7+E4K9WOKgECqf04=";
})
];
nativeBuildInputs = [
pkgs.cmake
pkgs.pkg-config
];
buildInputs = [
pkgs.libdrm
pkgs.libva
pkgs.xorg.libpciaccess
pkgs.xorg.libX11
pkgs.xorg.libXau
pkgs.xorg.libXdmcp
pkgs.xorg.libpthreadstubs
];
nativeCheckInputs = [ pkgs.gtest ];
cmakeFlags = [
"-DBUILD_SAMPLES=OFF"
"-DBUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DUSE_SYSTEM_GTEST=ON"
];
doCheck = true;
meta = with lib; {
description = "Intel Media SDK";
mainProgram = "mfx-tracer-config";
license = licenses.mit;
maintainers = with maintainers; [
midchildan
pjungkamp
];
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View file

@ -1,45 +0,0 @@
From aceb689ae69857def8a26a8d1ceb114ccfbb2569 Mon Sep 17 00:00:00 2001
From: Philipp Jungkamp <p.jungkamp@gmx.net>
Date: Tue, 28 May 2024 19:22:29 +0200
Subject: [PATCH] NixOS: Search ONEVPLRT in /run/opengl-driver/lib
---
api/mfx_dispatch/linux/mfxloader.cpp | 2 ++
.../suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp | 1 +
2 files changed, 3 insertions(+)
diff --git a/api/mfx_dispatch/linux/mfxloader.cpp b/api/mfx_dispatch/linux/mfxloader.cpp
index 39b6bff1..f76ed65d 100644
--- a/api/mfx_dispatch/linux/mfxloader.cpp
+++ b/api/mfx_dispatch/linux/mfxloader.cpp
@@ -193,6 +193,7 @@ mfxStatus LoaderCtx::Init(mfxInitParam& par)
if (selected_runtime && strcmp(selected_runtime, "ONEVPL") == 0) {
libs.emplace_back(ONEVPLRT);
libs.emplace_back(MFX_MODULES_DIR "/" ONEVPLRT);
+ libs.emplace_back("/run/opengl-driver/lib/" ONEVPLRT);
} else if ((selected_runtime && strcmp(selected_runtime, "MSDK") == 0) || (platform != MFX_HW_UNKNOWN)) {
if (MFX_IMPL_BASETYPE(par.Implementation) == MFX_IMPL_AUTO ||
MFX_IMPL_BASETYPE(par.Implementation) == MFX_IMPL_AUTO_ANY) {
@@ -213,6 +214,7 @@ mfxStatus LoaderCtx::Init(mfxInitParam& par)
} else {
libs.emplace_back(ONEVPLRT);
libs.emplace_back(MFX_MODULES_DIR "/" ONEVPLRT);
+ libs.emplace_back("/run/opengl-driver/lib/" ONEVPLRT);
}
mfxStatus mfx_res = MFX_ERR_UNSUPPORTED;
diff --git a/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp b/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
index dedee0b3..9657da4b 100644
--- a/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
+++ b/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
@@ -123,6 +123,7 @@ TEST_P(DispatcherLibsTestParametrized, ShouldEnumerateCorrectLibNames)
{
libs.emplace_back(ONEVPLRT);
libs.emplace_back(modules_dir + "/" + ONEVPLRT);
+ libs.emplace_back("/run/opengl-driver/lib/" + ONEVPLRT);
}
for (const std::string& lib : libs)
--
2.44.0

View file

@ -1,88 +0,0 @@
{ fetchFromSourcehut
, stdenv
, buildGoModule
, makeWrapper
, scdoc
, pkgs
, lib
, alsa-utils
, libxkbcommon
, gnused
, gawk
, coreutils
, libnotify
, dmenu
, procps
}:
# Source: https://github.com/Lykos153/numen-nix
buildGoModule rec {
pname = "numen";
version = "master";
vendorHash = "sha256-Y3CbAnIK+gEcUfll9IlEGZE/s3wxdhAmTJkj9zlAtoQ=";
src = fetchFromSourcehut {
owner = "~geb";
repo = pname;
rev = version;
hash = "sha256-haiaMBq9xbcDd83Kmm00Xc7823U+90DworOZk9H2n9w=";
};
allowGoReference = true;
preBuild = ''
export CGO_CFLAGS="-I${pkgs.kb-one.vosk-bin}/include"
export CGO_LDFLAGS="-L${pkgs.kb-one.vosk-bin}/lib"
'';
nativeBuildInputs = [
makeWrapper
scdoc
];
ldflags = [
"-X main.Version=${version}"
"-X main.DefaultModelPackage=vosk-model-small-en-us"
"-X main.DefaultModelPaths=${pkgs.kb-one.vosk-model-small-en-us}/usr/share/vosk-models/small-en-us"
"-X main.DefaultPhrasesDir=${placeholder "out"}/etc/numen/phrases"
];
# This is necessary because while the scripts are copied relative to
# the nix store, the hard-coded paths inside the scripts themselves
# still point outside of the store.
patchPhase = ''
substituteInPlace scripts/* \
--replace /etc/numen/scripts "$out/etc/numen/scripts" \
--replace sed ${gnused}/bin/sed \
--replace awk ${gawk}/bin/awk \
--replace cat ${coreutils}/bin/cat \
--replace notify-send ${libnotify}/bin/notify-send
substituteInPlace scripts/menu \
--replace "-dmenu" "-${dmenu}/bin/dmenu"
substituteInPlace scripts/displaying \
--replace "(pgrep" "(${procps}/bin/pgrep" \
--replace "(ps" "(${procps}/bin/ps"
substituteInPlace phrases/* \
--replace /etc/numen/scripts "$out/etc/numen/scripts" \
--replace numenc "$out/bin/numenc"
substituteInPlace numenc \
--replace /bin/echo "${coreutils}/bin/echo" \
--replace cat "${coreutils}/bin/cat"
'';
installPhase = ''
runHook preInstall
install -Dm755 $GOPATH/bin/numen -t "$out/bin"
install -Dm755 numenc -t "$out/bin"
install -Dm755 scripts/* -t "$out/scripts"
install -Dm644 phrases/* -t "$out/prases"
sed -i "s:/etc/numen/scripts:${placeholder "out"}/scripts:g" \
$out/scripts/* \
$out/prases/*
mkdir -p "$out/usr/share/man/man1" || exit
scdoc < doc/numen.1.scd > "$out/usr/share/man/man1/numen.1" || exit
echo Installed Successfully.
runHook postInstall
'';
postFixup = ''
wrapProgram $out/bin/numen \
--prefix PATH : ${lib.makeBinPath [ pkgs.kb-one.dotool alsa-utils ]} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libxkbcommon stdenv.cc.cc.lib ]} \
'';
}

View file

@ -1,153 +0,0 @@
{
lib,
fetchFromGitHub,
fetchzip,
buildFHSEnv,
buildDotnetModule,
dotnetCorePackages,
luajitPackages,
sqlite,
libarchive,
curl,
love,
xdg-utils,
writeShellScript,
# These need overriding if you launch Celeste/Loenn/MiniInstaller from Olympus.
# Some examples:
# - null: Use default wrapper.
# - "": Do not use wrapper.
# - steam-run: Use steam-run.
# - "steam-run": Use steam-run command available from PATH.
# - writeShellScriptBin { ... }: Use a custom script.
# - ./my-wrapper.sh: Use a custom script.
# In any case, it can be overridden at runtime by OLYMPUS_{CELESTE,LOENN,MINIINSTALLER}_WRAPPER.
celesteWrapper ? null,
loennWrapper ? null,
miniinstallerWrapper ? null,
skipHandlerCheck ? false, # whether to skip olympus xdg-mime check, true will override it
}:
let
lua_cpath =
with luajitPackages;
lib.concatMapStringsSep ";" getLuaCPath [
(buildLuarocksPackage {
pname = "lsqlite3";
version = "0.9.6-1";
src = fetchzip {
url = "https://lua.sqlite.org/home/zip/lsqlite3_v096.zip";
hash = "sha256-Mq409A3X9/OS7IPI/KlULR6ZihqnYKk/mS/W/2yrGBg=";
};
buildInputs = [ sqlite.dev ];
})
lua-subprocess
nfd
];
# When installing Everest, Olympus uses MiniInstaller, which is dynamically linked.
miniinstaller-fhs = buildFHSEnv {
pname = "olympus-miniinstaller-fhs";
inherit version;
targetPkgs =
pkgs:
(with pkgs; [
icu
openssl
dotnet-runtime # Without this, MiniInstaller will install dotnet itself.
]);
};
wrapper-to-env =
wrapper:
if lib.isDerivation wrapper then
lib.getExe wrapper
else if wrapper != null then
wrapper
else
"";
miniinstaller-wrapper =
if miniinstallerWrapper == null then
(writeShellScript "miniinstaller-wrapper" "exec ${lib.getExe miniinstaller-fhs} -c \"$@\"")
else
(wrapper-to-env miniinstallerWrapper);
pname = "olympus";
phome = "$out/lib/${pname}";
# The following variables are to be updated by the update script.
version = "25.02.07.01";
buildId = "4624"; # IMPORTANT: This line is matched with regex in update.sh.
rev = "f4cd9dc973e68dc9b6c043941d5ab57f93b63ac4";
in
buildDotnetModule {
inherit pname version;
src = fetchFromGitHub {
inherit rev;
owner = "EverestAPI";
repo = "Olympus";
fetchSubmodules = true; # Required. See upstream's README.
hash = "sha256-I0tDqe7XvieL0kj8njzaNx3taY2VpFewi/SnYRCi4tk=";
};
nativeBuildInputs = [
libarchive # To create the .love file (zip format).
];
nugetDeps = ./deps.json;
projectFile = "sharp/Olympus.Sharp.csproj";
executables = [ ];
installPath = "${placeholder "out"}/lib/${pname}/sharp";
# See the 'Dist: Update src/version.txt' step in azure-pipelines.yml from upstream.
preConfigure = ''
echo ${version}-nixos-${buildId}-${builtins.substring 0 5 rev} > src/version.txt
'';
# The script find-love is hacked to use love from nixpkgs.
# It is used to launch Loenn from Olympus.
# I assume --fused is so saves are properly made (https://love2d.org/wiki/love.filesystem).
preInstall = ''
mkdir -p ${phome}
makeWrapper ${lib.getExe love} ${phome}/find-love \
--add-flags "--fused"
mkdir -p $out/bin
makeWrapper ${phome}/find-love $out/bin/olympus \
--prefix LUA_CPATH ";" "${lua_cpath}" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ curl ]}" \
--suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" \
--set-default OLYMPUS_MINIINSTALLER_WRAPPER "${miniinstaller-wrapper}" \
--set-default OLYMPUS_CELESTE_WRAPPER "${wrapper-to-env celesteWrapper}" \
--set-default OLYMPUS_LOENN_WRAPPER "${wrapper-to-env loennWrapper}" \
--set-default OLYMPUS_SKIP_SCHEME_HANDLER_CHECK ${if skipHandlerCheck then "1" else "0"} \
--add-flags ${phome}/olympus.love \
--set DOTNET_ROOT ${dotnetCorePackages.runtime_8_0}/share/dotnet
bsdtar --format zip --strip-components 1 -cf ${phome}/olympus.love src
'';
postInstall = ''
install -Dm644 lib-linux/olympus.desktop $out/share/applications/olympus.desktop
install -Dm644 src/data/icon.png $out/share/icons/hicolor/128x128/apps/olympus.png
install -Dm644 LICENSE $out/share/licenses/${pname}/LICENSE
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Cross-platform GUI Everest installer and Celeste mod manager";
homepage = "https://github.com/EverestAPI/Olympus";
downloadPage = "https://everestapi.github.io/#olympus";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
ulysseszhan
petingoso
];
mainProgram = "olympus";
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.aarch; # Celeste doesn't support aarch in the first place
};
}

View file

@ -1,317 +0,0 @@
[
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
},
{
"pname": "Microsoft.NETCore.Targets",
"version": "1.1.0",
"hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="
},
{
"pname": "Mono.Cecil",
"version": "0.11.4",
"hash": "sha256-HrnRgFsOzfqAWw0fUxi/vkzZd8dMn5zueUeLQWA9qvs="
},
{
"pname": "MonoMod",
"version": "22.1.4.3",
"hash": "sha256-kindD5YUjBWsopvEnmOL4XsldgwE1zRrmMxIh6nDua8="
},
{
"pname": "MonoMod.RuntimeDetour",
"version": "22.1.4.3",
"hash": "sha256-m7FN3SGME4GRGuc7l5ClCT9W3mXqbbhAJHHpWwYqLi8="
},
{
"pname": "MonoMod.RuntimeDetour.HookGen",
"version": "22.1.4.3",
"hash": "sha256-DuOnuXQcS63Z/y5s3q5FHZiqWTPgayNpylkzRzl6pE4="
},
{
"pname": "MonoMod.Utils",
"version": "22.1.4.3",
"hash": "sha256-0KyqozOCC26+z5+Ah35iFvRwrPXvvxDlEq6gLl5lPNU="
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.1",
"hash": "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo="
},
{
"pname": "runtime.any.System.Collections",
"version": "4.3.0",
"hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="
},
{
"pname": "runtime.any.System.Globalization",
"version": "4.3.0",
"hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU="
},
{
"pname": "runtime.any.System.IO",
"version": "4.3.0",
"hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE="
},
{
"pname": "runtime.any.System.Reflection",
"version": "4.3.0",
"hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk="
},
{
"pname": "runtime.any.System.Reflection.Extensions",
"version": "4.3.0",
"hash": "sha256-Y2AnhOcJwJVYv7Rp6Jz6ma0fpITFqJW+8rsw106K2X8="
},
{
"pname": "runtime.any.System.Reflection.Primitives",
"version": "4.3.0",
"hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ="
},
{
"pname": "runtime.any.System.Resources.ResourceManager",
"version": "4.3.0",
"hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4="
},
{
"pname": "runtime.any.System.Runtime",
"version": "4.3.0",
"hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM="
},
{
"pname": "runtime.any.System.Runtime.Handles",
"version": "4.3.0",
"hash": "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4="
},
{
"pname": "runtime.any.System.Runtime.InteropServices",
"version": "4.3.0",
"hash": "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA="
},
{
"pname": "runtime.any.System.Text.Encoding",
"version": "4.3.0",
"hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs="
},
{
"pname": "runtime.any.System.Threading.Tasks",
"version": "4.3.0",
"hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4="
},
{
"pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps="
},
{
"pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I="
},
{
"pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA="
},
{
"pname": "runtime.native.System",
"version": "4.3.0",
"hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y="
},
{
"pname": "runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I="
},
{
"pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM="
},
{
"pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4="
},
{
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0="
},
{
"pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4="
},
{
"pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g="
},
{
"pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc="
},
{
"pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw="
},
{
"pname": "runtime.unix.System.Diagnostics.Debug",
"version": "4.3.0",
"hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI="
},
{
"pname": "runtime.unix.System.Private.Uri",
"version": "4.3.0",
"hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs="
},
{
"pname": "runtime.unix.System.Runtime.Extensions",
"version": "4.3.0",
"hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4="
},
{
"pname": "System.Collections",
"version": "4.3.0",
"hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc="
},
{
"pname": "System.Collections.NonGeneric",
"version": "4.3.0",
"hash": "sha256-8/yZmD4jjvq7m68SPkJZLBQ79jOTOyT5lyzX4SCYAx8="
},
{
"pname": "System.Collections.Specialized",
"version": "4.3.0",
"hash": "sha256-QNg0JJNx+zXMQ26MJRPzH7THdtqjrNtGLUgaR1SdvOk="
},
{
"pname": "System.ComponentModel",
"version": "4.3.0",
"hash": "sha256-i00uujMO4JEDIEPKLmdLY3QJ6vdSpw6Gh9oOzkFYBiU="
},
{
"pname": "System.ComponentModel.Primitives",
"version": "4.3.0",
"hash": "sha256-IOMJleuIBppmP4ECB3uftbdcgL7CCd56+oAD/Sqrbus="
},
{
"pname": "System.ComponentModel.TypeConverter",
"version": "4.3.0",
"hash": "sha256-PSDiPYt8PgTdTUBz+GH6lHCaM1YgfObneHnZsc8Fz54="
},
{
"pname": "System.Diagnostics.Debug",
"version": "4.3.0",
"hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM="
},
{
"pname": "System.Globalization",
"version": "4.3.0",
"hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="
},
{
"pname": "System.Globalization.Extensions",
"version": "4.3.0",
"hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk="
},
{
"pname": "System.IO",
"version": "4.3.0",
"hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="
},
{
"pname": "System.IO.FileSystem.Primitives",
"version": "4.3.0",
"hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg="
},
{
"pname": "System.Linq",
"version": "4.3.0",
"hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A="
},
{
"pname": "System.Private.Uri",
"version": "4.3.0",
"hash": "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM="
},
{
"pname": "System.Reflection",
"version": "4.3.0",
"hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY="
},
{
"pname": "System.Reflection.Emit.ILGeneration",
"version": "4.7.0",
"hash": "sha256-GUnQeGo/DtvZVQpFnESGq7lJcjB30/KnDY7Kd2G/ElE="
},
{
"pname": "System.Reflection.Emit.Lightweight",
"version": "4.7.0",
"hash": "sha256-V0Wz/UUoNIHdTGS9e1TR89u58zJjo/wPUWw6VaVyclU="
},
{
"pname": "System.Reflection.Extensions",
"version": "4.3.0",
"hash": "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk="
},
{
"pname": "System.Reflection.Primitives",
"version": "4.3.0",
"hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM="
},
{
"pname": "System.Reflection.TypeExtensions",
"version": "4.7.0",
"hash": "sha256-GEtCGXwtOnkYejSV+Tfl+DqyGq5jTUaVyL9eMupMHBM="
},
{
"pname": "System.Resources.ResourceManager",
"version": "4.3.0",
"hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo="
},
{
"pname": "System.Runtime",
"version": "4.3.0",
"hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="
},
{
"pname": "System.Runtime.Extensions",
"version": "4.3.0",
"hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o="
},
{
"pname": "System.Runtime.Handles",
"version": "4.3.0",
"hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms="
},
{
"pname": "System.Runtime.InteropServices",
"version": "4.3.0",
"hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="
},
{
"pname": "System.Text.Encoding",
"version": "4.3.0",
"hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg="
},
{
"pname": "System.Threading",
"version": "4.3.0",
"hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="
},
{
"pname": "System.Threading.Tasks",
"version": "4.3.0",
"hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="
},
{
"pname": "YamlDotNet",
"version": "9.1.0",
"hash": "sha256-WbMPOLkbyN+SdMrBYuaXV2qKB+bLTV+6RdSFSy/iljk="
}
]

View file

@ -1,32 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts nixfmt-rfc-style
set -eu -o pipefail
attr=olympus
nix_file=$(nix-instantiate --eval --strict -A "$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
api() {
curl -s "https://dev.azure.com/EverestAPI/Olympus/_apis/$1?api-version=7.1"
}
pipeline_id=$(api pipelines | jq -r '
.value
| map(select(.name == "EverestAPI.Olympus"))
| .[0].id
')
run_id=$(api pipelines/$pipeline_id/runs | jq -r '
.value
| map(select(.result == "succeeded"))
| max_by(.finishedDate)
| .id
')
sed -i 's|buildId\s*=\s*".*";|buildId = "'$run_id'";|' $nix_file
run=$(api pipelines/$pipeline_id/runs/$run_id)
commit=$(echo "$run" | jq -r '.resources.repositories.self.version')
version=$(echo "$run" | jq -r '.name')
update-source-version $attr $version --rev=$commit
"$(nix-build --attr $attr.fetch-deps --no-out-link)"

View file

@ -1,40 +0,0 @@
{ stdenv, fetchurl, unzip, system }:
# Source https://github.com/Lykos153/numen-nix
let
getSource = system: version: let
sources = {
x86_64-linux = {
systemString = "linux-x86_64";
sha256 = "sha256-u9yO2FxDl59kQxQoiXcOqVy/vFbP+1xdzXOvqHXF+7I=";
};
aarch64-linux = {
systemString = "linux-aarch64";
sha256 = "sha256-ReldN3Vd6wdWjnlJfX/rqMA67lqeBx3ymWGqAj/ZRUE=";
};
i686-linux = {
systemString = "linux-x86";
sha256 = "sha256-tTnvwieAlIvZji7LnBuSygizxVKhh0T3ICq3hAW44fk=";
};
};
in {
url = "https://github.com/alphacep/vosk-api/releases/download/v${version}/vosk-${(builtins.getAttr system sources).systemString}-${version}.zip";
sha256 = (builtins.getAttr system sources).sha256;
};
in
stdenv.mkDerivation rec {
# todo: other arches as well.
name = "vosk-bin";
version = "0.3.45";
src = fetchurl (getSource system version);
nativeBuildInputs = [ unzip ];
unpackCmd = "unzip $curSrc";
installPhase = ''
mkdir -p $out/lib
mv libvosk.so $out/lib/
mkdir -p $out/include
mv vosk_api.h $out/include/
'';
}

View file

@ -1,18 +0,0 @@
{ stdenv, fetchurl, unzip }:
# Source: https://github.com/Lykos153/numen-nix
stdenv.mkDerivation {
name = "vosk-model-small-en-us";
version = "0.15";
src = fetchurl {
url =
"https://alphacephei.com/kaldi/models/vosk-model-small-en-us-0.15.zip";
sha256 = "sha256-MPJiQsTrRJ+UjkLLMC3XpobLKaNCOoNn+Z/0F4CUJJg=";
};
nativeBuildInputs = [ unzip ];
unpackCmd = "unzip $curSrc";
installPhase = ''
mkdir -p $out/usr/share/vosk-models
cp -r . $out/usr/share/vosk-models/small-en-us
'';
}

View file

@ -1,114 +0,0 @@
# Systems
## [LoyAdjo](./x86_64-linux/LoyAdjo)
<table>
<tr>
<td><img src="../assets/LoyAdjo.jpeg" width="152" height="114"></td>
<td>
<table>
<tr>
<td>User</td>
<td><a href="../main/homes/x86_64-linux/kb@LoyAdjo">kb@LoyAdjo</a></td>
</tr>
<tr>
<td>Cpu</td>
<td><a href="https://www.amd.com/en/products/processors/desktops/ryzen/5000-series/amd-ryzen-5-5600x.html">AMD Ryzen 5 5600X</a>, 6 Cores, max 4.60 GHz</td>
</tr>
<tr>
<td>Gpu</td>
<td><a href="https://www.nvidia.com/en-us/geforce/10-series/">GeForce GTX 1070</a></td>
</tr>
<tr>
<td>Ram</td>
<td>32 GB</td>
</tr>
<tr>
<td>Device</td>
<td>Custom Desktop Computer</td>
</tr>
</table>
</td>
</tr>
</table>
## [Ohybke](./x86_64-linux/Ohybke)
<table>
<tr>
<td><img src="../assets/Ohybke.jpeg" width="152" height="114"></td>
<td>
<table>
<tr>
<td>User</td>
<td><a href="../main/homes/x86_64-linux/kb@Ohybke">kb@Ohybke</a></td>
</tr>
<tr>
<td>Cpu</td>
<td><a href="https://www.intel.com/content/www/us/en/products/sku/196586/intel-core-i31000ng4-processor-4m-cache-up-to-3-20-ghz/specifications.html">Intel i3-1000NG4</a>, 2 Cores, 3.20 GHz</td>
</tr>
<tr>
<td>Ram</td>
<td>8 GB</td>
</tr>
<tr>
<td>Device</td>
<td>MacBook Air early 2020 (MacBook Air 9,1)</td>
</tr>
</table>
</td>
</tr>
</table>
## [HyperC](./x86_64-linux/HyperC)
<table>
<tr>
<td><img src="../assets/HyperC.jpeg" width="152" height="114"></td>
<td>
<table>
<tr>
<td>User</td>
<td><a href="../main/homes/x86_64-linux/kb@HyperC">kb@HyperC</a></td>
</tr>
<tr>
<td>Cpu</td>
<td><a href="https://www.intel.com/content/www/us/en/products/sku/97472/intel-core-i57300u-processor-3m-cache-up-to-3-50-ghz/specifications.html">Intel i5-7300U</a>, 2 Cores, max 3.50 GHz</td>
</tr>
<tr>
<td>Ram</td>
<td>8 GB</td>
</tr>
<tr>
<td>Device</td>
<td>Surface Pro 2017 (Surface Pro 5)</td>
</tr>
</table>
</td>
</tr>
</table>
## [Rubtrm](./i686-linux/Rubtrm)
<table>
<tr>
<td><img src="../assets/Rubtrm.jpeg" width="152" height="114"></td>
<td>
<table>
<tr>
<td>User</td>
<td>kb@Rubtrm</td>
</tr>
<tr>
<td>Cpu</td>
<td><a href="https://www.intel.com/content/www/us/en/products/sku/36331/intel-atom-processor-n270-512k-cache-1-60-ghz-533-mhz-fsb/specifications.html">Intel Atom N270</a>, 2 Cores, 1.60 GHz</td>
</tr>
<tr>
<td>Ram</td>
<td>2 GB</td>
</tr>
<tr>
<td>Device</td>
<td>Lenovo ideapad S10 4333-A13</td>
</tr>
</table>
</td>
</tr>
</table>

View file

@ -1,121 +0,0 @@
# 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 =
[
./hardware.nix
];
# Configure Nix
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
substituters = [
"https://cache.games01.kb-one.de"
];
trusted-public-keys = [
"cache.game01.kb-one.de:XcqI+uobV7EoTKuRmnzYup/+oSfn8uLwnsiQFp8dk/g="
];
};
# nixpkgs.config.allowUnsupportedSystem = true;
nixpkgs.config.allowUnfree = true;
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
# Define on which hard drive you want to install Grub.
boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
networking.hostName = "Rubtrm"; # Define your hostname.
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = lib.mkForce "de";
useXkbConfig = true; # use xkb.options in tty.
};
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.videoDrivers = [ "modesetting" "fbdev" "vesa" "intel_drv" "intel-media-sdk" ];
# Enable Desktop Environment.
services.displayManager.sddm.enable = true;
# services.displayManager.sddm.wayland.enable = true;
# services.xserver.displayManager.lightdm.enable = true;
# services.desktopManager.plasma6.enable = true;
# services.xserver.desktopManager.plasma5.enable = true;
services.xserver.desktopManager.xfce.enable = true;
# services.xserver.desktopManager.lxqt.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "de";
variant = "";
};
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = 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.
users.users.kb = {
isNormalUser = true;
description = "kB";
extraGroups = [ "wheel" "networkmanager" "input" ];
packages = with pkgs; [
tree
kb-one.numen
];
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
vim
wget
git
btop
fastfetch
];
# 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;
# };
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Needed for dotool to act on numen voice commands
services.udev.extraRules = ''
KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"
'';
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
system.stateVersion = "24.05"; # Did you read the comment?
}

View file

@ -1,44 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ata_piix" "usbhid" "usb_storage" "ums_realtek" "sd_mod" ];
boot.initrd.kernelModules = [ "dm-snapshot" "cryptd" ];
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/NIXOS_LUKS";
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
boot.kernelParams = [ "i915.force_probe=27ae" ];
fileSystems."/" =
{ device = "/dev/disk/by-label/NIXOS_ROOT";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/NIXOS_BOOT";
fsType = "vfat";
};
swapDevices = [
{
device = "/.swapfile";
}
];
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "i686-linux";
# networking.enableIntel3945ABGFirmware = true;
hardware.graphics.extraPackages = [ pkgs.intel-vaapi-driver pkgs.kb-one.intel-media-sdk ];
hardware.graphics.extraPackages32 = [ pkgs.intel-vaapi-driver pkgs.kb-one.intel-media-sdk ];
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.enableAllFirmware = true;
}

View file

@ -14,6 +14,7 @@
nix.package = pkgs.lix; nix.package = pkgs.lix;
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"electron-27.3.11"
]; ];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg)
[ [
@ -21,7 +22,6 @@
"steam" "steam"
"steam-original" "steam-original"
"steam-unwrapped" "steam-unwrapped"
"castlabs-electron"
]; ];
# Configure Remote Builds # Configure Remote Builds
@ -94,12 +94,13 @@
wacom.enable = true; wacom.enable = true;
xkb = { xkb = {
layout = "de,us"; layout = "us,dv2,de";
# extraLayouts.dv2 = { variant = "caps:swapescape";
# description = "German Dvorak Type 2"; extraLayouts.dv2 = {
# languages = [ "de" ]; description = "German Dvorak Type 2";
# symbolsFile = ./symbols/dv2; languages = [ "de" ];
# }; symbolsFile = ./symbols/dv2;
};
}; };
}; };
@ -108,7 +109,7 @@
services.printing.enable = true; services.printing.enable = true;
# Enable sound with pipewire. # Enable sound with pipewire.
services.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
@ -151,11 +152,6 @@
download-dir = "${config.services.transmission.home}/Torrents"; download-dir = "${config.services.transmission.home}/Torrents";
}; };
services.protonmail-bridge = {
enable = true;
path = with pkgs; [ kdePackages.kwallet ];
};
services.nix-serve = { services.nix-serve = {
enable = true; enable = true;
secretKeyFile = "/var/cache-HyperC-priv-key.pem"; secretKeyFile = "/var/cache-HyperC-priv-key.pem";

View file

@ -11,17 +11,12 @@ in {
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "ipts" "mei" "mei_me" ]; boot.initrd.kernelModules = [ ];
boot.initrd.systemd.enable = true; # boot.initrd.systemd.enable = true;
boot.initrd.unl0kr.enable = true; # boot.initrd.unl0kr.enable = true;
boot.initrd.unl0kr.settings = {
general.backend = "drm";
};
boot.kernelModules = [ "kvm-intel" "v4l2loopback" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = with config.boot.kernelPackages; [ boot.extraModulePackages = [ ];
v4l2loopback
];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/93d26de6-3831-4c1f-95ea-b7b158730749"; { device = "/dev/disk/by-uuid/93d26de6-3831-4c1f-95ea-b7b158730749";

View file

@ -2,17 +2,18 @@
{ {
imports = imports =
[ [ # Include the results of the hardware scan.
./hardware.nix ./hardware.nix
]; ];
# Configure Nix # Configure Nix
nix.package = pkgs.lix.override { aws-sdk-cpp = null; }; nix.package = pkgs.lix;
nix.settings = { nix.settings.experimental-features = [ "nix-command" "flakes" ];
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "remotebuild" ];
};
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
"electron-27.3.11"
];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -20,14 +21,15 @@
networking.hostName = "LoyAdjo"; networking.hostName = "LoyAdjo";
# Wireless # Enable networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
hardware.bluetooth.enable = true; # enables support for Bluetooth
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
# Locale # Set your time zone.
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = { i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8"; LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8"; LC_IDENTIFICATION = "de_DE.UTF-8";
@ -40,23 +42,28 @@
LC_TIME = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8";
}; };
# GUI # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
# Input # Configure keymap in X11
services.xserver.xkb.layout = "de"; services.xserver.xkb = {
services.xserver.xkb.variant = ""; layout = "de";
console.keyMap = "de"; variant = "";
services.numen = {
enable = true;
autoStart = false;
}; };
# Output # Configure console keymap
services.pulseaudio.enable = false; console.keyMap = "de";
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
@ -64,46 +71,25 @@
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
}; };
services.printing.enable = true;
# Users
users.users.kb = { # Managed by Homemanager users.users.kb = { # Managed by Homemanager
isNormalUser = true; isNormalUser = true;
description = "kB"; description = "kB";
extraGroups = [ "networkmanager" "wheel" "input" ]; extraGroups = [ "networkmanager" "wheel" ];
};
users.users.remotebuild = {
isNormalUser = true;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIuvGIdO1nwuzq3YrjpxH84rpGhquNvRKz1SSPwKUsth kb @ Rubtrm"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGRlk8FEIN7P81SRVEkP1wjlBjsiUGcBcqzSbHVGB0sF root @ Ohybke"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAl0qiBLwbdSAMfnZCcpG23LgkhlV3Bko3U17oV3m18A root @ HyperC"
];
}; };
# Enable automatic login for the user.
# services.xserver.displayManager.autoLogin.enable = true;
# services.xserver.displayManager.autoLogin.user = "kb";
# Steam # services.gpg-agent.enable = true;
programs.steam.enable = true;
# SSH # List packages installed in system profile. To search, run: $ nix search wget
programs.ssh.startAgent = true; environment.systemPackages = with pkgs; [
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
ports = [ 7325 ];
openFirewall = true;
};
# System Packages
environment.systemPackages = with pkgs; [ # To search, run: $ nix search wget
vim vim
git git
kb-one.numen
kb-one.dotool
kb-one.vosk-model-small-en-us
tree
openvr
]; ];
system.stateVersion = "24.05"; # NEVER Change this! system.stateVersion = "24.05"; # NEVER Change this!
} }

View file

@ -9,17 +9,12 @@
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = []; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ boot.kernelModules = [ "kvm-amd" ];
"kvm-amd"
];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.forceImportRoot = false;
networking.hostId = "22d12b46";
# Setup Nvidia Driver # Setup Nvidia Driver
hardware.graphics.enable = true; hardware.opengl.enable = true;
hardware.nvidia = hardware.nvidia =
{ {
modesetting.enable = true; modesetting.enable = true;
@ -30,9 +25,6 @@
package = config.boot.kernelPackages.nvidiaPackages.beta; package = config.boot.kernelPackages.nvidiaPackages.beta;
}; };
# Enable Bosto Tochpad Support (See ../../../modules/nixos/hardware/bosto-touchpad/default.nix)
hardware.bosto-touchpad.enable = true;
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/b3344eaa-384e-4779-92b8-92f6e9a27d7d"; { device = "/dev/disk/by-uuid/b3344eaa-384e-4779-92b8-92f6e9a27d7d";
fsType = "ext4"; fsType = "ext4";

View file

@ -1,140 +0,0 @@
{ config, lib, pkgs, ... }:
{
imports = [
./hardware.nix
];
# Configure Nix
nix.package = pkgs.lix;
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
};
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
"electron-27.3.11"
"olm-3.2.16"
];
# Distributed Builds
nix.buildMachines = [
{
hostName = "kb-senfnvp-remotebuild";
systems = [ "aarch64-linux" ];
protocol = "ssh-ng";
maxJobs = 10;
speedFactor = 2;
supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" ];
mandatoryFeatures = [];
}
];
nix.distributedBuilds = true;
nix.extraOptions = ''
builders-use-substitutes = true
'';
# Networking
networking.hostName = "Ohybke";
networking.networkmanager.enable = true;
#networking.wireless.enable = true;
# Allow KDE Connect Ports
networking.firewall.allowedTCPPortRanges = [{ from = 1714; to = 1764; }];
networking.firewall.allowedUDPPortRanges = [{ from = 1714; to = 1764; }];
# Allow VLC Chromecast
networking.firewall.allowedTCPPorts = [ 8010 ];
# Enable Bluetooth
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# Locale
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.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";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
# Keyboard and Keymap
services.xserver.xkb = {
layout = "de";
variant = "mac_nodeadkeys";
options = "";
};
console = {
font = "Lat2-Terminus16";
# keyMap = "de";
useXkbConfig = true;
};
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Protonmail Bridge
services.protonmail-bridge.enable = true;
# Languagetool Spellchecking Server
services.languagetool = {
enable = true;
allowOrigin = "*";
};
# Enable Avahi Daemon for Chromecast
services.avahi.enable = true;
# Users
users.users.kb = { # Managed by Homemanager
isNormalUser = true;
description = "kB";
extraGroups = [ "networkmanager" "wheel" ];
};
# Enable SSH-Agent
programs.ssh.startAgent = true;
# Enable Steam
programs.steam.enable = true;
# Packages installed in system profile. Search Packages: $ nix search wget
environment.systemPackages = with pkgs; [
vim
helix
git
tree
dmg2img
curl
python3
sops
kb-one.numen
kb-one.dotool
kb-one.vosk-model-small-en-us
];
system.stateVersion = "24.11"; # NEVER Change this!
}

View file

@ -1,51 +0,0 @@
{ config, lib, pkgs, modulesPath, inputs, ... }: let
inherit (inputs) nixos-hardware;
in {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
nixos-hardware.nixosModules.apple-t2
];
# Nix Config
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
# Kernel
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "cryptd" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.forceImportRoot = false;
networking.hostId = "60dbcc20";
# Boot Process
boot.loader.systemd-boot.enable = true;
boot.initrd.systemd.enable = true;
boot.plymouth.enable = true;
boot.plymouth.logo = pkgs.fetchurl {
url = "https://forum.auxolotl.org/uploads/default/original/1X/be37690f0748737fc813dd3592848f5323a7f277.png";
hash = "sha256-+E7mAoEMnHsavKzEdTosli08Oohq+yt3WB4Uhwpi0Vg=";
};
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot";
# File Systems
fileSystems."/" = {
device = "/dev/disk/by-uuid/e36a3f85-020f-4d6c-844f-b81131ce7e63";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-a226aaf4-1250-447b-a5fc-fa37758d332a".device = "/dev/disk/by-uuid/a226aaf4-1250-447b-a5fc-fa37758d332a";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/5F66-17ED";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ { device = "/swapfile"; size = 8 * 1024; } ];
# Misc
networking.useDHCP = lib.mkDefault true;
# Firmware
hardware.apple-t2.firmware.enable = true;
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,68 @@
{ config, lib, pkgs, inputs, ... }:
{
imports = [ # Include the results of the hardware scan.
./vm.nix
];
# Configure Nix
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.package = pkgs.lix;
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = true;
boot.loader.grub.devices = [ "nodev" ];
boot.loader.efi.canTouchEfiVariables = true;
# Define your hostname.
networking.hostName = "U3ncSovm";
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Configure keymap in X11
services.xserver.xkb.layout = "us";
# Define a user account. Don't forget to set a password with passwd.
users.users.master = {
initialPassword = "test";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF82e+j7y8qsSvLn/DZuosvsH0S2EsHpqDkvZ8jiONm3 kb@LoyAdjo"
];
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
packages = with pkgs; [
tree
vim
fastfetch
];
};
# List packages installed in system profile. To search, run:
environment.systemPackages = with pkgs; [
vim
wget
git
];
# Enable NAS Functionality
services.nas = {
enable = true;
servers.audiobookshelf.enable = true;
};
# SSH and Mosh
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
ports = [ 5530 ];
openFirewall = true;
};
programs.mosh.enable = true;
# Do NOT change this value
system.stateVersion = "24.05"; # Did you read the comment?
}

View file

@ -0,0 +1,10 @@
{ config, lib, pkgs, modulesPath, ... }:
{
virtualisation.vmVariant = {
# following configuration is added only when building VM with build-vm
virtualisation = {
memorySize = 4*1024;
cores = 3;
};
};
}

View file

@ -0,0 +1,87 @@
{ config, lib, pkgs, inputs, ... }:
{
imports = [ # Include the results of the hardware scan.
./hardware.nix
];
# Configure Nix
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.trusted-users=[ "remotebuild" ];
nix.settings.trusted-public-keys = [
"cache.HyperC:90YNJ0eWsuBGVVP989lJh1rL8C0KM6IKbAtEUiu+FCU="
];
nix.package = pkgs.lix;
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = true;
boot.loader.grub.devices = [ "nodev" ];
boot.loader.efi.canTouchEfiVariables = true;
# Define your hostname.
networking.hostName = "kb-games-01";
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Configure keymap in X11
services.xserver.xkb.layout = "us";
# Define a user account. Don't forget to set a password with passwd.
users.users.master = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLbU0GpeqkYOsccsddQgZAppd5SFiokGAfjKr+dEEjY kb HyperC"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHS3DoQe/4TtdTLD/Fl41rTjE0n5MyFMl59VGVejcskO kb voloxo"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPpN/3esM0SFLJ2guCBOYX8IdBC+jUiMF+xPYkTEuzbe kb-work yerukall"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMN1LWMOfFtRKkSLIA/XTj3KYm7OG2bjqEmGXj0gmDc7 kb@LoyAdjo"
];
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
packages = with pkgs; [
tree
vim
];
};
users.users.remotebuild = {
isNormalUser = true;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBHdxVb42GEb/rwrsQx/Wc2v2P+WIq8/WNlF+l31Rl/a Remotebuilds from HyperC"
];
};
# List packages installed in system profile. To search, run:
environment.systemPackages = with pkgs; [
vim
wget
git
];
# SSH and Mosh
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
ports = [ 3422 ];
openFirewall = true;
};
programs.mosh.enable = true;
# Minecraft Servers
services.minecraft = {
enable = true;
servers.velocity.enable = true;
servers.survival.enable = true;
};
services.nix-serve = {
enable = true;
secretKeyFile = "/var/cache-kb-games-01-priv-key.pem";
};
# Do NOT change this value
system.stateVersion = "24.05"; # Did you read the comment?
}

View file

@ -0,0 +1,38 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/NIXBOOT";
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.ens3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View file

@ -0,0 +1,281 @@
{ config, lib, pkgs, inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware.nix
];
# Configure Nix
nix.package = pkgs.lix;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
"electron-27.3.11"
"olm-3.2.16"
];
nix.settings.trusted-public-keys = [
"cache.HyperC:90YNJ0eWsuBGVVP989lJh1rL8C0KM6IKbAtEUiu+FCU="
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Crosscompiling
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
networking.hostName = "voloxo"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Berlin";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.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";
};
# Nvidia Configuration
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us,dv2,de";
variant = "esc:swapcaps";
extraLayouts.dv2 = {
description = "German Dvorak Type 2";
languages = [ "de" ];
symbolsFile = ./symbols/dv2;
};
};
# Configure console keymap
console.keyMap = "de";
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.kb = {
isNormalUser = true;
description = "kb";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
firefox
kate
thunderbird
cheese
obs-studio
# blender
syncthing
keepassxc
freetube
libreoffice
adafruit-nrfutil
prismlauncher
gimp
inkscape
veracrypt
matrix-commander
vlc
protonvpn-gui
telegram-desktop
logseq
signal-desktop
kid3
#calibre
spotify-player
tidal-hifi
iamb # Matrix with Vim-Binds
yazi
nerdfonts
scrcpy
ryujinx
razergenie
webcord
mangohud
vscodium
pass-wayland
gnupg
kdePackages.kcalc
];
};
users.users.remotebuild = {
isNormalUser = true;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID8CBRiViR+JVFHEeeUbeHLY4gCvZ1TTlt63HlBD8xls Remotebuilds from HyperC"
];
};
# Define Service Users
users.groups.languagetool = {};
users.users.languagetool = {
isSystemUser = true;
group = "languagetool";
};
# Enable automatic login for the user.
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "kb";
programs.vim = {
enable = true;
defaultEditor = true;
};
programs.ssh.startAgent = true;
programs.kdeconnect.enable = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
programs.firefox.enable = true;
programs.firefox.nativeMessagingHosts.packages = [ pkgs.firefoxpwa ];
# 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
fastfetch
usbutils
fprintd
nss
mesa
python3
zulu
zulu8
languagetool
btop
firefoxpwa
bookworm
foliate
gparted
git
ntfs3g
];
# 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:
systemd.services.languagetool = {
description = "LanguageTool HTTP Server for local Spellchecking";
wants = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "/run/current-system/sw/bin/languagetool-http-server --port 8081 --allow-origin '*'";
WorkingDirectory = "~"; # Defaults to "/" If the user has no home
User = "languagetool";
Restart = "always";
RestartSec = 30;
};
};
# services.udev.extraRules = ''
#ENV{ID_VENDOR_ID}=="EloTouchSystems_Inc",ENV{ID_MODEL_ID}=="Elo_TouchSystems_2216_AccuTouch®_USB_Touchmonitor_Interface",ENV{WL_OUTPUT}="DP-0",ENV{LIBINPUT_CALIBRATION_MATRIX}="0.4 0 0 0 -0.347826087 0.652173913"
#'';
# services.xserver.inputClassSections = [
# ''
# Identifier "calibration"
# MatchProduct "EloTouchSystems,Inc Elo TouchSystems 2216 AccuTouch® USB Touchmonitor Interface"
# Option "MinX" "6225"
# Option "MaxX" "59846"
# Option "MinY" "57849"
# Option "MaxY" "5925"
# Option "InvertY" "1"
# ''
# ];
# Virtualisation
virtualisation.podman = {
enable = true;
dockerCompat = true;
dockerSocket.enable = true;
};
services.syncthing = {
enable = true;
user = "kb";
dataDir = "/home/kb/sync";
configDir = "/home/kb/.config/syncthing";
};
# SSH
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
ports = [ 4125 ];
openFirewall = true;
};
services.nix-serve = {
enable = true;
secretKeyFile = "/var/cache-voloxo-priv-key.pem";
};
# Do NOT change this value
system.stateVersion = "23.05"; # Did you read the comment?
}

View file

@ -0,0 +1,45 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "nvidia" ];
boot.kernelModules = [ "kvm-amd" "sg" ];
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/f1abb1b8-0cc5-46f3-9e97-72f793c4b496";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-07910f1e-c989-4acc-8d81-fef02a2596b3".device = "/dev/disk/by-uuid/07910f1e-c989-4acc-8d81-fef02a2596b3";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/1ECE-940A";
fsType = "vfat";
};
swapDevices = [{ device = "/swapfile"; size = 8 * 1024; }];
# 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.enp9s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
hardware.nvidia.open = false;
hardware.openrazer = {
enable = true;
users = [ "kb" ];
};
}

View file

@ -0,0 +1,10 @@
{ inputs, config, pkgs, lib, system, ... }:
{
modules.packagemanagers.appimage = true;
}

View file

@ -0,0 +1,80 @@
// German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten)
// Have acute and grave as dead keys, tilde and circumflex alive as they are needed
// in many programming languages.
// to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de
// source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php
// Some modifications by Simon Spruenker (simon.spruenker.de) e. g.:
// Can also be used on 104-key-keyboard without loosing adiaeresis.
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "us(dvorak)"
name[Group1]="Germany - Dvorak";
key <TLDE> { [ asciicircum, degree ] };
key <AE01> { [ 1, exclam, onesuperior ] };
key <AE02> { [ 2, quotedbl, twosuperior ] };
key <AE03> { [ 3, section, threesuperior ] };
key <AE04> { [ 4, dollar, bar ] };
key <AE05> { [ 5, percent, bar ] };
key <AE06> { [ 6, ampersand, brokenbar ] };
key <AE07> { [ 7, slash, braceleft ] };
key <AE08> { [ 8, parenleft, bracketleft ] };
key <AE09> { [ 9, parenright, bracketright ] };
key <AE10> { [ 0, equal, braceright ] };
key <AE11> { [ plus, asterisk, asciitilde ] };
key <AE12> { [ less, greater, dead_grave ] };
key <AD01> { [ udiaeresis, Udiaeresis, braceleft ] };
key <AD02> { [ comma, semicolon, bracketleft ] };
key <AD03> { [ period, colon, bracketright ] };
key <AD04> { [ p, P, braceright ] };
key <AD08> { [ c, C, copyright, Cacute ] };
key <AD09> { [ t, T, trademark ] };
key <AD10> { [ z, Z, zabovedot, Zabovedot ] };
key <AD11> { [ question, ssharp ] };
key <AD12> { [ slash, backslash, dead_acute ] };
key <AC01> { [ a, A, at, aogonek ] };
key <AC02> { [ o, O, oacute, Oacute ] };
key <AC03> { [ e, E, EuroSign, eogonek ] };
key <AC04> { [ i, I, bar ] };
key <AC05> { [ u, U ] };
key <AC06> { [ h, H ] };
key <AC07> { [ d, D ] };
key <AC08> { [ r, R, registered ] };
key <AC09> { [ n, N, nacute, Nacute ] };
key <AC10> { [ s, S, sacute, Sacute] };
key <AC11> { [ l, L, lstroke, Lstroke ] };
key <AB01> { [ odiaeresis, Odiaeresis, adiaeresis, Adiaeresis ] };
key <AB02> { [ q, Q, at ] };
key <AB07> { [ m, M, mu ] };
key <AB10> { [ numbersign, apostrophe ] };
key <BKSL> { [ minus, underscore, hyphen, diaeresis] };
key <LSGT> { [ adiaeresis, Adiaeresis, bar ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {
// For naming consistency
include "de(basic)"
};
partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
// For naming consistency
include "de(Sundeadkeys)"
name[Group1]="Germany - Sun dead keys";
};