Compare commits
117 Commits
plasma-man
...
add-steam-
| Author | SHA1 | Date | |
|---|---|---|---|
| 24a09a9922 | |||
| f757ea7271 | |||
| 64149713d2 | |||
| 88b413e0af | |||
| c5070eb4bf | |||
| 6b4dc1e6b7 | |||
| aadd8c7b6c | |||
| f8d145b495 | |||
| 9232d46f6a | |||
| b2b34fc05f | |||
| aa4dacb3af | |||
| 6dc4d6956a | |||
| be83fc566f | |||
| 485df44aea | |||
| 4861128de6 | |||
| 9fe7cfbbfc | |||
| 741e3a67d6 | |||
| 22254eb1f3 | |||
| 79dde1a0fe | |||
| f4b3c36a4e | |||
| 1fa7a2689c | |||
| c08c5e2486 | |||
| ecaa6dcb83 | |||
| 7729ff7434 | |||
| 52c110a505 | |||
| d5997575df | |||
| 57bc35101e | |||
| 6b09b1b0bc | |||
| 1851743a21 | |||
| c6d787f9f5 | |||
| f4a8f9d614 | |||
| 1e01d44f2f | |||
| 39dbe6644c | |||
| 870e1073dc | |||
| c1f132026a | |||
| 5650125d7e | |||
| 6536213bd0 | |||
| a0ce3b810e | |||
| abbcfebc97 | |||
| 495aba3fef | |||
| f9bcec74d3 | |||
| 97c4d7035c | |||
| 8abd331619 | |||
| aca0afa0dc | |||
| 1d0b3a0367 | |||
| 50f9defdd5 | |||
| d71d7a1ffb | |||
| ee511f6ab8 | |||
| e3dd0bdb30 | |||
| 10300ed10b | |||
| 8e72ef71d2 | |||
| d6e031efd0 | |||
| 16fa4a641c | |||
| 7a5ec23cc5 | |||
| ff1124fbe6 | |||
| 53088f9536 | |||
| 68c04b43fd | |||
| efbfffbb61 | |||
| 0e1a67b980 | |||
| 7d6e294340 | |||
| 8690a0289d | |||
| e95f56e240 | |||
| 2dffbb0a98 | |||
| 2ceaf78825 | |||
| e164097f36 | |||
| d1605e386d | |||
| 4a41533ba8 | |||
| 9d45449fce | |||
| 877bc2c739 | |||
| cd6e028142 | |||
| 421b27f76f | |||
| 1f4a72d28c | |||
| a8f19af989 | |||
| d4b0fe5b9e | |||
| 09cff42222 | |||
| 0183e7c823 | |||
| 29cdd1e239 | |||
| 7ced8f11ba | |||
| 244b7c0888 | |||
| 80744bcbf1 | |||
| 56d03f4228 | |||
| 32d0c7fa5a | |||
| 1c2aae93b7 | |||
| 0ab6562694 | |||
| 986ee06a46 | |||
| 34abaeeec9 | |||
| 11638cfa1b | |||
| 1ce431b0e5 | |||
| 98ef9b1443 | |||
| 4c779663df | |||
| e2bb87fcf1 | |||
| ef47c5dc9a | |||
| 7da089daa3 | |||
| 8134d7cb33 | |||
| 24f1a64f3c | |||
| 19531074ca | |||
| a30c130f21 | |||
| e088ee2dc8 | |||
| 366a7e2ea3 | |||
| 9116e44dfe | |||
| e3ef710bdb | |||
| e1a804cfed | |||
| ec59936012 | |||
| 844d17a855 | |||
| b19dc65c6d | |||
| 6db2c78e0b | |||
| 475aafa33e | |||
| 09562f0af9 | |||
| ae543d9628 | |||
| c7716d2bca | |||
| 54cf339d52 | |||
| b9097e91d5 | |||
| abf8fe9ad2 | |||
| 926b47f07f | |||
| 749ef988f1 | |||
| dfa91d327f | |||
| 37c455d75e |
21
.goosehints
Normal file
21
.goosehints
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
NixOS Configurations Repository
|
||||||
|
================================
|
||||||
|
|
||||||
|
Overview:
|
||||||
|
---------
|
||||||
|
This repository hosts modular and reproducible NixOS configurations managed via Nix flakes. It is structured to separate concerns across machine-specific setups, common roles, and custom packages.
|
||||||
|
|
||||||
|
Directory Structure:
|
||||||
|
----------------------
|
||||||
|
• packages/ - Custom Nix packages leveraged across various configurations.
|
||||||
|
• roles/ - Role-based configurations (e.g., kodi, bluetooth) each with its own module (default.nix) for inclusion in machine setups.
|
||||||
|
• machines/ - Machine-specific configurations (e.g., nix-book, z790prors, boxy, wixos) including configuration.nix and hardware-configuration.nix tailored for each hardware.
|
||||||
|
• home/ - Home-manager configurations for personal environments and application settings (e.g., home-nix-book.nix, home-z790prors.nix).
|
||||||
|
|
||||||
|
Design Principles:
|
||||||
|
------------------
|
||||||
|
• Modularity: Clear separation between roles, machines, and packages allows for flexible and reusable configurations.
|
||||||
|
• Declarative & Reproducible: Using Nix flakes guarantees a fully declarative setup that can be effortlessly reproduced across systems.
|
||||||
|
• Scalability: The structure is designed to accommodate adding new roles or machines with minimal disruption to existing configurations.
|
||||||
|
|
||||||
|
This file serves as a concise guide for navigating and understanding the repository from an advanced Nix perspective. Further documentation can be found within the respective directories or individual README files where applicable.
|
||||||
11
.sops.yaml
11
.sops.yaml
@@ -1,11 +0,0 @@
|
|||||||
keys:
|
|
||||||
- &admin_johno age1ls6a033d4p4u8h4rwazjwt8w4c4xg73wq0mdnm64jajxzcz4k9asvjnks3
|
|
||||||
- &host_z790prors age12l5u7sw59u5pkwp83qm8t3ff7uv0ld2c9k3zh5j4ame9k2szcynqu7ftqe
|
|
||||||
- &host_nixbook age1fa3zqavfmqk4ssa22yne9td90gyqv9q5a8y0s8jp3xak8q7p3yjqyn7rkg
|
|
||||||
creation_rules:
|
|
||||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *admin_johno
|
|
||||||
- *host_z790prors
|
|
||||||
- *host_nixbook
|
|
||||||
110
CLAUDE.md
Normal file
110
CLAUDE.md
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Repository Overview
|
||||||
|
|
||||||
|
This is a NixOS configuration repository using flakes, managing multiple machines and home-manager configurations. The repository follows a modular architecture with reusable "roles" that can be composed for different machines.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
### Flake Structure
|
||||||
|
- **flake.nix**: Main entry point defining inputs (nixpkgs, home-manager, plasma-manager, etc.) and outputs for multiple NixOS configurations
|
||||||
|
- **Machines**: `nix-book`, `boxy`, `wixos` (WSL configuration)
|
||||||
|
- **Home configurations**: Standalone home-manager configuration for user `johno`
|
||||||
|
|
||||||
|
### Directory Structure
|
||||||
|
- `machines/`: Machine-specific configurations with hardware-configuration.nix
|
||||||
|
- `roles/`: Modular system configurations (audio, bluetooth, desktop, users, etc.)
|
||||||
|
- `home/`: Home Manager configurations and user-specific modules
|
||||||
|
- `home/modules/`: User environment modules (emacs, i3+sway, plasma-manager, tmux)
|
||||||
|
- `packages/`: Custom package definitions
|
||||||
|
|
||||||
|
### Role-Based Configuration System
|
||||||
|
The repository uses a custom "roles" system where each role is a NixOS module with enable options:
|
||||||
|
- `roles.desktop`: Desktop environment with sub-options for X11, Wayland, KDE, gaming, SDDM
|
||||||
|
- `roles.audio`: Audio configuration
|
||||||
|
- `roles.bluetooth`: Bluetooth support
|
||||||
|
- `roles.users`: User account management
|
||||||
|
- `roles.virtualisation`: Virtualization setup
|
||||||
|
- `roles.kodi`: Kodi media center
|
||||||
|
|
||||||
|
Example role usage in machine configuration:
|
||||||
|
```nix
|
||||||
|
roles = {
|
||||||
|
audio.enable = true;
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
gaming = true;
|
||||||
|
kde = true;
|
||||||
|
wayland = true;
|
||||||
|
};
|
||||||
|
users.enable = true;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
## Common Commands
|
||||||
|
|
||||||
|
### Building and Switching Configurations
|
||||||
|
```bash
|
||||||
|
# Build and switch to a specific machine configuration
|
||||||
|
sudo nixos-rebuild switch --flake .#<hostname>
|
||||||
|
|
||||||
|
# Build without switching
|
||||||
|
nixos-rebuild build --flake .#<hostname>
|
||||||
|
|
||||||
|
# Build home-manager configuration only
|
||||||
|
home-manager switch --flake .#johno
|
||||||
|
```
|
||||||
|
|
||||||
|
### Available Machine Configurations
|
||||||
|
- `nix-book`: Uses `home/home-nix-book.nix`
|
||||||
|
- `boxy`: Gaming desktop with AMD GPU, uses `home/home.nix`
|
||||||
|
- `wixos`: WSL configuration, uses `home/home.nix`
|
||||||
|
|
||||||
|
### Flake Operations
|
||||||
|
```bash
|
||||||
|
# Update flake inputs
|
||||||
|
nix flake update
|
||||||
|
|
||||||
|
# Check flake
|
||||||
|
nix flake check
|
||||||
|
|
||||||
|
# Show flake info
|
||||||
|
nix flake show
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bootstrap New Machine
|
||||||
|
Use the provided bootstrap script:
|
||||||
|
```bash
|
||||||
|
sudo ./bootstrap.sh <hostname>
|
||||||
|
```
|
||||||
|
This script pulls from the remote git repository and applies the configuration.
|
||||||
|
|
||||||
|
## Development Workflow
|
||||||
|
|
||||||
|
### Adding New Machines
|
||||||
|
1. Create new directory in `machines/<hostname>/`
|
||||||
|
2. Add `configuration.nix` with role assignments
|
||||||
|
3. Include hardware-configuration.nix (generated by nixos-generate-config)
|
||||||
|
4. Add nixosConfiguration to flake.nix outputs
|
||||||
|
|
||||||
|
### Adding New Roles
|
||||||
|
1. Create directory in `roles/<role-name>/`
|
||||||
|
2. Create `default.nix` with module definition using mkEnableOption
|
||||||
|
3. Add role import to `roles/default.nix`
|
||||||
|
4. Configure role options in machine configurations
|
||||||
|
|
||||||
|
### Home Manager Modules
|
||||||
|
- Located in `home/modules/`
|
||||||
|
- Each module has its own `default.nix`
|
||||||
|
- Imported in main home configuration files
|
||||||
|
|
||||||
|
## Key Configuration Details
|
||||||
|
|
||||||
|
- **Experimental features**: nix-command and flakes are enabled
|
||||||
|
- **User**: Primary user is `johno` with trusted-user privileges
|
||||||
|
- **Locale**: en_US.UTF-8, America/Los_Angeles timezone
|
||||||
|
- **SSH**: OpenSSH enabled on all configurations
|
||||||
|
- **Garbage collection**: Automatic, deletes older than 10 days
|
||||||
|
- **Unfree packages**: Allowed globally
|
||||||
11
bootstrap.sh
Executable file
11
bootstrap.sh
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# bootstrap.sh
|
||||||
|
# Usage: sudo ./bootstrap.sh <hostname>
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
NEW_HOSTNAME="${1:?missing hostname}"
|
||||||
|
FLAKE_URI="git+https://git.johnogle.info/johno/nixos-configs.git#${NEW_HOSTNAME}"
|
||||||
|
|
||||||
|
export NIX_CONFIG="experimental-features = nix-command flakes"
|
||||||
|
nixos-rebuild switch --flake "$FLAKE_URI"
|
||||||
|
|
||||||
120
flake.lock
generated
120
flake.lock
generated
@@ -1,5 +1,41 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747046372,
|
||||||
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"google-cookie-retrieval": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752428473,
|
||||||
|
"narHash": "sha256-IsE7fdAYbRlZuc0H5FtPfhhuHvlxnDGoAxdlnjpVNCU=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "1fad66b55144ab6beaecd900172a21ac3c34dc52",
|
||||||
|
"revCount": 10,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.johnogle.info/johno/google-cookie-retrieval.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.johnogle.info/johno/google-cookie-retrieval.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -7,11 +43,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728041527,
|
"lastModified": 1752402455,
|
||||||
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
|
"narHash": "sha256-mCHfZhQKdTj2JhCFcqfOfa3uKZbwUkPQbd0/zPnhOE8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
|
"rev": "bf893ad4cbf46610dd1b620c974f824e266cd1df",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -20,34 +56,54 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixos-wsl": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752199438,
|
||||||
|
"narHash": "sha256-xSBMmGtq8K4Qv80TMqREmESCAsRLJRHAbFH2T/2Bf1Y=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NixOS-WSL",
|
||||||
|
"rev": "d34d9412556d3a896e294534ccd25f53b6822e80",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "main",
|
||||||
|
"repo": "NixOS-WSL",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727802920,
|
"lastModified": 1751792365,
|
||||||
"narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=",
|
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515",
|
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725762081,
|
"lastModified": 1751984180,
|
||||||
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
|
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05",
|
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"ref": "release-24.05",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -62,11 +118,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728750492,
|
"lastModified": 1748196248,
|
||||||
"narHash": "sha256-9IHlIsH4gLqQjS2lFbEnsl/ItdqzBBLWLsyXS0k0jf8=",
|
"narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "plasma-manager",
|
"repo": "plasma-manager",
|
||||||
"rev": "c6d4b6f3e0138c08f37d66fcfbcbe37dab08f108",
|
"rev": "b7697abe89967839b273a863a3805345ea54ab56",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -77,31 +133,11 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"google-cookie-retrieval": "google-cookie-retrieval",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixos-wsl": "nixos-wsl",
|
||||||
"plasma-manager": "plasma-manager",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"sops-nix": "sops-nix"
|
"plasma-manager": "plasma-manager"
|
||||||
}
|
|
||||||
},
|
|
||||||
"sops-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1727423009,
|
|
||||||
"narHash": "sha256-+4B/dQm2EnORIk0k2wV3aHGaE0WXTBjColXjj7qWh10=",
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "sops-nix",
|
|
||||||
"rev": "127a96f49ddc377be6ba76964411bab11ae27803",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "sops-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
67
flake.nix
67
flake.nix
@@ -3,11 +3,7 @@
|
|||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
||||||
sops-nix = {
|
|
||||||
url = "github:Mic92/sops-nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
@@ -19,41 +15,36 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.home-manager.follows = "home-manager";
|
inputs.home-manager.follows = "home-manager";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
google-cookie-retrieval = {
|
||||||
|
url = "git+https://git.johnogle.info/johno/google-cookie-retrieval.git";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... } @ inputs: let
|
outputs = { self, nixpkgs, nixos-wsl, ... } @ inputs: let
|
||||||
baseModules = [
|
baseModules = [
|
||||||
./roles
|
./roles
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
|
home-manager.sharedModules = [
|
||||||
|
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||||
|
];
|
||||||
|
home-manager.extraSpecialArgs = {
|
||||||
|
globalInputs = inputs;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
in {
|
in {
|
||||||
nixosConfigurations.z790prors-nix = nixpkgs.lib.nixosSystem rec {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = baseModules ++ [
|
|
||||||
./machines/z790prors/configuration.nix
|
|
||||||
{
|
|
||||||
home-manager.users.johno = import ./home/home-z790prors.nix;
|
|
||||||
home-manager.extraSpecialArgs.customPkgs =
|
|
||||||
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem rec {
|
nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = baseModules ++ [
|
modules = baseModules ++ [
|
||||||
./machines/nix-book/configuration.nix
|
./machines/nix-book/configuration.nix
|
||||||
{
|
{
|
||||||
home-manager.users.johno = import ./home/home-nix-book.nix;
|
home-manager.users.johno = import ./home/home-nix-book.nix;
|
||||||
home-manager.extraSpecialArgs.customPkgs =
|
home-manager.extraSpecialArgs = { inherit system; };
|
||||||
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -64,11 +55,35 @@
|
|||||||
./machines/boxy/configuration.nix
|
./machines/boxy/configuration.nix
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.users.johno = import ./home/home-default.nix;
|
home-manager.users.johno = import ./home/home.nix;
|
||||||
home-manager.extraSpecialArgs.customPkgs =
|
home-manager.extraSpecialArgs = { inherit system; };
|
||||||
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixosConfigurations.wixos = nixpkgs.lib.nixosSystem rec {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = baseModules ++ [
|
||||||
|
nixos-wsl.nixosModules.default
|
||||||
|
./machines/wixos/configuration.nix
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.users.johno = import ./home/home.nix;
|
||||||
|
home-manager.extraSpecialArgs = { inherit system; };
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
homeConfigurations."johno" = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = inputs.nixpkgs.legacyPackages."x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||||
|
./home/home.nix
|
||||||
|
];
|
||||||
|
extraSpecialArgs = {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
globalInputs = inputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./home-default.nix
|
./home.nix
|
||||||
./modules/hyprland/nix-book.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.i3_sway.extraSwayConfig = {
|
home.i3_sway.extraSwayConfig = {
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./home-default.nix
|
|
||||||
./modules/hyprland/z790prors.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
{ pkgs, customPkgs, ... }:
|
{ pkgs, customPkgs, globalInputs, system, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
customPkgs = pkgs.callPackage ../packages {};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
@@ -36,10 +39,13 @@
|
|||||||
# '')
|
# '')
|
||||||
|
|
||||||
pkgs.bitwarden
|
pkgs.bitwarden
|
||||||
|
pkgs.claude-code
|
||||||
|
pkgs.codex
|
||||||
pkgs.dunst
|
pkgs.dunst
|
||||||
pkgs.element-desktop
|
pkgs.element-desktop
|
||||||
pkgs.fd
|
pkgs.fd
|
||||||
#pkgs.fluffychat # security vulnerability in current version
|
#pkgs.fluffychat # security vulnerability in current version
|
||||||
|
pkgs.goose-cli
|
||||||
pkgs.gzip
|
pkgs.gzip
|
||||||
pkgs.htop
|
pkgs.htop
|
||||||
pkgs.jellyfin-media-player
|
pkgs.jellyfin-media-player
|
||||||
@@ -49,17 +55,24 @@
|
|||||||
pkgs.less
|
pkgs.less
|
||||||
pkgs.moonlight-qt
|
pkgs.moonlight-qt
|
||||||
pkgs.ncdu
|
pkgs.ncdu
|
||||||
|
pkgs.nextcloud-talk-desktop
|
||||||
|
pkgs.openscad-unstable
|
||||||
pkgs.pandoc
|
pkgs.pandoc
|
||||||
pkgs.pinentry-qt
|
#pkgs.pinentry-qt
|
||||||
#pkgs.pytest
|
#pkgs.pytest
|
||||||
pkgs.shellcheck
|
pkgs.shellcheck
|
||||||
pkgs.solaar # Logitech management software
|
pkgs.solaar # Logitech management software
|
||||||
|
(pkgs.snapcast.override { pulseaudioSupport = true; })
|
||||||
pkgs.tmux
|
pkgs.tmux
|
||||||
pkgs.waybar
|
pkgs.waybar
|
||||||
pkgs.wofi
|
pkgs.wofi
|
||||||
pkgs.vlc
|
pkgs.vlc
|
||||||
|
|
||||||
customPkgs.nextcloudTalkDesktop
|
## Kubernetes cluster management
|
||||||
|
pkgs.kubectl
|
||||||
|
pkgs.kubernetes-helm
|
||||||
|
|
||||||
|
globalInputs.google-cookie-retrieval.packages.${system}.default
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
@@ -75,9 +88,10 @@
|
|||||||
# org.gradle.console=verbose
|
# org.gradle.console=verbose
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
# '';
|
# '';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
targets.genericLinux.enable = true;
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# Home Manager can also manage your environment variables through
|
||||||
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
||||||
# shell provided by Home Manager. If you don't want to manage your shell
|
# shell provided by Home Manager. If you don't want to manage your shell
|
||||||
@@ -100,21 +114,22 @@
|
|||||||
home.sessionPath = [
|
home.sessionPath = [
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./modules/emacs
|
./modules/emacs
|
||||||
./modules/i3+sway
|
./modules/i3+sway
|
||||||
./modules/lutris
|
|
||||||
./modules/plasma-manager
|
./modules/plasma-manager
|
||||||
|
./modules/tmux
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.bash.enable = true;
|
programs.bash = {
|
||||||
|
enable = true;
|
||||||
nix = {
|
initExtra = ''
|
||||||
gc = {
|
codex() {
|
||||||
automatic = true;
|
local key
|
||||||
};
|
key="$(rbw get openai-api-key-codex)"
|
||||||
|
OPENAI_API_KEY="$key" command codex "$@"
|
||||||
|
}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
@@ -135,15 +150,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gpg.enable = true;
|
|
||||||
|
|
||||||
services.gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSshSupport = true;
|
|
||||||
defaultCacheTtl = 1800;
|
|
||||||
pinentryPackage = pkgs.pinentry-qt;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.jq.enable = true;
|
programs.jq.enable = true;
|
||||||
|
|
||||||
programs.k9s.enable = true;
|
programs.k9s.enable = true;
|
||||||
@@ -176,17 +182,16 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.home-manager.autoUpgrade = {
|
|
||||||
enable = true;
|
|
||||||
frequency = "weekly";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.kdeconnect = {
|
services.kdeconnect = {
|
||||||
enable = true;
|
enable = true;
|
||||||
indicator = true;
|
indicator = true;
|
||||||
package = pkgs.kdePackages.kdeconnect-kde;
|
package = pkgs.kdePackages.kdeconnect-kde;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.gnome-keyring = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
tray = {
|
tray = {
|
||||||
@@ -3,20 +3,25 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
doomSync = (let
|
doomEmacs = pkgs.fetchFromGitHub {
|
||||||
git = pkgs.git;
|
owner = "doomemacs";
|
||||||
in ''
|
repo = "doomemacs";
|
||||||
export PATH=${pkgs.emacs}/bin:${git}/bin:$PATH
|
rev = "8406c1ff22b95bd0f816de4a0223fa3ce3c82568";
|
||||||
${config.xdg.configHome}/emacs/bin/doom sync -u -j $((`nproc`/4*3))
|
sha256 = "sha256-rOkgOdmLESVAbOeEM9nJTzxyI+akdk48Ed2VlktOy3Q=";
|
||||||
'');
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
config = {
|
config = {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
pkgs.emacs
|
||||||
|
|
||||||
pkgs.emacs-all-the-icons-fonts
|
pkgs.emacs-all-the-icons-fonts
|
||||||
|
pkgs.fira-code
|
||||||
pkgs.fontconfig
|
pkgs.fontconfig
|
||||||
pkgs.graphviz
|
pkgs.graphviz
|
||||||
pkgs.isort
|
pkgs.isort
|
||||||
pkgs.nerdfonts
|
pkgs.nerd-fonts.fira-code
|
||||||
|
pkgs.nerd-fonts.droid-sans-mono
|
||||||
pkgs.nil # nix lsp language server
|
pkgs.nil # nix lsp language server
|
||||||
pkgs.nixfmt-rfc-style
|
pkgs.nixfmt-rfc-style
|
||||||
(pkgs.ripgrep.override {withPCRE2 = true;})
|
(pkgs.ripgrep.override {withPCRE2 = true;})
|
||||||
@@ -27,41 +32,16 @@ in {
|
|||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
home.file = {
|
home.file."${config.xdg.configHome}/emacs".source = doomEmacs;
|
||||||
".config/emacs" = {
|
|
||||||
source = fetchGit {
|
|
||||||
url = "https://github.com/doomemacs/doomemacs.git";
|
|
||||||
# When updating me, remember to run `doom sync`
|
|
||||||
rev = "5ad99220b86ae1bf421861dfad24492d768ac4d9";
|
|
||||||
};
|
|
||||||
# We need to use recursive mode here or else doom fails to sync for
|
|
||||||
# some reason related to the permissions on the synced path. I'm not
|
|
||||||
# quite sure of everything that's going on here.
|
|
||||||
recursive = true;
|
|
||||||
|
|
||||||
# Because `recursive = true` will cause this to sync every single
|
|
||||||
# activation, we turn this off here.
|
|
||||||
#
|
|
||||||
# There's probably a way we could do better detection of this within
|
|
||||||
# our onChange shell?
|
|
||||||
#
|
|
||||||
# onChange = doomSync;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
|
|
||||||
EDITOR = "emacs -nw";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionPath = [
|
home.sessionPath = [
|
||||||
"${config.xdg.configHome}/emacs/bin"
|
"${config.xdg.configHome}/emacs/bin"
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."doom" = {
|
home.sessionVariables = {
|
||||||
source = ./doom;
|
DOOMDIR = "${config.xdg.configHome}/doom";
|
||||||
# Sync doom if we updated the config
|
DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
|
||||||
onChange = doomSync;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.file."${config.xdg.configHome}/doom".source = ./doom;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
||||||
;; refresh your font settings. If Emacs still can't find your font, it likely
|
;; refresh your font settings. If Emacs still can't find your font, it likely
|
||||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
||||||
|
(setq doom-font (font-spec :family "Fira Code"))
|
||||||
|
|
||||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||||
@@ -43,7 +44,11 @@
|
|||||||
(setq org-directory "~/org/")
|
(setq org-directory "~/org/")
|
||||||
(after! org
|
(after! org
|
||||||
(setq org-agenda-span 'week
|
(setq org-agenda-span 'week
|
||||||
org-agenda-files `(,org-directory ,(concat org-directory "roam/"))
|
my-agenda-dirs '("projects" "roam")
|
||||||
|
org-agenda-files (cons org-directory (mapcan (lambda (x) (directory-files-recursively
|
||||||
|
(expand-file-name x org-directory)
|
||||||
|
"\.org$"))
|
||||||
|
my-agenda-dirs))
|
||||||
org-log-done 'time
|
org-log-done 'time
|
||||||
org-agenda-custom-commands '(("n" "Agenda"
|
org-agenda-custom-commands '(("n" "Agenda"
|
||||||
((agenda "")
|
((agenda "")
|
||||||
@@ -67,6 +72,16 @@
|
|||||||
;; org-caldav-files nil
|
;; org-caldav-files nil
|
||||||
;; org-caldav-sync-direction 'cal->org))
|
;; org-caldav-sync-direction 'cal->org))
|
||||||
|
|
||||||
|
(defun my/get-rbw-password (alias)
|
||||||
|
"Return the password for ALIAS via rbw, unlocking the vault only if needed."
|
||||||
|
(let* ((cmd (format "rbw get %s 2>&1" alias))
|
||||||
|
(output (shell-command-to-string cmd)))
|
||||||
|
(string-trim output)))
|
||||||
|
|
||||||
|
(use-package! gptel
|
||||||
|
:defer t
|
||||||
|
:config
|
||||||
|
(setq! gptel-api-key (my/get-rbw-password "openai-api-key-chatgpt-el")))
|
||||||
|
|
||||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
|
;; Whenever you reconfigure a package, make sure to wrap your config in an
|
||||||
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
|
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
|
||||||
|
|||||||
@@ -108,7 +108,7 @@
|
|||||||
|
|
||||||
:os
|
:os
|
||||||
(:if (featurep :system 'macos) macos) ; improve compatibility with macOS
|
(:if (featurep :system 'macos) macos) ; improve compatibility with macOS
|
||||||
;;tty ; improve the terminal Emacs experience
|
tty ; improve the terminal Emacs experience
|
||||||
|
|
||||||
:lang
|
:lang
|
||||||
;;agda ; types of types of types of types...
|
;;agda ; types of types of types of types...
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
;;lua ; one-based indices? one-based indices
|
;;lua ; one-based indices? one-based indices
|
||||||
markdown ; writing docs for people to ignore
|
markdown ; writing docs for people to ignore
|
||||||
;;nim ; python + lisp at the speed of c
|
;;nim ; python + lisp at the speed of c
|
||||||
(nix +tree-sitter +lsp) ; I hereby declare "nix geht mehr!"
|
(nix +tree-sitter) ; I hereby declare "nix geht mehr!"
|
||||||
;;ocaml ; an objective camel
|
;;ocaml ; an objective camel
|
||||||
(org +roam2) ; organize your plain life in plain text
|
(org +roam2) ; organize your plain life in plain text
|
||||||
;;php ; perl's insecure younger brother
|
;;php ; perl's insecure younger brother
|
||||||
|
|||||||
@@ -50,3 +50,5 @@
|
|||||||
;; (unpin! t)
|
;; (unpin! t)
|
||||||
|
|
||||||
;; (package! org-caldav)
|
;; (package! org-caldav)
|
||||||
|
|
||||||
|
(package! gptel :recipe (:nonrecursive t))
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hyprpaper.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [ inputs.hy3.packages.x86_64-linux.hy3 ];
|
|
||||||
settings = {
|
|
||||||
"$mod" = "SUPER";
|
|
||||||
"$terminal" = "kitty";
|
|
||||||
"$fileManager" = "dolphin";
|
|
||||||
"$menu" = "wofi --show drun";
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"waybar"
|
|
||||||
"dunst"
|
|
||||||
];
|
|
||||||
|
|
||||||
xwayland = {
|
|
||||||
force_zero_scaling = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "us";
|
|
||||||
kb_options = "caps:escape";
|
|
||||||
follow_mouse = 1;
|
|
||||||
touchpad.natural_scroll = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
windowrulev2 = [
|
|
||||||
# I can guess, but I should figure out what this actually does
|
|
||||||
"suppressevent maximize, class:.*"
|
|
||||||
];
|
|
||||||
|
|
||||||
general.layout = "hy3";
|
|
||||||
|
|
||||||
bind =
|
|
||||||
[
|
|
||||||
"SHIFT_$mod, Q, killactive"
|
|
||||||
"SHIFT_$mod, M, exit"
|
|
||||||
|
|
||||||
"$mod, D, exec, $menu"
|
|
||||||
"$mod, Return, exec, $terminal"
|
|
||||||
|
|
||||||
"$mod, H, hy3:movefocus, l"
|
|
||||||
"$mod, L, hy3:movefocus, r"
|
|
||||||
"$mod, K, hy3:movefocus, u"
|
|
||||||
"$mod, J, hy3:movefocus, d"
|
|
||||||
|
|
||||||
"SHIFT_$mod, H, hy3:movewindow, l"
|
|
||||||
"SHIFT_$mod, L, hy3:movewindow, r"
|
|
||||||
"SHIFT_$mod, K, hy3:movewindow, u"
|
|
||||||
"SHIFT_$mod, J, hy3:movewindow, d"
|
|
||||||
|
|
||||||
"$mod, V, hy3:makegroup, opposite"
|
|
||||||
"$mod, W, hy3:changegroup, toggletab"
|
|
||||||
|
|
||||||
"$mod, A, hy3:changefocus, raise"
|
|
||||||
"SHIFT_$mod, A, hy3:changefocus, lower"
|
|
||||||
|
|
||||||
"$mod, M, fullscreen, 0"
|
|
||||||
"$mod, E, hy3:expand, expand"
|
|
||||||
"SHIFT_$mod, E, hy3:expand, base"
|
|
||||||
|
|
||||||
"$mod, Q, hy3:warpcursor"
|
|
||||||
]
|
|
||||||
++ (
|
|
||||||
# workspaces
|
|
||||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
|
||||||
builtins.concatLists (builtins.genList (
|
|
||||||
x: let
|
|
||||||
ws = let
|
|
||||||
c = (x + 1) / 10;
|
|
||||||
in
|
|
||||||
builtins.toString (x + 1 - (c * 10));
|
|
||||||
in [
|
|
||||||
"$mod, ${ws}, workspace, ${toString (x + 1)}"
|
|
||||||
"$mod SHIFT, ${ws}, hy3:movetoworkspace, ${toString (x + 1)}"
|
|
||||||
]
|
|
||||||
)
|
|
||||||
10)
|
|
||||||
);
|
|
||||||
|
|
||||||
bindm =
|
|
||||||
[
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.hyprpaper = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
ipc = "on";
|
|
||||||
splash = false;
|
|
||||||
preload = [
|
|
||||||
"${config.xdg.dataHome}/wallpaper.jpg"
|
|
||||||
];
|
|
||||||
wallpaper = [
|
|
||||||
",${config.xdg.dataHome}/wallpaper.jpg"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.dataFile."wallpaper.jpg" = {
|
|
||||||
source = ./wallpaper.jpg;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings.monitor = ",preferred,2880x1800@90.00Hz,1.33333";
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 842 KiB |
@@ -1,16 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings.monitor = "DP-1,3440x1440@164.90,0x0,1.33333,vrr,1";
|
|
||||||
wayland.windowManager.hyprland.settings.env = [
|
|
||||||
"LIBVA_DRIVER_NAME,nvidia"
|
|
||||||
"XDG_SESSION_TYPE,wayland"
|
|
||||||
"GBM_BACKEND,nvidia-drm"
|
|
||||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
|
||||||
"NVD_BACKEND,direct"
|
|
||||||
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
|
||||||
"NIXOS_OZONE_WL,1"
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings.cursor.no_hardware_cursors = true;
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = [
|
|
||||||
pkgs.gamescope
|
|
||||||
pkgs.lutris
|
|
||||||
pkgs.mangohud
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,225 +1,80 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
|
||||||
# The following can be generated with the command:
|
# The current KDE config can be output with the command:
|
||||||
# nix run github:nix-community/plasma-manager
|
# nix run github:nix-community/plasma-manager
|
||||||
#
|
#
|
||||||
# Plasma-manager options documentation
|
# Plasma-manager options documentation
|
||||||
# https://nix-community.github.io/plasma-manager/options.xhtml
|
# https://nix-community.github.io/plasma-manager/options.xhtml
|
||||||
#
|
#
|
||||||
# Polonium usage
|
# TODO: (ambitious) Add Kmail support to plasma-manager
|
||||||
# https://github.com/zeroxoneafour/polonium/blob/master/docs/usage.md
|
|
||||||
#
|
|
||||||
# TODO: Extract this configuration into something that's a bit easier to manage
|
|
||||||
# TODO: Update shortcuts for better window/tiling/desktop management akin to i3wm
|
|
||||||
# TODO(ambitious): Add Kmail support to plasma-manager
|
|
||||||
{
|
{
|
||||||
programs.plasma = {
|
programs.plasma = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
overrideConfig = true;
|
||||||
|
|
||||||
|
hotkeys.commands."launch-konsole" = {
|
||||||
|
name = "Launch Konsole";
|
||||||
|
key = "Meta+Return";
|
||||||
|
command = "konsole";
|
||||||
|
};
|
||||||
|
|
||||||
shortcuts = {
|
shortcuts = {
|
||||||
"KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L";
|
kmix = {
|
||||||
"KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K";
|
"decrease_microphone_volume" = "Microphone Volume Down";
|
||||||
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
"decrease_volume" = "Volume Down";
|
||||||
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
|
"decrease_volume_small" = "Shift+Volume Down";
|
||||||
"kcm_touchpad"."Enable Touchpad" = "Touchpad On";
|
"increase_microphone_volume" = "Microphone Volume Up";
|
||||||
"kcm_touchpad"."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku,Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku,Toggle Touchpad"];
|
"increase_volume" = "Volume Up";
|
||||||
"kmix"."decrease_microphone_volume" = "Microphone Volume Down";
|
"increase_volume_small" = "Shift+Volume Up";
|
||||||
"kmix"."decrease_volume" = "Volume Down";
|
"mic_mute" = ["Microphone Mute" "Meta+Volume Mute,Microphone Mute" "Meta+Volume Mute,Mute Microphone"];
|
||||||
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
"mute" = "Volume Mute";
|
||||||
"kmix"."increase_microphone_volume" = "Microphone Volume Up";
|
};
|
||||||
"kmix"."increase_volume" = "Volume Up";
|
|
||||||
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
mediacontrol = {
|
||||||
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute,Microphone Mute" "Meta+Volume Mute,Mute Microphone"];
|
"mediavolumedown" = "none,,Media volume down";
|
||||||
"kmix"."mute" = "Volume Mute";
|
"mediavolumeup" = "none,,Media volume up";
|
||||||
"ksmserver"."Halt Without Confirmation" = "none,,Shut Down Without Confirmation";
|
"nextmedia" = "Media Next";
|
||||||
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver,Meta+L" "Screensaver,Lock Session"];
|
"pausemedia" = "Media Pause";
|
||||||
"ksmserver"."Log Out" = "Ctrl+Alt+Del";
|
"playmedia" = "none,,Play media playback";
|
||||||
"ksmserver"."Log Out Without Confirmation" = "none,,Log Out Without Confirmation";
|
"playpausemedia" = "Media Play";
|
||||||
"ksmserver"."LogOut" = "none,,Log Out";
|
"previousmedia" = "Media Previous";
|
||||||
"ksmserver"."Reboot" = "none,,Reboot";
|
"stopmedia" = "Media Stop";
|
||||||
"ksmserver"."Reboot Without Confirmation" = "none,,Reboot Without Confirmation";
|
};
|
||||||
"ksmserver"."Shut Down" = "none,,Shut Down";
|
|
||||||
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
ksmserver = {
|
||||||
"kwin"."Cycle Overview" = [ ];
|
"Lock Session" = ["Meta+Ctrl+Q" "Screensaver" "Screensaver,Lock Session"];
|
||||||
"kwin"."Cycle Overview Opposite" = [ ];
|
};
|
||||||
"kwin"."Decrease Opacity" = "none,,Decrease Opacity of Active Window by 5%";
|
|
||||||
"kwin"."Edit Tiles" = "Meta+T";
|
kwin = {
|
||||||
"kwin"."Expose" = "Ctrl+F9";
|
"Window Close" = "Meta+Shift+Q";
|
||||||
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C),Ctrl+F10" "Launch (C),Toggle Present Windows (All desktops)"];
|
"Kill Window" = "Meta+Ctrl+Esc";
|
||||||
"kwin"."ExposeClass" = "Ctrl+F7";
|
"Window Operations Menu" = "Alt+F3";
|
||||||
"kwin"."ExposeClassCurrentDesktop" = [ ];
|
"Window Resize" = "Meta+R,,Resize Window";
|
||||||
"kwin"."Grid View" = "Meta+G";
|
|
||||||
"kwin"."Increase Opacity" = "none,,Increase Opacity of Active Window by 5%";
|
"Overview" = "Meta+W";
|
||||||
"kwin"."Kill Window" = "Meta+Ctrl+Esc";
|
"Grid View" = "Meta+G";
|
||||||
"kwin"."Move Tablet to Next Output" = [ ];
|
"Edit Tiles" = "Meta+T";
|
||||||
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
|
||||||
"kwin"."MoveMouseToFocus" = "Meta+F5";
|
"Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||||
"kwin"."MoveZoomDown" = [ ];
|
|
||||||
"kwin"."MoveZoomLeft" = [ ];
|
"Show Desktop" = "Meta+D";
|
||||||
"kwin"."MoveZoomRight" = [ ];
|
|
||||||
"kwin"."MoveZoomUp" = [ ];
|
"Walk Through Windows" = "Alt+Tab";
|
||||||
"kwin"."Overview" = "Meta+W";
|
"Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||||
"kwin"."PoloniumCycleEngine" = "Meta+|,none,Polonium: Cycle Engine";
|
"Walk Through Windows of Current Application" = "Alt+`";
|
||||||
"kwin"."PoloniumFocusAbove" = "Meta+K,none,Polonium: Focus Above";
|
"Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||||
"kwin"."PoloniumFocusBelow" = "Meta+J,none,Polonium: Focus Below";
|
"Window Fullscreen" = "Meta+Shift+F,,Make Window Fullscreen";
|
||||||
"kwin"."PoloniumFocusLeft" = "Meta+H,none,Polonium: Focus Left";
|
|
||||||
"kwin"."PoloniumFocusRight" = "Meta+L,none,Polonium: Focus Right";
|
"Window Quick Tile Bottom" = "Meta+Down";
|
||||||
"kwin"."PoloniumInsertAbove" = "Meta+Shift+K,none,Polonium: Insert Above";
|
"Window Quick Tile Left" = "Meta+Left";
|
||||||
"kwin"."PoloniumInsertBelow" = "Meta+Shift+J,none,Polonium: Insert Below";
|
"Window Quick Tile Right" = "Meta+Right";
|
||||||
"kwin"."PoloniumInsertLeft" = "Meta+Shift+H,none,Polonium: Insert Left";
|
"Window Quick Tile Top" = "Meta+Up";
|
||||||
"kwin"."PoloniumInsertRight" = "Meta+Shift+L,none,Polonium: Insert Right";
|
|
||||||
"kwin"."PoloniumOpenSettings" = "Meta+\\\\,none,Polonium: Open Settings Dialog";
|
"view_actual_size" = "Meta+0";
|
||||||
"kwin"."PoloniumResizeAbove" = "Meta+Ctrl+K,none,Polonium: Resize Above";
|
"view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
|
||||||
"kwin"."PoloniumResizeBelow" = "Meta+Ctrl+J,none,Polonium: Resize Below";
|
"view_zoom_out" = "Meta+-";
|
||||||
"kwin"."PoloniumResizeLeft" = "Meta+Ctrl+H,none,Polonium: Resize Left";
|
};
|
||||||
"kwin"."PoloniumResizeRight" = "Meta+Ctrl+L,none,Polonium: Resize Right";
|
|
||||||
"kwin"."PoloniumRetileWindow" = "Meta+Shift+Space,none,Polonium: Retile Window";
|
|
||||||
"kwin"."PoloniumSwitchBTree" = [ ];
|
|
||||||
"kwin"."PoloniumSwitchHalf" = [ ];
|
|
||||||
"kwin"."PoloniumSwitchKwin" = [ ];
|
|
||||||
"kwin"."PoloniumSwitchMonocle" = [ ];
|
|
||||||
"kwin"."PoloniumSwitchThreeColumn" = [ ];
|
|
||||||
"kwin"."Setup Window Shortcut" = "none,,Setup Window Shortcut";
|
|
||||||
"kwin"."Show Desktop" = "Meta+D";
|
|
||||||
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
|
||||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
|
||||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
|
||||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
|
||||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
|
||||||
"kwin"."Switch Window Down" = "Meta+Alt+Down";
|
|
||||||
"kwin"."Switch Window Left" = "Meta+Alt+Left";
|
|
||||||
"kwin"."Switch Window Right" = "Meta+Alt+Right";
|
|
||||||
"kwin"."Switch Window Up" = "Meta+Alt+Up";
|
|
||||||
"kwin"."Switch to Desktop 1" = "Meta+1,Ctrl+F1,Switch to Desktop 1";
|
|
||||||
"kwin"."Switch to Desktop 10" = "none,,Switch to Desktop 10";
|
|
||||||
"kwin"."Switch to Desktop 11" = "none,,Switch to Desktop 11";
|
|
||||||
"kwin"."Switch to Desktop 12" = "none,,Switch to Desktop 12";
|
|
||||||
"kwin"."Switch to Desktop 13" = "none,,Switch to Desktop 13";
|
|
||||||
"kwin"."Switch to Desktop 14" = "none,,Switch to Desktop 14";
|
|
||||||
"kwin"."Switch to Desktop 15" = "none,,Switch to Desktop 15";
|
|
||||||
"kwin"."Switch to Desktop 16" = "none,,Switch to Desktop 16";
|
|
||||||
"kwin"."Switch to Desktop 17" = "none,,Switch to Desktop 17";
|
|
||||||
"kwin"."Switch to Desktop 18" = "none,,Switch to Desktop 18";
|
|
||||||
"kwin"."Switch to Desktop 19" = "none,,Switch to Desktop 19";
|
|
||||||
"kwin"."Switch to Desktop 2" = "Meta+2,Ctrl+F2,Switch to Desktop 2";
|
|
||||||
"kwin"."Switch to Desktop 20" = "none,,Switch to Desktop 20";
|
|
||||||
"kwin"."Switch to Desktop 3" = "Meta+3,Ctrl+F3,Switch to Desktop 3";
|
|
||||||
"kwin"."Switch to Desktop 4" = "Meta+4,Ctrl+F4,Switch to Desktop 4";
|
|
||||||
"kwin"."Switch to Desktop 5" = "Meta+5,,Switch to Desktop 5";
|
|
||||||
"kwin"."Switch to Desktop 6" = "none,,Switch to Desktop 6";
|
|
||||||
"kwin"."Switch to Desktop 7" = "none,,Switch to Desktop 7";
|
|
||||||
"kwin"."Switch to Desktop 8" = "none,,Switch to Desktop 8";
|
|
||||||
"kwin"."Switch to Desktop 9" = "none,,Switch to Desktop 9";
|
|
||||||
"kwin"."Switch to Next Desktop" = "none,,Switch to Next Desktop";
|
|
||||||
"kwin"."Switch to Next Screen" = "none,,Switch to Next Screen";
|
|
||||||
"kwin"."Switch to Previous Desktop" = "none,,Switch to Previous Desktop";
|
|
||||||
"kwin"."Switch to Previous Screen" = "none,,Switch to Previous Screen";
|
|
||||||
"kwin"."Switch to Screen 0" = "none,,Switch to Screen 0";
|
|
||||||
"kwin"."Switch to Screen 1" = "none,,Switch to Screen 1";
|
|
||||||
"kwin"."Switch to Screen 2" = "none,,Switch to Screen 2";
|
|
||||||
"kwin"."Switch to Screen 3" = "none,,Switch to Screen 3";
|
|
||||||
"kwin"."Switch to Screen 4" = "none,,Switch to Screen 4";
|
|
||||||
"kwin"."Switch to Screen 5" = "none,,Switch to Screen 5";
|
|
||||||
"kwin"."Switch to Screen 6" = "none,,Switch to Screen 6";
|
|
||||||
"kwin"."Switch to Screen 7" = "none,,Switch to Screen 7";
|
|
||||||
"kwin"."Switch to Screen Above" = "none,,Switch to Screen Above";
|
|
||||||
"kwin"."Switch to Screen Below" = "none,,Switch to Screen Below";
|
|
||||||
"kwin"."Switch to Screen to the Left" = "none,,Switch to Screen to the Left";
|
|
||||||
"kwin"."Switch to Screen to the Right" = "none,,Switch to Screen to the Right";
|
|
||||||
"kwin"."Toggle Night Color" = [ ];
|
|
||||||
"kwin"."Toggle Window Raise/Lower" = "none,,Toggle Window Raise/Lower";
|
|
||||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
|
||||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
|
||||||
"kwin"."Walk Through Windows Alternative" = "none,,Walk Through Windows Alternative";
|
|
||||||
"kwin"."Walk Through Windows Alternative (Reverse)" = "none,,Walk Through Windows Alternative (Reverse)";
|
|
||||||
"kwin"."Walk Through Windows of Current Application" = "Alt+`";
|
|
||||||
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
|
||||||
"kwin"."Walk Through Windows of Current Application Alternative" = "none,,Walk Through Windows of Current Application Alternative";
|
|
||||||
"kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = "none,,Walk Through Windows of Current Application Alternative (Reverse)";
|
|
||||||
"kwin"."Window Above Other Windows" = "none,,Keep Window Above Others";
|
|
||||||
"kwin"."Window Below Other Windows" = "none,,Keep Window Below Others";
|
|
||||||
"kwin"."Window Close" = "Alt+F4";
|
|
||||||
"kwin"."Window Fullscreen" = "none,,Make Window Fullscreen";
|
|
||||||
"kwin"."Window Grow Horizontal" = "none,,Expand Window Horizontally";
|
|
||||||
"kwin"."Window Grow Vertical" = "none,,Expand Window Vertically";
|
|
||||||
"kwin"."Window Lower" = "none,,Lower Window";
|
|
||||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
|
||||||
"kwin"."Window Maximize Horizontal" = "none,,Maximize Window Horizontally";
|
|
||||||
"kwin"."Window Maximize Vertical" = "none,,Maximize Window Vertically";
|
|
||||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
|
||||||
"kwin"."Window Move" = "none,,Move Window";
|
|
||||||
"kwin"."Window Move Center" = "none,,Move Window to the Center";
|
|
||||||
"kwin"."Window No Border" = "none,,Toggle Window Titlebar and Frame";
|
|
||||||
"kwin"."Window On All Desktops" = "none,,Keep Window on All Desktops";
|
|
||||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
|
||||||
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
|
||||||
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
|
||||||
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
|
||||||
"kwin"."Window One Screen Down" = "none,,Move Window One Screen Down";
|
|
||||||
"kwin"."Window One Screen Up" = "none,,Move Window One Screen Up";
|
|
||||||
"kwin"."Window One Screen to the Left" = "none,,Move Window One Screen to the Left";
|
|
||||||
"kwin"."Window One Screen to the Right" = "none,,Move Window One Screen to the Right";
|
|
||||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
|
||||||
"kwin"."Window Pack Down" = "none,,Move Window Down";
|
|
||||||
"kwin"."Window Pack Left" = "none,,Move Window Left";
|
|
||||||
"kwin"."Window Pack Right" = "none,,Move Window Right";
|
|
||||||
"kwin"."Window Pack Up" = "none,,Move Window Up";
|
|
||||||
"kwin"."Window Quick Tile Bottom" = "Meta+Down";
|
|
||||||
"kwin"."Window Quick Tile Bottom Left" = "none,,Quick Tile Window to the Bottom Left";
|
|
||||||
"kwin"."Window Quick Tile Bottom Right" = "none,,Quick Tile Window to the Bottom Right";
|
|
||||||
"kwin"."Window Quick Tile Left" = "Meta+Left";
|
|
||||||
"kwin"."Window Quick Tile Right" = "Meta+Right";
|
|
||||||
"kwin"."Window Quick Tile Top" = "Meta+Up";
|
|
||||||
"kwin"."Window Quick Tile Top Left" = "none,,Quick Tile Window to the Top Left";
|
|
||||||
"kwin"."Window Quick Tile Top Right" = "none,,Quick Tile Window to the Top Right";
|
|
||||||
"kwin"."Window Raise" = "none,,Raise Window";
|
|
||||||
"kwin"."Window Resize" = "none,,Resize Window";
|
|
||||||
"kwin"."Window Shade" = "none,,Shade Window";
|
|
||||||
"kwin"."Window Shrink Horizontal" = "none,,Shrink Window Horizontally";
|
|
||||||
"kwin"."Window Shrink Vertical" = "none,,Shrink Window Vertically";
|
|
||||||
"kwin"."Window to Desktop 1" = "Meta+!,,Window to Desktop 1";
|
|
||||||
"kwin"."Window to Desktop 10" = "none,,Window to Desktop 10";
|
|
||||||
"kwin"."Window to Desktop 11" = "none,,Window to Desktop 11";
|
|
||||||
"kwin"."Window to Desktop 12" = "none,,Window to Desktop 12";
|
|
||||||
"kwin"."Window to Desktop 13" = "none,,Window to Desktop 13";
|
|
||||||
"kwin"."Window to Desktop 14" = "none,,Window to Desktop 14";
|
|
||||||
"kwin"."Window to Desktop 15" = "none,,Window to Desktop 15";
|
|
||||||
"kwin"."Window to Desktop 16" = "none,,Window to Desktop 16";
|
|
||||||
"kwin"."Window to Desktop 17" = "none,,Window to Desktop 17";
|
|
||||||
"kwin"."Window to Desktop 18" = "none,,Window to Desktop 18";
|
|
||||||
"kwin"."Window to Desktop 19" = "none,,Window to Desktop 19";
|
|
||||||
"kwin"."Window to Desktop 2" = "Meta+@,,Window to Desktop 2";
|
|
||||||
"kwin"."Window to Desktop 20" = "none,,Window to Desktop 20";
|
|
||||||
"kwin"."Window to Desktop 3" = "Meta+#,,Window to Desktop 3";
|
|
||||||
"kwin"."Window to Desktop 4" = "Meta+$,,Window to Desktop 4";
|
|
||||||
"kwin"."Window to Desktop 5" = "Meta+%,,Window to Desktop 5";
|
|
||||||
"kwin"."Window to Desktop 6" = "none,,Window to Desktop 6";
|
|
||||||
"kwin"."Window to Desktop 7" = "none,,Window to Desktop 7";
|
|
||||||
"kwin"."Window to Desktop 8" = "none,,Window to Desktop 8";
|
|
||||||
"kwin"."Window to Desktop 9" = "none,,Window to Desktop 9";
|
|
||||||
"kwin"."Window to Next Desktop" = "none,,Window to Next Desktop";
|
|
||||||
"kwin"."Window to Next Screen" = "Meta+Shift+Right";
|
|
||||||
"kwin"."Window to Previous Desktop" = "none,,Window to Previous Desktop";
|
|
||||||
"kwin"."Window to Previous Screen" = "Meta+Shift+Left";
|
|
||||||
"kwin"."Window to Screen 0" = "none,,Move Window to Screen 0";
|
|
||||||
"kwin"."Window to Screen 1" = "none,,Move Window to Screen 1";
|
|
||||||
"kwin"."Window to Screen 2" = "none,,Move Window to Screen 2";
|
|
||||||
"kwin"."Window to Screen 3" = "none,,Move Window to Screen 3";
|
|
||||||
"kwin"."Window to Screen 4" = "none,,Move Window to Screen 4";
|
|
||||||
"kwin"."Window to Screen 5" = "none,,Move Window to Screen 5";
|
|
||||||
"kwin"."Window to Screen 6" = "none,,Move Window to Screen 6";
|
|
||||||
"kwin"."Window to Screen 7" = "none,,Move Window to Screen 7";
|
|
||||||
"kwin"."view_actual_size" = "Meta+0";
|
|
||||||
"kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
|
|
||||||
"kwin"."view_zoom_out" = "Meta+-";
|
|
||||||
"mediacontrol"."mediavolumedown" = "none,,Media volume down";
|
|
||||||
"mediacontrol"."mediavolumeup" = "none,,Media volume up";
|
|
||||||
"mediacontrol"."nextmedia" = "Media Next";
|
|
||||||
"mediacontrol"."pausemedia" = "Media Pause";
|
|
||||||
"mediacontrol"."playmedia" = "none,,Play media playback";
|
|
||||||
"mediacontrol"."playpausemedia" = "Media Play";
|
|
||||||
"mediacontrol"."previousmedia" = "Media Previous";
|
|
||||||
"mediacontrol"."stopmedia" = "Media Stop";
|
|
||||||
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||||
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||||
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||||
@@ -233,219 +88,40 @@
|
|||||||
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||||
"org_kde_powerdevil"."Turn Off Screen" = [ ];
|
"org_kde_powerdevil"."Turn Off Screen" = [ ];
|
||||||
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
|
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
|
||||||
"plasmashell"."activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
|
|
||||||
"plasmashell"."activate task manager entry 1" = "none,Meta+1,Activate Task Manager Entry 1";
|
plasmashell = {
|
||||||
"plasmashell"."activate task manager entry 10" = "none,Meta+0,Activate Task Manager Entry 10";
|
"activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
|
||||||
"plasmashell"."activate task manager entry 2" = "none,Meta+2,Activate Task Manager Entry 2";
|
"activate task manager entry 1" = "none,,";
|
||||||
"plasmashell"."activate task manager entry 3" = "none,Meta+3,Activate Task Manager Entry 3";
|
"activate task manager entry 2" = "none,,";
|
||||||
"plasmashell"."activate task manager entry 4" = "none,Meta+4,Activate Task Manager Entry 4";
|
"activate task manager entry 3" = "none,,";
|
||||||
"plasmashell"."activate task manager entry 5" = "none,Meta+5,Activate Task Manager Entry 5";
|
"activate task manager entry 4" = "none,,";
|
||||||
"plasmashell"."activate task manager entry 6" = "Meta+6";
|
"activate task manager entry 5" = "none,,";
|
||||||
"plasmashell"."activate task manager entry 7" = "Meta+7";
|
"activate task manager entry 6" = "none,,";
|
||||||
"plasmashell"."activate task manager entry 8" = "Meta+8";
|
"activate task manager entry 7" = "none,,";
|
||||||
"plasmashell"."activate task manager entry 9" = "Meta+9";
|
"activate task manager entry 8" = "none,,";
|
||||||
"plasmashell"."clear-history" = "none,,Clear Clipboard History";
|
"activate task manager entry 9" = "none,,";
|
||||||
"plasmashell"."clipboard_action" = "Meta+Ctrl+X";
|
"activate task manager entry 10" = "none,,";
|
||||||
"plasmashell"."cycle-panels" = "Meta+Alt+P";
|
"show activity switcher" = "none,,";
|
||||||
"plasmashell"."cycleNextAction" = "none,,Next History Item";
|
};
|
||||||
"plasmashell"."cyclePrevAction" = "none,,Previous History Item";
|
|
||||||
"plasmashell"."manage activities" = "Meta+Q";
|
|
||||||
"plasmashell"."next activity" = "Meta+A,none,Walk through activities";
|
|
||||||
"plasmashell"."previous activity" = "Meta+Shift+A,none,Walk through activities (Reverse)";
|
|
||||||
"plasmashell"."repeat_action" = "none,Meta+Ctrl+R,Manually Invoke Action on Current Clipboard";
|
|
||||||
"plasmashell"."show dashboard" = "Ctrl+F12";
|
|
||||||
"plasmashell"."show-barcode" = "none,,Show Barcode…";
|
|
||||||
"plasmashell"."show-on-mouse-pos" = "Meta+V";
|
|
||||||
"plasmashell"."stop current activity" = "Meta+S";
|
|
||||||
"plasmashell"."switch to next activity" = "none,,Switch to Next Activity";
|
|
||||||
"plasmashell"."switch to previous activity" = "none,,Switch to Previous Activity";
|
|
||||||
"plasmashell"."toggle do not disturb" = "none,,Toggle do not disturb";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
configFile = {
|
configFile = {
|
||||||
"baloofilerc"."General"."dbVersion" = 2;
|
kwinrc.Desktops.Number = {
|
||||||
"baloofilerc"."General"."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
value = 10;
|
||||||
"baloofilerc"."General"."exclude filters version" = 9;
|
immutable = true;
|
||||||
"dolphinrc"."KFileDialog Settings"."Places Icons Auto-resize" = false;
|
};
|
||||||
"dolphinrc"."KFileDialog Settings"."Places Icons Static Size" = 22;
|
|
||||||
"katerc"."General"."Days Meta Infos" = 30;
|
kcminputrc.Libinput = {
|
||||||
"katerc"."General"."Save Meta Infos" = true;
|
AccelerationProfile = "adaptive";
|
||||||
"katerc"."General"."Show Full Path in Title" = false;
|
PointerAcceleration = 0.5;
|
||||||
"katerc"."General"."Show Menu Bar" = true;
|
};
|
||||||
"katerc"."General"."Show Status Bar" = true;
|
|
||||||
"katerc"."General"."Show Tab Bar" = true;
|
kcminputrc.Mouse = {
|
||||||
"katerc"."General"."Show Url Nav Bar" = true;
|
X11LibInputXAccelProfileFlat = false;
|
||||||
"katerc"."KTextEditor Renderer"."Animate Bracket Matching" = false;
|
XLbInptAccelProfileFlat = false;
|
||||||
"katerc"."KTextEditor Renderer"."Auto Color Theme Selection" = true;
|
};
|
||||||
"katerc"."KTextEditor Renderer"."Color Theme" = "Breeze Light";
|
|
||||||
"katerc"."KTextEditor Renderer"."Line Height Multiplier" = 1;
|
kdeglobals.KDE.LookAndFeelPackage = "org.kde.breezedark.desktop";
|
||||||
"katerc"."KTextEditor Renderer"."Show Indentation Lines" = false;
|
|
||||||
"katerc"."KTextEditor Renderer"."Show Whole Bracket Expression" = false;
|
|
||||||
"katerc"."KTextEditor Renderer"."Text Font" = "Hack,10,-1,7,400,0,0,0,0,0,0,0,0,0,0,1";
|
|
||||||
"katerc"."KTextEditor Renderer"."Word Wrap Marker" = false;
|
|
||||||
"katerc"."filetree"."editShade" = "183,220,246";
|
|
||||||
"katerc"."filetree"."listMode" = false;
|
|
||||||
"katerc"."filetree"."middleClickToClose" = false;
|
|
||||||
"katerc"."filetree"."shadingEnabled" = true;
|
|
||||||
"katerc"."filetree"."showCloseButton" = false;
|
|
||||||
"katerc"."filetree"."showFullPathOnRoots" = false;
|
|
||||||
"katerc"."filetree"."showToolbar" = true;
|
|
||||||
"katerc"."filetree"."sortRole" = 0;
|
|
||||||
"katerc"."filetree"."viewShade" = "211,190,222";
|
|
||||||
"kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat" = true;
|
|
||||||
"kded5rc"."Module-browserintegrationreminder"."autoload" = false;
|
|
||||||
"kded5rc"."Module-device_automounter"."autoload" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Allow Expansion" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Automatically select filename extension" = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Breadcrumb Navigation" = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Decoration position" = 2;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."LocationCombo Completionmode" = 5;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."PathCombo Completionmode" = 5;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Bookmarks" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Full Path" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Inline Previews" = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Preview" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Speedbar" = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show hidden files" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort by" = "Name";
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort directories first" = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort hidden files last" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort reversed" = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Speedbar Width" = 131;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."View Style" = "DetailTree";
|
|
||||||
"kdeglobals"."WM"."activeBackground" = "227,229,231";
|
|
||||||
"kdeglobals"."WM"."activeBlend" = "227,229,231";
|
|
||||||
"kdeglobals"."WM"."activeForeground" = "35,38,41";
|
|
||||||
"kdeglobals"."WM"."inactiveBackground" = "239,240,241";
|
|
||||||
"kdeglobals"."WM"."inactiveBlend" = "239,240,241";
|
|
||||||
"kdeglobals"."WM"."inactiveForeground" = "112,125,138";
|
|
||||||
"kiorc"."Confirmations"."ConfirmDelete" = true;
|
|
||||||
"kscreenlockerrc"."Daemon"."LockOnResume" = false;
|
|
||||||
"kwalletrc"."Wallet"."First Use" = false;
|
|
||||||
"kwinrc"."Desktops"."Id_1" = "48e67529-9a58-4caa-bc27-a02ddf746389";
|
|
||||||
"kwinrc"."Desktops"."Id_2" = "da76cc12-2e22-4fb4-87aa-3c17d7be63b0";
|
|
||||||
"kwinrc"."Desktops"."Id_3" = "a6cb23ae-3d6a-4609-b593-d956f16f125c";
|
|
||||||
"kwinrc"."Desktops"."Id_4" = "6e61e508-b5f1-4053-a9d3-34b80a155a10";
|
|
||||||
"kwinrc"."Desktops"."Number" = 4;
|
|
||||||
"kwinrc"."Desktops"."Rows" = 1;
|
|
||||||
"kwinrc"."Plugins"."poloniumEnabled" = true;
|
|
||||||
"kwinrc"."Tiling"."padding" = 4;
|
|
||||||
"kwinrc"."Xwayland"."Scale" = 1.25;
|
|
||||||
"plasma-localerc"."Formats"."LANG" = "en_US.UTF-8";
|
|
||||||
"plasmarc"."Wallpapers"."usersWallpapers" = "";
|
|
||||||
"spectaclerc"."ImageSave"."translatedScreenshotsFolder" = "Screenshots";
|
|
||||||
"spectaclerc"."VideoSave"."translatedScreencastsFolder" = "Screencasts";
|
|
||||||
};
|
|
||||||
dataFile = {
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."cmaketoolsplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."compilerexplorer" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."eslintplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."externaltoolsplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."formatplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katebacktracebrowserplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katebuildplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katecloseexceptplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katecolorpickerplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katectagsplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katefilebrowserplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katefiletreeplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."kategdbplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."kategitblameplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katekonsoleplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."kateprojectplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katereplicodeplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katesearchplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katesnippetsplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katesymbolviewerplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katexmlcheckplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."katexmltoolsplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."keyboardmacrosplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."ktexteditorpreviewplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."latexcompletionplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."lspclientplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."openlinkplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."rainbowparens" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."rbqlplugin" = false;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."tabswitcherplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."Kate Plugins"."textfilterplugin" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Active ViewSpace" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-H-Splitter" = "0,594,0";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-Bar-0-TvList" = "kate_private_plugin_katefiletreeplugin,kateproject,kateprojectgit,lspclient_symbol_outline";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-LastSize" = 200;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-SectSizes" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-Splitter" = 371;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-Bar-0-TvList" = "";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-LastSize" = 200;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-SectSizes" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-Splitter" = 371;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-Bar-0-TvList" = "";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-LastSize" = 200;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-SectSizes" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-Splitter" = 594;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-Bar-0-TvList" = "output,diagnostics,kate_plugin_katesearch,kateprojectinfo,kate_private_plugin_katekonsoleplugin";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-LastSize" = 200;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-SectSizes" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-Splitter" = 209;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-Style" = 2;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-Visible" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-diagnostics-Position" = 3;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-diagnostics-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-diagnostics-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_plugin_katesearch-Position" = 3;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_plugin_katesearch-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_plugin_katesearch-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katefiletreeplugin-Position" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katefiletreeplugin-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katefiletreeplugin-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katekonsoleplugin-Position" = 3;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katekonsoleplugin-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katekonsoleplugin-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateproject-Position" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateproject-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateproject-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectgit-Position" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectgit-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectgit-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectinfo-Position" = 3;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectinfo-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectinfo-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-lspclient_symbol_outline-Position" = 0;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-lspclient_symbol_outline-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-lspclient_symbol_outline-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-output-Position" = 3;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-output-Show-Button-In-Sidebar" = true;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-output-Visible" = false;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-V-Splitter" = "0,369,0";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0"."ToolBarsMovable" = "Disabled";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0 Settings"."ToolBarsMovable" = "Disabled";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0 Settings"."WindowState" = 8;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0-Splitter 0"."Children" = "MainWindow0-ViewSpace 0";
|
|
||||||
"kate/anonymous.katesession"."MainWindow0-Splitter 0"."Orientation" = 1;
|
|
||||||
"kate/anonymous.katesession"."MainWindow0-Splitter 0"."Sizes" = 594;
|
|
||||||
"kate/anonymous.katesession"."Open Documents"."Count" = 1;
|
|
||||||
"kate/anonymous.katesession"."Open MainWindows"."Count" = 1;
|
|
||||||
"kate/anonymous.katesession"."Plugin:kateprojectplugin:"."projects" = "";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."BinaryFiles" = false;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."CurrentExcludeFilter" = "-1";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."CurrentFilter" = "-1";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."ExcludeFilters" = "";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."ExpandSearchResults" = false;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Filters" = "";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."FollowSymLink" = false;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."HiddenFiles" = false;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."MatchCase" = false;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Place" = 1;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Recursive" = true;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Replaces" = "";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Search" = "";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeAllProjects" = true;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeCurrentFile" = true;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeFolder" = true;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeOpenFiles" = true;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeProject" = true;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchDiskFiles" = "";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchDiskFiless" = "";
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SizeLimit" = 128;
|
|
||||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."UseRegExp" = false;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
52
home/modules/tmux/default.nix
Normal file
52
home/modules/tmux/default.nix
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
tokyo-night = pkgs.tmuxPlugins.mkTmuxPlugin {
|
||||||
|
pluginName = "tokyo-night";
|
||||||
|
rtpFilePath = "tokyo-night.tmux";
|
||||||
|
version = "1.6.1";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "janoamaral";
|
||||||
|
repo = "tokyo-night-tmux";
|
||||||
|
rev = "d610ced20d5f602a7995854931440e4a1e0ab780";
|
||||||
|
sha256 = "sha256-17vEgkL7C51p/l5gpT9dkOy0bY9n8l0/LV51mR1k+V8=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.tmux.enable = true;
|
||||||
|
programs.tmux.terminal = "tmux-direct";
|
||||||
|
programs.tmux.keyMode = "vi";
|
||||||
|
programs.tmux.escapeTime = 0;
|
||||||
|
programs.tmux.mouse = true;
|
||||||
|
programs.tmux.newSession = true;
|
||||||
|
programs.tmux.historyLimit = 50000;
|
||||||
|
programs.tmux.clock24 = true;
|
||||||
|
programs.tmux.baseIndex = 1;
|
||||||
|
programs.tmux.prefix = "M-\\\\";
|
||||||
|
|
||||||
|
programs.tmux.plugins = with pkgs; [
|
||||||
|
tmuxPlugins.cpu
|
||||||
|
tmuxPlugins.battery
|
||||||
|
tmuxPlugins.better-mouse-mode
|
||||||
|
tmuxPlugins.net-speed
|
||||||
|
tmuxPlugins.online-status
|
||||||
|
tmuxPlugins.pain-control
|
||||||
|
tmuxPlugins.tilish
|
||||||
|
tmuxPlugins.yank
|
||||||
|
|
||||||
|
{
|
||||||
|
plugin = tmuxPlugins.resurrect;
|
||||||
|
extraConfig = "set -g @resurrect-strategy-nvim 'session'";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = tmuxPlugins.continuum;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
set -g @continuum-save-interval '15' # minutes
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
||||||
|
tokyo-night
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page, 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`).
|
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||||
|
|
||||||
{ lib, ... }:
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
@@ -14,9 +14,17 @@ with lib;
|
|||||||
|
|
||||||
roles = {
|
roles = {
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
|
bluetooth.enable = true;
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
gaming = true;
|
||||||
|
kde = true;
|
||||||
|
sddm = true;
|
||||||
|
wayland = true;
|
||||||
|
};
|
||||||
kodi = {
|
kodi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autologin = true;
|
autologin = false;
|
||||||
wayland = true;
|
wayland = true;
|
||||||
};
|
};
|
||||||
users.enable = true;
|
users.enable = true;
|
||||||
@@ -28,9 +36,15 @@ with lib;
|
|||||||
|
|
||||||
networking.hostName = "boxy"; # Define your hostname.
|
networking.hostName = "boxy"; # Define your hostname.
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||||
hardware.graphics.enable = true;
|
hardware.graphics.enable = true;
|
||||||
|
hardware.graphics.enable32Bit = true;
|
||||||
services.displayManager.enable = mkForce false;
|
hardware.graphics.extraPackages = with pkgs; [
|
||||||
|
amdvlk
|
||||||
|
];
|
||||||
|
hardware.graphics.extraPackages32 = with pkgs; [
|
||||||
|
driversi686Linux.amdvlk
|
||||||
|
];
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,13 @@
|
|||||||
roles = {
|
roles = {
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
desktop.enable = true;
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
wayland = true;
|
||||||
|
gaming = false;
|
||||||
|
kde = true;
|
||||||
|
sddm = true;
|
||||||
|
};
|
||||||
nfs-mounts.enable = true;
|
nfs-mounts.enable = true;
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
spotifyd.enable = true;
|
spotifyd.enable = true;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
swapDevices =
|
swapDevices =
|
||||||
[ { device = "/dev/disk/by-uuid/ec1f70ea-27b6-4646-ad3b-eac41bd83e3e"; }
|
[ { device = "/dev/disk/by-uuid/ec1f70ea-27b6-4646-ad3b-eac41bd83e3e"; }
|
||||||
];
|
];
|
||||||
|
zramSwap.enable = true;
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|||||||
62
machines/wixos/configuration.nix
Normal file
62
machines/wixos/configuration.nix
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# 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`).
|
||||||
|
|
||||||
|
# NixOS-WSL specific options are documented on the NixOS-WSL repository:
|
||||||
|
# https://github.com/nix-community/NixOS-WSL
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
];
|
||||||
|
|
||||||
|
roles = {
|
||||||
|
audio.enable = true;
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
wayland = true;
|
||||||
|
};
|
||||||
|
users.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = "wixos";
|
||||||
|
|
||||||
|
wsl.enable = true;
|
||||||
|
wsl.defaultUser = "johno";
|
||||||
|
wsl.startMenuLaunchers = true;
|
||||||
|
wsl.useWindowsDriver = true;
|
||||||
|
wsl.wslConf.network.hostname = "wixos";
|
||||||
|
wsl.wslConf.user.default = "johno";
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
mesa
|
||||||
|
libvdpau-va-gl
|
||||||
|
vaapiVdpau
|
||||||
|
];
|
||||||
|
};
|
||||||
|
environment.sessionVariables = {
|
||||||
|
LD_LIBRARY_PATH = [
|
||||||
|
"/usr/lib/wsl/lib"
|
||||||
|
"/run/opengl-driver/lib"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
open = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
||||||
|
};
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It's perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "24.05"; # Did you read the comment?
|
||||||
|
}
|
||||||
@@ -1,63 +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
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ # Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
roles = {
|
|
||||||
audio.enable = true;
|
|
||||||
desktop = {
|
|
||||||
enable = true;
|
|
||||||
x11Only = true;
|
|
||||||
};
|
|
||||||
kodi.enable = true;
|
|
||||||
nfs-mounts.enable = true;
|
|
||||||
printing.enable = true;
|
|
||||||
spotifyd.enable = true;
|
|
||||||
users = {
|
|
||||||
enable = true;
|
|
||||||
extraGroups = [ "input" "libvirtd" ];
|
|
||||||
kids = true;
|
|
||||||
};
|
|
||||||
virtualisation.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.grub.useOSProber = true;
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostName = "z790prors-nix"; # Define your hostname.
|
|
||||||
domain = "oglehome";
|
|
||||||
defaultGateway = "10.0.0.1";
|
|
||||||
nameservers = [ "10.0.0.1" ];
|
|
||||||
|
|
||||||
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
|
||||||
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
|
||||||
# replicates the default behaviour.
|
|
||||||
useDHCP = false;
|
|
||||||
|
|
||||||
interfaces.enp3s0.ipv4.addresses = [{
|
|
||||||
address = "10.0.0.37";
|
|
||||||
prefixLength = 24;
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Figure out something with this
|
|
||||||
nix.settings.secret-key-files = /root/cache-priv-key.pem;
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
|
||||||
# settings for stateful data, like file locations and database versions
|
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
||||||
# this value at the release version of the first install of this system.
|
|
||||||
# Before changing this value read the documentation for this option
|
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
||||||
system.stateVersion = "21.11"; # Did you read the comment?
|
|
||||||
}
|
|
||||||
@@ -1,65 +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, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [
|
|
||||||
"nvidia"
|
|
||||||
"nvidia_modeset"
|
|
||||||
"nvidia_uvm"
|
|
||||||
"nvidia_drm"
|
|
||||||
];
|
|
||||||
boot.kernelParams = [
|
|
||||||
"nvidia_drm.fbdev=1"
|
|
||||||
"nvidia_drm.modeset=1"
|
|
||||||
];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
hardware.graphics.enable = true;
|
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
|
||||||
services.xserver.screenSection = ''Option "metamodes" "3440x1440_165 +0+0"'';
|
|
||||||
services.xserver.enableTearFree = true;
|
|
||||||
hardware.nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
powerManagement.enable = false;
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
open = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.production;
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/8d996d13-6d55-4524-83a2-6f6fb47a09ea";
|
|
||||||
fsType = "btrfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/7445-C336";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/arch" =
|
|
||||||
{ device = "/dev/disk/by-label/endeavouros";
|
|
||||||
fsType = "btrfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
services.beesd.filesystems = {
|
|
||||||
root = {
|
|
||||||
spec = "LABEL=nixos";
|
|
||||||
hashTableSizeMB = 4096;
|
|
||||||
verbosity = "crit";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
nextcloudTalkDesktop = pkgs.callPackage ./nextcloud-talk-desktop {};
|
vulkanHDRLayer = pkgs.callPackage ./vulkan-hdr-layer {};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,79 +0,0 @@
|
|||||||
{ lib
|
|
||||||
, stdenv
|
|
||||||
, fetchzip
|
|
||||||
, autoPatchelfHook
|
|
||||||
|
|
||||||
, nss
|
|
||||||
, cairo
|
|
||||||
, xorg
|
|
||||||
, libxkbcommon
|
|
||||||
, alsa-lib
|
|
||||||
, at-spi2-core
|
|
||||||
, mesa
|
|
||||||
, pango
|
|
||||||
, libdrm
|
|
||||||
, vivaldi-ffmpeg-codecs
|
|
||||||
, gtk3
|
|
||||||
, libGL
|
|
||||||
, libglvnd
|
|
||||||
, systemd
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "nextcloud-talk-desktop";
|
|
||||||
version = "0.29.0";
|
|
||||||
|
|
||||||
# Building from source would require building also building Server and Talk components
|
|
||||||
# See https://github.com/nextcloud/talk-desktop?tab=readme-ov-file#%EF%B8%8F-prerequisites
|
|
||||||
src = fetchzip {
|
|
||||||
url = "https://github.com/nextcloud-releases/talk-desktop/releases/download/v${finalAttrs.version}/Nextcloud.Talk-linux-x64-${finalAttrs.version}.zip";
|
|
||||||
hash = "sha256-fBIeNv8tfrVTFExLQDBPhIazvbsJ7a76+W9G0cuQDlw=";
|
|
||||||
stripRoot = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ autoPatchelfHook ];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
nss
|
|
||||||
cairo
|
|
||||||
alsa-lib
|
|
||||||
at-spi2-core
|
|
||||||
pango
|
|
||||||
libdrm
|
|
||||||
libxkbcommon
|
|
||||||
gtk3
|
|
||||||
vivaldi-ffmpeg-codecs
|
|
||||||
mesa
|
|
||||||
libGL
|
|
||||||
libglvnd
|
|
||||||
] ++ (with xorg; [libX11 libXcomposite libXdamage libXrandr libXfixes libXcursor]);
|
|
||||||
|
|
||||||
# Required to launch the application and proceed past the zygote_linux fork() process
|
|
||||||
# Fixes `Zygote could not fork`
|
|
||||||
runtimeDependencies = [ systemd ];
|
|
||||||
|
|
||||||
preInstall = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
mkdir -p $out/opt
|
|
||||||
|
|
||||||
cp -r $src/* $out/opt/
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
# Link the application in $out/bin away from contents of `preInstall`
|
|
||||||
ln -s "$out/opt/Nextcloud Talk-linux-x64/Nextcloud Talk" $out/bin/${finalAttrs.pname}
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Nextcloud Talk Desktop Client Preview";
|
|
||||||
homepage = "https://github.com/nextcloud/talk-desktop";
|
|
||||||
changelog = "https://github.com/nextcloud/talk-desktop/blob/${finalAttrs.version}/CHANGELOG.md";
|
|
||||||
license = licenses.agpl3Only;
|
|
||||||
maintainers = with maintainers; [ kashw2 ];
|
|
||||||
mainProgram = finalAttrs.pname;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
34
packages/vulkan-hdr-layer/default.nix
Normal file
34
packages/vulkan-hdr-layer/default.nix
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{ lib, stdenv, fetchFromGitHub, meson, pkg-config, vulkan-loader, ninja, writeText, vulkan-headers, vulkan-utility-libraries, jq, libX11, libXrandr, libxcb, wayland, wayland-scanner }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "vulkan-hdr-layer";
|
||||||
|
version = "63d2eec";
|
||||||
|
|
||||||
|
src = (fetchFromGitHub {
|
||||||
|
owner = "Zamundaaa";
|
||||||
|
repo = "VK_hdr_layer";
|
||||||
|
rev = "869199cd2746e7f69cf19955153080842b6dacfc";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
hash = "sha256-xfVYI+Aajmnf3BTaY2Ysg5fyDO6SwDFGyU0L+F+E3is=";
|
||||||
|
}).overrideAttrs (_: {
|
||||||
|
GIT_CONFIG_COUNT = 1;
|
||||||
|
GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
|
||||||
|
GIT_CONFIG_VALUE_0 = "git@github.com:";
|
||||||
|
});
|
||||||
|
|
||||||
|
nativeBuildInputs = [ vulkan-headers meson ninja pkg-config jq ];
|
||||||
|
|
||||||
|
buildInputs = [ vulkan-headers vulkan-loader vulkan-utility-libraries libX11 libXrandr libxcb wayland wayland-scanner ];
|
||||||
|
|
||||||
|
# Help vulkan-loader find the validation layers
|
||||||
|
setupHook = writeText "setup-hook" ''
|
||||||
|
addToSearchPath XDG_DATA_DIRS @out@/share
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Layers providing Vulkan HDR";
|
||||||
|
homepage = "https://github.com/Zamundaaa/VK_hdr_layer";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
license = licenses.mit;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -22,11 +22,19 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
};
|
||||||
hardware.pulseaudio.package = pkgs.pulseaudioFull;
|
|
||||||
hardware.pulseaudio.extraConfig = "
|
services.pulseaudio = {
|
||||||
load-module module-combine-sink
|
package = pkgs.pulseaudioFull;
|
||||||
load-module module-switch-on-connect
|
extraConfig = ''
|
||||||
";
|
load-module module-combine-sink
|
||||||
|
load-module module-switch-on-connect
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.squeezelite = {
|
||||||
|
#enable = true;
|
||||||
|
pulseAudio = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ with lib;
|
|||||||
./kodi
|
./kodi
|
||||||
./nfs-mounts
|
./nfs-mounts
|
||||||
./printing
|
./printing
|
||||||
./secrets
|
|
||||||
./spotifyd
|
./spotifyd
|
||||||
./users
|
./users
|
||||||
./virtualisation
|
./virtualisation
|
||||||
@@ -31,34 +30,56 @@ with lib;
|
|||||||
};
|
};
|
||||||
time.timeZone = "America/Los_Angeles";
|
time.timeZone = "America/Los_Angeles";
|
||||||
|
|
||||||
|
services.xserver.xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
options = "caps:escape";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Don't go to emergency mode if we aren't able to mount filesystems.
|
||||||
|
# This is silly if you have multiple hard drives or partitions
|
||||||
|
# configured on a machine and then one goes away intentionally or
|
||||||
|
# unintentionally. If the system is already booting, let it continue
|
||||||
|
# to try and boot.
|
||||||
|
systemd.enableEmergencyMode = false;
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
git
|
git
|
||||||
|
glances
|
||||||
|
pciutils
|
||||||
|
tree
|
||||||
|
usbutils
|
||||||
|
vim
|
||||||
];
|
];
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.nixFlakes;
|
package = pkgs.nix;
|
||||||
distributedBuilds = true;
|
# distributedBuilds = true;
|
||||||
buildMachines = [{
|
# buildMachines = [{
|
||||||
hostName = "z790prors.oglehome";
|
# hostName = "z790prors.oglehome";
|
||||||
system = "x86_64-linux";
|
# system = "x86_64-linux";
|
||||||
protocol = "ssh-ng";
|
# protocol = "ssh-ng";
|
||||||
sshUser = "johno";
|
# sshUser = "johno";
|
||||||
sshKey = "/root/.ssh/id_ed25519";
|
# sshKey = "/root/.ssh/id_ed25519";
|
||||||
maxJobs = 3;
|
# maxJobs = 3;
|
||||||
speedFactor = 2;
|
# speedFactor = 2;
|
||||||
}];
|
# }];
|
||||||
settings = {
|
settings = {
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
max-jobs = "auto";
|
max-jobs = "auto";
|
||||||
trusted-users = [ "johno" ];
|
trusted-users = [ "johno" ];
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://hyprland.cachix.org"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
randomizedDelaySec = "14m";
|
||||||
|
options = "--delete-older-than 10d";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|||||||
@@ -2,133 +2,24 @@
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.roles.desktop;
|
|
||||||
|
|
||||||
basePackages = with pkgs; [
|
|
||||||
brightnessctl
|
|
||||||
mangohud # Should probably get refactored with steam/gamescope out to a gaming role
|
|
||||||
polonium # auto tiling kwin addon
|
|
||||||
];
|
|
||||||
|
|
||||||
x11BasePackages = with pkgs; [
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
x11OnlyPackages = with pkgs; [
|
|
||||||
emacs
|
|
||||||
];
|
|
||||||
|
|
||||||
waylandBasePackages = with pkgs; [
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
wl-clipboard
|
|
||||||
mako
|
|
||||||
];
|
|
||||||
|
|
||||||
waylandOnlyPackages = with pkgs; [
|
|
||||||
emacs-gtk
|
|
||||||
];
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.roles.desktop = {
|
options.roles.desktop = {
|
||||||
enable = mkEnableOption "Enable the desktop role";
|
enable = mkEnableOption "Enable the desktop role.";
|
||||||
x11Only = mkOption {
|
|
||||||
type = types.bool;
|
x11 = mkOption { type = types.bool; default = false; description = "Enable X11 support."; };
|
||||||
default = false;
|
wayland = mkOption { type = types.bool; default = false; description = "Enable Wayland support."; };
|
||||||
};
|
kde = mkOption { type = types.bool; default = false; description = "Enable KDE."; };
|
||||||
|
gaming = mkOption { type = types.bool; default = false; description = "Enable gaming support."; };
|
||||||
|
sddm = mkOption { type = types.bool; default = false; description = "Enable SDDM greeter."; };
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable
|
imports = [
|
||||||
{
|
./x11.nix
|
||||||
services.xserver.xkb = {
|
./wayland.nix
|
||||||
layout = "us";
|
./gaming.nix
|
||||||
variant = "";
|
./kde.nix
|
||||||
options = "caps:escape";
|
./programs.nix
|
||||||
};
|
./sddm.nix
|
||||||
services.xserver.enable = true;
|
./steam-sleep-inhibitor.nix
|
||||||
|
];
|
||||||
services.displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = !cfg.x11Only;
|
|
||||||
};
|
|
||||||
services.desktopManager.plasma6.enable = true;
|
|
||||||
|
|
||||||
services.xserver.windowManager.i3 = {
|
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
dmenu
|
|
||||||
i3status
|
|
||||||
i3lock
|
|
||||||
];
|
|
||||||
};
|
|
||||||
programs.dconf.enable = true;
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
programs.sway = mkIf (!cfg.x11Only) {
|
|
||||||
enable = true;
|
|
||||||
wrapperFeatures.gtk = true;
|
|
||||||
};
|
|
||||||
programs.light.enable = mkIf (!cfg.x11Only) true;
|
|
||||||
|
|
||||||
programs.kdeconnect.enable = true;
|
|
||||||
programs.java.enable = true;
|
|
||||||
programs.gamemode = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
programs.gamescope = {
|
|
||||||
enable = true;
|
|
||||||
#capSysNice = true;
|
|
||||||
args = [
|
|
||||||
#"--adaptive-sync"
|
|
||||||
#"--nested-refresh 165"
|
|
||||||
#"--backend wayland"
|
|
||||||
"--hdr-enabled"
|
|
||||||
"--hdr-itm-enable"
|
|
||||||
"--hdr-debug-force-output"
|
|
||||||
"--mangoapp"
|
|
||||||
"--rt"
|
|
||||||
"--steam"
|
|
||||||
#"--xwayland-count 2"
|
|
||||||
];
|
|
||||||
env = {
|
|
||||||
#PROTON_DISABLE_NVAPI = "1";
|
|
||||||
MANGOHUD = "1";
|
|
||||||
#MANGOHUD_CONFIG = "cpu_temp gpu_temp ram vram";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
remotePlay.openFirewall = true;
|
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
|
||||||
gamescopeSession = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
#package = pkgs.steam.override {
|
|
||||||
#withJava = true;
|
|
||||||
#withPrimus = true;
|
|
||||||
#extraPkgs = pkgs: [ bumblebee glxinfo ];
|
|
||||||
#};
|
|
||||||
};
|
|
||||||
services.sunshine = {
|
|
||||||
enable = true;
|
|
||||||
autoStart = true;
|
|
||||||
capSysAdmin = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
users.extraGroups.docker.members = [ "johno" ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; mkMerge [
|
|
||||||
basePackages
|
|
||||||
x11BasePackages
|
|
||||||
(mkIf cfg.x11Only x11OnlyPackages)
|
|
||||||
# TODO: Do we need a "wayland only" mode?
|
|
||||||
(mkIf (!cfg.x11Only) waylandBasePackages)
|
|
||||||
(mkIf (!cfg.x11Only) waylandOnlyPackages)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
18
roles/desktop/gaming.nix
Normal file
18
roles/desktop/gaming.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf (cfg.enable && cfg.gaming) {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
steam
|
||||||
|
lutris
|
||||||
|
moonlight
|
||||||
|
];
|
||||||
|
|
||||||
|
# Possibly other gaming specific services or settings
|
||||||
|
};
|
||||||
|
}
|
||||||
12
roles/desktop/kde.nix
Normal file
12
roles/desktop/kde.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf (cfg.enable && cfg.kde) {
|
||||||
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
20
roles/desktop/programs.nix
Normal file
20
roles/desktop/programs.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
brightnessctl
|
||||||
|
emacs-nox
|
||||||
|
moonlight-qt
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
programs.kdeconnect.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
15
roles/desktop/sddm.nix
Normal file
15
roles/desktop/sddm.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf (cfg.enable && cfg.sddm) {
|
||||||
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = (!cfg.x11 && cfg.wayland);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
116
roles/desktop/steam-sleep-inhibitor.nix
Normal file
116
roles/desktop/steam-sleep-inhibitor.nix
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.desktop;
|
||||||
|
|
||||||
|
steamSleepInhibitor = pkgs.writeShellScript "steam-sleep-inhibitor" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Steam log path - adjust if different
|
||||||
|
STEAM_LOG="$HOME/.local/share/Steam/logs/streaming_log.txt"
|
||||||
|
FALLBACK_LOG="$HOME/.steam/steam/logs/streaming_log.txt"
|
||||||
|
|
||||||
|
# Find Steam log file
|
||||||
|
if [[ -f "$STEAM_LOG" ]]; then
|
||||||
|
LOG_FILE="$STEAM_LOG"
|
||||||
|
elif [[ -f "$FALLBACK_LOG" ]]; then
|
||||||
|
LOG_FILE="$FALLBACK_LOG"
|
||||||
|
else
|
||||||
|
# Monitor Steam process for streaming activity
|
||||||
|
LOG_FILE=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
INHIBITOR_PID=""
|
||||||
|
MONITORING=false
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
if [[ -n "$INHIBITOR_PID" ]]; then
|
||||||
|
echo "Stopping sleep inhibitor (PID: $INHIBITOR_PID)"
|
||||||
|
kill "$INHIBITOR_PID" 2>/dev/null
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
start_inhibitor() {
|
||||||
|
if [[ -z "$INHIBITOR_PID" ]]; then
|
||||||
|
echo "Starting sleep inhibitor for Steam Remote Play session"
|
||||||
|
${pkgs.systemd}/bin/systemd-inhibit \
|
||||||
|
--what=sleep \
|
||||||
|
--who="Steam Remote Play" \
|
||||||
|
--why="Active streaming session detected" \
|
||||||
|
--mode=block \
|
||||||
|
sleep infinity &
|
||||||
|
INHIBITOR_PID=$!
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_inhibitor() {
|
||||||
|
if [[ -n "$INHIBITOR_PID" ]]; then
|
||||||
|
echo "Stopping sleep inhibitor - streaming session ended"
|
||||||
|
kill "$INHIBITOR_PID" 2>/dev/null
|
||||||
|
INHIBITOR_PID=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if Steam Remote Play is active by looking for streaming processes
|
||||||
|
check_streaming_active() {
|
||||||
|
# Check for Steam streaming processes
|
||||||
|
if pgrep -f "streaming_client" >/dev/null || \
|
||||||
|
pgrep -f "steamremoteplay" >/dev/null || \
|
||||||
|
${pkgs.procps}/bin/pgrep -f "Remote Play" >/dev/null; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for active network connections on Steam streaming ports
|
||||||
|
if ${pkgs.nettools}/bin/netstat -an 2>/dev/null | grep -E ":(27036|27037)" | grep ESTABLISHED >/dev/null; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT INT TERM
|
||||||
|
|
||||||
|
echo "Steam sleep inhibitor monitoring started"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
if check_streaming_active; then
|
||||||
|
if [[ "$MONITORING" == "false" ]]; then
|
||||||
|
MONITORING=true
|
||||||
|
start_inhibitor
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ "$MONITORING" == "true" ]]; then
|
||||||
|
MONITORING=false
|
||||||
|
stop_inhibitor
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf (cfg.enable && cfg.kde && cfg.gaming) {
|
||||||
|
# Steam streaming sleep inhibitor service
|
||||||
|
systemd.user.services.steam-sleep-inhibitor = {
|
||||||
|
description = "Steam Remote Play Sleep Inhibitor";
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
after = [ "graphical-session.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${steamSleepInhibitor}";
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = "5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Steam-specific environment variables to prevent sleep interference
|
||||||
|
environment.sessionVariables = {
|
||||||
|
SDL_VIDEO_ALLOW_SCREENSAVER = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
23
roles/desktop/wayland.nix
Normal file
23
roles/desktop/wayland.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf (cfg.enable && cfg.wayland) {
|
||||||
|
programs.sway = {
|
||||||
|
enable = true;
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
|
};
|
||||||
|
programs.light.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
wl-clipboard
|
||||||
|
mako
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
19
roles/desktop/x11.nix
Normal file
19
roles/desktop/x11.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf (cfg.enable && cfg.x11) {
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
windowManager.i3 = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [ dmenu i3status i3lock ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -27,45 +27,30 @@ in
|
|||||||
]);
|
]);
|
||||||
in mkIf cfg.enable
|
in mkIf cfg.enable
|
||||||
{
|
{
|
||||||
users.extraUsers.kodi.isNormalUser = true;
|
users.extraUsers.kodi = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" "networkmanager" "audio" "video" ];
|
||||||
|
};
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
allowedTCPPorts = [ 8080 ];
|
allowedTCPPorts = [ 8080 ];
|
||||||
allowedUDPPorts = [ 8080 ];
|
allowedUDPPorts = [ 8080 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services = if cfg.autologin then mkMerge [
|
environment.systemPackages = with pkgs; [
|
||||||
(mkIf cfg.wayland {
|
kodiPkg
|
||||||
cage = mkIf cfg.wayland {
|
wget
|
||||||
user = "kodi";
|
];
|
||||||
program = "${kodiPkg}/bin/kodi-standalone";
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
xserver = {
|
|
||||||
enable = false;
|
|
||||||
autorun = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf (!cfg.wayland) {
|
programs.kdeconnect.enable = true;
|
||||||
xserver = {
|
|
||||||
enable = true;
|
services = if cfg.autologin then {
|
||||||
desktopManager.kodi = {
|
|
||||||
enable = true;
|
|
||||||
package = kodiPkg;
|
|
||||||
};
|
|
||||||
displayManager.lightdm = {
|
|
||||||
enable = true;
|
|
||||||
greeter.enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
displayManager = {
|
displayManager = {
|
||||||
autoLogin.enable = true;
|
autoLogin.enable = true;
|
||||||
autoLogin.user = "kodi";
|
autoLogin.user = "kodi";
|
||||||
defaultSession = "kodi";
|
defaultSession = "kodi";
|
||||||
sessionData.autologinSession = "kodi";
|
sessionData.autologinSession = "plasma";
|
||||||
};
|
};
|
||||||
})
|
} else {};
|
||||||
] else {};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
sops.defaultSopsFile = ../../secrets/secrets.yaml;
|
|
||||||
sops.defaultSopsFormat = "yaml";
|
|
||||||
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" "/home/johno/.ssh/id_ed25519" ];
|
|
||||||
sops.secrets.example_key = {};
|
|
||||||
}
|
|
||||||
@@ -25,7 +25,7 @@ in
|
|||||||
users.users.johno = {
|
users.users.johno = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "John Ogle";
|
description = "John Ogle";
|
||||||
extraGroups = [ "wheel" "networkmanager" "audio" ] ++ cfg.extraGroups;
|
extraGroups = [ "wheel" "networkmanager" "audio" "video" ] ++ cfg.extraGroups;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.eli = mkIf cfg.kids {
|
users.users.eli = mkIf cfg.kids {
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ in
|
|||||||
{
|
{
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
users.extraGroups.docker.members = [ "johno" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
hello: ENC[AES256_GCM,data:5ZpbPx3D8gQc1fOhViUqiCr0zLWYotB+vIBixqTbqP9XLS52y6tr5DXus0aV9mTgka5deqc=,iv:yPJaCqDD9WD56swfBjSm7A62ZTTIQDqyAKOgP1ese+U=,tag:bo8+7Ne2f9aEZSvpkt1fzA==,type:str]
|
|
||||||
example_key: ENC[AES256_GCM,data:v15bEcb0H3vaj13blg==,iv:9P3IA7ChBamo41VE8G8tj46sZqeijsO1LcvwLtEPVPA=,tag:o/lAyAYYGNLP9EjQNa/K8Q==,type:str]
|
|
||||||
example_array:
|
|
||||||
- ENC[AES256_GCM,data:3Vwa7dfNfKzRc/xpk6I=,iv:IevBgxwWdaBvZY1ywteWcfWwDIA8lK3FTWs67lLBKxw=,tag:Mx5lzUeNZ/3wJBWAl5XSBw==,type:str]
|
|
||||||
- ENC[AES256_GCM,data:epkT6WPGW5Oe/S+4HtU=,iv:N0yoDuieAaEi+NuCoCL4zrkhaDDdkttboI89m+UccjQ=,tag:OoERRByb0OM4un9oGLJQgA==,type:str]
|
|
||||||
#ENC[AES256_GCM,data:YzMFXxn3sbbHpGB4jPRtRw==,iv:TN6ogQuH7c6xtDoWt0Ew9B2f7wuaipJynvscZmaJYoU=,tag:No0UwEktEyMNBg/46P+Zmg==,type:comment]
|
|
||||||
example_number: ENC[AES256_GCM,data:jmLoVC+8YIlB2A==,iv:u9GztD/aE9UN5zWq3Am2nhYwmYt3sf8sy65MHbhVoD0=,tag:wKuf1mMr5XBJveJrz0uHPA==,type:float]
|
|
||||||
example_booleans:
|
|
||||||
- ENC[AES256_GCM,data:ZacILA==,iv:xo+7aFFQXzbJzKDY0mYTeFLf10AlnHkywDRAMHeprEM=,tag:F/OnJdqjrZP02sTLWLmnbg==,type:bool]
|
|
||||||
- ENC[AES256_GCM,data:NaFrvrs=,iv:kKDmGs9u/w5qrZ/379Jlx8AotUVADvH+eHwHCqykmkE=,tag:nD9TsmkXUm4ABaT1ABWmcg==,type:bool]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1ls6a033d4p4u8h4rwazjwt8w4c4xg73wq0mdnm64jajxzcz4k9asvjnks3
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjak9vRVJtVmJoanhEZ0hQ
|
|
||||||
MFJwMEE4UDcrRkdPRmZ6R09FSDY1aTk3Y1dNClZJYXRLNU5senR3Qzh6VmZGMlhu
|
|
||||||
bnl6VjlaUEFISnBtSTVrcEd0ZjI5Q2MKLS0tIFl1b3A5ZWVqc1gvWVZnZis0ZHFk
|
|
||||||
bWhnNVB2TUJ4YzY4NHdSVXhPc3dReTgKWRYBbBE3+oGsRNw1CROhFY+btENbShfv
|
|
||||||
gw3IdW7OoZV6JpJBOcI82eOuOkIxrmgSGDGeyy10/a5MA/cB1umm+w==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age12l5u7sw59u5pkwp83qm8t3ff7uv0ld2c9k3zh5j4ame9k2szcynqu7ftqe
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGcmV3TDlNL2Zxb0h5QTYx
|
|
||||||
QkVmczA0MDc2ZnpNNU1YeFVzSXJwc3RWUmk4CjF4bHIrVU9VM3htTUxGZ2FUR256
|
|
||||||
UEovdVV2cmNIbkloS1VobTNFSDVyRG8KLS0tIEFhUk5kL3hCNGs4MGJBTmNJaVFm
|
|
||||||
b2ZBUGJ1K0lKTitKYTRUMWszQzhBU0UKBaM6t6JmWfiG+wPorGea1gqvV5RSIPyw
|
|
||||||
6yb2PcH2oZ0HrjJM5sjfu7XOWY3KneiZZikR1BpD5KvevfagWTSR/w==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1fa3zqavfmqk4ssa22yne9td90gyqv9q5a8y0s8jp3xak8q7p3yjqyn7rkg
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaMFJiNjVOb0lTcmJ3VnhH
|
|
||||||
WlRKZERRZFM3TFZBZGNSZC9GdHlHakMza21zClJ3SDdFUkVRc3oyVVU3WEtDQzBu
|
|
||||||
OEFqS3NwbHZFUlpCYlN6RW84N0F1amcKLS0tIHFZK21aTHdwZ2dWbVRrWEZDWFZj
|
|
||||||
aU1IQzdTMVhnbHhsNENwMG05dXhOU2MK8fEJea9sL5JLgltVlTI6mRDb+Tl83Iz7
|
|
||||||
4wPYvo68cn8vimXqSk45ldHRrNa3zhYai3CalQaGtDT3fkWGvSq0zQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2024-09-28T15:44:39Z"
|
|
||||||
mac: ENC[AES256_GCM,data:YUi+AbS6DQTmrSyOXsbkZWfWaMyKGR8fYm/MHcxmqChi8hng+UWHBZjsLBe6ef/FLH3rnP6bhfwK8KYnVS6fHvHahoqIq/BHydTsqrclnSgRAGl8Lh0yuhwISNRvP1AuW5pd50sdQaS0uGOtzOCharI/pZ9H+cmt2SB5WOCdeLs=,iv:2nBG6it3tNSLSia8hGzCcesuK9QwzB9EzfjWegjQ2kw=,tag:RGGPAPw/rQKhWA2OqLjTJw==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.0
|
|
||||||
Reference in New Issue
Block a user