Compare commits
282 commits
main
...
wip/kvantu
| Author | SHA1 | Date | |
|---|---|---|---|
|
9fbd1a5d99 |
|||
|
bda3095a15 |
|||
|
3af156e3e8 |
|||
|
bc22718e44 |
|||
|
ac32db64b2 |
|||
|
01c867c338 |
|||
|
c031852e71 |
|||
|
879d391e1a |
|||
|
ac0ff3bf2f |
|||
|
b515a40804 |
|||
|
5ce578bf37 |
|||
|
44c97b0dc0 |
|||
|
2ebb128a7e |
|||
|
71e717d7a1 |
|||
|
121fd6ae76 |
|||
|
858b3e1916 |
|||
|
cbe0d835d8 |
|||
|
4a3c0c9653 |
|||
|
236a668391 |
|||
|
0992508b41 |
|||
|
8ab6aa7419 |
|||
|
c5c2d2c982 |
|||
|
0e67721fff |
|||
|
a68c68b735 |
|||
|
91a1210e1f |
|||
|
fa644090ce |
|||
|
661973185a |
|||
|
12e0975787 |
|||
|
cb62cd8b0d |
|||
|
ce2d3e3cf5 |
|||
|
d891874b39 |
|||
|
478ed8e638 |
|||
|
61c62e9ca4 |
|||
|
edbc6b2f23 |
|||
|
26b9809824 |
|||
|
fd219e07ef |
|||
|
70878439c8 |
|||
|
8611114de4 |
|||
|
1b4dd489c9 |
|||
|
3369fb54f1 |
|||
|
312c990b58 |
|||
|
07c8710be3 |
|||
|
d1b545b93b |
|||
|
127afde3fd |
|||
|
f4edfd6fc1 |
|||
|
efae34ec37 |
|||
|
491632ba9b |
|||
|
68a64a0002 |
|||
|
d266e36435 |
|||
|
7db93b9984 |
|||
|
6952c6138b |
|||
|
c246d7cc45 |
|||
|
127b4e5535 |
|||
|
36a20f5a6f |
|||
|
4071f0e141 |
|||
|
6ddd24804d |
|||
|
e31dcb28c0 |
|||
|
7b9bbc95a0 |
|||
|
94672cc1af |
|||
|
1e1f905367 |
|||
|
532b715466 |
|||
|
2e04c479c3 |
|||
|
e1c716ef8c |
|||
|
d3100b7d7f |
|||
|
909f8a98f4 |
|||
|
a6f03e1db7 |
|||
|
9e68decf3b |
|||
|
3ad198e57b |
|||
|
a7f0e767d3 |
|||
|
4e2d3f4d2a |
|||
|
fa2c7501c1 |
|||
|
5b59daa8b3 |
|||
|
f973c7bb0c |
|||
|
52f48ab978 |
|||
|
8c43814c4e |
|||
|
a921471422 |
|||
|
b3a1a9fb42 |
|||
|
99e8b1ae67 |
|||
|
96a0745a6d |
|||
|
dce7838b86 |
|||
|
431ff32240 |
|||
|
98c98dc365 |
|||
|
5b3d113982 |
|||
|
5b04a4b85e |
|||
|
dc850b011e |
|||
|
93268092e6 |
|||
|
ac2c321e1c |
|||
|
6486eb7eb7 |
|||
|
14401309b8 |
|||
|
0a8a22b8b2 |
|||
|
34955e3821 |
|||
|
a8dfda28dd |
|||
|
e2163698e4 |
|||
|
cb29d532c3 |
|||
|
51dab1b320 |
|||
|
feed61a54f |
|||
|
f7d7dfba5c |
|||
|
0690080aea |
|||
|
5fd13d5945 |
|||
|
0ac2d48134 |
|||
|
8c3995a9ae |
|||
|
9248f86afd |
|||
|
4e31739fa8 |
|||
|
0133a53f41 |
|||
|
3fd51428c3 |
|||
|
6f2f3c19fb |
|||
|
bdc3d05227 |
|||
|
5f6a7276b5 |
|||
|
fbafd8241f |
|||
|
31ad5c61ed |
|||
|
c2c17b115e |
|||
|
14e786684c |
|||
|
54d66cffc1 |
|||
|
2c7bf35af0 |
|||
|
e5b415904c |
|||
|
a23aa285d9 |
|||
|
466ea0e414 |
|||
|
b5562ef662 |
|||
|
76eb3501b9 |
|||
|
964611881e |
|||
|
fd34855839 |
|||
|
2981f261d2 |
|||
|
8f2811df87 |
|||
|
cddf5ecc22 |
|||
|
432c42be6e |
|||
|
0e10a740f0 |
|||
|
71522c6b5d |
|||
|
110abe5c63 |
|||
|
e89eeb8a72 |
|||
|
4580a96435 |
|||
|
cb89a4b6b0 |
|||
|
d21521b64d |
|||
|
4eff0ed720 |
|||
|
2f184aa383 |
|||
|
2f6748deb7 |
|||
|
29485ced8f |
|||
|
46d92c5e6f |
|||
|
56eb7117ca |
|||
|
03160b77ac |
|||
|
b45f2f6735 |
|||
|
84a8fa41f7 |
|||
|
af7ec92d64 |
|||
|
55ecc0aec3 |
|||
|
552e244563 |
|||
|
af2a3b0f49 |
|||
|
72006f56b1 |
|||
|
5ed4c41898 |
|||
|
8535435805 |
|||
|
8862a7ea35 |
|||
|
41597eefd5 |
|||
|
76145f7df6 |
|||
|
c0962d5639 |
|||
|
00f0f4e836 |
|||
|
c85a19aafd |
|||
|
498ffad0c4 |
|||
|
d806ed0581 |
|||
|
1f2e9434b8 |
|||
|
4f2bbe077c |
|||
|
39ed52b866 |
|||
|
ff6f0c9624 |
|||
|
aad9076ac3 |
|||
|
e464bbae20 |
|||
|
55d89a12d7 |
|||
|
aa16f6d411 |
|||
|
be9cc8e44b |
|||
|
0a3b6eecb7 |
|||
|
9d0b408a7f |
|||
|
a7a3eb68b9 |
|||
|
4ca5cebbb6 |
|||
|
930b13700a |
|||
|
d2f8dff81e |
|||
|
b22cabaa8d |
|||
|
19eaaa9493 |
|||
|
2133060a75 |
|||
|
c81b2c99b7 |
|||
|
eefae16222 |
|||
|
a83a91421c |
|||
|
7c4101d064 |
|||
|
0680b63126 |
|||
|
5c44151022 |
|||
|
c4915bae20 |
|||
|
1d0d9a040d |
|||
|
422c416f71 |
|||
|
ffc801d399 |
|||
|
3ab9500787 |
|||
|
52481b0687 |
|||
|
bfbcc59e36 |
|||
|
8ad731c7ca |
|||
|
2cb2d44e30 |
|||
|
e9d14e8a28 |
|||
|
951f5e5c0e |
|||
|
0d11025ab6 |
|||
|
7e9ff827f8 |
|||
|
3df13bf8c9 |
|||
|
353d8760a6 |
|||
|
3d8e938960 |
|||
|
eaa38c00ee |
|||
|
7c1b4af5e2 |
|||
|
1cc7f07dbe |
|||
|
570b2d334a |
|||
|
a4d9af6374 |
|||
|
ba3333287c |
|||
|
55642adb2f |
|||
|
1161b2bf26 |
|||
|
06fd3b1407 |
|||
|
88119a3e27 |
|||
|
772a3b8e17 |
|||
|
b3644abda3 |
|||
|
a50a17c17c |
|||
|
65b22fe33c |
|||
|
4fb814dedc |
|||
|
f5fcea00d7 |
|||
|
002d8733d4 |
|||
|
eb4600f07c |
|||
|
6cae5bcf25 |
|||
|
2685b61d08 |
|||
|
4d57655744 |
|||
|
a56d72e589 |
|||
|
e39f74e639 |
|||
|
45e7ac9ea7 |
|||
|
4fecda7850 |
|||
|
813def4ac3 |
|||
|
2d8c73c33f |
|||
|
2fd3596738 |
|||
|
8240479389 |
|||
|
5cae12f76f |
|||
|
d3cb9bccc6 |
|||
|
d6fad0278c |
|||
|
0c3f0a7c71 |
|||
|
a6ba6d56af |
|||
|
11737ce55e |
|||
|
9d26ff59ef |
|||
|
58ca11e242 |
|||
|
a3667f6f66 |
|||
|
8b3d7c3653 |
|||
|
16fa21313d |
|||
|
9c30e3de4d |
|||
|
609beb2089 |
|||
|
33fb9bfb7e |
|||
|
99bd42cab9 |
|||
|
ae47403ed8 |
|||
|
90ef3cfa94 |
|||
|
ed9a4ad56c |
|||
|
a89f9e7ac1 |
|||
|
14bda31f07 |
|||
|
1a9d24242b |
|||
|
ae7ab152a4 |
|||
|
258c9682cc |
|||
|
e96b3658eb |
|||
|
69484fe494 |
|||
|
39c0c370d2 |
|||
|
c734f0fc58 |
|||
|
24b273b4b0 |
|||
|
c8e4343f49 |
|||
|
a27ed71dbc |
|||
|
93406254ef |
|||
|
18c3d21675 |
|||
|
b3ecffd4b6 |
|||
|
f71c63473d |
|||
|
3b05e0fd72 |
|||
|
27cd3afd80 |
|||
|
bfd99886d6 |
|||
|
b83c589220 |
|||
|
cf86c22c23 |
|||
|
e11135c398 |
|||
|
375ec3ab68 |
|||
|
5a41d64532 |
|||
|
8ffeaab1f2 |
|||
|
9de16f1132 |
|||
|
084ec9772f |
|||
|
653dc54d97 |
|||
|
8161549add |
|||
|
90b3451c66 |
|||
|
b1c83f4227 |
|||
|
a354c7f277 |
|||
|
eee2ceecbe |
|||
|
95ffc61f3e |
|||
|
e0cbd257c4 |
|||
|
4ffd450700 |
|||
|
1549542e50 |
|||
|
bd70f7b95a |
|||
|
465d2bfd3a |
72 changed files with 2421 additions and 2136 deletions
19
.sops.yaml
19
.sops.yaml
|
|
@ -1,19 +0,0 @@
|
||||||
# This example uses YAML anchors which allows reuse of multiple keys
|
|
||||||
# without having to repeat yourself.
|
|
||||||
# Also see https://github.com/Mic92/dotfiles/blob/d6114726d859df36ccaa32891c4963ae5717ef7f/nixos/.sops.yaml
|
|
||||||
# for a more complex example.
|
|
||||||
keys:
|
|
||||||
- &admin_sckova 7622FD7E6AB9F1E9D2CEFE2700F325187C68651A
|
|
||||||
- &user_sckova age1k9zp37p9sejvpvwu688t7jkl8utkugrsch7a9ahufpq7uhj609gqsd3wka
|
|
||||||
- &host_peach age1dx9rwrkhqj8sfr8vdfsgrqjwqefzmgtugsp6ykklpudfw4hcnuyqx9x20e
|
|
||||||
- &host_alien age1ygykyl3xyfhkt0x46frqnef4f39w0cnu6d98nf0efl43f706uqtsnsx5nd
|
|
||||||
|
|
||||||
creation_rules:
|
|
||||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
|
||||||
key_groups:
|
|
||||||
- pgp:
|
|
||||||
- *admin_sckova
|
|
||||||
age:
|
|
||||||
- *user_sckova
|
|
||||||
- *host_peach
|
|
||||||
- *host_alien
|
|
||||||
152
README.md
Normal file
152
README.md
Normal file
|
|
@ -0,0 +1,152 @@
|
||||||
|
# NixOS Configuration
|
||||||
|
|
||||||
|
This repository contains the personal **NixOS** and **Home Manager** configuration for **Sean Kovacs** (`sckova`). It utilizes **Nix Flakes** to manage reproducible system states across disparate hardware architectures, specifically targeting high-performance x86_64 gaming desktops and Apple Silicon laptops.
|
||||||
|
|
||||||
|
## 🖥️ Hosts
|
||||||
|
|
||||||
|
The configuration defines three distinct system profiles via `flake.nix`:
|
||||||
|
|
||||||
|
### 👽 `alien` (x86_64-linux)
|
||||||
|
|
||||||
|
The primary high-performance desktop and gaming workstation.
|
||||||
|
|
||||||
|
* **Kernel:** Uses the **CachyOS** kernel (`linux-cachyos-lts`) via `nix-cachyos-kernel` overlay for scheduler and performance optimizations.
|
||||||
|
* **Graphics:** Nvidia proprietary drivers (Stable) with Open kernel modules disabled.
|
||||||
|
#### Gaming Stack:
|
||||||
|
* **Steam**: Enabled with Gamescope session and Proton-GE.
|
||||||
|
* **Optimization**: `ananicy-cpp` enabled with specific rules for Gamescope (nice -20).
|
||||||
|
* **Streaming**: Sunshine game streaming service enabled and auto-started.
|
||||||
|
* **RGB**: OpenRGB and `ddcutil` for hardware lighting and display control.
|
||||||
|
|
||||||
|
* **Virtualization:** Podman (Docker compatible) and Hyper-V guest support enabled.
|
||||||
|
* **Hardware:** Specific monitor configuration defined in Niri settings (Dual 4K @ 144Hz + Portrait 1440p).
|
||||||
|
|
||||||
|
### 🍑 `peach` (aarch64-linux)
|
||||||
|
|
||||||
|
A configuration tailored for Apple Silicon hardware using **Asahi Linux**.
|
||||||
|
|
||||||
|
#### **System-specific setup**:
|
||||||
|
* GPU-accelerated desktop via Apple Silicon drivers.
|
||||||
|
* Touchpad configuration with natural scrolling.
|
||||||
|
* Specific notch handling and boot logo customization with plymouth & m1n1.
|
||||||
|
* Configures docker in a rootless setup.
|
||||||
|
|
||||||
|
* **Kernel**: Patched `linuxPackages_asahi` with Apple Mailbox and RTKit support.
|
||||||
|
|
||||||
|
### 💻 `vm-generic`
|
||||||
|
|
||||||
|
A generic template for virtual machines, supported on both `x86_64-linux` and `aarch64-linux`.
|
||||||
|
|
||||||
|
## 🎨 Desktop Environment
|
||||||
|
|
||||||
|
The system uses a highly customized Wayland environment centered around **Niri**.
|
||||||
|
|
||||||
|
### Window Manager: **Niri**
|
||||||
|
|
||||||
|
#### Type:
|
||||||
|
* Scrollable-tiling Wayland compositor.
|
||||||
|
#### Style:
|
||||||
|
* Tightly separated windows with 2px borders and 4px gaps.
|
||||||
|
* Animations and window rounding (8px radius).
|
||||||
|
#### **Input**:
|
||||||
|
* Focus follows mouse
|
||||||
|
* Adaptive acceleration
|
||||||
|
* Natural scrolling enabled
|
||||||
|
#### **Keybinds**:
|
||||||
|
* Super+Shift+? preserved for showing the custom keybinds.
|
||||||
|
|
||||||
|
### Shell & Widgets: **Noctalia**
|
||||||
|
|
||||||
|
* **Bar**: Custom top bar with workspaces, system monitor, media controls, and tray.
|
||||||
|
* **Notifications**: Integrated notification daemon with "Do Not Disturb" capabilities.
|
||||||
|
* **Control Center**: Quick access to network, bluetooth, and power profiles.
|
||||||
|
* **Launcher**: Fuzzel app launcher with clipboard history support.
|
||||||
|
|
||||||
|
### Theming: **Base16/24**
|
||||||
|
|
||||||
|
A centralized theme configuration module propagates and builds colors across the system's applications and toolkits.
|
||||||
|
|
||||||
|
#### Scheme:
|
||||||
|
* Can use any scheme declared in the [tinted-gallery](https://tinted-theming.github.io/tinted-gallery/).
|
||||||
|
#### Accent:
|
||||||
|
* Orange for peach
|
||||||
|
* Blue for alien
|
||||||
|
* Green for the VM
|
||||||
|
#### Cursor:
|
||||||
|
* Catppuccin Mocha Peach (Size 24).
|
||||||
|
#### Fonts:
|
||||||
|
* Sans: Noto Sans
|
||||||
|
* Serif: Noto Serif
|
||||||
|
* Mono: FiraMono Nerd Font
|
||||||
|
|
||||||
|
## 📦 Software Stack
|
||||||
|
|
||||||
|
### Terminal & Editors
|
||||||
|
|
||||||
|
#### **Terminal**: **Kitty**
|
||||||
|
* Fish shell integration
|
||||||
|
* Scrollback buffering
|
||||||
|
* Custom theme
|
||||||
|
* Wayland-specific integrations
|
||||||
|
#### **Shell**: **Fish**
|
||||||
|
* Customized prompt
|
||||||
|
* Modern alternatives to ls `eza`, cat `bat`, and gzip `pigz`.
|
||||||
|
* `btop` is used as a system monitor.
|
||||||
|
#### **Editor**: **Neovim** (via `nixvim`) configured with:
|
||||||
|
* LSP support (`nixd`, `qmlls`).
|
||||||
|
* `conform-nvim` for formatting (Prettier, Stylua, Black).
|
||||||
|
* `cmp` for autocompletion.
|
||||||
|
* `fzf-lua` for fuzzy finding.
|
||||||
|
|
||||||
|
### Applications
|
||||||
|
|
||||||
|
#### Browser: **Firefox** with extensive hardening
|
||||||
|
* Telemetry, Pocket, and AI features disabled.
|
||||||
|
* Custom userChrome theme.
|
||||||
|
* Vertical tabs enabled.
|
||||||
|
* Extensions managed via Nix (uBlock Origin, SponsorBlock, Bitwarden, etc.).
|
||||||
|
* PWA support via `firefoxpwa`.
|
||||||
|
* SearXNG metasearch engine set up and enabled as the default search engine and homepage.
|
||||||
|
|
||||||
|
#### Social
|
||||||
|
* **Vesktop**: Discord client.
|
||||||
|
* Dynamically generated base16 theme.
|
||||||
|
* Numerous plugins (MessageLogger, FakeNitro, etc.) enabled.
|
||||||
|
* **Fractal**: Matrix client.
|
||||||
|
* **Tuba**: Mastodon client.
|
||||||
|
|
||||||
|
#### Media
|
||||||
|
* **MPV** with `uosc` UI and `mpris` support.
|
||||||
|
* **Spotify**: Custom `riff` package (Rust-based client) and `spotify-webapp`.
|
||||||
|
* **Spicetify**: CLI Spotify client theming.
|
||||||
|
* **Strawberry**: Music client.
|
||||||
|
* **Audacity**, **Musescore**: Musical workstations.
|
||||||
|
|
||||||
|
### Services
|
||||||
|
|
||||||
|
* **Wallpaper**: Automated daily **Bing Wallpaper** downloader service.
|
||||||
|
* **Storage**: **Synology NAS** mounting via Rclone systemd service.
|
||||||
|
* **Network**: **Tailscale** mesh networking.
|
||||||
|
|
||||||
|
## 🛠️ Usage
|
||||||
|
|
||||||
|
### Rebuilding the System
|
||||||
|
|
||||||
|
To apply the configuration for a specific host:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Rebuild NixOS configuration and switch
|
||||||
|
sudo nixos-rebuild switch --flake .#systemName
|
||||||
|
|
||||||
|
# Rebuild NixOS configuration for next boot
|
||||||
|
sudo nixos-rebuild boot --flake .#systemName --install-bootloader
|
||||||
|
```
|
||||||
|
|
||||||
|
### VM Testing
|
||||||
|
|
||||||
|
To build and run the generic VM:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nixos-rebuild build-vm --flake .#vm-generic
|
||||||
|
./result/bin/run-vm-generic-vm
|
||||||
|
```
|
||||||
393
flake.lock
generated
393
flake.lock
generated
|
|
@ -1,16 +1,37 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"aerothemeplasma-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771513958,
|
||||||
|
"narHash": "sha256-KoDcVuYgmP/kX6pd9uCW5Wo5Xn3y0SumrMaCLu5ojdY=",
|
||||||
|
"owner": "nyakase",
|
||||||
|
"repo": "aerothemeplasma-nix",
|
||||||
|
"rev": "348cbf661738840d0ae02d5eda7f4c076e59b733",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nyakase",
|
||||||
|
"repo": "aerothemeplasma-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"apple-silicon": {
|
"apple-silicon": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774264319,
|
"lastModified": 1771511514,
|
||||||
"narHash": "sha256-aAsO35YtqIdvBhCIKZ0a+OcC8wB0H1+mAoPKBY0jxeQ=",
|
"narHash": "sha256-qhtonMK07BCVC/wZ+pZ9/MKhcTric7YUaCpW6pOg8IM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-apple-silicon",
|
"repo": "nixos-apple-silicon",
|
||||||
"rev": "9fe29a63b23005acfcd1324a9e78b6241226cdb1",
|
"rev": "2b92d495204be0b10845c66361444dbc8441c68d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -37,14 +58,30 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"base16-discord": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771164756,
|
||||||
|
"narHash": "sha256-6NU5HQZVZ1mSNaIyZxE+U35nF46uXH/768y3auhQdiI=",
|
||||||
|
"owner": "imbypass",
|
||||||
|
"repo": "base16-discord",
|
||||||
|
"rev": "8b005607e5783f751fe369f0442965a86eed8051",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "imbypass",
|
||||||
|
"repo": "base16-discord",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cachyos-kernel": {
|
"cachyos-kernel": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774160598,
|
"lastModified": 1771263855,
|
||||||
"narHash": "sha256-ArPoVPHpXauFDGsz7nGBiXljj7keGcp/O4Pf4ZU4/30=",
|
"narHash": "sha256-akyds1g8cb742d2OrnQ4YciscpynsQ0+0YD2a8aZdvo=",
|
||||||
"owner": "CachyOS",
|
"owner": "CachyOS",
|
||||||
"repo": "linux-cachyos",
|
"repo": "linux-cachyos",
|
||||||
"rev": "1caa0b77871d4537f0d629a2ce30edb2f6178d19",
|
"rev": "5ece16c7b4a7d1261da68153cafc318a60b78ce8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -56,11 +93,11 @@
|
||||||
"cachyos-kernel-patches": {
|
"cachyos-kernel-patches": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774023710,
|
"lastModified": 1771399550,
|
||||||
"narHash": "sha256-Oc+4K6edCv0fdvfe6UW+OpJiXYWkXRrOH9TDMNwi+J8=",
|
"narHash": "sha256-Q2rMJcwZiI1rn8H27gLleKA3ATW/EykukyGR6S1tBPk=",
|
||||||
"owner": "CachyOS",
|
"owner": "CachyOS",
|
||||||
"repo": "kernel-patches",
|
"repo": "kernel-patches",
|
||||||
"rev": "a4e26fa95257ac09bd42930334399b0eabd5b5b1",
|
"rev": "021aae790c8555a4bb6e2135c6b777bf6fdcba02",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -69,6 +106,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"catppuccin-discord": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770426312,
|
||||||
|
"narHash": "sha256-rxvHIifq5CYIBPwFA2SpOrWT+sG/z0ItXT3sx2wbEqg=",
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "discord",
|
||||||
|
"rev": "b9b5547f0b32296d2389716ef606de87b3c1e7c7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "discord",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761640442,
|
"lastModified": 1761640442,
|
||||||
|
|
@ -105,11 +158,11 @@
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772408722,
|
"lastModified": 1768135262,
|
||||||
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
|
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
|
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -119,6 +172,24 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_2": {
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769996383,
|
||||||
|
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
|
|
@ -139,7 +210,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_3": {
|
"flake-parts_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nur",
|
"nur",
|
||||||
|
|
@ -160,24 +231,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_4": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769996383,
|
|
||||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fromYaml": {
|
"fromYaml": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -201,11 +254,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774539458,
|
"lastModified": 1771519029,
|
||||||
"narHash": "sha256-H9GIOqdMfQZ6lFetsQhO9TCq53hYzpTHDWOt3PRh9V0=",
|
"narHash": "sha256-H59Qf82wv5kBXVoyXsmUKW+9J3o8FqgY4uKaLdsLdLg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e2e5f512b33ed19a7a3271d0b73ed5eefcc0be5f",
|
"rev": "167e0b6837115e672ec5f58e2b0ea39093abe807",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -214,14 +267,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"kvlibadwaita": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757782301,
|
||||||
|
"narHash": "sha256-jCXME6mpqqWd7gWReT04a//2O83VQcOaqIIXa+Frntc=",
|
||||||
|
"owner": "GabePoel",
|
||||||
|
"repo": "KvLibadwaita",
|
||||||
|
"rev": "1f4e0bec44b13dabfa1fe4047aa8eeaccf2f3557",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "GabePoel",
|
||||||
|
"repo": "KvLibadwaita",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"niri": {
|
"niri": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"niri-stable": "niri-stable",
|
"niri-stable": "niri-stable",
|
||||||
"niri-unstable": [
|
"niri-unstable": "niri-unstable",
|
||||||
"niri-blur"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-unstable"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": [
|
"nixpkgs-stable": [
|
||||||
"nixpkgs-stable"
|
"nixpkgs-stable"
|
||||||
|
|
@ -230,37 +297,19 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771682768,
|
"lastModified": 1771514840,
|
||||||
"narHash": "sha256-RJ9RVJSAktCgWiqLDCjYmx9KgMuLaszUrI28k92Pa2I=",
|
"narHash": "sha256-t3WbZvwoDj/75YDX/nwkZuxanZLZaWr9meSfKswaN6g=",
|
||||||
"owner": "sckova",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "383bd9d32706b163807b05983418069b2e692310",
|
"rev": "4f69ab280e9bb34e2c0b67fdfa6f0978a170ef56",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "sckova",
|
"owner": "sodiboo",
|
||||||
"ref": "feat/blur",
|
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"niri-blur": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1774190104,
|
|
||||||
"narHash": "sha256-L/Ldq9G41Mj8WjWTuC+rePvWIx1A/tHdFpLbQmtrMSA=",
|
|
||||||
"owner": "niri-wm",
|
|
||||||
"repo": "niri",
|
|
||||||
"rev": "d06dd4b9e60fa07120c217aa095f3ed8caac99f2",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "niri-wm",
|
|
||||||
"ref": "wip/branch",
|
|
||||||
"repo": "niri",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"niri-stable": {
|
"niri-stable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -278,20 +327,36 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"niri-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771305475,
|
||||||
|
"narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-cachyos-kernel": {
|
"nix-cachyos-kernel": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"cachyos-kernel": "cachyos-kernel",
|
"cachyos-kernel": "cachyos-kernel",
|
||||||
"cachyos-kernel-patches": "cachyos-kernel-patches",
|
"cachyos-kernel-patches": "cachyos-kernel-patches",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774290535,
|
"lastModified": 1771438239,
|
||||||
"narHash": "sha256-dnFbucSiAjjWmPENgyIiK/ocCuYSp4sM6Sq4WCVjG+8=",
|
"narHash": "sha256-/d5FnrQ1nvZ9n1I7o/hMTzjd8tTBvV5rT24Nh7h59RQ=",
|
||||||
"owner": "xddxdd",
|
"owner": "xddxdd",
|
||||||
"repo": "nix-cachyos-kernel",
|
"repo": "nix-cachyos-kernel",
|
||||||
"rev": "c0fcdf5cab21b7e3157e84046b57407a60934415",
|
"rev": "58f338b00bc5619144a6f3082eed5c83e79b279b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -303,11 +368,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774106199,
|
"lastModified": 1768305791,
|
||||||
"narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
|
"narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
|
"rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -319,11 +384,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772328832,
|
"lastModified": 1765674936,
|
||||||
"narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
|
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
|
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -349,11 +414,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774388614,
|
"lastModified": 1771419570,
|
||||||
"narHash": "sha256-tFwzTI0DdDzovdE9+Ras6CUss0yn8P9XV4Ja6RjA+nU=",
|
"narHash": "sha256-bxAlQgre3pcQcaRUm/8A0v/X8d2nhfraWSFqVmMcBcU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1073dad219cb244572b74da2b20c7fe39cb3fa9e",
|
"rev": "6d41bc27aaf7b6a3ba6b169db3bd5d6159cfaa47",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -365,11 +430,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774386573,
|
"lastModified": 1771369470,
|
||||||
"narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
|
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
|
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -381,11 +446,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774235121,
|
"lastModified": 1771353015,
|
||||||
"narHash": "sha256-CzpSER+YKq4yD+RPom6Su9c/4FutF+sD4rEnls+4MyM=",
|
"narHash": "sha256-gvMwFEdFCM2zFxLVDaAbhV2N9zK0IW/RceBundHUdZs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1116aed2cee959f7d054a462458513ad323b710a",
|
"rev": "931ef4db402cdab9dfe66fe4a2b01d50f6fe435d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -395,36 +460,20 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770115704,
|
|
||||||
"narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_3",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774309640,
|
"lastModified": 1771135771,
|
||||||
"narHash": "sha256-8oWL7YLwElBY9ebYri1LlSlhf/gd1Qoqj0nbBwG2yso=",
|
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "28c58bf023bf537354f78d6e496a349d7a0ed554",
|
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -437,15 +486,14 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"noctalia-qs": "noctalia-qs"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774536980,
|
"lastModified": 1771513929,
|
||||||
"narHash": "sha256-j7I4XVEaUsiR0EOUJGnY7DZ0V/GYtcGJ97K3abzU9QY=",
|
"narHash": "sha256-dPeHevAT1Cb2w/Wrfz/d5i6RfO8bvbGl/KrTPxU2l3w=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia-shell",
|
"repo": "noctalia-shell",
|
||||||
"rev": "396fba755b515913f4ac7596c30b827b0f67d53a",
|
"rev": "9c47ce03f200e0b8fc515d973440d5bc3e359785",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -454,42 +502,19 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"noctalia-qs": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"noctalia",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": "systems_2",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1774351986,
|
|
||||||
"narHash": "sha256-N131zILQ06ZNEvtgtjjFZ0N5qEI70rKKhCZsBcZoDH8=",
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-qs",
|
|
||||||
"rev": "066835ebd5daeabc86df1e62fb5fe82a51407cc0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-qs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_4",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774540439,
|
"lastModified": 1771516225,
|
||||||
"narHash": "sha256-zVYoM58GjEh07Oa56zRygHaqp+Fm83PK8C77p84l5uA=",
|
"narHash": "sha256-G2cPs4Ic8Z1Aq8QfMa1VwJoBwIhVpwzcQ036ZhI4oXc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "95ed6efd2ba5aefb62f522c71ef3276b18a8b5a0",
|
"rev": "d4694f0614419034910767b5a036384ab358b138",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -510,18 +535,44 @@
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "OpenMW",
|
"owner": "OpenMW",
|
||||||
"ref": "01bcd6",
|
|
||||||
"repo": "openmw",
|
"repo": "openmw",
|
||||||
|
"rev": "01bcd6a6369fe461caaf900354967b4751aede7a",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"plasma-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770766818,
|
||||||
|
"narHash": "sha256-12RCFLyAedyMOdenUi7cN3ioJPEGjA/ZG1BLjugfUVs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "plasma-manager",
|
||||||
|
"rev": "44b928068359b7d2310a34de39555c63c93a2c90",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "plasma-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"aerothemeplasma-nix": "aerothemeplasma-nix",
|
||||||
"apple-silicon": "apple-silicon",
|
"apple-silicon": "apple-silicon",
|
||||||
"base16": "base16",
|
"base16": "base16",
|
||||||
|
"base16-discord": "base16-discord",
|
||||||
|
"catppuccin-discord": "catppuccin-discord",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"kvlibadwaita": "kvlibadwaita",
|
||||||
"niri": "niri",
|
"niri": "niri",
|
||||||
"niri-blur": "niri-blur",
|
|
||||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-unstable"
|
"nixpkgs-unstable"
|
||||||
|
|
@ -532,47 +583,29 @@
|
||||||
"noctalia": "noctalia",
|
"noctalia": "noctalia",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"openmw": "openmw",
|
"openmw": "openmw",
|
||||||
"seamless-asahi-plymouth": "seamless-asahi-plymouth",
|
"plasma-manager": "plasma-manager",
|
||||||
"sops-nix": "sops-nix",
|
"spicetify-nix": "spicetify-nix",
|
||||||
"tt-schemes": "tt-schemes"
|
"tt-schemes": "tt-schemes"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"seamless-asahi-plymouth": {
|
"spicetify-nix": {
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_4",
|
|
||||||
"nixpkgs": "nixpkgs_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770365598,
|
|
||||||
"narHash": "sha256-tjmDL8eaK2NIwWDho81GhygkBZoauiiiUqwV1VP1FwQ=",
|
|
||||||
"owner": "luca-schlecker",
|
|
||||||
"repo": "seamless-asahi-plymouth",
|
|
||||||
"rev": "e3f5517643f9c2021bee2870b55d8bd363763cd1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "luca-schlecker",
|
|
||||||
"repo": "seamless-asahi-plymouth",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sops-nix": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774910634,
|
"lastModified": 1771268051,
|
||||||
"narHash": "sha256-B+rZDPyktGEjOMt8PcHKYmgmKoF+GaNAFJhguktXAo0=",
|
"narHash": "sha256-nGqPcngnezoT+/xAvw3UDjwdKP2MC4fO315A/Otb9eE=",
|
||||||
"owner": "Mic92",
|
"owner": "Gerg-L",
|
||||||
"repo": "sops-nix",
|
"repo": "spicetify-nix",
|
||||||
"rev": "19bf3d8678fbbfbc173beaa0b5b37d37938db301",
|
"rev": "b930de84c561f62a0c39a6a57c2ab553a97e8495",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "Mic92",
|
"owner": "Gerg-L",
|
||||||
"repo": "sops-nix",
|
"repo": "spicetify-nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -593,38 +626,16 @@
|
||||||
},
|
},
|
||||||
"systems_2": {
|
"systems_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default-linux",
|
"repo": "default",
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default-linux",
|
"repo": "default",
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"noctalia",
|
|
||||||
"noctalia-qs",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1772660329,
|
|
||||||
"narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "3710e0e1218041bbad640352a0440114b1e10428",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
278
flake.nix
278
flake.nix
|
|
@ -8,19 +8,23 @@
|
||||||
# edit this to switch between stable and unstable
|
# edit this to switch between stable and unstable
|
||||||
nixpkgs.follows = "nixpkgs-unstable";
|
nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
|
||||||
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
|
nix-cachyos-kernel = {
|
||||||
apple-silicon.url = "github:nix-community/nixos-apple-silicon";
|
url = "github:xddxdd/nix-cachyos-kernel/release";
|
||||||
seamless-asahi-plymouth.url = "github:luca-schlecker/seamless-asahi-plymouth";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
base16.url = "github:SenchoPens/base16.nix";
|
};
|
||||||
|
|
||||||
|
base16 = {
|
||||||
|
url = "github:SenchoPens/base16.nix";
|
||||||
|
};
|
||||||
|
|
||||||
tt-schemes = {
|
tt-schemes = {
|
||||||
url = "github:tinted-theming/schemes/b9f335ad6a0b7d85b9c2eb932c3215f7429f7d11";
|
url = "github:tinted-theming/schemes/b9f335ad6a0b7d85b9c2eb932c3215f7429f7d11";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
sops-nix = {
|
base16-discord = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:imbypass/base16-discord";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
|
@ -28,23 +32,40 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
niri = {
|
plasma-manager = {
|
||||||
url = "github:sckova/niri-flake/feat/blur";
|
url = "github:nix-community/plasma-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.nixpkgs-stable.follows = "nixpkgs-stable";
|
inputs.home-manager.follows = "home-manager";
|
||||||
inputs.niri-unstable.follows = "niri-blur";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
niri-blur = {
|
aerothemeplasma-nix = {
|
||||||
url = "github:niri-wm/niri/wip/branch";
|
url = "github:nyakase/aerothemeplasma-nix";
|
||||||
flake = false;
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
niri = {
|
||||||
|
url = "github:sodiboo/niri-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.nixpkgs-stable.follows = "nixpkgs-stable";
|
||||||
|
# inputs.niri-stable.follows = "niri-blur";
|
||||||
|
# inputs.niri-unstable.follows = "niri-blur";
|
||||||
|
};
|
||||||
|
|
||||||
|
# niri-blur = {
|
||||||
|
# url = "github:visualglitch91/niri/feat/blur";
|
||||||
|
# flake = false;
|
||||||
|
# };
|
||||||
|
|
||||||
noctalia = {
|
noctalia = {
|
||||||
url = "github:noctalia-dev/noctalia-shell";
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spicetify-nix = {
|
||||||
|
url = "github:Gerg-L/spicetify-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
nur = {
|
nur = {
|
||||||
url = "github:nix-community/NUR";
|
url = "github:nix-community/NUR";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
@ -55,8 +76,23 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
apple-silicon = {
|
||||||
|
url = "github:nix-community/nixos-apple-silicon";
|
||||||
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
openmw = {
|
openmw = {
|
||||||
url = "gitlab:OpenMW/openmw/01bcd6";
|
url = "gitlab:OpenMW/openmw/01bcd6a6369fe461caaf900354967b4751aede7a";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
catppuccin-discord = {
|
||||||
|
url = "github:catppuccin/discord";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
kvlibadwaita = {
|
||||||
|
url = "github:GabePoel/KvLibadwaita";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -66,20 +102,32 @@
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixpkgs-unstable,
|
nixpkgs-unstable,
|
||||||
nix-cachyos-kernel,
|
nix-cachyos-kernel,
|
||||||
apple-silicon,
|
|
||||||
seamless-asahi-plymouth,
|
|
||||||
base16,
|
base16,
|
||||||
tt-schemes,
|
tt-schemes,
|
||||||
sops-nix,
|
base16-discord,
|
||||||
home-manager,
|
home-manager,
|
||||||
|
plasma-manager,
|
||||||
|
aerothemeplasma-nix,
|
||||||
niri,
|
niri,
|
||||||
noctalia,
|
noctalia,
|
||||||
|
spicetify-nix,
|
||||||
nur,
|
nur,
|
||||||
nixvim,
|
nixvim,
|
||||||
|
apple-silicon,
|
||||||
openmw,
|
openmw,
|
||||||
|
catppuccin-discord,
|
||||||
|
kvlibadwaita,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
# All systems we want to support for the generic VM
|
||||||
|
# to run the vm:
|
||||||
|
# nixos-rebuild build-vm --flake ~/nix#$(nix eval --raw --impure --expr 'builtins.currentSystem')
|
||||||
|
supportedSystems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
|
|
||||||
# Shared config for all package sets
|
# Shared config for all package sets
|
||||||
pkgConfig = {
|
pkgConfig = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
|
|
@ -103,92 +151,86 @@
|
||||||
}
|
}
|
||||||
// extraSpecialArgs;
|
// extraSpecialArgs;
|
||||||
modules = [
|
modules = [
|
||||||
(
|
{
|
||||||
{ pkgs, ... }:
|
nixpkgs = {
|
||||||
{
|
config = pkgConfig;
|
||||||
nixpkgs = {
|
overlays = [
|
||||||
config = pkgConfig;
|
niri.overlays.niri
|
||||||
overlays = [
|
noctalia.overlays.default
|
||||||
niri.overlays.niri
|
nur.overlays.default
|
||||||
noctalia.overlays.default
|
(final: prev: {
|
||||||
nur.overlays.default
|
openmw-git = openmw;
|
||||||
(final: prev: {
|
catppuccin-discord-git = catppuccin-discord;
|
||||||
openmw-git = openmw;
|
kvlibadwaita-git = kvlibadwaita;
|
||||||
})
|
base16-discord-git = base16-discord;
|
||||||
(final: prev: {
|
})
|
||||||
inherit (prev.lixPackageSets.stable)
|
(import ./packages/overlay.nix)
|
||||||
nixpkgs-review
|
];
|
||||||
nix-eval-jobs
|
};
|
||||||
nix-fast-build
|
nix = {
|
||||||
colmena
|
settings = {
|
||||||
;
|
experimental-features = [
|
||||||
})
|
"nix-command"
|
||||||
(import ./packages/overlay.nix)
|
"flakes"
|
||||||
];
|
];
|
||||||
};
|
|
||||||
nix = {
|
|
||||||
package = pkgs.lixPackageSets.stable.lix;
|
|
||||||
settings = {
|
|
||||||
experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
|
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://attic.xuyh0120.win/lantian"
|
"https://attic.xuyh0120.win/lantian"
|
||||||
"https://cache.garnix.io"
|
"https://cache.garnix.io"
|
||||||
"https://nixos-apple-silicon.cachix.org"
|
"https://nixos-apple-silicon.cachix.org"
|
||||||
];
|
];
|
||||||
|
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
|
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
|
||||||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
||||||
"nixos-apple-silicon.cachix.org-1:8psDu5SA5dAD7qA0zMy5UT292TxeEPzIz8VVEr2Js20="
|
"nixos-apple-silicon.cachix.org-1:8psDu5SA5dAD7qA0zMy5UT292TxeEPzIz8VVEr2Js20="
|
||||||
];
|
];
|
||||||
|
|
||||||
trusted-users = [
|
trusted-users = [
|
||||||
"root"
|
"root"
|
||||||
"sckova"
|
"sckova"
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
gc = {
|
# Increase file descriptor limit for builds
|
||||||
automatic = true;
|
# sandbox = "relaxed";
|
||||||
dates = "weekly";
|
# extra-sandbox-paths = [ ];
|
||||||
options = "--delete-older-than 30d";
|
# build-users-group = "nixbld";
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = hostname;
|
gc = {
|
||||||
|
automatic = true;
|
||||||
users.users.sckova = {
|
dates = "weekly";
|
||||||
isNormalUser = true;
|
options = "--delete-older-than 30d";
|
||||||
description = "Sean Kovacs";
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"networkmanager"
|
|
||||||
"podman"
|
|
||||||
"pipewire"
|
|
||||||
];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCn/eXMq04vcXNqGVzlZOw2C2dQYBqzWsoigdFW09XqC2WPaGljbAIayzaD7Q1tIlPGGy10+nipAXAk1CHAnrQ2KSg4v/SwFphF48V3joeQmideC4vo0EIQEQibbMtj3oFezqRcRZINl/1hr4t0myZ3zkoTjh3HCkqJEMGUdArDMEVPA5mwcKSLsyshW9LMG/3C9YKKPU1/lVsoeDkj8AVZA0srhkApuRKF0IVu8KoPd6ldvSWgpQ1iuQ+MEMSeOUJytieBkzeY9zEVePaQ86oIMDUzqq8OTN37RyShiJKPskKyj12rJI2eFtI/viGaj8P6/yvKqMp3F4kAsPAuvMLLAIYCNa+139rDpkkIKB6lVtgq0jnJGRywaYXGIRyExNcVAr8I9wrNnNN2M4whVeYBxfLMzKZ+VvfK39AaGvnzPuFDLqUC87sN4c/1KZQo+TCtlaxcYvqowWylw5JHUt8uwFcO/dUebQxxAv8EdyPZGJ/54y19PsTbu9KyxSc2gIU= sckova"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
)
|
|
||||||
./options.nix
|
networking.hostName = hostname;
|
||||||
./sops.nix
|
|
||||||
|
users.users.sckova = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Sean Kovacs";
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
|
"podman"
|
||||||
|
];
|
||||||
|
hashedPassword = "$6$bvwRUFaJNMpH8rm3$FGDWFN6tBScJ/2DynAjnlZE8JRfyADN78d6c4GawxpAjyNLNE/AjQzMA09tLRqpKX7WnN5PIUZLAm2bT9/RbG0";
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCn/eXMq04vcXNqGVzlZOw2C2dQYBqzWsoigdFW09XqC2WPaGljbAIayzaD7Q1tIlPGGy10+nipAXAk1CHAnrQ2KSg4v/SwFphF48V3joeQmideC4vo0EIQEQibbMtj3oFezqRcRZINl/1hr4t0myZ3zkoTjh3HCkqJEMGUdArDMEVPA5mwcKSLsyshW9LMG/3C9YKKPU1/lVsoeDkj8AVZA0srhkApuRKF0IVu8KoPd6ldvSWgpQ1iuQ+MEMSeOUJytieBkzeY9zEVePaQ86oIMDUzqq8OTN37RyShiJKPskKyj12rJI2eFtI/viGaj8P6/yvKqMp3F4kAsPAuvMLLAIYCNa+139rDpkkIKB6lVtgq0jnJGRywaYXGIRyExNcVAr8I9wrNnNN2M4whVeYBxfLMzKZ+VvfK39AaGvnzPuFDLqUC87sN4c/1KZQo+TCtlaxcYvqowWylw5JHUt8uwFcO/dUebQxxAv8EdyPZGJ/54y19PsTbu9KyxSc2gIU= sckova"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
./system
|
./system
|
||||||
./system/searxng
|
./system/searxng
|
||||||
./system/games
|
|
||||||
./system/widevine
|
./system/widevine
|
||||||
./system/shell/fish.nix
|
./system/shell/fish.nix
|
||||||
./system/tailscale
|
./system/tailscale
|
||||||
./system/hosts/${hostname}
|
./system/hosts/${hostname}
|
||||||
./hardware/${hostname}
|
./hardware/${hostname}
|
||||||
|
aerothemeplasma-nix.nixosModules.aerothemeplasma-nix
|
||||||
niri.nixosModules.niri
|
niri.nixosModules.niri
|
||||||
sops-nix.nixosModules.sops
|
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
|
noctalia.nixosModules.default
|
||||||
{
|
{
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
|
|
@ -197,18 +239,16 @@
|
||||||
imports = [
|
imports = [
|
||||||
./home
|
./home
|
||||||
./options.nix
|
./options.nix
|
||||||
./sops.nix
|
./home/apps
|
||||||
./home/sckova
|
./home/games
|
||||||
./home/sckova/apps
|
./home/hosts/${hostname}
|
||||||
./home/sckova/games
|
./home/kde
|
||||||
./home/sckova/hosts/${hostname}
|
./home/services
|
||||||
./home/sckova/services
|
./home/terminal
|
||||||
./home/sckova/terminal
|
./home/tiling
|
||||||
./home/sckova/tiling
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
sharedModules = [
|
sharedModules = [
|
||||||
sops-nix.homeManagerModules.sops
|
|
||||||
base16.nixosModule
|
base16.nixosModule
|
||||||
(
|
(
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
|
|
@ -216,10 +256,14 @@
|
||||||
scheme = "${tt-schemes}/base24/${config.colors.scheme}.yaml";
|
scheme = "${tt-schemes}/base24/${config.colors.scheme}.yaml";
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
aerothemeplasma-nix.homeModules.aerothemeplasma-nix
|
||||||
|
plasma-manager.homeModules.plasma-manager
|
||||||
noctalia.homeModules.default
|
noctalia.homeModules.default
|
||||||
|
spicetify-nix.homeManagerModules.default
|
||||||
nixvim.homeModules.nixvim
|
nixvim.homeModules.nixvim
|
||||||
];
|
];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
|
inherit spicetify-nix;
|
||||||
pkgs-unstable = import nixpkgs-unstable {
|
pkgs-unstable = import nixpkgs-unstable {
|
||||||
inherit system;
|
inherit system;
|
||||||
config = pkgConfig;
|
config = pkgConfig;
|
||||||
|
|
@ -227,7 +271,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
noctalia.nixosModules.default
|
|
||||||
]
|
]
|
||||||
++ extraModules;
|
++ extraModules;
|
||||||
};
|
};
|
||||||
|
|
@ -250,9 +293,10 @@
|
||||||
home.username = user;
|
home.username = user;
|
||||||
home.homeDirectory = "/home/${user}";
|
home.homeDirectory = "/home/${user}";
|
||||||
modules = [
|
modules = [
|
||||||
./home/${user}
|
./home
|
||||||
./home/${user}/hosts/${hostname}.nix
|
./home/hosts/${hostname}.nix
|
||||||
home-manager.homeModules.home-manager
|
home-manager.homeModules.home-manager
|
||||||
|
plasma-manager.homeModules.plasma-manager
|
||||||
niri.homeModules.default
|
niri.homeModules.default
|
||||||
noctalia.homeModules.noctalia
|
noctalia.homeModules.noctalia
|
||||||
nixvim.homeModules.nixvim
|
nixvim.homeModules.nixvim
|
||||||
|
|
@ -264,21 +308,27 @@
|
||||||
peach = mkNixosSystem {
|
peach = mkNixosSystem {
|
||||||
hostname = "peach";
|
hostname = "peach";
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
extraSpecialArgs = { inherit seamless-asahi-plymouth; };
|
|
||||||
extraModules = [
|
extraModules = [
|
||||||
apple-silicon.nixosModules.default
|
apple-silicon.nixosModules.default
|
||||||
{ nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; }
|
{ nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
alien = mkNixosSystem {
|
|
||||||
hostname = "alien";
|
alien =
|
||||||
system = "x86_64-linux";
|
mkNixosSystem {
|
||||||
extraModules = [
|
hostname = "alien";
|
||||||
{
|
system = "x86_64-linux";
|
||||||
nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ];
|
extraModules = [
|
||||||
|
{ nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// nixpkgs.lib.genAttrs supportedSystems (
|
||||||
|
system:
|
||||||
|
mkNixosSystem {
|
||||||
|
hostname = "vm-generic";
|
||||||
|
inherit system;
|
||||||
}
|
}
|
||||||
];
|
);
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
|
|
@ -292,6 +342,14 @@
|
||||||
hostname = "alien";
|
hostname = "alien";
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
// nixpkgs.lib.genAttrs supportedSystems (
|
||||||
|
system:
|
||||||
|
mkHomeConfig {
|
||||||
|
user = "sckova";
|
||||||
|
hostname = "vm-generic";
|
||||||
|
inherit system;
|
||||||
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
8
home/apps/default.nix
Normal file
8
home/apps/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./discord.nix
|
||||||
|
./firefox.nix
|
||||||
|
./mpv.nix
|
||||||
|
# ./vscode.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -4,8 +4,9 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
mergedThemes = pkgs.runCommand "discordThemeDir" { } ''
|
mergedThemes = pkgs.runCommand "mergedConfig" { } ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
|
cp -rvf ${pkgs.base16-discord-git}/base16.css $out/base16.css
|
||||||
'';
|
'';
|
||||||
|
|
||||||
vesktopSettings = {
|
vesktopSettings = {
|
||||||
|
|
@ -46,6 +47,11 @@ in
|
||||||
|
|
||||||
home.file.".config/vesktop/settings/quickCss.css" = with config.scheme.withHashtag; {
|
home.file.".config/vesktop/settings/quickCss.css" = with config.scheme.withHashtag; {
|
||||||
text = ''
|
text = ''
|
||||||
|
* {
|
||||||
|
font-family: "${config.userOptions.fontSans.name}" !important;
|
||||||
|
font-size: ${toString config.userOptions.fontSans.size}px;
|
||||||
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--base00: ${base00};
|
--base00: ${base00};
|
||||||
--base01: ${base01};
|
--base01: ${base01};
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
url = "https://web.whatsapp.com/";
|
url = "https://web.whatsapp.com/";
|
||||||
manifestUrl = "https://web.whatsapp.com/data/manifest.json";
|
manifestUrl = "https://web.whatsapp.com/data/manifest.json";
|
||||||
desktopEntry = {
|
desktopEntry = {
|
||||||
icon = "${pkgs.morewaita-icon-theme}/share/icons/MoreWaita/scalable/apps/whatsapp.svg";
|
icon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/whatsapp.svg";
|
||||||
categories = [
|
categories = [
|
||||||
"Network"
|
"Network"
|
||||||
"Chat"
|
"Chat"
|
||||||
|
|
@ -104,6 +104,7 @@
|
||||||
"uBlock0@raymondhill.net".installation_mode = "allowed";
|
"uBlock0@raymondhill.net".installation_mode = "allowed";
|
||||||
"gdpr@cavi.au.dk".installation_mode = "allowed";
|
"gdpr@cavi.au.dk".installation_mode = "allowed";
|
||||||
"{5cce4ab5-3d47-41b9-af5e-8203eea05245}".installation_mode = "allowed";
|
"{5cce4ab5-3d47-41b9-af5e-8203eea05245}".installation_mode = "allowed";
|
||||||
|
"plasma-browser-integration@kde.org".installation_mode = "allowed";
|
||||||
"jid1-MnnxcxisBPnSXQ@jetpack".installation_mode = "allowed";
|
"jid1-MnnxcxisBPnSXQ@jetpack".installation_mode = "allowed";
|
||||||
"firefoxpwa@filips.si".installation_mode = "allowed";
|
"firefoxpwa@filips.si".installation_mode = "allowed";
|
||||||
"sponsorBlocker@ajay.app".installation_mode = "allowed";
|
"sponsorBlocker@ajay.app".installation_mode = "allowed";
|
||||||
|
|
@ -112,7 +113,6 @@
|
||||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}".installation_mode = "allowed";
|
"{446900e4-71c2-419f-a6a7-df9c091e268b}".installation_mode = "allowed";
|
||||||
"CanvasBlocker@kkapsner.de".installation_mode = "allowed";
|
"CanvasBlocker@kkapsner.de".installation_mode = "allowed";
|
||||||
"shinigamieyes@shinigamieyes".installation_mode = "allowed";
|
"shinigamieyes@shinigamieyes".installation_mode = "allowed";
|
||||||
"deArrow@ajay.app".installation_mode = "allowed";
|
|
||||||
};
|
};
|
||||||
DisableTelemetry = true;
|
DisableTelemetry = true;
|
||||||
DisableFirefoxStudies = true;
|
DisableFirefoxStudies = true;
|
||||||
|
|
@ -142,6 +142,7 @@
|
||||||
force = true;
|
force = true;
|
||||||
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
ublock-origin
|
ublock-origin
|
||||||
|
plasma-integration
|
||||||
stylus
|
stylus
|
||||||
violentmonkey
|
violentmonkey
|
||||||
consent-o-matic
|
consent-o-matic
|
||||||
|
|
@ -152,7 +153,6 @@
|
||||||
bitwarden
|
bitwarden
|
||||||
canvasblocker
|
canvasblocker
|
||||||
shinigami-eyes
|
shinigami-eyes
|
||||||
dearrow
|
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
"{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = {
|
"{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = {
|
||||||
|
|
@ -207,20 +207,10 @@
|
||||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||||
"browser.newtabpage.activity-stream.showWeather" = false;
|
"browser.newtabpage.activity-stream.showWeather" = false;
|
||||||
"browser.download.autoHideButton" = false;
|
"browser.download.autoHideButton" = false;
|
||||||
# "browser.startup.homepage" = "http://localhost:5364/";
|
"browser.startup.homepage" = "http://localhost:8080/";
|
||||||
"browser.tabs.splitview.hasUsed" = true;
|
|
||||||
|
|
||||||
# Disable Firefox's machine learning (AI) features
|
# Disable Firefox's machine learning (AI) features
|
||||||
"browser.ml.enable" = false;
|
"browser.ml.enable" = false;
|
||||||
"browser.ml.chat.enabled" = false;
|
|
||||||
"browser.ml.chat.page" = false;
|
|
||||||
"browser.ai.control.default" = "blocked";
|
|
||||||
"browser.ai.control.linkPreviewKeyPoints" = "blocked";
|
|
||||||
"browser.ai.control.pdfjsAltText" = "blocked";
|
|
||||||
"browser.ai.control.sidebarChatbot" = "blocked";
|
|
||||||
"browser.ai.control.smartTabGroups" = "blocked";
|
|
||||||
"browser.ai.control.translations" = "blocked";
|
|
||||||
"sidebar.notification.badge.aichat" = false;
|
|
||||||
|
|
||||||
# For browser toolbox/live editing user CSS
|
# For browser toolbox/live editing user CSS
|
||||||
"devtools.chrome.enabled" = true;
|
"devtools.chrome.enabled" = true;
|
||||||
|
|
@ -238,12 +228,12 @@
|
||||||
"jid1-mnnxcxisbpnsxq_jetpack-browser-action"
|
"jid1-mnnxcxisbpnsxq_jetpack-browser-action"
|
||||||
"gdpr_cavi_au_dk-browser-action"
|
"gdpr_cavi_au_dk-browser-action"
|
||||||
"firefoxpwa_filips_si-browser-action"
|
"firefoxpwa_filips_si-browser-action"
|
||||||
|
"plasma-browser-integration_kde_org-browser-action"
|
||||||
"canvasblocker_kkapsner_de-browser-action"
|
"canvasblocker_kkapsner_de-browser-action"
|
||||||
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
|
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
|
||||||
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
|
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
|
||||||
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
|
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
|
||||||
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
||||||
"dearrow_ajay_app-browser-action"
|
|
||||||
];
|
];
|
||||||
nav-bar = [
|
nav-bar = [
|
||||||
# "sidebar-button"
|
# "sidebar-button"
|
||||||
|
|
@ -262,6 +252,7 @@
|
||||||
seen = [
|
seen = [
|
||||||
"gdpr_cavi_au_dk-browser-action"
|
"gdpr_cavi_au_dk-browser-action"
|
||||||
"firefoxpwa_filips_si-browser-action"
|
"firefoxpwa_filips_si-browser-action"
|
||||||
|
"plasma-browser-integration_kde_org-browser-action"
|
||||||
"jid1-mnnxcxisbpnsxq_jetpack-browser-action"
|
"jid1-mnnxcxisbpnsxq_jetpack-browser-action"
|
||||||
"canvasblocker_kkapsner_de-browser-action"
|
"canvasblocker_kkapsner_de-browser-action"
|
||||||
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
|
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
|
||||||
|
|
@ -270,7 +261,6 @@
|
||||||
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
|
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
|
||||||
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
||||||
"sponsorblocker_ajay_app-browser-action"
|
"sponsorblocker_ajay_app-browser-action"
|
||||||
"dearrow_ajay_app-browser-action"
|
|
||||||
"developer-button"
|
"developer-button"
|
||||||
];
|
];
|
||||||
dirtyAreaCache = [
|
dirtyAreaCache = [
|
||||||
|
|
@ -316,8 +306,8 @@
|
||||||
};
|
};
|
||||||
search =
|
search =
|
||||||
let
|
let
|
||||||
nixIcon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
nixIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/nix-snowflake.svg";
|
||||||
searchIcon = "${pkgs.adwaita-icon-theme}/share/icons/Adwaita/scalable/places/folder-saved-search-symbolic.svg";
|
searchIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid-Dark/places/symbolic/folder-saved-search-symbolic.svg";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
force = true;
|
force = true;
|
||||||
|
|
@ -379,7 +369,7 @@
|
||||||
|
|
||||||
searxng = {
|
searxng = {
|
||||||
name = "SearXNG";
|
name = "SearXNG";
|
||||||
urls = [ { template = "http://localhost:5364/search?q={searchTerms}"; } ];
|
urls = [ { template = "http://localhost:8080/search?q={searchTerms}"; } ];
|
||||||
icon = searchIcon;
|
icon = searchIcon;
|
||||||
definedAliases = [ "@go" ];
|
definedAliases = [ "@go" ];
|
||||||
};
|
};
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
visibility: hidden !important;
|
visibility: hidden !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*.browserContainer {
|
.browserContainer {
|
||||||
border-radius: 8px !important;
|
border-radius: 8px !important;
|
||||||
margin: 6px !important;
|
margin: 6px !important;
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
|
|
@ -22,4 +22,4 @@
|
||||||
|
|
||||||
browser {
|
browser {
|
||||||
border-radius: 8px !important;
|
border-radius: 8px !important;
|
||||||
}*/
|
}
|
||||||
113
home/default.nix
113
home/default.nix
|
|
@ -1,14 +1,105 @@
|
||||||
{
|
{
|
||||||
# This value determines the Home Manager release that your
|
config,
|
||||||
# configuration is compatible with. This helps avoid breakage
|
pkgs,
|
||||||
# when a new Home Manager release introduces backwards
|
pkgs-unstable,
|
||||||
# incompatible changes.
|
...
|
||||||
#
|
}:
|
||||||
# You can update Home Manager without changing this value. See
|
{
|
||||||
# the Home Manager release notes for a list of state version
|
|
||||||
# changes in each release.
|
|
||||||
config.home.stateVersion = "25.05";
|
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
config = {
|
||||||
config.programs.home-manager.enable = true;
|
home.packages = with pkgs; [
|
||||||
|
# cli utilities
|
||||||
|
tmux
|
||||||
|
fastfetch
|
||||||
|
btop
|
||||||
|
wget
|
||||||
|
ripgrep
|
||||||
|
ncdu
|
||||||
|
fzf
|
||||||
|
wl-clipboard
|
||||||
|
rclone
|
||||||
|
waypipe
|
||||||
|
spotdl
|
||||||
|
browsh
|
||||||
|
mosh
|
||||||
|
gh
|
||||||
|
|
||||||
|
# development & tooling
|
||||||
|
jdk21_headless
|
||||||
|
quickemu
|
||||||
|
nerd-fonts.noto
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
nix-prefetch
|
||||||
|
prowlarr
|
||||||
|
radarr
|
||||||
|
sonarr
|
||||||
|
flaresolverr
|
||||||
|
nerd-fonts.fira-mono
|
||||||
|
ffmpeg-full
|
||||||
|
|
||||||
|
# kde and kde theming
|
||||||
|
# kde-rounded-corners
|
||||||
|
kdePackages.partitionmanager
|
||||||
|
pkgs.catppuccin-cursors.mochaPeach
|
||||||
|
|
||||||
|
# gui applications
|
||||||
|
input-leap
|
||||||
|
libreoffice-qt-fresh
|
||||||
|
# nur.repos.forkprince.helium-nightly
|
||||||
|
chromium
|
||||||
|
qbittorrent
|
||||||
|
nautilus
|
||||||
|
fractal
|
||||||
|
tuba
|
||||||
|
|
||||||
|
# gui applications ( multimedia )
|
||||||
|
audacity
|
||||||
|
strawberry
|
||||||
|
musescore
|
||||||
|
gimp
|
||||||
|
calibre
|
||||||
|
# riff
|
||||||
|
dissent
|
||||||
|
loupe
|
||||||
|
spotify-player
|
||||||
|
|
||||||
|
# overrides
|
||||||
|
# (chromium.override {
|
||||||
|
# enableWideVine = true;
|
||||||
|
# })
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
spotifyd = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs-unstable.spotifyd;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
device_type = "computer";
|
||||||
|
dbus_type = "session";
|
||||||
|
disable_discovery = true;
|
||||||
|
use_mpris = true;
|
||||||
|
bitrate = 320;
|
||||||
|
initial_volume = 100;
|
||||||
|
volume_normalisation = true;
|
||||||
|
normalisation_pregain = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# This value determines the Home Manager release that your
|
||||||
|
# configuration is compatible with. This helps avoid breakage
|
||||||
|
# when a new Home Manager release introduces backwards
|
||||||
|
# incompatible changes.
|
||||||
|
#
|
||||||
|
# You can update Home Manager without changing this value. See
|
||||||
|
# the Home Manager release notes for a list of state version
|
||||||
|
# changes in each release.
|
||||||
|
home.stateVersion = "25.05";
|
||||||
|
|
||||||
|
# Let Home Manager install and manage itself.
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6
home/games/default.nix
Normal file
6
home/games/default.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./minecraft.nix
|
||||||
|
./morrowind.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [ openmw ];
|
home = {
|
||||||
home.sessionVariables.SDL_VIDEO_DRIVER = "wayland";
|
packages = with pkgs; [ openmw ];
|
||||||
|
sessionVariables = {
|
||||||
|
SDL_VIDEO_DRIVER = "wayland";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.firefox.profiles.default.search.engines.uesp = {
|
programs.firefox.profiles.default.search.engines.uesp = {
|
||||||
name = "Unofficial Elder Scrolls Pages";
|
name = "Unofficial Elder Scrolls Pages";
|
||||||
55
home/hosts/alien/default.nix
Normal file
55
home/hosts/alien/default.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
pkgs-unstable,
|
||||||
|
spicetify-nix,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
colors = {
|
||||||
|
scheme = "catppuccin-mocha";
|
||||||
|
accent = "base0D";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pkgs-unstable.ckan
|
||||||
|
|
||||||
|
# steam gtk theming
|
||||||
|
adwsteamgtk
|
||||||
|
daggerfall-unity
|
||||||
|
vintagestory
|
||||||
|
gamemode
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.noctalia-shell.settings.brightness.enableDdcSupport = true;
|
||||||
|
programs.noctalia-shell.settings.bar = {
|
||||||
|
position = "top";
|
||||||
|
density = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.spicetify =
|
||||||
|
let
|
||||||
|
spicePkgs = spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
enabledExtensions = with spicePkgs.extensions; [
|
||||||
|
adblock
|
||||||
|
hidePodcasts
|
||||||
|
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
||||||
|
];
|
||||||
|
enabledCustomApps = with spicePkgs.apps; [
|
||||||
|
newReleases
|
||||||
|
ncsVisualizer
|
||||||
|
];
|
||||||
|
enabledSnippets = with spicePkgs.snippets; [
|
||||||
|
rotatingCoverart
|
||||||
|
pointer
|
||||||
|
];
|
||||||
|
|
||||||
|
theme = spicePkgs.themes.catppuccin;
|
||||||
|
colorScheme = "mocha";
|
||||||
|
};
|
||||||
|
}
|
||||||
51
home/hosts/peach/default.nix
Normal file
51
home/hosts/peach/default.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
colors = {
|
||||||
|
scheme = "catppuccin-latte";
|
||||||
|
accent = "base09";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
asahi-nvram
|
||||||
|
asahi-bless
|
||||||
|
asahi-btsync
|
||||||
|
asahi-wifisync
|
||||||
|
|
||||||
|
moonlight-qt
|
||||||
|
];
|
||||||
|
|
||||||
|
# https://github.com/YaLTeR/niri/issues/2330#issuecomment-3256864777
|
||||||
|
programs.niri.settings.debug = {
|
||||||
|
render-drm-device = "/dev/dri/card2";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.noctalia-shell.settings.bar = {
|
||||||
|
position = "top";
|
||||||
|
density = "spacious";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.plasma = lib.mkDefault {
|
||||||
|
input.touchpads = [
|
||||||
|
{
|
||||||
|
name = "Apple MTP multi-touch";
|
||||||
|
vendorId = "05ac";
|
||||||
|
productId = "0352";
|
||||||
|
disableWhileTyping = false;
|
||||||
|
enable = true;
|
||||||
|
tapToClick = false;
|
||||||
|
naturalScroll = true;
|
||||||
|
accelerationProfile = "default";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
shortcuts = {
|
||||||
|
# this is really annoying on apple laptops
|
||||||
|
org_kde_powerdevil.Sleep = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
108
home/hosts/vm-generic/default.nix
Normal file
108
home/hosts/vm-generic/default.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
colors = {
|
||||||
|
scheme = "catppuccin-mocha";
|
||||||
|
accent = "base0B";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [ ];
|
||||||
|
|
||||||
|
programs.plasma = {
|
||||||
|
panels = [
|
||||||
|
# Application name, Global menu and Song information and playback controls at the top
|
||||||
|
{
|
||||||
|
location = "top";
|
||||||
|
height = 37;
|
||||||
|
floating = false;
|
||||||
|
widgets = [
|
||||||
|
{
|
||||||
|
applicationTitleBar = {
|
||||||
|
behavior = {
|
||||||
|
activeTaskSource = "activeTask";
|
||||||
|
};
|
||||||
|
layout = {
|
||||||
|
elements = [ "windowTitle" ];
|
||||||
|
horizontalAlignment = "right";
|
||||||
|
showDisabledElements = "deactivated";
|
||||||
|
verticalAlignment = "center";
|
||||||
|
};
|
||||||
|
overrideForMaximized.enable = false;
|
||||||
|
windowTitle = {
|
||||||
|
font = {
|
||||||
|
bold = false;
|
||||||
|
fit = "fixedSize";
|
||||||
|
size = 10;
|
||||||
|
};
|
||||||
|
hideEmptyTitle = true;
|
||||||
|
margins = {
|
||||||
|
bottom = 5;
|
||||||
|
left = 10;
|
||||||
|
right = 0;
|
||||||
|
top = 5;
|
||||||
|
};
|
||||||
|
source = "appName";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
"org.kde.plasma.appmenu"
|
||||||
|
"org.kde.plasma.panelspacer"
|
||||||
|
{
|
||||||
|
plasmusicToolbar = {
|
||||||
|
panelIcon = {
|
||||||
|
albumCover = {
|
||||||
|
useAsIcon = false;
|
||||||
|
radius = 8;
|
||||||
|
};
|
||||||
|
icon = "";
|
||||||
|
};
|
||||||
|
playbackSource = "auto";
|
||||||
|
musicControls.showPlaybackControls = false;
|
||||||
|
songText = {
|
||||||
|
displayInSeparateLines = true;
|
||||||
|
maximumWidth = 320;
|
||||||
|
scrolling = {
|
||||||
|
behavior = "alwaysScroll";
|
||||||
|
speed = 3;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
"org.kde.plasma.marginsseparator"
|
||||||
|
{
|
||||||
|
systemTray.items = {
|
||||||
|
shown = [
|
||||||
|
"org.kde.plasma.battery"
|
||||||
|
"org.kde.plasma.bluetooth"
|
||||||
|
"org.kde.plasma.networkmanagement"
|
||||||
|
"org.kde.plasma.brightness"
|
||||||
|
"org.kde.plasma.volume"
|
||||||
|
];
|
||||||
|
hidden = [
|
||||||
|
"org.kde.plasma.clipboard"
|
||||||
|
"org.kde.plasma.manage-inputmethod"
|
||||||
|
"org.kde.plasma.cameraindicator"
|
||||||
|
"org.kde.plasma.keyboardlayout"
|
||||||
|
"org.kde.plasma.devicenotifier"
|
||||||
|
"org.kde.plasma.notifications"
|
||||||
|
"org.kde.plasma.weather"
|
||||||
|
"org.kde.plasma.printmanager"
|
||||||
|
"org.kde.plasma.keyboardindicator"
|
||||||
|
"org.kde.plasma.mediacontroller"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
digitalClock = {
|
||||||
|
calendar.firstDayOfWeek = "sunday";
|
||||||
|
time.format = "12h";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
231
home/kde/default.nix
Normal file
231
home/kde/default.nix
Normal file
|
|
@ -0,0 +1,231 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.ghostwriter = {
|
||||||
|
enable = true;
|
||||||
|
font = {
|
||||||
|
family = config.userOptions.fontSans.name;
|
||||||
|
pointSize = config.userOptions.fontSans.size;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.kate = {
|
||||||
|
enable = true;
|
||||||
|
editor = {
|
||||||
|
font = {
|
||||||
|
family = config.userOptions.fontMono.name;
|
||||||
|
pointSize = config.userOptions.fontMono.size;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# aerothemeplasma = {
|
||||||
|
# enable = true;
|
||||||
|
# plasma.enable = true;
|
||||||
|
# fonts.enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
programs.plasma = lib.mkDefault {
|
||||||
|
enable = true;
|
||||||
|
session = {
|
||||||
|
sessionRestore.restoreOpenApplicationsOnLogin = "startWithEmptySession";
|
||||||
|
};
|
||||||
|
|
||||||
|
workspace = {
|
||||||
|
wallpaperPictureOfTheDay.provider = "bing";
|
||||||
|
wallpaperFillMode = "preserveAspectCrop";
|
||||||
|
};
|
||||||
|
|
||||||
|
kscreenlocker = {
|
||||||
|
appearance.wallpaperPictureOfTheDay.provider = "bing";
|
||||||
|
};
|
||||||
|
|
||||||
|
window-rules = [
|
||||||
|
{
|
||||||
|
description = "Global Changes";
|
||||||
|
match = {
|
||||||
|
window-class = {
|
||||||
|
value = "";
|
||||||
|
type = "substring";
|
||||||
|
};
|
||||||
|
window-types = [ "normal" ];
|
||||||
|
};
|
||||||
|
apply = {
|
||||||
|
opacityactive = {
|
||||||
|
value = 100;
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
opacityinactive = {
|
||||||
|
value = 100;
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
description = "OpenMW";
|
||||||
|
match = {
|
||||||
|
window-class = {
|
||||||
|
value = "openmw";
|
||||||
|
type = "substring";
|
||||||
|
};
|
||||||
|
window-types = [ "normal" ];
|
||||||
|
};
|
||||||
|
apply = {
|
||||||
|
noborder = {
|
||||||
|
value = true;
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
maximizehoriz = {
|
||||||
|
value = true;
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
maximizevert = {
|
||||||
|
value = true;
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
desktops = {
|
||||||
|
value = "Desktop_4";
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
description = "Minecraft";
|
||||||
|
match = {
|
||||||
|
window-class = {
|
||||||
|
value = "Minecraft*";
|
||||||
|
type = "substring";
|
||||||
|
};
|
||||||
|
window-types = [ "normal" ];
|
||||||
|
};
|
||||||
|
apply = {
|
||||||
|
noborder = {
|
||||||
|
value = true;
|
||||||
|
apply = "initially";
|
||||||
|
};
|
||||||
|
maximizehoriz = {
|
||||||
|
value = true;
|
||||||
|
apply = "initially";
|
||||||
|
};
|
||||||
|
maximizevert = {
|
||||||
|
value = true;
|
||||||
|
apply = "initially";
|
||||||
|
};
|
||||||
|
desktops = {
|
||||||
|
value = "Desktop_4";
|
||||||
|
apply = "initially";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
description = "Picture-in-Picture";
|
||||||
|
match = {
|
||||||
|
window-class = {
|
||||||
|
value = "";
|
||||||
|
type = "substring";
|
||||||
|
};
|
||||||
|
title = {
|
||||||
|
value = "(?i)picture[- ]in[- ]picture";
|
||||||
|
type = "regex";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
apply = {
|
||||||
|
above = {
|
||||||
|
value = true;
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
desktops = {
|
||||||
|
value = "\\0";
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
description = "Steam (Distrobox)";
|
||||||
|
match = {
|
||||||
|
window-class = {
|
||||||
|
value = "steamwebhelper";
|
||||||
|
type = "substring";
|
||||||
|
};
|
||||||
|
window-types = [ "normal" ];
|
||||||
|
};
|
||||||
|
apply = {
|
||||||
|
desktopfile = {
|
||||||
|
value = "distrobox-steam";
|
||||||
|
apply = "force";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
kwin = {
|
||||||
|
nightLight = {
|
||||||
|
enable = true;
|
||||||
|
mode = "location";
|
||||||
|
# Atlanta
|
||||||
|
location.latitude = "33.7501";
|
||||||
|
location.longitude = "-84.3885";
|
||||||
|
temperature.day = 6000;
|
||||||
|
temperature.night = 3500;
|
||||||
|
transitionTime = 60;
|
||||||
|
};
|
||||||
|
virtualDesktops = {
|
||||||
|
names = [
|
||||||
|
"1"
|
||||||
|
"2"
|
||||||
|
"3"
|
||||||
|
"4"
|
||||||
|
];
|
||||||
|
rows = 1;
|
||||||
|
};
|
||||||
|
effects = {
|
||||||
|
# desktopSwitching = {
|
||||||
|
# animation = "slide";
|
||||||
|
# navigationWrapping = true;
|
||||||
|
# };
|
||||||
|
minimization = {
|
||||||
|
animation = "magiclamp";
|
||||||
|
duration = 500;
|
||||||
|
};
|
||||||
|
shakeCursor.enable = true;
|
||||||
|
snapHelper.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configFile = {
|
||||||
|
# KDE has an automatic light-dark that CURRENTLY
|
||||||
|
# isn't supported by plasma-manager.
|
||||||
|
# kdeglobals.KDE.AutomaticLookAndFeel = true;
|
||||||
|
# DefaultDarkLookAndFeel = "Catppuccin-Flavor-Accent";
|
||||||
|
# DefaultLightLookAndFeel = "Catppuccin-Flavor-Accent";
|
||||||
|
kwinrc.Round-Corners.ActiveOutlinePalette = 2;
|
||||||
|
kwinrc.Round-Corners.ActiveOutlineUseCustom = false;
|
||||||
|
kwinrc.Round-Corners.ActiveOutlineUsePalette = true;
|
||||||
|
kwinrc.Round-Corners.ActiveSecondOutlinePalette = 2;
|
||||||
|
kwinrc.Round-Corners.ActiveSecondOutlineUseCustom = false;
|
||||||
|
kwinrc.Round-Corners.ActiveSecondOutlineUsePalette = true;
|
||||||
|
kwinrc.Round-Corners.InactiveOutlinePalette = 3;
|
||||||
|
kwinrc.Round-Corners.InactiveOutlineUseCustom = false;
|
||||||
|
kwinrc.Round-Corners.InactiveOutlineUsePalette = true;
|
||||||
|
kwinrc.Round-Corners.InactiveSecondOutlinePalette = 3;
|
||||||
|
kwinrc.Round-Corners.InactiveSecondOutlineUseCustom = false;
|
||||||
|
kwinrc.Round-Corners.InactiveSecondOutlineUsePalette = true;
|
||||||
|
plasmaparc.General.AudioFeedback = false;
|
||||||
|
kdeglobals.Sounds.Enable = false;
|
||||||
|
kwinrc.Plugins.forceblurEnabled = false;
|
||||||
|
kwinrc.Effect-blurplus.BlurDecorations = true;
|
||||||
|
kwinrc.Effect-blurplus.BlurMatching = false;
|
||||||
|
kwinrc.Effect-blurplus.BlurMenus = true;
|
||||||
|
kwinrc.Effect-blurplus.BlurNonMatching = true;
|
||||||
|
kwinrc.Effect-blurplus.TopCornerRadius = 10;
|
||||||
|
kwinrc.Effect-blurplus.BottomCornerRadius = 10;
|
||||||
|
kwinrc.Effect-blurplus.NoiseStrength = 6;
|
||||||
|
kwinrc.Effect-blurplus.RefractionStrength = 10;
|
||||||
|
ksplashrc.KSplash.Engine = "KSplashQML";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# ./discord.nix
|
|
||||||
./firefox.nix
|
|
||||||
./mpv.nix
|
|
||||||
# ./vscode.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# gui applications
|
|
||||||
input-leap
|
|
||||||
libreoffice-qt-fresh
|
|
||||||
# nur.repos.forkprince.helium-nightly
|
|
||||||
nautilus
|
|
||||||
fractal
|
|
||||||
tuba
|
|
||||||
|
|
||||||
# gui applications ( multimedia )
|
|
||||||
audacity
|
|
||||||
strawberry
|
|
||||||
musescore
|
|
||||||
gimp
|
|
||||||
# calibre
|
|
||||||
# riff
|
|
||||||
dissent
|
|
||||||
loupe
|
|
||||||
spotify-player
|
|
||||||
|
|
||||||
# overrides
|
|
||||||
(chromium.override {
|
|
||||||
enableWideVine = true;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
# the user to activate
|
|
||||||
userOptions = {
|
|
||||||
name = "Sean Kovacs";
|
|
||||||
username = "sckova";
|
|
||||||
email = "kovacsmillio@gmail.com";
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.age.keyFile = "/home/sckova/.config/sops/age/keys.txt";
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./minecraft.nix
|
|
||||||
./morrowind.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
dolphin-emu
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
colors = {
|
|
||||||
scheme = "catppuccin-mocha";
|
|
||||||
accent = "base0D";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
ckan
|
|
||||||
spotify
|
|
||||||
adwsteamgtk
|
|
||||||
daggerfall-unity
|
|
||||||
vintagestory
|
|
||||||
gamemode
|
|
||||||
];
|
|
||||||
|
|
||||||
# PROTON_ENABLE_NVAPI=1 PROTON_DLSS_UPGRADE=1 PROTON_ENABLE_NGX_UPDATER=1 DXVK_NVAPI_DRS_SETTINGS=NGX_DLSS_SR_MODE=balanced MANGOHUD_CONFIG="fps_limit=144,gamemode,ram,vram" mangohud gamemoderun %command%
|
|
||||||
xdg.desktopEntries.steam-big-picture = {
|
|
||||||
name = "Steam (Big Picture)";
|
|
||||||
icon = "steam";
|
|
||||||
exec = "gamescope -e --force-grab-cursor -s 2 -- steam -tenfoot";
|
|
||||||
terminal = false;
|
|
||||||
categories = [
|
|
||||||
"Network"
|
|
||||||
"FileTransfer"
|
|
||||||
"Game"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
PROTON_ENABLE_NVAPI = 1;
|
|
||||||
PROTON_DLSS_UPGRADE = 1;
|
|
||||||
PROTON_ENABLE_NGX_UPDATER = 1;
|
|
||||||
DXVK_NVAPI_DRS_SETTINGS = "NGX_DLSS_SR_MODE=balanced";
|
|
||||||
MANGOHUD_CONFIG = "fps_limit=144,gamemode,ram,vram";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.noctalia-shell.settings.brightness.enableDdcSupport = true;
|
|
||||||
programs.noctalia-shell.settings.bar = {
|
|
||||||
position = "top";
|
|
||||||
density = "default";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
colors = {
|
|
||||||
scheme = "catppuccin-frappe";
|
|
||||||
accent = "base09";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
asahi-nvram
|
|
||||||
asahi-bless
|
|
||||||
asahi-btsync
|
|
||||||
asahi-wifisync
|
|
||||||
|
|
||||||
moonlight-qt
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
noctalia-shell.settings.bar = {
|
|
||||||
position = "top";
|
|
||||||
density = "spacious";
|
|
||||||
};
|
|
||||||
|
|
||||||
niri.settings.outputs."eDP-1" = {
|
|
||||||
scale = 1.5;
|
|
||||||
mode = {
|
|
||||||
width = 3024;
|
|
||||||
height = 1964;
|
|
||||||
refresh = 120.000;
|
|
||||||
};
|
|
||||||
position = {
|
|
||||||
x = 272;
|
|
||||||
y = 1440;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,252 +0,0 @@
|
||||||
{
|
|
||||||
osConfig,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./gtk.nix
|
|
||||||
./qt.nix
|
|
||||||
./systemd.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
adwaita-icon-theme
|
|
||||||
morewaita-icon-theme
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
".icons/default/index.theme" = {
|
|
||||||
text = ''
|
|
||||||
[Icon Theme]
|
|
||||||
Name=Default
|
|
||||||
Comment=Default Cursor Theme
|
|
||||||
Inherits=${config.userOptions.cursor.name}
|
|
||||||
'';
|
|
||||||
force = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.spotifyd.enable = true;
|
|
||||||
# comments taken from https://docs.spotifyd.rs/configuration/index.html
|
|
||||||
services.spotifyd.settings.global = {
|
|
||||||
#---------#
|
|
||||||
# GENERAL #
|
|
||||||
#---------#
|
|
||||||
|
|
||||||
# The name that gets displayed under the connect tab on
|
|
||||||
# official clients.
|
|
||||||
device_name = "daemon@${osConfig.system.name}";
|
|
||||||
|
|
||||||
# The displayed device type in Spotify clients.
|
|
||||||
# Can be unknown, computer, tablet, smartphone, speaker, t_v,
|
|
||||||
# a_v_r (Audio/Video Receiver), s_t_b (Set-Top Box), and audio_dongle.
|
|
||||||
device_type = "computer";
|
|
||||||
|
|
||||||
# The bus to bind to with the MPRIS interface.
|
|
||||||
# Possible values: "session", "system"
|
|
||||||
# The system bus can be used if no graphical session is available
|
|
||||||
# (e.g. on headless systems) but you still want to be able to use MPRIS.
|
|
||||||
# NOTE: You might need to add appropriate policies to allow spotifyd to
|
|
||||||
# own the name.
|
|
||||||
dbus_type = "session";
|
|
||||||
|
|
||||||
# If set to true, `spotifyd` tries to bind to dbus (default is the session bus)
|
|
||||||
# and expose MPRIS controls. When running headless, without the session bus,
|
|
||||||
# you should set this to false, to avoid errors. If you still want to use MPRIS,
|
|
||||||
# have a look at the `dbus_type` option.
|
|
||||||
use_mpris = true;
|
|
||||||
|
|
||||||
# The directory used to store credentials and audio cache.
|
|
||||||
# Default: infers a sensible cache directory (e.g. on Linux: $XDG_CACHE_HOME)
|
|
||||||
# Note: The file path does not get expanded. Environment variables and
|
|
||||||
# shell placeholders like $HOME or ~ don't work!
|
|
||||||
# cache_path = "";
|
|
||||||
|
|
||||||
# If set to true, audio data does NOT get cached.
|
|
||||||
# In this case, the cache is only used for credentials.
|
|
||||||
no_audio_cache = false;
|
|
||||||
|
|
||||||
# The maximal size of the cache directory in bytes
|
|
||||||
# The value below corresponds to ~ 10GB
|
|
||||||
max_cache_size = 10000000000;
|
|
||||||
|
|
||||||
#-----------#
|
|
||||||
# DISCOVERY #
|
|
||||||
#-----------#
|
|
||||||
|
|
||||||
# If set to true, this disables zeroconf discovery.
|
|
||||||
# This can be useful, if one prefers to run a single-user instance.
|
|
||||||
disable_discovery = true;
|
|
||||||
|
|
||||||
#-------#
|
|
||||||
# AUDIO #
|
|
||||||
#-------#
|
|
||||||
|
|
||||||
# The audio backend used to play music. To get
|
|
||||||
# a list of possible backends, run `spotifyd --help`.
|
|
||||||
backend = "alsa"; # use portaudio for macOS [homebrew]
|
|
||||||
|
|
||||||
# The alsa audio device to stream audio. To get a
|
|
||||||
# list of valid devices, run `aplay -L`,
|
|
||||||
device = "default"; # omit for macOS
|
|
||||||
|
|
||||||
# If set to true, enables volume normalisation between songs.
|
|
||||||
volume_normalisation = true;
|
|
||||||
|
|
||||||
# The normalisation pregain that is applied for each song.
|
|
||||||
normalisation_pregain = 0;
|
|
||||||
|
|
||||||
# The audio bitrate. 96, 160 or 320 kbit/s
|
|
||||||
bitrate = 320;
|
|
||||||
|
|
||||||
# Volume on startup between 0 and 100
|
|
||||||
initial_volume = 100;
|
|
||||||
|
|
||||||
#-------ä
|
|
||||||
# OTHER #
|
|
||||||
#-------#
|
|
||||||
|
|
||||||
# After the music playback has ended, start playing similar songs based on the previous tracks.
|
|
||||||
# By default, `spotifyd` infers this setting from the user settings.
|
|
||||||
autoplay = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
dconf.settings = {
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
clock-format = "12h";
|
|
||||||
clock-show-weekday = true;
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
|
||||||
button-layout = ":";
|
|
||||||
action-double-click-titlebar = "'none'";
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/media-handling" = {
|
|
||||||
automount = false;
|
|
||||||
automount-open = false;
|
|
||||||
autorun-never = true;
|
|
||||||
};
|
|
||||||
"org/gnome/settings-daemon/plugins/power" = {
|
|
||||||
sleep-inactive-ac-type = "nothing";
|
|
||||||
};
|
|
||||||
"org/gnome/mutter" = {
|
|
||||||
edge-tiling = true;
|
|
||||||
dynamic-workspaces = true;
|
|
||||||
experimental-features = [ "variable-refresh-rate" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
gtk.enable = true;
|
|
||||||
name = config.userOptions.cursor.name;
|
|
||||||
package = config.userOptions.cursor.package;
|
|
||||||
size = config.userOptions.cursor.size;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
QT_QPA_PLATFORMTHEME = "qt6ct";
|
|
||||||
# this makes electron apps work per the wiki
|
|
||||||
NIXOS_OZONE_WL = "1";
|
|
||||||
# allow non-free packages in shells
|
|
||||||
NIXPKGS_ALLOW_UNFREE = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
gtk4.theme = null;
|
|
||||||
|
|
||||||
colorScheme = "dark";
|
|
||||||
iconTheme = {
|
|
||||||
name = "MoreWaita";
|
|
||||||
package = pkgs.morewaita-icon-theme;
|
|
||||||
};
|
|
||||||
|
|
||||||
cursorTheme = {
|
|
||||||
name = config.home.pointerCursor.name;
|
|
||||||
package = config.home.pointerCursor.package;
|
|
||||||
size = config.home.pointerCursor.size;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk3.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = true;
|
|
||||||
gtk-decoration-layout = ":";
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk4.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = true;
|
|
||||||
gtk-decoration-layout = ":";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
associations.added = {
|
|
||||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
|
||||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
|
||||||
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
|
|
||||||
"x-scheme-handler/spotify" = [ "riff.desktop" ];
|
|
||||||
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
|
|
||||||
"image/png" = [ "loupe.desktop" ];
|
|
||||||
"image/jpeg" = [ "loupe.desktop" ];
|
|
||||||
};
|
|
||||||
defaultApplications = {
|
|
||||||
# Web
|
|
||||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
|
||||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
|
||||||
"text/html" = [ "firefox.desktop" ];
|
|
||||||
|
|
||||||
# Communication & Social
|
|
||||||
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
|
|
||||||
"x-scheme-handler/spotify" = [ "riff.desktop" ];
|
|
||||||
|
|
||||||
# File Management
|
|
||||||
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
|
|
||||||
|
|
||||||
# Torrents
|
|
||||||
"application/x-bittorrent" = [ "org.qbittorrent.qBittorrent.desktop" ];
|
|
||||||
"x-scheme-handler/magnet" = [ "org.qbittorrent.qBittorrent.desktop" ];
|
|
||||||
|
|
||||||
# Documents
|
|
||||||
"application/pdf" = [ "firefox.desktop" ]; # Or libreoffice-draw.desktop
|
|
||||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = [
|
|
||||||
"libreoffice-writer.desktop"
|
|
||||||
]; # docx
|
|
||||||
"application/msword" = [ "libreoffice-writer.desktop" ]; # doc
|
|
||||||
"application/vnd.oasis.opendocument.text" = [ "libreoffice-writer.desktop" ]; # odt
|
|
||||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = [
|
|
||||||
"libreoffice-calc.desktop"
|
|
||||||
]; # xlsx
|
|
||||||
"application/vnd.ms-excel" = [ "libreoffice-calc.desktop" ]; # xls
|
|
||||||
"application/vnd.oasis.opendocument.spreadsheet" = [ "libreoffice-calc.desktop" ]; # ods
|
|
||||||
|
|
||||||
# Text & Code
|
|
||||||
"text/plain" = [ "nvim.desktop" ];
|
|
||||||
"text/markdown" = [ "nvim.desktop" ];
|
|
||||||
"application/x-shellscript" = [ "nvim.desktop" ];
|
|
||||||
"application/json" = [ "nvim.desktop" ];
|
|
||||||
"text/x-c" = [ "nvim.desktop" ];
|
|
||||||
"text/x-c++" = [ "nvim.desktop" ];
|
|
||||||
"text/x-python" = [ "nvim.desktop" ];
|
|
||||||
"text/x-makefile" = [ "nvim.desktop" ];
|
|
||||||
|
|
||||||
# Terminal
|
|
||||||
"x-scheme-handler/terminal" = [ "kitty.desktop" ];
|
|
||||||
|
|
||||||
# Media
|
|
||||||
"video/mp4" = [ "mpv.desktop" ];
|
|
||||||
"video/mkv" = [ "mpv.desktop" ];
|
|
||||||
"video/webm" = [ "mpv.desktop" ];
|
|
||||||
"audio/mpeg" = [ "mpv.desktop" ];
|
|
||||||
"audio/flac" = [ "mpv.desktop" ];
|
|
||||||
"audio/wav" = [ "mpv.desktop" ];
|
|
||||||
|
|
||||||
# Images
|
|
||||||
"image/png" = [ "loupe.desktop" ];
|
|
||||||
"image/jpeg" = [ "loupe.desktop" ];
|
|
||||||
"image/webp" = [ "loupe.desktop" ];
|
|
||||||
"image/gif" = [ "loupe.desktop" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
systemd.user.sessionVariables = {
|
|
||||||
XCURSOR_THEME = config.userOptions.cursor.name;
|
|
||||||
XCURSOR_SIZE = toString config.userOptions.cursor.size;
|
|
||||||
XCURSOR_PATH = config.userOptions.cursor.path;
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.templates."synology.conf".content = ''
|
|
||||||
[synology]
|
|
||||||
type = smb
|
|
||||||
host = nas.taila30609.ts.net
|
|
||||||
pass = ${config.sops.placeholder.rclone_synology}
|
|
||||||
'';
|
|
||||||
|
|
||||||
systemd.user.services.synology-mount = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Mount Synology NAS with Rclone and Home Manager.";
|
|
||||||
After = [ "tailscaled.service" ];
|
|
||||||
Wants = [ "tailscaled.service" ];
|
|
||||||
StartLimitBurst = 5;
|
|
||||||
StartLimitIntervalSec = "1m";
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
Type = "simple";
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = "1m";
|
|
||||||
ExecStart = "${pkgs.writeShellScript "synology-mount" ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Ensure mount point exists
|
|
||||||
mkdir -p $HOME/Synology || true
|
|
||||||
|
|
||||||
# Unmount stale mount if present
|
|
||||||
/run/wrappers/bin/umount "$HOME/Synology" || true
|
|
||||||
|
|
||||||
# Mount rclone in foreground
|
|
||||||
${pkgs.rclone}/bin/rclone \
|
|
||||||
--config=${config.sops.templates."synology.conf".path} \
|
|
||||||
--ignore-checksum \
|
|
||||||
--log-level INFO \
|
|
||||||
--rc --rc-serve \
|
|
||||||
mount "synology:home" "$HOME/Synology"
|
|
||||||
''}";
|
|
||||||
ExecStop = "/run/wrappers/bin/fusermount -uz %h/Synology/%i";
|
|
||||||
StandardOutput = "journal";
|
|
||||||
StandardError = "journal";
|
|
||||||
};
|
|
||||||
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "default.target" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
btop-colors-file = pkgs.writeTextFile {
|
|
||||||
name = "btop-colors";
|
|
||||||
text = with config.scheme.withHashtag; ''
|
|
||||||
# Credit to https://github.com/catppuccin/btop
|
|
||||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
|
||||||
theme[main_bg]="${base00}"
|
|
||||||
|
|
||||||
# Main text color
|
|
||||||
theme[main_fg]="${base05}"
|
|
||||||
|
|
||||||
# Title color for boxes
|
|
||||||
theme[title]="${base05}"
|
|
||||||
|
|
||||||
# Highlight color for keyboard shortcuts
|
|
||||||
theme[hi_fg]="${base0D}"
|
|
||||||
|
|
||||||
# Background color of selected item in processes box
|
|
||||||
theme[selected_bg]="${base02}"
|
|
||||||
|
|
||||||
# Foreground color of selected item in processes box
|
|
||||||
theme[selected_fg]="${base0D}"
|
|
||||||
|
|
||||||
# Color of inactive/disabled text
|
|
||||||
theme[inactive_fg]="${base03}"
|
|
||||||
|
|
||||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
|
||||||
theme[graph_text]="${base06}"
|
|
||||||
|
|
||||||
# Background color of the percentage meters
|
|
||||||
theme[meter_bg]="${base02}"
|
|
||||||
|
|
||||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
|
||||||
theme[proc_misc]="${base06}"
|
|
||||||
|
|
||||||
# CPU, Memory, Network, Proc box outline colors
|
|
||||||
theme[cpu_box]="${base0E}" #Mauve
|
|
||||||
theme[mem_box]="${base0B}" #Green
|
|
||||||
theme[net_box]="${base12}" #Maroon
|
|
||||||
theme[proc_box]="${base0D}" #Blue
|
|
||||||
|
|
||||||
# Box divider line and small boxes line color
|
|
||||||
theme[div_line]="${base03}"
|
|
||||||
|
|
||||||
# Temperature graph color (Green -> Yellow -> Red)
|
|
||||||
theme[temp_start]="${base0B}"
|
|
||||||
theme[temp_mid]="${base0A}"
|
|
||||||
theme[temp_end]="${base08}"
|
|
||||||
|
|
||||||
# CPU graph colors (Teal -> Lavender)
|
|
||||||
theme[cpu_start]="${base0C}"
|
|
||||||
theme[cpu_mid]="${base16}"
|
|
||||||
theme[cpu_end]="${base07}"
|
|
||||||
|
|
||||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
|
||||||
theme[free_start]="${base0E}"
|
|
||||||
theme[free_mid]="${base07}"
|
|
||||||
theme[free_end]="${base0D}"
|
|
||||||
|
|
||||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
|
||||||
theme[cached_start]="${base16}"
|
|
||||||
theme[cached_mid]="${base0D}"
|
|
||||||
theme[cached_end]="${base07}"
|
|
||||||
|
|
||||||
# Mem/Disk available meter (Peach -> Red)
|
|
||||||
theme[available_start]="${base09}"
|
|
||||||
theme[available_mid]="${base12}"
|
|
||||||
theme[available_end]="${base08}"
|
|
||||||
|
|
||||||
# Mem/Disk used meter (Green -> Sky)
|
|
||||||
theme[used_start]="${base0B}"
|
|
||||||
theme[used_mid]="${base0C}"
|
|
||||||
theme[used_end]="${base15}"
|
|
||||||
|
|
||||||
# Download graph colors (Peach -> Red)
|
|
||||||
theme[download_start]="${base09}"
|
|
||||||
theme[download_mid]="${base12}"
|
|
||||||
theme[download_end]="${base08}"
|
|
||||||
|
|
||||||
# Upload graph colors (Green -> Sky)
|
|
||||||
theme[upload_start]="${base0B}"
|
|
||||||
theme[upload_mid]="${base0C}"
|
|
||||||
theme[upload_end]="${base15}"
|
|
||||||
|
|
||||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
|
||||||
theme[process_start]="${base16}"
|
|
||||||
theme[process_mid]="${base07}"
|
|
||||||
theme[process_end]="${base0E}"
|
|
||||||
'';
|
|
||||||
destination = "/nixos.theme";
|
|
||||||
};
|
|
||||||
|
|
||||||
batConfigDir = pkgs.runCommand "mergedConfig" { } ''
|
|
||||||
mkdir -p $out/themes
|
|
||||||
cp -r ${btop-colors-file}/nixos.theme $out/themes/nixos.theme
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.file.".config/btop" = {
|
|
||||||
source = batConfigDir;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./btop.nix
|
|
||||||
./fish.nix
|
|
||||||
./kitty.nix
|
|
||||||
./neovim.nix
|
|
||||||
./ytfp.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# cli utilities
|
|
||||||
tmux
|
|
||||||
fastfetch
|
|
||||||
btop
|
|
||||||
wget
|
|
||||||
ripgrep
|
|
||||||
ncdu
|
|
||||||
wl-clipboard
|
|
||||||
rclone
|
|
||||||
waypipe
|
|
||||||
spotdl
|
|
||||||
browsh
|
|
||||||
mosh
|
|
||||||
gh
|
|
||||||
kdePackages.qttools
|
|
||||||
eza
|
|
||||||
pigz
|
|
||||||
|
|
||||||
# development & tooling
|
|
||||||
jdk21_headless
|
|
||||||
quickemu
|
|
||||||
nerd-fonts.noto
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-color-emoji
|
|
||||||
nix-prefetch
|
|
||||||
prowlarr
|
|
||||||
radarr
|
|
||||||
sonarr
|
|
||||||
flaresolverr
|
|
||||||
nerd-fonts.fira-mono
|
|
||||||
ffmpeg-full
|
|
||||||
|
|
||||||
# formatters
|
|
||||||
kdePackages.qtdeclarative
|
|
||||||
prettier
|
|
||||||
prettierd
|
|
||||||
nixfmt
|
|
||||||
stylua
|
|
||||||
black
|
|
||||||
clang-tools
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
user = {
|
|
||||||
name = config.userOptions.name;
|
|
||||||
email = config.userOptions.email;
|
|
||||||
};
|
|
||||||
core.pager = "${pkgs.bat}/bin/bat";
|
|
||||||
commit.gpgsign = true;
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
bat = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
style = "numbers,changes";
|
|
||||||
theme = "base16";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lazygit = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
};
|
|
||||||
lazysql.enable = true;
|
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
defaultOptions = [
|
|
||||||
"--height 40%"
|
|
||||||
"--border"
|
|
||||||
];
|
|
||||||
colors = with config.scheme.withHashtag; {
|
|
||||||
bg = base00;
|
|
||||||
"bg+" = base01;
|
|
||||||
border = base03;
|
|
||||||
fg = base05;
|
|
||||||
"fg+" = base05;
|
|
||||||
header = base08;
|
|
||||||
hl = base08;
|
|
||||||
"hl+" = base08;
|
|
||||||
info = config.scheme.withHashtag.${config.colors.accent};
|
|
||||||
label = base05;
|
|
||||||
marker = base07;
|
|
||||||
pointer = base06;
|
|
||||||
prompt = config.scheme.withHashtag.${config.colors.accent};
|
|
||||||
"selected-bg" = base02;
|
|
||||||
spinner = base06;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
home.file.".config/kitty/themes" = {
|
|
||||||
source = pkgs.writeTextFile {
|
|
||||||
name = "kitty-colors";
|
|
||||||
text = with config.scheme.withHashtag; ''
|
|
||||||
# vim:ft=kitty
|
|
||||||
## name: NixOS Kitty Theme
|
|
||||||
## author: Catppuccin Org & sckova
|
|
||||||
## license: MIT
|
|
||||||
## upstream: https://github.com/catppuccin/kitty
|
|
||||||
## blurb: The theme generated from the NixOS configuration!
|
|
||||||
|
|
||||||
# The basic colors
|
|
||||||
foreground ${base05}
|
|
||||||
background ${base00}
|
|
||||||
selection_foreground ${base00}
|
|
||||||
selection_background ${base05}
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
cursor ${base05}
|
|
||||||
cursor_text_color ${base00}
|
|
||||||
|
|
||||||
# URL underline color when hovering with mouse
|
|
||||||
url_color ${base05}
|
|
||||||
|
|
||||||
# Kitty window border colors
|
|
||||||
active_border_color ${config.scheme.withHashtag.${config.colors.accent}}
|
|
||||||
inactive_border_color ${base01}
|
|
||||||
bell_border_color ${base12}
|
|
||||||
|
|
||||||
# Tab bar colors
|
|
||||||
active_tab_foreground ${base11}
|
|
||||||
active_tab_background ${config.scheme.withHashtag.${config.colors.accent}}
|
|
||||||
inactive_tab_foreground ${base05}
|
|
||||||
inactive_tab_background ${base10}
|
|
||||||
tab_bar_background ${base11}
|
|
||||||
|
|
||||||
# Colors for marks (marked text in the terminal)
|
|
||||||
mark1_foreground ${base00}
|
|
||||||
mark1_background ${base09}
|
|
||||||
mark2_foreground ${base00}
|
|
||||||
mark2_background ${base0D}
|
|
||||||
mark3_foreground ${base00}
|
|
||||||
mark3_background ${base15}
|
|
||||||
|
|
||||||
# The 16 terminal colors
|
|
||||||
# black
|
|
||||||
color0 ${base02}
|
|
||||||
color8 ${base02}
|
|
||||||
|
|
||||||
# red
|
|
||||||
color1 ${base08}
|
|
||||||
color9 ${base08}
|
|
||||||
|
|
||||||
# green
|
|
||||||
color2 ${base0B}
|
|
||||||
color10 ${base0B}
|
|
||||||
|
|
||||||
# yellow
|
|
||||||
color3 ${base0A}
|
|
||||||
color11 ${base0A}
|
|
||||||
|
|
||||||
# blue
|
|
||||||
color4 ${base0D}
|
|
||||||
color12 ${base0D}
|
|
||||||
|
|
||||||
# magenta
|
|
||||||
color5 ${base17}
|
|
||||||
color13 ${base17}
|
|
||||||
|
|
||||||
# cyan
|
|
||||||
color6 ${base0C}
|
|
||||||
color14 ${base0C}
|
|
||||||
|
|
||||||
# white
|
|
||||||
color7 ${base04}
|
|
||||||
color15 ${base04}
|
|
||||||
'';
|
|
||||||
destination = "/kitty-colors.conf";
|
|
||||||
};
|
|
||||||
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".config/kitty/ssh.conf" = {
|
|
||||||
text = ''
|
|
||||||
shell_integration inherited
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
kitty = {
|
|
||||||
enable = true;
|
|
||||||
enableGitIntegration = true;
|
|
||||||
font = {
|
|
||||||
name = config.userOptions.fontMono.name;
|
|
||||||
size = config.userOptions.fontMono.size;
|
|
||||||
};
|
|
||||||
shellIntegration.enableFishIntegration = true;
|
|
||||||
keybindings = {
|
|
||||||
"ctrl+k" = "combine : clear_terminal scroll active : clear_terminal scrollback active";
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
include = "/home/${config.userOptions.username}/.config/kitty/themes/kitty-colors.conf";
|
|
||||||
scrollback_lines = 10000;
|
|
||||||
wheel_scroll_multiplier = 5.0;
|
|
||||||
touch_scroll_multiplier = 5.0;
|
|
||||||
enable_audio_bell = false;
|
|
||||||
update_check_interval = 0;
|
|
||||||
confirm_os_window_close = 0;
|
|
||||||
window_padding_width = 4;
|
|
||||||
tab_bar_min_tabs = 2;
|
|
||||||
tab_bar_edge = "top";
|
|
||||||
tab_bar_style = "powerline";
|
|
||||||
tab_powerline_style = "slanted";
|
|
||||||
mouse_hide_wait = "-1.0";
|
|
||||||
wayland_titlebar_color = "system";
|
|
||||||
macos_titlebar_color = "system";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
# full credit to u/SupermarketAntique32 on reddit:
|
|
||||||
# https://www.reddit.com/r/commandline/comments/1sd26he/youtube_search_and_play_in_20_lines_of_bash/
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
(writeShellApplication {
|
|
||||||
name = "ytfp";
|
|
||||||
runtimeInputs = [
|
|
||||||
bash
|
|
||||||
curl
|
|
||||||
fzf
|
|
||||||
yt-dlp
|
|
||||||
chafa
|
|
||||||
config.programs.mpv.finalPackage
|
|
||||||
];
|
|
||||||
text = ''
|
|
||||||
# `ytfp`: Search YouTube video using `fzf` and play it in `mpv`
|
|
||||||
|
|
||||||
SEARCH_VID() {
|
|
||||||
yt-dlp "https://www.youtube.com/results?search_query=$1" \
|
|
||||||
--flat-playlist --playlist-items 1:20 --print \
|
|
||||||
$'%(thumbnails.0.url)s\t%(title)s\t%(channel)s\t%(view_count)s\t%(url)s' \
|
|
||||||
| grep --extended-regexp --invert-match 'playlist|channel'
|
|
||||||
}
|
|
||||||
RENDER_VID_INFO() {
|
|
||||||
curl --silent "$1" | chafa --size=x14 --clear
|
|
||||||
echo "Title : $2"
|
|
||||||
echo "Channel : $3"
|
|
||||||
echo "Views : $4"
|
|
||||||
}
|
|
||||||
export -f SEARCH_VID RENDER_VID_INFO
|
|
||||||
|
|
||||||
fzf --preview-window down --layout reverse --disabled --with-shell 'bash -c' \
|
|
||||||
--bind 'start:reload:SEARCH_VID fzf' \
|
|
||||||
--bind 'change:reload:sleep 0.3; SEARCH_VID {q} || true' \
|
|
||||||
--bind 'load:first' \
|
|
||||||
--delimiter '\t' --with-nth 2 \
|
|
||||||
--preview 'RENDER_VID_INFO {1} {2} {3} {4}' \
|
|
||||||
--bind 'enter:execute-silent(mpv {5})'
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./niri.nix
|
|
||||||
./noctalia.nix
|
|
||||||
./wallpaper.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
xdg-desktop-portal
|
|
||||||
brightnessctl
|
|
||||||
qt6Packages.qt6ct
|
|
||||||
libsForQt5.qt5ct
|
|
||||||
catppuccin-qt5ct
|
|
||||||
xwayland-satellite
|
|
||||||
playerctl
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.fuzzel = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.fuzzel;
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
terminal = "${pkgs.kitty}/bin/kitty";
|
|
||||||
layer = "overlay";
|
|
||||||
font = with config.userOptions.fontMono; name + ":size=" + toString (size + 2);
|
|
||||||
launch-prefix = "${pkgs.niri}/bin/niri msg action spawn --";
|
|
||||||
icon-theme = config.gtk.iconTheme.name;
|
|
||||||
};
|
|
||||||
border = {
|
|
||||||
width = 2;
|
|
||||||
radius = 8;
|
|
||||||
};
|
|
||||||
colors = with config.scheme; {
|
|
||||||
background = base00 + "E6";
|
|
||||||
text = base05 + "E6";
|
|
||||||
prompt = base04 + "E6";
|
|
||||||
placeholder = base04 + "E6";
|
|
||||||
input = base05 + "E6";
|
|
||||||
match = config.scheme.withHashtag.${config.colors.accent} + "FF";
|
|
||||||
selection = base04 + "E6";
|
|
||||||
selection-text = base00 + "E6";
|
|
||||||
counter = base04 + "E6";
|
|
||||||
border = config.scheme.withHashtag.${config.colors.accent} + "FF";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.swaylock = with config.scheme; {
|
|
||||||
enable = true;
|
|
||||||
# package = pkgs.swaylock-effects;
|
|
||||||
settings = {
|
|
||||||
# this would sometimes load the previous day's wallpaper
|
|
||||||
# when it is run before the bing retrieval script finishes
|
|
||||||
# image = "~/.local/share/wallpaper/daily-colored.jpg";
|
|
||||||
# effect-blur = "7x5";
|
|
||||||
color = "000000"; # black
|
|
||||||
font-size = 24;
|
|
||||||
indicator-idle-visible = true;
|
|
||||||
indicator-radius = 100;
|
|
||||||
show-failed-attempts = true;
|
|
||||||
|
|
||||||
bs-hl-color = base09 + "E6"; # peach
|
|
||||||
caps-lock-bs-hl-color = base09 + "E6"; # peach
|
|
||||||
caps-lock-key-hl-color = base0E + "E6"; # mauve
|
|
||||||
inside-color = base00 + "E6"; # base
|
|
||||||
inside-clear-color = base00 + "E6"; # base
|
|
||||||
inside-caps-lock-color = base00 + "E6"; # base
|
|
||||||
inside-ver-color = base00 + "E6"; # base
|
|
||||||
inside-wrong-color = base00 + "E6"; # base
|
|
||||||
key-hl-color = base0D + "E6"; # blue
|
|
||||||
layout-bg-color = base00 + "E6"; # base
|
|
||||||
layout-border-color = base00 + "E6"; # base
|
|
||||||
layout-text-color = base05 + "E6"; # text
|
|
||||||
line-color = base00 + "E6"; # base
|
|
||||||
line-clear-color = base00 + "E6"; # base
|
|
||||||
line-caps-lock-color = base00 + "E6"; # base
|
|
||||||
line-ver-color = base00 + "E6"; # base
|
|
||||||
line-wrong-color = base00 + "E6"; # base
|
|
||||||
ring-color = base00 + "E6"; # base
|
|
||||||
ring-clear-color = base09 + "E6"; # peach
|
|
||||||
ring-caps-lock-color = base00 + "E6"; # base
|
|
||||||
ring-ver-color = base0B + "E6"; # green
|
|
||||||
ring-wrong-color = base00 + "E6"; # base
|
|
||||||
separator-color = "00000000"; # transparent
|
|
||||||
text-color = base05 + "E6"; # text
|
|
||||||
text-clear-color = base09 + "E6"; # peach
|
|
||||||
text-caps-lock-color = base0E + "E6"; # mauve
|
|
||||||
text-ver-color = base05 + "E6"; # text
|
|
||||||
text-wrong-color = base08 + "E6"; # red
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.swaylock = {
|
|
||||||
Unit = {
|
|
||||||
After = [ "niri.service" ];
|
|
||||||
PartOf = [ "niri.service" ];
|
|
||||||
Description = "Screen locker";
|
|
||||||
Documentation = "https://github.com/swaywm/swaylock";
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${config.programs.swaylock.package}/bin/swaylock";
|
|
||||||
Restart = "on-failure";
|
|
||||||
};
|
|
||||||
|
|
||||||
Install.WantedBy = [ "niri.service" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
xsession = {
|
|
||||||
enable = true;
|
|
||||||
windowManager.command = "niri";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
systemd.user.services.wbg-daemon = {
|
|
||||||
Unit.Description = "Wallpaper service using wbg (daemon)";
|
|
||||||
Service.ExecStart = ''
|
|
||||||
${pkgs.wbg}/bin/wbg -s \
|
|
||||||
%h/.local/share/wallpaper/daily-colored.jpg
|
|
||||||
'';
|
|
||||||
Install.WantedBy = [ "niri.service" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.bing-wallpaper = {
|
|
||||||
Unit.Description = "Download and set Bing wallpaper of the day";
|
|
||||||
Unit.StartLimitBurst = 6;
|
|
||||||
Unit.StartLimitIntervalSec = "10m";
|
|
||||||
Service.Restart = "on-failure";
|
|
||||||
Service.RestartSec = "10s";
|
|
||||||
Service.Type = "oneshot";
|
|
||||||
Service.ExecStart = pkgs.lib.getExe (
|
|
||||||
pkgs.writeShellApplication {
|
|
||||||
name = "bing-wallpaper";
|
|
||||||
runtimeInputs = with pkgs; [
|
|
||||||
wget
|
|
||||||
jq
|
|
||||||
coreutils
|
|
||||||
libnotify
|
|
||||||
];
|
|
||||||
text = ''
|
|
||||||
OUT="$HOME/.local/share/wallpaper/daily.jpg"
|
|
||||||
API=$(wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1")
|
|
||||||
BASE=$(echo "$API" | jq -r '.images[0].urlbase')
|
|
||||||
TITLE=$(echo "$API" | jq -r '.images[0].title')
|
|
||||||
|
|
||||||
mkdir -p "$HOME/.local/share/wallpaper"
|
|
||||||
wget -qO "$OUT" "https://www.bing.com''${BASE}_UHD.jpg"
|
|
||||||
|
|
||||||
notify-send \
|
|
||||||
-a "Wallpaper of the day" \
|
|
||||||
-u low \
|
|
||||||
-i preferences-desktop-wallpaper \
|
|
||||||
"$TITLE"
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
);
|
|
||||||
Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user start gowall-convert.service";
|
|
||||||
Install.WantedBy = [ "niri.service" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.timers.bing-wallpaper = {
|
|
||||||
Unit.Description = "Run bing wallpaper retrieval daily";
|
|
||||||
Timer.OnCalendar = "*-*-* 10:00:00 GMT";
|
|
||||||
Timer.Persistent = true;
|
|
||||||
Install.WantedBy = [ "timers.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.gowall-convert = {
|
|
||||||
Unit.Description = "Convert a wallpaper to the system color scheme";
|
|
||||||
Unit.StartLimitBurst = 6;
|
|
||||||
Unit.StartLimitIntervalSec = "10m";
|
|
||||||
Service.Restart = "on-failure";
|
|
||||||
Service.RestartSec = "10s";
|
|
||||||
Service.Type = "oneshot";
|
|
||||||
Service.ExecStart = ''
|
|
||||||
${pkgs.gowall}/bin/gowall convert \
|
|
||||||
%h/.local/share/wallpaper/daily.jpg \
|
|
||||||
--output %h/.local/share/wallpaper/daily-colored.jpg \
|
|
||||||
-t nix
|
|
||||||
'';
|
|
||||||
Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wbg-daemon.service";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".config/gowall/config.yml".text = with config.scheme.withHashtag; ''
|
|
||||||
themes:
|
|
||||||
- name: "nix"
|
|
||||||
colors:
|
|
||||||
- "${base06}"
|
|
||||||
- "${base0F}"
|
|
||||||
- "${base17}"
|
|
||||||
- "${base0E}"
|
|
||||||
- "${base08}"
|
|
||||||
- "${base12}"
|
|
||||||
- "${base09}"
|
|
||||||
- "${base0A}"
|
|
||||||
- "${base0B}"
|
|
||||||
- "${base0C}"
|
|
||||||
- "${base15}"
|
|
||||||
- "${base16}"
|
|
||||||
- "${base0D}"
|
|
||||||
- "${base07}"
|
|
||||||
- "${base05}"
|
|
||||||
- "${base07}"
|
|
||||||
- "${base0D}"
|
|
||||||
- "${base0D}"
|
|
||||||
- "${base04}"
|
|
||||||
- "${base04}"
|
|
||||||
- "${base04}"
|
|
||||||
- "${base03}"
|
|
||||||
- "${base02}"
|
|
||||||
- "${base00}"
|
|
||||||
- "${base01}"
|
|
||||||
- "${base11}"
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
76
home/services/default.nix
Normal file
76
home/services/default.nix
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./gtk.nix
|
||||||
|
./qt.nix
|
||||||
|
./systemd.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".icons/default/index.theme" = {
|
||||||
|
text = ''
|
||||||
|
[Icon Theme]
|
||||||
|
Name=Default
|
||||||
|
Comment=Default Cursor Theme
|
||||||
|
Inherits=${config.userOptions.cursor.name}
|
||||||
|
'';
|
||||||
|
force = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.pointerCursor = {
|
||||||
|
gtk.enable = true;
|
||||||
|
name = config.userOptions.cursor.name;
|
||||||
|
package = config.userOptions.cursor.package;
|
||||||
|
size = config.userOptions.cursor.size;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# colorScheme = if config.userOptions.isDark then "dark" else "light";
|
||||||
|
|
||||||
|
# theme = {
|
||||||
|
# package = pkgs.kdePackages.breeze-gtk;
|
||||||
|
# name =
|
||||||
|
# if config.userOptions.isDark
|
||||||
|
# then "Breeze-Dark"
|
||||||
|
# else "Breeze";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# iconTheme = {
|
||||||
|
# name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light";
|
||||||
|
# package = pkgs.colloid-icon-theme;
|
||||||
|
# };
|
||||||
|
|
||||||
|
colorScheme = "dark";
|
||||||
|
iconTheme = {
|
||||||
|
name = "Colloid-Dark";
|
||||||
|
package = pkgs.colloid-icon-theme;
|
||||||
|
};
|
||||||
|
|
||||||
|
cursorTheme = {
|
||||||
|
name = config.home.pointerCursor.name;
|
||||||
|
package = config.home.pointerCursor.package;
|
||||||
|
size = config.home.pointerCursor.size;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = true;
|
||||||
|
gtk-decoration-layout = ":";
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = true;
|
||||||
|
gtk-decoration-layout = ":";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -4,15 +4,39 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
kdePackages.qtstyleplugin-kvantum
|
||||||
|
themix-gui
|
||||||
|
kvmarwaita
|
||||||
|
];
|
||||||
|
|
||||||
|
# home.file.".config/Kvantum" = {
|
||||||
|
# source = ./kvantum;
|
||||||
|
# recursive = true;
|
||||||
|
# force = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# home.file.".config/Kvantum/kvantum.kvconfig" = {
|
||||||
|
# text = ''
|
||||||
|
# [General]
|
||||||
|
# theme=
|
||||||
|
# '';
|
||||||
|
# force = true;
|
||||||
|
# };
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
style = {
|
||||||
|
name = "kvantum";
|
||||||
|
package = pkgs.qt6Packages.qtstyleplugin-kvantum;
|
||||||
|
};
|
||||||
|
|
||||||
qt5ctSettings = {
|
qt5ctSettings = {
|
||||||
Appearance = {
|
Appearance = {
|
||||||
style = "Breeze";
|
style = "kvantum";
|
||||||
icon_theme = config.gtk.iconTheme.name;
|
icon_theme = config.gtk.iconTheme.name;
|
||||||
color_scheme_path = "/home/${config.userOptions.username}/.config/qt5ct/qt5ct.conf";
|
# color_scheme_path = "/home/${config.userOptions.username}/.config/qt5ct/qt5ct.conf";
|
||||||
custom_palette = true;
|
# custom_palette = true;
|
||||||
standard_dialogs = "xdgdesktopportal";
|
standard_dialogs = "xdgdesktopportal";
|
||||||
};
|
};
|
||||||
Fonts = config.qt.qt6ctSettings.Fonts;
|
Fonts = config.qt.qt6ctSettings.Fonts;
|
||||||
|
|
@ -21,10 +45,10 @@
|
||||||
|
|
||||||
qt6ctSettings = {
|
qt6ctSettings = {
|
||||||
Appearance = {
|
Appearance = {
|
||||||
style = "Breeze";
|
style = "kvantum";
|
||||||
icon_theme = config.gtk.iconTheme.name;
|
icon_theme = config.gtk.iconTheme.name;
|
||||||
color_scheme_path = "/home/${config.userOptions.username}/.config/qt6ct/qt6ct.conf";
|
# color_scheme_path = "/home/${config.userOptions.username}/.config/qt6ct/qt6ct.conf";
|
||||||
custom_palette = true;
|
# custom_palette = true;
|
||||||
standard_dialogs = "xdgdesktopportal";
|
standard_dialogs = "xdgdesktopportal";
|
||||||
};
|
};
|
||||||
|
|
||||||
113
home/services/systemd.nix
Normal file
113
home/services/systemd.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
systemd.user.sessionVariables = {
|
||||||
|
XCURSOR_THEME = config.userOptions.cursor.name;
|
||||||
|
XCURSOR_SIZE = toString config.userOptions.cursor.size;
|
||||||
|
XCURSOR_PATH = config.userOptions.cursor.path;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."rclone/synology.conf".text = ''
|
||||||
|
[synology]
|
||||||
|
type = sftp
|
||||||
|
user = sckova
|
||||||
|
host = nas.taila30609.ts.net
|
||||||
|
key_file = ~/.ssh/key
|
||||||
|
shell_type = unix
|
||||||
|
root = home
|
||||||
|
md5sum_command = "${pkgs.coreutils}/bin/md5sum";
|
||||||
|
sha1sum_command = "${pkgs.coreutils}/bin/sha1sum";
|
||||||
|
'';
|
||||||
|
|
||||||
|
systemd.user.services.synology-mount = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Mount Synology NAS with Rclone and Home Manager.";
|
||||||
|
After = [ "tailscaled.service" ];
|
||||||
|
Wants = [ "tailscaled.service" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
Service = {
|
||||||
|
Type = "simple";
|
||||||
|
# ExecStartPre = "${pkgs.writeShellScript "synology-prep" ''
|
||||||
|
# if mountpoint -q %h/Synology; then
|
||||||
|
# /run/wrappers/bin/fusermount -uz %h/Synology
|
||||||
|
# fi
|
||||||
|
# ${pkgs.coreutils}/bin/mkdir -p %h/Synology
|
||||||
|
# ''}";
|
||||||
|
ExecStart = "${pkgs.writeShellScript "synology-mount" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Ensure mount point exists
|
||||||
|
mkdir -p $HOME/Synology || true
|
||||||
|
|
||||||
|
# Unmount stale mount if present
|
||||||
|
/run/wrappers/bin/umount "$HOME/Synology" || true
|
||||||
|
|
||||||
|
# Mount rclone in foreground
|
||||||
|
${pkgs.rclone}/bin/rclone \
|
||||||
|
--config=$HOME/.config/rclone/synology.conf \
|
||||||
|
--ignore-checksum \
|
||||||
|
--log-level INFO \
|
||||||
|
--rc --rc-serve \
|
||||||
|
mount "synology:" "$HOME/Synology"
|
||||||
|
''}";
|
||||||
|
ExecStop = "/run/wrappers/bin/fusermount -uz %h/Synology/%i";
|
||||||
|
StandardOutput = "journal";
|
||||||
|
StandardError = "journal";
|
||||||
|
};
|
||||||
|
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# systemd.user.services.synology-prefill = {
|
||||||
|
# Unit = {
|
||||||
|
# Description = "Prefill Synology NAS rclone cache";
|
||||||
|
# After = [ "synology-mount.service" ];
|
||||||
|
# Wants = [ "synology-mount.service" ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Service = {
|
||||||
|
# Type = "simple";
|
||||||
|
# ExecStart = "${pkgs.writeShellScript "synology-prefill" ''
|
||||||
|
# #!/usr/bin/env bash
|
||||||
|
# set -euo pipefail
|
||||||
|
# ${pkgs.rclone}/bin/rclone rc vfs/refresh -v --fast-list recursive=true >/dev/null
|
||||||
|
# ''}";
|
||||||
|
# StandardOutput = "journal";
|
||||||
|
# StandardError = "journal";
|
||||||
|
# Restart = "on-failure";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Install = {
|
||||||
|
# WantedBy = [ "default.target" ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# systemd.user.services.input-leap = {
|
||||||
|
# Unit = {
|
||||||
|
# Description = "Autostart Input Leap";
|
||||||
|
# After = [ "graphical-session.target" ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Service = {
|
||||||
|
# Type = "oneshot";
|
||||||
|
# RemainAfterExit = true;
|
||||||
|
# PassEnvironment = "DISPLAY";
|
||||||
|
# ExecStart = "${pkgs.writeShellScript "input-leap-start" ''
|
||||||
|
# sleep 5
|
||||||
|
# ${pkgs.input-leap}/bin/input-leap
|
||||||
|
# ''}";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Install = {
|
||||||
|
# WantedBy = [ "graphical-session.target" ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
}
|
||||||
110
home/terminal/btop.nix
Normal file
110
home/terminal/btop.nix
Normal file
|
|
@ -0,0 +1,110 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
btop-colors = with config.scheme.withHashtag; ''
|
||||||
|
# Credit to https://github.com/catppuccin/btop
|
||||||
|
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||||
|
theme[main_bg]="${base00}"
|
||||||
|
|
||||||
|
# Main text color
|
||||||
|
theme[main_fg]="${base05}"
|
||||||
|
|
||||||
|
# Title color for boxes
|
||||||
|
theme[title]="${base05}"
|
||||||
|
|
||||||
|
# Highlight color for keyboard shortcuts
|
||||||
|
theme[hi_fg]="${base0D}"
|
||||||
|
|
||||||
|
# Background color of selected item in processes box
|
||||||
|
theme[selected_bg]="${base02}"
|
||||||
|
|
||||||
|
# Foreground color of selected item in processes box
|
||||||
|
theme[selected_fg]="${base0D}"
|
||||||
|
|
||||||
|
# Color of inactive/disabled text
|
||||||
|
theme[inactive_fg]="${base03}"
|
||||||
|
|
||||||
|
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||||
|
theme[graph_text]="${base06}"
|
||||||
|
|
||||||
|
# Background color of the percentage meters
|
||||||
|
theme[meter_bg]="${base02}"
|
||||||
|
|
||||||
|
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||||
|
theme[proc_misc]="${base06}"
|
||||||
|
|
||||||
|
# CPU, Memory, Network, Proc box outline colors
|
||||||
|
theme[cpu_box]="${base0E}" #Mauve
|
||||||
|
theme[mem_box]="${base0B}" #Green
|
||||||
|
theme[net_box]="${base12}" #Maroon
|
||||||
|
theme[proc_box]="${base0D}" #Blue
|
||||||
|
|
||||||
|
# Box divider line and small boxes line color
|
||||||
|
theme[div_line]="${base03}"
|
||||||
|
|
||||||
|
# Temperature graph color (Green -> Yellow -> Red)
|
||||||
|
theme[temp_start]="${base0B}"
|
||||||
|
theme[temp_mid]="${base0A}"
|
||||||
|
theme[temp_end]="${base08}"
|
||||||
|
|
||||||
|
# CPU graph colors (Teal -> Lavender)
|
||||||
|
theme[cpu_start]="${base0C}"
|
||||||
|
theme[cpu_mid]="${base16}"
|
||||||
|
theme[cpu_end]="${base07}"
|
||||||
|
|
||||||
|
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||||
|
theme[free_start]="${base0E}"
|
||||||
|
theme[free_mid]="${base07}"
|
||||||
|
theme[free_end]="${base0D}"
|
||||||
|
|
||||||
|
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||||
|
theme[cached_start]="${base16}"
|
||||||
|
theme[cached_mid]="${base0D}"
|
||||||
|
theme[cached_end]="${base07}"
|
||||||
|
|
||||||
|
# Mem/Disk available meter (Peach -> Red)
|
||||||
|
theme[available_start]="${base09}"
|
||||||
|
theme[available_mid]="${base12}"
|
||||||
|
theme[available_end]="${base08}"
|
||||||
|
|
||||||
|
# Mem/Disk used meter (Green -> Sky)
|
||||||
|
theme[used_start]="${base0B}"
|
||||||
|
theme[used_mid]="${base0C}"
|
||||||
|
theme[used_end]="${base15}"
|
||||||
|
|
||||||
|
# Download graph colors (Peach -> Red)
|
||||||
|
theme[download_start]="${base09}"
|
||||||
|
theme[download_mid]="${base12}"
|
||||||
|
theme[download_end]="${base08}"
|
||||||
|
|
||||||
|
# Upload graph colors (Green -> Sky)
|
||||||
|
theme[upload_start]="${base0B}"
|
||||||
|
theme[upload_mid]="${base0C}"
|
||||||
|
theme[upload_end]="${base15}"
|
||||||
|
|
||||||
|
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||||
|
theme[process_start]="${base16}"
|
||||||
|
theme[process_mid]="${base07}"
|
||||||
|
theme[process_end]="${base0E}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
btop-colors-file = pkgs.writeTextFile {
|
||||||
|
name = "btop-colors";
|
||||||
|
text = btop-colors;
|
||||||
|
destination = "/nixos.theme";
|
||||||
|
};
|
||||||
|
|
||||||
|
mergedConfig = pkgs.runCommand "mergedConfig" { } ''
|
||||||
|
mkdir -p $out/themes
|
||||||
|
cp -r ${btop-colors-file}/nixos.theme $out/themes/nixos.theme
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.file.".config/btop" = {
|
||||||
|
source = mergedConfig;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
8
home/terminal/default.nix
Normal file
8
home/terminal/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./btop.nix
|
||||||
|
./fish.nix
|
||||||
|
./kitty.nix
|
||||||
|
./neovim.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,16 @@
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
kdePackages.qttools
|
||||||
|
eza
|
||||||
|
pigz
|
||||||
|
];
|
||||||
|
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
|
|
@ -32,6 +39,10 @@
|
||||||
description = "Wrapper for nix-shell that runs fish by default";
|
description = "Wrapper for nix-shell that runs fish by default";
|
||||||
body = builtins.readFile ./fish_functions/nix-shell.fish;
|
body = builtins.readFile ./fish_functions/nix-shell.fish;
|
||||||
};
|
};
|
||||||
|
logout = {
|
||||||
|
description = "Log out of KDE Plasma";
|
||||||
|
body = builtins.readFile ./fish_functions/logout.fish;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
5
home/terminal/fish_functions/logout.fish
Normal file
5
home/terminal/fish_functions/logout.fish
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
if status is-login
|
||||||
|
builtin exit
|
||||||
|
else
|
||||||
|
/run/current-system/sw/bin/qdbus org.kde.Shutdown /Shutdown org.kde.Shutdown.logout
|
||||||
|
end
|
||||||
141
home/terminal/kitty.nix
Normal file
141
home/terminal/kitty.nix
Normal file
|
|
@ -0,0 +1,141 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
# Map Catppuccin colors to Kitty theme structure
|
||||||
|
kitty-colors = with config.scheme.withHashtag; ''
|
||||||
|
# vim:ft=kitty
|
||||||
|
## name: Kova's Nixified Kitty
|
||||||
|
## author: Catppuccin Org & sckova
|
||||||
|
## license: MIT
|
||||||
|
## upstream: https://github.com/catppuccin/kitty
|
||||||
|
## blurb: The theme generated from the NixOS configuration!
|
||||||
|
|
||||||
|
# The basic colors
|
||||||
|
foreground ${base05}
|
||||||
|
background ${base00}
|
||||||
|
selection_foreground ${base00}
|
||||||
|
selection_background ${base06}
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
cursor ${base06}
|
||||||
|
cursor_text_color ${base00}
|
||||||
|
|
||||||
|
# URL underline color when hovering with mouse
|
||||||
|
url_color ${base06}
|
||||||
|
|
||||||
|
# Kitty window border colors
|
||||||
|
active_border_color ${config.scheme.withHashtag.${config.colors.accent}}
|
||||||
|
inactive_border_color ${base01}
|
||||||
|
bell_border_color ${base12}
|
||||||
|
|
||||||
|
# Tab bar colors
|
||||||
|
active_tab_foreground ${base11}
|
||||||
|
active_tab_background ${config.scheme.withHashtag.${config.colors.accent}}
|
||||||
|
inactive_tab_foreground ${base05}
|
||||||
|
inactive_tab_background ${base10}
|
||||||
|
tab_bar_background ${base11}
|
||||||
|
|
||||||
|
# Colors for marks (marked text in the terminal)
|
||||||
|
mark1_foreground ${base00}
|
||||||
|
mark1_background ${base09}
|
||||||
|
mark2_foreground ${base00}
|
||||||
|
mark2_background ${base0D}
|
||||||
|
mark3_foreground ${base00}
|
||||||
|
mark3_background ${base15}
|
||||||
|
|
||||||
|
# The 16 terminal colors
|
||||||
|
# black
|
||||||
|
color0 ${base02}
|
||||||
|
color8 ${base02}
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 ${base08}
|
||||||
|
color9 ${base08}
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 ${base0B}
|
||||||
|
color10 ${base0B}
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 ${base0A}
|
||||||
|
color11 ${base0A}
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 ${base0D}
|
||||||
|
color12 ${base0D}
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 ${base17}
|
||||||
|
color13 ${base17}
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 ${base0C}
|
||||||
|
color14 ${base0C}
|
||||||
|
|
||||||
|
# white
|
||||||
|
color7 ${base04}
|
||||||
|
color15 ${base04}
|
||||||
|
'';
|
||||||
|
|
||||||
|
kitty-colors-file = pkgs.writeTextFile {
|
||||||
|
name = "kitty-colors";
|
||||||
|
text = kitty-colors;
|
||||||
|
destination = "/kitty-colors.conf";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.file.".config/kitty/themes" = {
|
||||||
|
source = kitty-colors-file;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file.".config/kitty/ssh.conf" = {
|
||||||
|
text = ''
|
||||||
|
shell_integration inherited
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
kitty = {
|
||||||
|
enable = true;
|
||||||
|
enableGitIntegration = true;
|
||||||
|
font = {
|
||||||
|
name = config.userOptions.fontMono.name;
|
||||||
|
size = config.userOptions.fontMono.size;
|
||||||
|
};
|
||||||
|
shellIntegration.enableFishIntegration = true;
|
||||||
|
keybindings = {
|
||||||
|
"ctrl+k" = "combine : clear_terminal scroll active : clear_terminal scrollback active";
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
include = "/home/${config.userOptions.username}/.config/kitty/themes/kitty-colors.conf";
|
||||||
|
scrollback_lines = 10000;
|
||||||
|
wheel_scroll_multiplier = 5.0;
|
||||||
|
touch_scroll_multiplier = 5.0;
|
||||||
|
enable_audio_bell = false;
|
||||||
|
update_check_interval = 0;
|
||||||
|
confirm_os_window_close = 0;
|
||||||
|
window_padding_width = 4;
|
||||||
|
tab_bar_min_tabs = 2;
|
||||||
|
tab_bar_edge = "top";
|
||||||
|
tab_bar_style = "powerline";
|
||||||
|
tab_powerline_style = "slanted";
|
||||||
|
mouse_hide_wait = "-1.0";
|
||||||
|
wayland_titlebar_color = "system";
|
||||||
|
macos_titlebar_color = "system";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
bat = {
|
||||||
|
enable = true;
|
||||||
|
# config.theme = "Catppuccin ${config.catppuccinUpper.flavor}";
|
||||||
|
};
|
||||||
|
lazygit = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
lazysql.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,10 +1,22 @@
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
home.sessionVariables.EDITOR = lib.mkForce "nvim";
|
home.sessionVariables = {
|
||||||
|
EDITOR = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
kdePackages.qtdeclarative
|
||||||
|
prettier
|
||||||
|
prettierd
|
||||||
|
nixfmt
|
||||||
|
stylua
|
||||||
|
black
|
||||||
|
clang-tools
|
||||||
|
];
|
||||||
|
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -24,38 +36,49 @@
|
||||||
expandtab = true;
|
expandtab = true;
|
||||||
number = true;
|
number = true;
|
||||||
};
|
};
|
||||||
|
colorschemes.palette = {
|
||||||
colorschemes.base16 = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
setUpBar = false;
|
settings = {
|
||||||
colorscheme =
|
palettes = {
|
||||||
let
|
main = "base16_custom";
|
||||||
cleanScheme = {
|
accent = "base16_custom";
|
||||||
inherit (config.scheme.withHashtag)
|
state = "base16_custom";
|
||||||
base00
|
|
||||||
base01
|
|
||||||
base02
|
|
||||||
base03
|
|
||||||
base04
|
|
||||||
base05
|
|
||||||
base06
|
|
||||||
base07
|
|
||||||
base08
|
|
||||||
base09
|
|
||||||
base0A
|
|
||||||
base0B
|
|
||||||
base0C
|
|
||||||
base0D
|
|
||||||
base0E
|
|
||||||
base0F
|
|
||||||
;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
cleanScheme
|
|
||||||
// {
|
|
||||||
base08 = cleanScheme.${config.colors.accent};
|
|
||||||
${config.colors.accent} = cleanScheme.base08;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# this is helpful for figuring out what color is what:
|
||||||
|
# https://github.com/tinted-theming/schemes/blob/spec-0.11/base24/catppuccin-frappe.yaml
|
||||||
|
custom_palettes = with config.scheme.withHashtag; {
|
||||||
|
main.base16_custom = {
|
||||||
|
color0 = base00; # background
|
||||||
|
color1 = base01; # lighter background
|
||||||
|
color2 = base02; # selection background
|
||||||
|
color3 = base03; # color inside ${}
|
||||||
|
color4 = base04; # dark foreground
|
||||||
|
color5 = config.scheme.withHashtag.${config.colors.accent}; # default foreground, left side of assignments
|
||||||
|
color6 = base03; # comments
|
||||||
|
color7 = base07; # lightest foreground
|
||||||
|
color8 = base05; # variables/tags
|
||||||
|
};
|
||||||
|
|
||||||
|
accent.base16_custom = {
|
||||||
|
accent0 = base08; # red, integers/constants
|
||||||
|
accent1 = base0A; # orange, classes/search
|
||||||
|
accent2 = base0A; # yellow, strings/inherited
|
||||||
|
accent3 = base0B; # green, support/regex
|
||||||
|
accent4 = base0D; # blue, functions/headings
|
||||||
|
accent5 = base0E; # purple, keywords/bold
|
||||||
|
accent6 = base07; # lavender, deprecated/embedded
|
||||||
|
};
|
||||||
|
|
||||||
|
state.base16_custom = {
|
||||||
|
error = base08; # red
|
||||||
|
warning = base0A; # yellow
|
||||||
|
hint = base0C; # cyan
|
||||||
|
ok = base0B; # green
|
||||||
|
info = base0D; # blue
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
keymaps = [
|
keymaps = [
|
||||||
|
|
@ -145,6 +168,7 @@
|
||||||
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
|
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
|
||||||
keywordLength = 3;
|
keywordLength = 3;
|
||||||
}
|
}
|
||||||
|
{ name = "copilot"; }
|
||||||
{
|
{
|
||||||
name = "path"; # file system paths
|
name = "path"; # file system paths
|
||||||
keywordLength = 3;
|
keywordLength = 3;
|
||||||
121
home/tiling/default.nix
Normal file
121
home/tiling/default.nix
Normal file
|
|
@ -0,0 +1,121 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./niri.nix
|
||||||
|
./noctalia.nix
|
||||||
|
./wallpaper.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
xdg-desktop-portal
|
||||||
|
brightnessctl
|
||||||
|
qt6Packages.qt6ct
|
||||||
|
libsForQt5.qt5ct
|
||||||
|
catppuccin-qt5ct
|
||||||
|
xwayland-satellite
|
||||||
|
playerctl
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.fuzzel = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.fuzzel;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
terminal = "${pkgs.kitty}/bin/kitty";
|
||||||
|
layer = "overlay";
|
||||||
|
font = with config.userOptions.fontMono; name + ":size=" + toString (size + 2);
|
||||||
|
launch-prefix = "${pkgs.niri}/bin/niri msg action spawn --";
|
||||||
|
icon-theme = "Colloid-Dark";
|
||||||
|
};
|
||||||
|
border = {
|
||||||
|
width = 2;
|
||||||
|
radius = 8;
|
||||||
|
};
|
||||||
|
colors = with config.scheme; {
|
||||||
|
background = base00 + "ff";
|
||||||
|
text = base05 + "ff";
|
||||||
|
prompt = base04 + "ff";
|
||||||
|
placeholder = base04 + "ff";
|
||||||
|
input = base05 + "ff";
|
||||||
|
match = config.scheme.withHashtag.${config.colors.accent} + "ff";
|
||||||
|
selection = base04 + "ff";
|
||||||
|
selection-text = base00 + "ff";
|
||||||
|
counter = base04 + "ff";
|
||||||
|
border = config.scheme.withHashtag.${config.colors.accent} + "ff";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xsession = {
|
||||||
|
enable = true;
|
||||||
|
windowManager.command = "niri";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
associations.added = {
|
||||||
|
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
|
||||||
|
"x-scheme-handler/spotify" = [ "riff.desktop" ];
|
||||||
|
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
|
||||||
|
"image/png" = [ "loupe.desktop" ];
|
||||||
|
"image/jpeg" = [ "loupe.desktop" ];
|
||||||
|
};
|
||||||
|
defaultApplications = {
|
||||||
|
# Web
|
||||||
|
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||||
|
"text/html" = [ "firefox.desktop" ];
|
||||||
|
|
||||||
|
# Communication & Social
|
||||||
|
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
|
||||||
|
"x-scheme-handler/spotify" = [ "riff.desktop" ];
|
||||||
|
|
||||||
|
# File Management
|
||||||
|
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
|
||||||
|
|
||||||
|
# Torrents
|
||||||
|
"application/x-bittorrent" = [ "org.qbittorrent.qBittorrent.desktop" ];
|
||||||
|
"x-scheme-handler/magnet" = [ "org.qbittorrent.qBittorrent.desktop" ];
|
||||||
|
|
||||||
|
# Documents
|
||||||
|
"application/pdf" = [ "firefox.desktop" ]; # Or libreoffice-draw.desktop
|
||||||
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = [
|
||||||
|
"libreoffice-writer.desktop"
|
||||||
|
]; # docx
|
||||||
|
"application/msword" = [ "libreoffice-writer.desktop" ]; # doc
|
||||||
|
"application/vnd.oasis.opendocument.text" = [ "libreoffice-writer.desktop" ]; # odt
|
||||||
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = [
|
||||||
|
"libreoffice-calc.desktop"
|
||||||
|
]; # xlsx
|
||||||
|
"application/vnd.ms-excel" = [ "libreoffice-calc.desktop" ]; # xls
|
||||||
|
"application/vnd.oasis.opendocument.spreadsheet" = [ "libreoffice-calc.desktop" ]; # ods
|
||||||
|
|
||||||
|
# Text & Code
|
||||||
|
"text/plain" = [ "nvim.desktop" ];
|
||||||
|
"text/markdown" = [ "nvim.desktop" ];
|
||||||
|
"application/x-shellscript" = [ "nvim.desktop" ];
|
||||||
|
"application/json" = [ "nvim.desktop" ];
|
||||||
|
"text/x-c" = [ "nvim.desktop" ];
|
||||||
|
"text/x-c++" = [ "nvim.desktop" ];
|
||||||
|
"text/x-python" = [ "nvim.desktop" ];
|
||||||
|
"text/x-makefile" = [ "nvim.desktop" ];
|
||||||
|
|
||||||
|
# Media
|
||||||
|
"video/mp4" = [ "mpv.desktop" ];
|
||||||
|
"video/mkv" = [ "mpv.desktop" ];
|
||||||
|
"video/webm" = [ "mpv.desktop" ];
|
||||||
|
"audio/mpeg" = [ "mpv.desktop" ];
|
||||||
|
"audio/flac" = [ "mpv.desktop" ];
|
||||||
|
"audio/wav" = [ "mpv.desktop" ];
|
||||||
|
|
||||||
|
# Images
|
||||||
|
"image/png" = [ "loupe.desktop" ];
|
||||||
|
"image/jpeg" = [ "loupe.desktop" ];
|
||||||
|
"image/webp" = [ "loupe.desktop" ];
|
||||||
|
"image/gif" = [ "loupe.desktop" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
@ -16,7 +17,7 @@
|
||||||
XCURSOR_THEME = config.userOptions.cursor.name;
|
XCURSOR_THEME = config.userOptions.cursor.name;
|
||||||
XCURSOR_SIZE = toString config.userOptions.cursor.size;
|
XCURSOR_SIZE = toString config.userOptions.cursor.size;
|
||||||
};
|
};
|
||||||
screenshot-path = "~/Pictures/Screenshots/%a %b %e %Y @%l:%M %p.png";
|
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
|
||||||
hotkey-overlay.skip-at-startup = true;
|
hotkey-overlay.skip-at-startup = true;
|
||||||
prefer-no-csd = true;
|
prefer-no-csd = true;
|
||||||
gestures.hot-corners.enable = false;
|
gestures.hot-corners.enable = false;
|
||||||
|
|
@ -28,6 +29,7 @@
|
||||||
input = {
|
input = {
|
||||||
focus-follows-mouse.enable = true;
|
focus-follows-mouse.enable = true;
|
||||||
focus-follows-mouse.max-scroll-amount = "0%";
|
focus-follows-mouse.max-scroll-amount = "0%";
|
||||||
|
warp-mouse-to-focus.enable = true;
|
||||||
mod-key = "Super";
|
mod-key = "Super";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
numlock = false;
|
numlock = false;
|
||||||
|
|
@ -48,6 +50,13 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs = {
|
outputs = {
|
||||||
|
"eDP-1" = {
|
||||||
|
scale = 1.5;
|
||||||
|
position = {
|
||||||
|
x = 272;
|
||||||
|
y = 1440;
|
||||||
|
};
|
||||||
|
};
|
||||||
"HDMI-A-1" = {
|
"HDMI-A-1" = {
|
||||||
mode = {
|
mode = {
|
||||||
width = 3840;
|
width = 3840;
|
||||||
|
|
@ -75,13 +84,17 @@
|
||||||
};
|
};
|
||||||
cursor = {
|
cursor = {
|
||||||
hide-when-typing = false;
|
hide-when-typing = false;
|
||||||
|
# hide-after-inactive-ms = 10000;
|
||||||
size = config.userOptions.cursor.size;
|
size = config.userOptions.cursor.size;
|
||||||
theme = config.userOptions.cursor.name;
|
theme = config.userOptions.cursor.name;
|
||||||
};
|
};
|
||||||
layout = {
|
layout = {
|
||||||
gaps = 4;
|
gaps = 4;
|
||||||
|
# background-color = base10;
|
||||||
background-color = "transparent";
|
background-color = "transparent";
|
||||||
default-column-width.proportion = 0.5;
|
default-column-width = {
|
||||||
|
proportion = 0.5;
|
||||||
|
};
|
||||||
preset-column-widths = [
|
preset-column-widths = [
|
||||||
{ proportion = 4.0 / 12.0; }
|
{ proportion = 4.0 / 12.0; }
|
||||||
{ proportion = 6.0 / 12.0; }
|
{ proportion = 6.0 / 12.0; }
|
||||||
|
|
@ -90,16 +103,16 @@
|
||||||
border = {
|
border = {
|
||||||
enable = true;
|
enable = true;
|
||||||
width = 2;
|
width = 2;
|
||||||
active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
|
active.color = config.scheme.withHashtag.${config.colors.accent};
|
||||||
inactive.color = base01 + "E6";
|
inactive.color = base01;
|
||||||
urgent.color = base12 + "E6";
|
urgent.color = base12;
|
||||||
};
|
};
|
||||||
focus-ring = {
|
focus-ring = {
|
||||||
enable = false;
|
enable = false;
|
||||||
width = 2;
|
width = 2;
|
||||||
active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
|
active.color = config.scheme.withHashtag.${config.colors.accent};
|
||||||
inactive.color = base01 + "E6";
|
inactive.color = base01;
|
||||||
urgent.color = base12 + "E6";
|
urgent.color = base12;
|
||||||
};
|
};
|
||||||
shadow = {
|
shadow = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -109,6 +122,12 @@
|
||||||
softness = 30;
|
softness = 30;
|
||||||
color = base11 + "BF";
|
color = base11 + "BF";
|
||||||
};
|
};
|
||||||
|
# blur = {
|
||||||
|
# enable = true;
|
||||||
|
# passes = 4;
|
||||||
|
# radius = 4;
|
||||||
|
# noise = 0.1;
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
window-rules = [
|
window-rules = [
|
||||||
{
|
{
|
||||||
|
|
@ -119,34 +138,30 @@
|
||||||
bottom-right = 8.0;
|
bottom-right = 8.0;
|
||||||
};
|
};
|
||||||
clip-to-geometry = true;
|
clip-to-geometry = true;
|
||||||
opacity = 0.90;
|
opacity = 1.0;
|
||||||
background-effect = {
|
}
|
||||||
xray = false;
|
{
|
||||||
blur = true;
|
matches = [
|
||||||
noise = 0.05;
|
{
|
||||||
saturation = 1;
|
app-id = "firefox$";
|
||||||
|
title = "^Picture-in-Picture$";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
open-floating = true;
|
||||||
|
default-floating-position = {
|
||||||
|
x = 16;
|
||||||
|
y = 16;
|
||||||
|
relative-to = "bottom-left";
|
||||||
};
|
};
|
||||||
draw-border-with-background = false;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
{
|
{
|
||||||
app-id = "vesktop$";
|
app-id = "vesktop$";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
app-id = "org.gnome.Nautilus$";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
block-out-from = "screen-capture";
|
block-out-from = "screen-capture";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
matches = [
|
|
||||||
{
|
|
||||||
is-active = false;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
opacity = 0.90;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
{
|
{
|
||||||
|
|
@ -158,98 +173,41 @@
|
||||||
title = "Minecraft";
|
title = "Minecraft";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
open-maximized-to-edges = true;
|
open-maximized = true;
|
||||||
open-focused = true;
|
open-focused = true;
|
||||||
opacity = 1.00;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
matches = [
|
|
||||||
{
|
|
||||||
app-id = "mpv";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
app-id = "firefox";
|
|
||||||
title = "Picture-in-Picture";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
opacity = 1.0;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# Kitty Fastfetch window
|
|
||||||
matches = [
|
|
||||||
{
|
|
||||||
app-id = "kitty";
|
|
||||||
title = "^fastfetch$";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
open-floating = true;
|
|
||||||
baba-is-float = true;
|
|
||||||
min-width = 960;
|
|
||||||
min-height = 480;
|
|
||||||
max-width = 960;
|
|
||||||
max-height = 480;
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
layer-rules = [
|
layer-rules = [
|
||||||
{
|
{
|
||||||
matches = [ { namespace = "^launcher$"; } ];
|
matches = [
|
||||||
background-effect = {
|
{
|
||||||
xray = false;
|
namespace = "^wpaperd.*";
|
||||||
blur = true;
|
}
|
||||||
noise = 0.05;
|
];
|
||||||
saturation = 1;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
matches = [ { namespace = "^wallpaper$"; } ];
|
|
||||||
place-within-backdrop = true;
|
place-within-backdrop = true;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
binds = {
|
binds = {
|
||||||
"Mod+Shift+Slash".action.show-hotkey-overlay = { };
|
"Mod+Shift+Slash".action.show-hotkey-overlay = { };
|
||||||
"Mod+D" = {
|
|
||||||
action.toggle-window-rule-opacity = { };
|
|
||||||
repeat = false;
|
|
||||||
};
|
|
||||||
"Mod+M" = {
|
|
||||||
action.spawn = [
|
|
||||||
"wpctl"
|
|
||||||
"set-mute"
|
|
||||||
"@DEFAULT_AUDIO_SOURCE@"
|
|
||||||
"toggle"
|
|
||||||
];
|
|
||||||
hotkey-overlay.title = "Toggle Microphone Mute";
|
|
||||||
repeat = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"Mod+T" = {
|
"Mod+T" = {
|
||||||
action.spawn = [ "kitty" ];
|
action.spawn = [ "kitty" ];
|
||||||
hotkey-overlay.title = "Open a Terminal: kitty";
|
hotkey-overlay.title = "Open a Terminal: kitty";
|
||||||
};
|
};
|
||||||
"Mod+Shift+T" = {
|
|
||||||
action.spawn-sh = [ "kitty --title fastfetch sh -c 'fastfetch; sleep 10'" ];
|
|
||||||
hotkey-overlay.title = "Open a Terminal with Fastfetch";
|
|
||||||
};
|
|
||||||
"Mod+Space" = {
|
"Mod+Space" = {
|
||||||
action.spawn = [ "fuzzel" ];
|
action.spawn = [ "fuzzel" ];
|
||||||
hotkey-overlay.title = "Run an Application: Fuzzel";
|
hotkey-overlay.title = "Run an Application: Noctalia app launcher";
|
||||||
};
|
};
|
||||||
|
|
||||||
"XF86AudioRaiseVolume" = {
|
"XF86AudioRaiseVolume" = {
|
||||||
action.spawn = [
|
action.spawn-sh = [
|
||||||
"wpctl"
|
"noctalia-shell ipc call volume increase"
|
||||||
"set-volume"
|
|
||||||
"@DEFAULT_AUDIO_SINK@"
|
|
||||||
"0.05+"
|
|
||||||
];
|
];
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
"XF86AudioLowerVolume" = {
|
"XF86AudioLowerVolume" = {
|
||||||
action.spawn = [
|
action.spawn-sh = [
|
||||||
"wpctl"
|
"noctalia-shell ipc call volume decrease"
|
||||||
"set-volume"
|
|
||||||
"@DEFAULT_AUDIO_SINK@"
|
|
||||||
"0.05-"
|
|
||||||
];
|
];
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
|
|
@ -274,20 +232,14 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
"MouseForward" = {
|
"MouseForward" = {
|
||||||
action.spawn = [
|
action.spawn-sh = [
|
||||||
"wpctl"
|
"noctalia-shell ipc call volume increase"
|
||||||
"set-volume"
|
|
||||||
"@DEFAULT_AUDIO_SINK@"
|
|
||||||
"0.05+"
|
|
||||||
];
|
];
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
"MouseBack" = {
|
"MouseBack" = {
|
||||||
action.spawn = [
|
action.spawn-sh = [
|
||||||
"wpctl"
|
"noctalia-shell ipc call volume decrease"
|
||||||
"set-volume"
|
|
||||||
"@DEFAULT_AUDIO_SINK@"
|
|
||||||
"0.05-"
|
|
||||||
];
|
];
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
|
|
@ -312,20 +264,14 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
"XF86AudioMute" = {
|
"XF86AudioMute" = {
|
||||||
action.spawn = [
|
action.spawn-sh = [
|
||||||
"wpctl"
|
"noctalia-shell ipc call volume muteOutput"
|
||||||
"set-mute"
|
|
||||||
"@DEFAULT_AUDIO_SINK@"
|
|
||||||
"toggle"
|
|
||||||
];
|
];
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
"XF86AudioMicMute" = {
|
"XF86AudioMicMute" = {
|
||||||
action.spawn = [
|
action.spawn-sh = [
|
||||||
"wpctl"
|
"noctalia-shell ipc call volume muteInput"
|
||||||
"set-mute"
|
|
||||||
"@DEFAULT_AUDIO_SOURCE@"
|
|
||||||
"toggle"
|
|
||||||
];
|
];
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
|
|
@ -396,14 +342,29 @@
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
"XF86Sleep".action.power-off-monitors = { };
|
"XF86Sleep" = {
|
||||||
|
action.power-off-monitors = { };
|
||||||
|
};
|
||||||
|
|
||||||
"XF86Search".action.spawn = [ "fuzzel" ];
|
"XF86Search" = {
|
||||||
"Mod+Shift+L".action.spawn = [ "swaylock" ];
|
action.spawn = [
|
||||||
|
"noctalia-shell"
|
||||||
|
"ipc"
|
||||||
|
"call"
|
||||||
|
"launcher"
|
||||||
|
"toggle"
|
||||||
|
];
|
||||||
|
allow-when-locked = true;
|
||||||
|
};
|
||||||
|
|
||||||
"XF86LaunchA" = {
|
"XF86LaunchA" = {
|
||||||
action.toggle-overview = { };
|
action.spawn = [
|
||||||
repeat = false;
|
"niri"
|
||||||
|
"msg"
|
||||||
|
"action"
|
||||||
|
"toggle-overview"
|
||||||
|
];
|
||||||
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
"Mod+O" = {
|
"Mod+O" = {
|
||||||
|
|
@ -420,6 +381,10 @@
|
||||||
"Mod+Down".action.focus-window-down = { };
|
"Mod+Down".action.focus-window-down = { };
|
||||||
"Mod+Up".action.focus-window-up = { };
|
"Mod+Up".action.focus-window-up = { };
|
||||||
"Mod+Right".action.focus-column-right = { };
|
"Mod+Right".action.focus-column-right = { };
|
||||||
|
"Mod+H".action.focus-column-left = { };
|
||||||
|
"Mod+J".action.focus-window-down = { };
|
||||||
|
"Mod+K".action.focus-window-up = { };
|
||||||
|
"Mod+L".action.focus-column-right = { };
|
||||||
|
|
||||||
"Mod+Ctrl+Left".action.move-column-left = { };
|
"Mod+Ctrl+Left".action.move-column-left = { };
|
||||||
"Mod+Ctrl+Down".action.move-window-down = { };
|
"Mod+Ctrl+Down".action.move-window-down = { };
|
||||||
|
|
@ -439,6 +404,10 @@
|
||||||
"Mod+Shift+Down".action.focus-monitor-down = { };
|
"Mod+Shift+Down".action.focus-monitor-down = { };
|
||||||
"Mod+Shift+Up".action.focus-monitor-up = { };
|
"Mod+Shift+Up".action.focus-monitor-up = { };
|
||||||
"Mod+Shift+Right".action.focus-monitor-right = { };
|
"Mod+Shift+Right".action.focus-monitor-right = { };
|
||||||
|
"Mod+Shift+H".action.focus-monitor-left = { };
|
||||||
|
"Mod+Shift+J".action.focus-monitor-down = { };
|
||||||
|
"Mod+Shift+K".action.focus-monitor-up = { };
|
||||||
|
"Mod+Shift+L".action.focus-monitor-right = { };
|
||||||
|
|
||||||
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = { };
|
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = { };
|
||||||
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = { };
|
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = { };
|
||||||
|
|
@ -523,15 +492,18 @@
|
||||||
"Mod+Ctrl+Shift+F".action.fullscreen-window = { };
|
"Mod+Ctrl+Shift+F".action.fullscreen-window = { };
|
||||||
|
|
||||||
"Mod+C".action.center-column = { };
|
"Mod+C".action.center-column = { };
|
||||||
|
|
||||||
"Mod+Ctrl+C".action.center-visible-columns = { };
|
"Mod+Ctrl+C".action.center-visible-columns = { };
|
||||||
|
|
||||||
"Mod+Minus".action.set-column-width = "-10%";
|
"Mod+Minus".action.set-column-width = "-10%";
|
||||||
"Mod+Equal".action.set-column-width = "+10%";
|
"Mod+Equal".action.set-column-width = "+10%";
|
||||||
|
|
||||||
"Mod+Shift+Minus".action.set-window-height = "-10%";
|
"Mod+Shift+Minus".action.set-window-height = "-10%";
|
||||||
"Mod+Shift+Equal".action.set-window-height = "+10%";
|
"Mod+Shift+Equal".action.set-window-height = "+10%";
|
||||||
|
|
||||||
"Mod+Ctrl+Minus".action.set-column-width = "-0.25%";
|
"Mod+Ctrl+Minus".action.set-column-width = "-0.25%";
|
||||||
"Mod+Ctrl+Equal".action.set-column-width = "+0.25%";
|
"Mod+Ctrl+Equal".action.set-column-width = "+0.25%";
|
||||||
|
|
||||||
"Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%";
|
"Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%";
|
||||||
"Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%";
|
"Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%";
|
||||||
|
|
||||||
|
|
@ -540,9 +512,18 @@
|
||||||
|
|
||||||
"Mod+W".action.toggle-column-tabbed-display = { };
|
"Mod+W".action.toggle-column-tabbed-display = { };
|
||||||
|
|
||||||
"Mod+Shift+S".action.screenshot.show-pointer = false;
|
"Print".action.screenshot = {
|
||||||
"Ctrl+Shift+S".action.screenshot-screen.show-pointer = false;
|
show-pointer = false;
|
||||||
"Alt+Shift+S".action.screenshot-window.show-pointer = false;
|
};
|
||||||
|
"Mod+Shift+S".action.screenshot = {
|
||||||
|
show-pointer = false;
|
||||||
|
};
|
||||||
|
"Ctrl+Print".action.screenshot-screen = {
|
||||||
|
show-pointer = false;
|
||||||
|
};
|
||||||
|
"Alt+Print".action.screenshot-window = {
|
||||||
|
show-pointer = false;
|
||||||
|
};
|
||||||
|
|
||||||
"Mod+Escape" = {
|
"Mod+Escape" = {
|
||||||
action.toggle-keyboard-shortcuts-inhibit = { };
|
action.toggle-keyboard-shortcuts-inhibit = { };
|
||||||
|
|
@ -63,12 +63,12 @@
|
||||||
bar = {
|
bar = {
|
||||||
autoHideDelay = 500;
|
autoHideDelay = 500;
|
||||||
autoShowDelay = 150;
|
autoShowDelay = 150;
|
||||||
backgroundOpacity = 0.90;
|
backgroundOpacity = 1;
|
||||||
monitors = [ ];
|
monitors = [ ];
|
||||||
showCapsule = true;
|
showCapsule = true;
|
||||||
barType = "simple";
|
barType = "simple";
|
||||||
capsuleColorKey = "none";
|
capsuleColorKey = "none";
|
||||||
capsuleOpacity = 0.90;
|
capsuleOpacity = 1;
|
||||||
displayMode = "always_visible";
|
displayMode = "always_visible";
|
||||||
floating = false;
|
floating = false;
|
||||||
marginHorizontal = 5;
|
marginHorizontal = 5;
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
outerCorners = false;
|
outerCorners = false;
|
||||||
screenOverrides = [ ];
|
screenOverrides = [ ];
|
||||||
showOutline = false;
|
showOutline = false;
|
||||||
useSeparateOpacity = true;
|
useSeparateOpacity = false;
|
||||||
widgets = {
|
widgets = {
|
||||||
center = [ ];
|
center = [ ];
|
||||||
left = [
|
left = [
|
||||||
|
|
@ -203,10 +203,10 @@
|
||||||
unreadBadgeColor = "primary";
|
unreadBadgeColor = "primary";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
deviceNativePath = "";
|
deviceNativePath = "__default__";
|
||||||
displayMode = "icon-hover";
|
displayMode = "icon-hover";
|
||||||
hideIfIdle = false;
|
hideIfIdle = false;
|
||||||
hideIfNotDetected = true;
|
hideIfNotDetected = false;
|
||||||
id = "Battery";
|
id = "Battery";
|
||||||
showNoctaliaPerformance = false;
|
showNoctaliaPerformance = false;
|
||||||
showPowerProfiles = true;
|
showPowerProfiles = true;
|
||||||
|
|
@ -348,13 +348,12 @@
|
||||||
animationDisabled = false;
|
animationDisabled = false;
|
||||||
animationSpeed = 1;
|
animationSpeed = 1;
|
||||||
autoStartAuth = false;
|
autoStartAuth = false;
|
||||||
avatarImage = "/home/${config.userOptions.username}/.face";
|
avatarImage = "/home/sckova/.face";
|
||||||
boxRadiusRatio = 1;
|
boxRadiusRatio = 1;
|
||||||
clockFormat = "hh\\nmm";
|
clockFormat = "hh\\nmm";
|
||||||
clockStyle = "custom";
|
clockStyle = "custom";
|
||||||
compactLockScreen = false;
|
compactLockScreen = false;
|
||||||
dimmerOpacity = 0.5;
|
dimmerOpacity = 0.5;
|
||||||
enableBlurBehind = true;
|
|
||||||
enableLockScreenCountdown = true;
|
enableLockScreenCountdown = true;
|
||||||
enableShadows = false;
|
enableShadows = false;
|
||||||
forceBlackScreenCorners = false;
|
forceBlackScreenCorners = false;
|
||||||
|
|
@ -424,7 +423,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
notifications = {
|
notifications = {
|
||||||
backgroundOpacity = 0.90;
|
backgroundOpacity = 1;
|
||||||
criticalUrgencyDuration = 15;
|
criticalUrgencyDuration = 15;
|
||||||
enableBatteryToast = true;
|
enableBatteryToast = true;
|
||||||
enableKeyboardLayoutToast = true;
|
enableKeyboardLayoutToast = true;
|
||||||
|
|
@ -550,7 +549,7 @@
|
||||||
fontFixed = "FiraMono Nerd Font Mono";
|
fontFixed = "FiraMono Nerd Font Mono";
|
||||||
fontFixedScale = 1;
|
fontFixedScale = 1;
|
||||||
networkPanelView = "wifi";
|
networkPanelView = "wifi";
|
||||||
panelBackgroundOpacity = 0.90;
|
panelBackgroundOpacity = 1;
|
||||||
panelsAttachedToBar = true;
|
panelsAttachedToBar = true;
|
||||||
settingsPanelMode = "attached";
|
settingsPanelMode = "attached";
|
||||||
tooltipsEnabled = true;
|
tooltipsEnabled = true;
|
||||||
|
|
@ -559,7 +558,7 @@
|
||||||
|
|
||||||
wallpaper = {
|
wallpaper = {
|
||||||
automationEnabled = false;
|
automationEnabled = false;
|
||||||
directory = "/home/${config.userOptions.username}/.local/share/wallpaper";
|
directory = "/home/sckova/.local/share/wallpaper";
|
||||||
enableMultiMonitorDirectories = false;
|
enableMultiMonitorDirectories = false;
|
||||||
enabled = false;
|
enabled = false;
|
||||||
fillColor = "#1e1e2e";
|
fillColor = "#1e1e2e";
|
||||||
|
|
@ -599,19 +598,23 @@
|
||||||
After = [ "niri.service" ];
|
After = [ "niri.service" ];
|
||||||
PartOf = [ "niri.service" ];
|
PartOf = [ "niri.service" ];
|
||||||
Description = "Noctalia Shell - Wayland desktop shell";
|
Description = "Noctalia Shell - Wayland desktop shell";
|
||||||
Documentation = "https://docs.noctalia.dev";
|
Documentation = "https://docs.noctalia.dev/docs";
|
||||||
X-Restart-Triggers = [
|
|
||||||
"${config.xdg.configFile."noctalia/settings.json".source}"
|
|
||||||
"${config.xdg.configFile."noctalia/colors.json".source}"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Service = {
|
Service = {
|
||||||
ExecStart = "${pkgs.noctalia-shell}/bin/noctalia-shell";
|
ExecStart = "${pkgs.noctalia-shell}/bin/noctalia-shell";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
Environment = [ "QT_QPA_PLATFORMTHEME=qt6ct" ];
|
Environment = [
|
||||||
|
"LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale"
|
||||||
|
"TZDIR=${pkgs.tzdata}/share/zoneinfo"
|
||||||
|
"NOCTALIA_SETTINGS_FALLBACK=%h/.config/noctalia/gui-settings.json"
|
||||||
|
"QT_QPA_PLATFORM=wayland"
|
||||||
|
"QT_QPA_PLATFORMTHEME=qt6ct"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
Install.WantedBy = [ "niri.service" ];
|
Install = {
|
||||||
|
WantedBy = [ "niri.service" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
81
home/tiling/wallpaper.nix
Normal file
81
home/tiling/wallpaper.nix
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
wpaperd
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".config/wpaperd/config.toml" = {
|
||||||
|
text = ''
|
||||||
|
[default]
|
||||||
|
mode = "center"
|
||||||
|
[any]
|
||||||
|
path = "/home/${config.userOptions.username}/.local/share/wallpaper/daily.jpg"
|
||||||
|
'';
|
||||||
|
force = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.wpaperd = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Modern wallpaper daemon for Wayland";
|
||||||
|
PartOf = [ "niri.service" ];
|
||||||
|
Requires = [ "niri.service" ];
|
||||||
|
After = [ "niri.service" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.wpaperd}/bin/wpaperd";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "niri.service" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.bing-wallpaper = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Download and set Bing wallpaper of the day";
|
||||||
|
After = [ "network-online.target" ];
|
||||||
|
Wants = [ "network-online.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = pkgs.writeShellScript "bing-wallpaper" ''
|
||||||
|
OUT="''${XDG_DATA_HOME:-$HOME/.local/share}/wallpaper/daily.jpg"
|
||||||
|
|
||||||
|
API_RESP=$(${pkgs.wget}/bin/wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1") || exit 1
|
||||||
|
|
||||||
|
URL_BASE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'urlbase":"[^"]*' | cut -d '"' -f 3)
|
||||||
|
TITLE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'title":"[^"]*' | cut -d '"' -f 3)
|
||||||
|
|
||||||
|
${pkgs.coreutils}/bin/mkdir -p "$(dirname "$OUT")"
|
||||||
|
${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$URL_BASE\_UHD.jpg" || \
|
||||||
|
${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'url":"[^"]*' | cut -d '"' -f 3)"
|
||||||
|
|
||||||
|
${pkgs.libnotify}/bin/notify-send \
|
||||||
|
-a "Bing Wallpaper Service" \
|
||||||
|
-u low \
|
||||||
|
-i preferences-desktop-wallpaper \
|
||||||
|
"$TITLE"
|
||||||
|
'';
|
||||||
|
ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wpaperd.service";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "niri.service" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.timers.bing-wallpaper = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Run bing wallpaper retrieval daily";
|
||||||
|
};
|
||||||
|
Timer = {
|
||||||
|
OnCalendar = "*-*-* 10:00:00 GMT";
|
||||||
|
Persistent = true;
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "timers.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
79
options.nix
79
options.nix
|
|
@ -16,22 +16,33 @@
|
||||||
default = "base09";
|
default = "base09";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# catppuccinUpper = {
|
||||||
|
# accent = lib.mkOption {
|
||||||
|
# type = lib.types.str;
|
||||||
|
# readOnly = true;
|
||||||
|
# default =
|
||||||
|
# builtins.substring 0 1 (lib.toUpper config.catppuccin.accent)
|
||||||
|
# + builtins.substring 1 (-1) config.catppuccin.accent;
|
||||||
|
# };
|
||||||
|
# flavor = lib.mkOption {
|
||||||
|
# type = lib.types.str;
|
||||||
|
# readOnly = true;
|
||||||
|
# default =
|
||||||
|
# builtins.substring 0 1 (lib.toUpper config.catppuccin.flavor)
|
||||||
|
# + builtins.substring 1 (-1) config.catppuccin.flavor;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
userOptions = {
|
userOptions = {
|
||||||
name = lib.mkOption {
|
name = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
readOnly = false;
|
readOnly = true;
|
||||||
default = "Sean Kovacs";
|
default = "Sean Kovacs";
|
||||||
};
|
};
|
||||||
username = lib.mkOption {
|
username = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
readOnly = false;
|
readOnly = true;
|
||||||
default = "sckova";
|
default = "sckova";
|
||||||
};
|
};
|
||||||
email = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
readOnly = false;
|
|
||||||
default = "kovacsmillio@gmail.com";
|
|
||||||
};
|
|
||||||
hostname = lib.mkOption {
|
hostname = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
|
|
@ -105,36 +116,32 @@
|
||||||
default = pkgs.noto-fonts-color-emoji;
|
default = pkgs.noto-fonts-color-emoji;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
cursor = {
|
cursor =
|
||||||
name = lib.mkOption {
|
let
|
||||||
type = lib.types.str;
|
attrName = "mocha" + "Peach";
|
||||||
readOnly = true;
|
in
|
||||||
default = config.colors.scheme;
|
{
|
||||||
|
name = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
readOnly = true;
|
||||||
|
default = "catppuccin-mocha-peach-cursors";
|
||||||
|
};
|
||||||
|
package = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
readOnly = true;
|
||||||
|
default = pkgs.catppuccin-cursors.${attrName};
|
||||||
|
};
|
||||||
|
size = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
readOnly = true;
|
||||||
|
default = 24;
|
||||||
|
};
|
||||||
|
path = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
readOnly = true;
|
||||||
|
default = "${pkgs.catppuccin-cursors.${attrName}}/share/icons";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
package = lib.mkOption {
|
|
||||||
type = lib.types.package;
|
|
||||||
readOnly = true;
|
|
||||||
default =
|
|
||||||
with config.scheme;
|
|
||||||
(pkgs.bibata-cursor.override {
|
|
||||||
themeName = config.colors.scheme;
|
|
||||||
baseColor = withHashtag.${config.colors.accent};
|
|
||||||
outlineColor = withHashtag.base00;
|
|
||||||
watchBackgroundColor = withHashtag.base11;
|
|
||||||
cursorSizes = "16 20 22 24 28 32 40 48 56 64 72 80 88 96";
|
|
||||||
});
|
|
||||||
};
|
|
||||||
size = lib.mkOption {
|
|
||||||
type = lib.types.int;
|
|
||||||
readOnly = true;
|
|
||||||
default = 24;
|
|
||||||
};
|
|
||||||
path = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
readOnly = true;
|
|
||||||
default = "${config.userOptions.cursor.package}/share/icons/${config.colors.scheme}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# isDark = lib.mkOption {
|
# isDark = lib.mkOption {
|
||||||
# type = lib.types.bool;
|
# type = lib.types.bool;
|
||||||
# readOnly = true;
|
# readOnly = true;
|
||||||
|
|
|
||||||
|
|
@ -1,103 +0,0 @@
|
||||||
{
|
|
||||||
pkgs ? import <nixpkgs> { },
|
|
||||||
themeName ? "bibata",
|
|
||||||
baseColor ? "#000000",
|
|
||||||
outlineColor ? "#FFFFFF",
|
|
||||||
watchBackgroundColor ? "",
|
|
||||||
cursorSizes ? "24",
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
version = "2.0.7";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "ful1e5";
|
|
||||||
repo = "Bibata_Cursor";
|
|
||||||
rev = "v${version}";
|
|
||||||
hash = "sha256-kIKidw1vditpuxO1gVuZeUPdWBzkiksO/q2R/+DUdEc=";
|
|
||||||
};
|
|
||||||
|
|
||||||
yarnOfflineCache = pkgs.fetchYarnDeps {
|
|
||||||
yarnLock = "${src}/yarn.lock";
|
|
||||||
hash = "sha256-EpWIGoFFokmzRML2r/dCM+TImOCtii8mifLgnLKdUMY=";
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "bibata-${themeName}-cursor";
|
|
||||||
inherit version src;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
yarn
|
|
||||||
nodejs
|
|
||||||
fixup-yarn-lock
|
|
||||||
python3Packages.clickgen
|
|
||||||
autoPatchelfHook
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
# Required to satisfy dynamic linking for prebuilt JS native modules (like resvg-js)
|
|
||||||
stdenv.cc.cc.lib
|
|
||||||
];
|
|
||||||
|
|
||||||
configurePhase = ''
|
|
||||||
runHook preConfigure
|
|
||||||
|
|
||||||
export HOME=$(mktemp -d)
|
|
||||||
|
|
||||||
echo "1. Setup offline yarn cache"
|
|
||||||
yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
|
|
||||||
fixup-yarn-lock yarn.lock
|
|
||||||
|
|
||||||
echo "2. Install node_modules offline"
|
|
||||||
yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
|
|
||||||
patchShebangs node_modules/
|
|
||||||
|
|
||||||
rm -rf node_modules/@resvg/resvg-js-linux-*-musl
|
|
||||||
|
|
||||||
echo "3. Patch prebuilt node binaries (like resvg) so they can run in the Nix sandbox"
|
|
||||||
autoPatchelf node_modules/
|
|
||||||
|
|
||||||
# https://github.com/ful1e5/cbmp/issues/4
|
|
||||||
echo "4. Patch 'ora' library to prevent Nix sandbox hangs"
|
|
||||||
sed -i 's/this.#isEnabled = .*/this.#isEnabled = false;/g' node_modules/ora/index.js
|
|
||||||
|
|
||||||
runHook postConfigure
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
runHook preBuild
|
|
||||||
|
|
||||||
echo "Splitting SVGs to render across $NIX_BUILD_CORES cores..."
|
|
||||||
|
|
||||||
echo "1. Distribute SVGs evenly into chunk directories"
|
|
||||||
if [ -n "${watchBackgroundColor}" ]; then
|
|
||||||
./node_modules/.bin/cbmp -d "svg" -o "bitmaps/${themeName}" -bc "${baseColor}" -oc "${outlineColor}" -wc "${watchBackgroundColor}"
|
|
||||||
else
|
|
||||||
./node_modules/.bin/cbmp -d "svg" -o "bitmaps/${themeName}" -bc "${baseColor}" -oc "${outlineColor}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Rendering complete. Building XCursor theme..."
|
|
||||||
|
|
||||||
echo "4. Build the final cursors"
|
|
||||||
ctgen configs/normal/x.build.toml -s ${cursorSizes} -p x11 -d "bitmaps/${themeName}" -n "${themeName}" -c "${themeName} cursors"
|
|
||||||
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
install -dm 0755 $out/share/icons
|
|
||||||
cp -r themes/${themeName} $out/share/icons/
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
|
||||||
description = "Custom colored Bibata Cursor theme built from source";
|
|
||||||
homepage = "https://github.com/ful1e5/Bibata_Cursor";
|
|
||||||
license = licenses.gpl3;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
56
packages/catppuccin-discord/default.nix
Normal file
56
packages/catppuccin-discord/default.nix
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchYarnDeps,
|
||||||
|
yarn,
|
||||||
|
nodejs,
|
||||||
|
fixup-yarn-lock,
|
||||||
|
nodePackages,
|
||||||
|
catppuccin-discord-git,
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "catppuccin-discord";
|
||||||
|
version = "unstable-${catppuccin-discord-git.rev}";
|
||||||
|
|
||||||
|
src = catppuccin-discord-git;
|
||||||
|
|
||||||
|
yarnOfflineCache = fetchYarnDeps {
|
||||||
|
yarnLock = "${src}/yarn.lock";
|
||||||
|
hash = "sha256-BhE3aKyA/LBErjWx+lbEVb/CIXhqHkXbV+9U2djIBhs=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
yarn
|
||||||
|
nodejs
|
||||||
|
fixup-yarn-lock
|
||||||
|
nodePackages.sass
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace package.json \
|
||||||
|
--replace-fail "--no-charset --no-source-map" ""
|
||||||
|
'';
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
export HOME=$TMPDIR
|
||||||
|
yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
|
||||||
|
fixup-yarn-lock yarn.lock
|
||||||
|
yarn install --offline --frozen-lockfile --ignore-scripts --ignore-platform
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
yarn --offline release
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/catppuccin-discord
|
||||||
|
cp -r dist/dist/* $out/share/catppuccin-discord/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Soothing pastel theme for Discord";
|
||||||
|
homepage = "https://github.com/catppuccin/discord";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
platforms = lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
||||||
51
packages/kvlibadwaita/default.nix
Normal file
51
packages/kvlibadwaita/default.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenvNoCC,
|
||||||
|
kvlibadwaita-git,
|
||||||
|
colorScheme ? null,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenvNoCC.mkDerivation {
|
||||||
|
pname = "kvlibadwaita";
|
||||||
|
version = "git";
|
||||||
|
|
||||||
|
# Pulls from the flake-provided git variable
|
||||||
|
src = kvlibadwaita-git;
|
||||||
|
|
||||||
|
# We take the colors as an input but do nothing with them yet per your instructions.
|
||||||
|
# They are passed into the derivation environment just in case, but unused for now.
|
||||||
|
passthru = {
|
||||||
|
inherit colorScheme;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Standard phases are skipped for pure file-copying derivations to save time
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
# Recreate the exact requested directory structure in the output
|
||||||
|
mkdir -p $out/src/Colors
|
||||||
|
mkdir -p $out/src/KvLibadwaita
|
||||||
|
|
||||||
|
# Export Colors
|
||||||
|
cp "src/Colors/Libadwaita Dark.colors" "$out/src/Colors/"
|
||||||
|
cp "src/Colors/Libadwaita Light.colors" "$out/src/Colors/"
|
||||||
|
|
||||||
|
# Export KvLibadwaita files
|
||||||
|
cp "src/KvLibadwaita/KvLibadwaita.kvconfig" "$out/src/KvLibadwaita/"
|
||||||
|
cp "src/KvLibadwaita/KvLibadwaita.svg" "$out/src/KvLibadwaita/"
|
||||||
|
cp "src/KvLibadwaita/KvLibadwaitaDark.kvconfig" "$out/src/KvLibadwaita/"
|
||||||
|
cp "src/KvLibadwaita/KvLibadwaitaDark.svg" "$out/src/KvLibadwaita/"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Libadwaita theme for Kvantum";
|
||||||
|
homepage = "https://github.com/GabePoel/kvlibadwaita"; # Update if pointing to a specific fork
|
||||||
|
license = licenses.gpl3Only;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,15 @@
|
||||||
final: prev: {
|
final: prev: {
|
||||||
spotify-webapp = final.callPackage ./spotify-webapp { };
|
spotify-webapp = final.callPackage ./spotify-webapp { };
|
||||||
bibata-cursor = final.callPackage ./bibata-cursor { };
|
|
||||||
|
|
||||||
openmw-unstable = prev.openmw.overrideAttrs (oldAttrs: {
|
catppuccin-discord = final.callPackage ./catppuccin-discord {
|
||||||
|
inherit (final) catppuccin-discord-git;
|
||||||
|
};
|
||||||
|
|
||||||
|
kvlibadwaita = final.callPackage ./kvlibadwaita {
|
||||||
|
inherit (final) kvlibadwaita-git;
|
||||||
|
};
|
||||||
|
|
||||||
|
openmw = prev.openmw.overrideAttrs (oldAttrs: {
|
||||||
pname = "openmw";
|
pname = "openmw";
|
||||||
src = final.openmw-git;
|
src = final.openmw-git;
|
||||||
version = "${final.openmw-git.rev}";
|
version = "${final.openmw-git.rev}";
|
||||||
|
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
#ENC[AES256_GCM,data:TggQPAlRHvMKs5nMF7arHHoXjj6+1c0n1DuIS5UFXuRob9E2AHn3JCObcPW/IH0JOcg=,iv:PFDAr1ZQMu158TglCPFqK548LfOtYHT+7zon83JN8IY=,tag:72fhZeqDG7yK+pv1k330zA==,type:comment]
|
|
||||||
searxng_secret: ENC[AES256_GCM,data:j/PY84sAXdcP/WaekjhT+wYDa1Q9OBWchrAUKpW7ygSEMqbiIx5i/bmjyqjifnZqKvy/hgF/SA2ZbFKsQ5jjpQ==,iv:8Sv9WTjO+Vkrgmd+V6l7vdMPPtjBVkWfeG/DRsbhQYE=,tag:jc3HWlyAUUmkzZMnv8Kbmw==,type:str]
|
|
||||||
#ENC[AES256_GCM,data:HBJEtuvZUeUD51q8/d+d6lQ4Yke1RfHDqo4P9l21mbvF2rrHp0KRNH0=,iv:cNpmj145TKmF/bNQN3wFeAXoqWkLxu0bqvEhydRQZcs=,tag:x02R5lfpYUMZw3eSRA5MIA==,type:comment]
|
|
||||||
rclone_synology: ENC[AES256_GCM,data:2k9aYyXMDDYt740VUUvvTSUQ+ybK3PIkBetqw5wmCXYEumk=,iv:J3ZFY3iX7OHoriJNHbmCYHglwNeh+T1UP9q608wAXGU=,tag:QmyVZQiQzBhoB9jkOiruhw==,type:str]
|
|
||||||
#ENC[AES256_GCM,data:CvsKAAXJQWM8t5bc0eInokZr,iv:YpEJYqyDNGydfrUBoLeUyJsnai/jMAo0PojRmpVPmN8=,tag:9DoQE+Wic5OnWcGIZNFsIg==,type:comment]
|
|
||||||
sckova_password: ENC[AES256_GCM,data:JgXq8TyCGI072g==,iv:kPme4bkmAfj+np32LoAcDWoQA2qFnTdqnyTSwB2TvBk=,tag:hAPQ+dWW+7QstyEdvSvpGw==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- recipient: age1k9zp37p9sejvpvwu688t7jkl8utkugrsch7a9ahufpq7uhj609gqsd3wka
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTDA0NVNWZEcwb0ltL2sy
|
|
||||||
aExnSzNJV1NZS3M1N2Q4YlJ4VzN6T0g5dWd3CmY5STFBTW9DdjV3bStpTlkwdDNj
|
|
||||||
V3lUT0Rpc0tJb0RiNXd1OEV2RVZVZ00KLS0tIGVna0c5Mi9lamxURmdRYVlNTndU
|
|
||||||
T2ZhWHl2RVhYMjdBSG1ERmIzWlQ3UmMKYNtmkBicEaYDKteBEixZ9JHDiIoQsMOr
|
|
||||||
V+31mcG0qeGn0HBFyJoWSxJsyXKdM42qzz9P70XQPHqiXmMz3zuniQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1dx9rwrkhqj8sfr8vdfsgrqjwqefzmgtugsp6ykklpudfw4hcnuyqx9x20e
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3VFdBVytyY29zckFQVE1v
|
|
||||||
dllxbDUxR2h0Qy9nMlUxN1VPZHlHVkhuVzNRClpYWkREUnZzUTBvZjlzQnI4TnFr
|
|
||||||
Y2xNRngwNmpXMVFoa1FzYnpiTE5FcXcKLS0tIHRWY3RsK3NXOS9UakNPV2lKWERo
|
|
||||||
ZEpqaVBCc0J1Ui9pZE1wOUkxN2NPNUkKmrT2o9AgJAQsPZkZEoeNy2VbqgiNE+PW
|
|
||||||
P9YutsxmnbCwiLt4GItq0ZSDxRr2mPcLOZcJZ3M7MFoka36peXilUg==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1ygykyl3xyfhkt0x46frqnef4f39w0cnu6d98nf0efl43f706uqtsnsx5nd
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdGRYQ3Z1YXdZaFk1eG1n
|
|
||||||
bFRBMXZOc0hnQjRWaGRaSTBqS1NoUUFjOG1nClhFd2ZEUTQ2WFIrTzVrbU5NOUpE
|
|
||||||
VDBYSmdVTk1RT1g5dXB3eXl4YklUMEUKLS0tIEZGMEw3VWpQVXYwajFJeFQ4cjdj
|
|
||||||
anJmOWpjR0w1c3RBWC9kUVFpRlNRWWcKqSxAQIOdnDKLiDorI7NZpwweLiNftQd/
|
|
||||||
G+kIZPqLmGt7LxuYfvazAZ0qha9UJ9/IWiiY4goc7THF8fPTNhbwwQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2026-04-03T13:51:22Z"
|
|
||||||
mac: ENC[AES256_GCM,data:jQtzEZWE6csGTQE939UAl3xA6ecqLD4aGRqw7KF7GqW0w3FTfC59uel1xM2Nl91Bg42TzYsO9WB3rox5daFAcUgoQE0TNMAbH+w/vkVc3NoJHrWQlV69j8zUAAiNgbAx30l1MIjLS/zJ6Xlt+jkj4FtPfK0d84V/O2KwCBAJ+uM=,iv:+u3muRmMuZJUcUNHJDOqzytxgK60YxxmawwQeUTm9aU=,tag:mR8lTA7dgfOqYqUvCAuYFQ==,type:str]
|
|
||||||
pgp:
|
|
||||||
- created_at: "2026-04-03T20:00:57Z"
|
|
||||||
enc: |-
|
|
||||||
-----BEGIN PGP MESSAGE-----
|
|
||||||
|
|
||||||
hF4DrD+TWkWMG9QSAQdA0UdBBAWr7EsXODCWUq6xwueaGar9NX2czQM2r5ALyl8w
|
|
||||||
2sG5IY/tj3baCwZwljtK7BzhkMfkY9dfW9a9pkZ/ptWYQLAVmGJTFLDo/tXFl0ol
|
|
||||||
0lwBFmeeDYqoGb/p4Vzu4bWNziy0pVt6tgcaQmtrPW576SWJ2hg2O5GwKX2yWPu4
|
|
||||||
iotgvTARkLWiXkKxyTYhWDQVmL4ue1AsNVxGI6NHaosVwgcR+O88ZGnyoc7g9Q==
|
|
||||||
=+F0l
|
|
||||||
-----END PGP MESSAGE-----
|
|
||||||
fp: 7622FD7E6AB9F1E9D2CEFE2700F325187C68651A
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.12.2
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# nix-shell -p openssl --run 'openssl rand -hex 32'
|
|
||||||
searxng_secret:
|
|
||||||
# echo 'secretpassword' | rclone obscure -
|
|
||||||
rclone_synology:
|
|
||||||
# sckova's password
|
|
||||||
sckova_password:
|
|
||||||
|
|
||||||
16
sops.nix
16
sops.nix
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
sops = {
|
|
||||||
defaultSopsFile = ./secrets/secrets.yaml;
|
|
||||||
defaultSopsFormat = "yaml";
|
|
||||||
secrets = {
|
|
||||||
searxng_secret = { };
|
|
||||||
rclone_synology = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -2,40 +2,45 @@
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
# the user to activate
|
environment.sessionVariables = {
|
||||||
userOptions = {
|
# this makes electron apps work per the wiki
|
||||||
name = "Sean Kovacs";
|
NIXOS_OZONE_WL = "1";
|
||||||
username = "sckova";
|
|
||||||
email = "kovacsmillio@gmail.com";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.secrets.sckova_password.neededForUsers = true;
|
|
||||||
users.users.sckova.hashedPasswordFile = config.sops.secrets.sckova_password.path;
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
plymouth.enable = true;
|
plymouth = {
|
||||||
plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png";
|
enable = true;
|
||||||
|
logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png";
|
||||||
|
};
|
||||||
|
|
||||||
loader = {
|
loader = {
|
||||||
timeout = 0;
|
timeout = 3;
|
||||||
systemd-boot.enable = true;
|
# systemd-boot = {
|
||||||
# limine = {
|
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# maxGenerations = 10;
|
# consoleMode = lib.mkForce "auto";
|
||||||
# style = {
|
# configurationLimit = 10;
|
||||||
# wallpapers = [ ];
|
|
||||||
# wallpaperStyle = "stretched";
|
|
||||||
# backdrop = "#1e1e2e";
|
|
||||||
# interface = {
|
|
||||||
# branding = "kova's nixos!";
|
|
||||||
# brandingColor = 5;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
# };
|
||||||
|
limine = {
|
||||||
|
enable = true;
|
||||||
|
maxGenerations = 10;
|
||||||
|
extraConfig = ''
|
||||||
|
timeout: 3
|
||||||
|
'';
|
||||||
|
style = {
|
||||||
|
wallpapers = [ ];
|
||||||
|
wallpaperStyle = "stretched";
|
||||||
|
backdrop = "#1e1e2e";
|
||||||
|
interface = {
|
||||||
|
branding = "kova's nixos!";
|
||||||
|
brandingColor = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"quiet"
|
"quiet"
|
||||||
|
|
@ -48,146 +53,11 @@
|
||||||
];
|
];
|
||||||
consoleLogLevel = 0;
|
consoleLogLevel = 0;
|
||||||
initrd.verbose = false;
|
initrd.verbose = false;
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
|
||||||
v4l2loopback
|
|
||||||
];
|
|
||||||
extraModprobeConfig = ''
|
|
||||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
networking.networkmanager.enable = true;
|
||||||
gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
pinentryPackage = pkgs.pinentry-curses;
|
|
||||||
};
|
|
||||||
niri.enable = true;
|
|
||||||
niri.package = pkgs.niri-unstable;
|
|
||||||
dconf.enable = true;
|
|
||||||
dconf.profiles.user = {
|
|
||||||
databases = [
|
|
||||||
{
|
|
||||||
# breaks user-level indirect config of dconf
|
|
||||||
# lockAll = true;
|
|
||||||
settings = {
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
clock-format = "12h";
|
|
||||||
clock-show-weekday = true;
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
|
||||||
button-layout = ":";
|
|
||||||
action-double-click-titlebar = "'none'";
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/media-handling" = {
|
|
||||||
automount = false;
|
|
||||||
automount-open = false;
|
|
||||||
autorun-never = true;
|
|
||||||
};
|
|
||||||
"org/gnome/settings-daemon/plugins/power" = {
|
|
||||||
sleep-inactive-ac-type = "nothing";
|
|
||||||
};
|
|
||||||
"org/gnome/mutter" = {
|
|
||||||
edge-tiling = true;
|
|
||||||
dynamic-workspaces = true;
|
|
||||||
experimental-features = [ "variable-refresh-rate" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
displayManager = {
|
|
||||||
autoLogin.enable = true;
|
|
||||||
autoLogin.user = config.userOptions.username;
|
|
||||||
defaultSession = "niri";
|
|
||||||
sddm.enable = true;
|
|
||||||
sddm.wayland.enable = true;
|
|
||||||
};
|
|
||||||
gnome.gnome-keyring.enable = true;
|
|
||||||
libinput.enable = true;
|
|
||||||
printing.enable = true;
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
systemWide = true;
|
|
||||||
wireplumber.enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
udisks2.enable = true;
|
|
||||||
gvfs.enable = true;
|
|
||||||
upower.enable = true;
|
|
||||||
power-profiles-daemon.enable = true;
|
|
||||||
openssh.enable = true;
|
|
||||||
glances.enable = true;
|
|
||||||
glances.package = pkgs.glances.overrideAttrs (oldAttrs: {
|
|
||||||
disabledTests = (oldAttrs.disabledTests or [ ]) ++ [
|
|
||||||
"test_phys_core_returns_int"
|
|
||||||
];
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
git
|
|
||||||
firefoxpwa
|
|
||||||
(wrapOBS {
|
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
wlrobs
|
|
||||||
obs-backgroundremoval
|
|
||||||
obs-pipewire-audio-capture
|
|
||||||
];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
security = {
|
|
||||||
pam.services = {
|
|
||||||
niri.enableGnomeKeyring = config.services.gnome.gnome-keyring.enable;
|
|
||||||
swaylock = {
|
|
||||||
name = "swaylock";
|
|
||||||
enableGnomeKeyring = config.services.gnome.gnome-keyring.enable;
|
|
||||||
gnupg.enable = true;
|
|
||||||
gnupg.noAutostart = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sudo.wheelNeedsPassword = false;
|
|
||||||
polkit.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
firewall.enable = false;
|
|
||||||
networkmanager.enable = true;
|
|
||||||
hosts = {
|
|
||||||
"192.168.1.64" = [
|
|
||||||
"kube1"
|
|
||||||
"kube1.local"
|
|
||||||
"kube1.attlocal.net"
|
|
||||||
];
|
|
||||||
"192.168.1.65" = [
|
|
||||||
"kube2"
|
|
||||||
"kube2.local"
|
|
||||||
"kube2.attlocal.net"
|
|
||||||
];
|
|
||||||
"192.168.1.66" = [
|
|
||||||
"kube3"
|
|
||||||
"kube3.local"
|
|
||||||
"kube3.attlocal.net"
|
|
||||||
"kube3.taila30609.ts.net"
|
|
||||||
];
|
|
||||||
"192.168.1.67" = [
|
|
||||||
"kube4"
|
|
||||||
"kube4.local"
|
|
||||||
"kube4.attlocal.net"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
documentation.man.enable = true;
|
|
||||||
hardware.graphics.enable = true;
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
time.timeZone = "America/New_York";
|
time.timeZone = "America/New_York";
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
|
|
@ -202,6 +72,108 @@
|
||||||
LC_TIME = "en_US.UTF-8";
|
LC_TIME = "en_US.UTF-8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Enable OpenGL
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.niri-unstable;
|
||||||
|
};
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
security.pam.services.niri.enableGnomeKeyring = true;
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
|
programs.dconf.profiles.user = {
|
||||||
|
databases = [
|
||||||
|
{
|
||||||
|
# breaks user-level indirect config of dconf
|
||||||
|
# lockAll = true;
|
||||||
|
settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
clock-format = "12h";
|
||||||
|
clock-show-weekday = true;
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
button-layout = ":";
|
||||||
|
action-double-click-titlebar = "'none'";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/media-handling" = {
|
||||||
|
automount = false;
|
||||||
|
automount-open = false;
|
||||||
|
autorun-never = true;
|
||||||
|
};
|
||||||
|
"org/gnome/settings-daemon/plugins/power" = {
|
||||||
|
sleep-inactive-ac-type = "nothing";
|
||||||
|
};
|
||||||
|
"org/gnome/mutter" = {
|
||||||
|
edge-tiling = true;
|
||||||
|
dynamic-workspaces = true;
|
||||||
|
experimental-features = [ "variable-refresh-rate" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# aerothemeplasma = {
|
||||||
|
# enable = true;
|
||||||
|
# plasma.enable = true;
|
||||||
|
# fonts.enable = false;
|
||||||
|
# plymouth.enable = false;
|
||||||
|
# sddm.enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
services = {
|
||||||
|
# displayManager = {
|
||||||
|
# gdm.enable = true;
|
||||||
|
# defaultSession = "niri";
|
||||||
|
# };
|
||||||
|
desktopManager.plasma6.enable = true;
|
||||||
|
displayManager = {
|
||||||
|
sddm.enable = true;
|
||||||
|
# defaultSession = "aerothemeplasma";
|
||||||
|
};
|
||||||
|
|
||||||
|
libinput.enable = true;
|
||||||
|
printing.enable = true;
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
udisks2.enable = true;
|
||||||
|
gvfs.enable = true;
|
||||||
|
|
||||||
|
upower.enable = true;
|
||||||
|
power-profiles-daemon.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
git
|
||||||
|
firefoxpwa
|
||||||
|
distrobox
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
pinentryPackage = pkgs.pinentry-curses;
|
||||||
|
};
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
|
documentation.man = {
|
||||||
|
enable = true;
|
||||||
|
generateCaches = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
gamescope = {
|
|
||||||
enable = true;
|
|
||||||
capSysNice = false;
|
|
||||||
args = [
|
|
||||||
"--output-width 3840"
|
|
||||||
"--nested-width 3840"
|
|
||||||
"--output-height 2160"
|
|
||||||
"--nested-height 2160"
|
|
||||||
"--expose-wayland"
|
|
||||||
"--fullscreen"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
gamemode.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
ananicy = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.ananicy-cpp;
|
|
||||||
rulesProvider = pkgs.ananicy-cpp;
|
|
||||||
extraRules = [
|
|
||||||
{
|
|
||||||
"name" = "gamescope";
|
|
||||||
"nice" = -20;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -8,16 +8,12 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
ddcutil
|
ddcutil
|
||||||
mangohud
|
mangohud
|
||||||
|
(bottles.override { removeWarningPopup = true; })
|
||||||
openrgb
|
openrgb
|
||||||
p7zip
|
|
||||||
protontricks
|
|
||||||
zenity
|
|
||||||
wineWow64Packages.stable
|
|
||||||
wineWow64Packages.waylandFull
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# enable ddcutil
|
# enable ddcutil
|
||||||
users.users.${config.userOptions.username}.extraGroups = [ "i2c" ];
|
users.users.sckova.extraGroups = [ "i2c" ];
|
||||||
boot.extraModulePackages = [ config.boot.kernelPackages.ddcci-driver ];
|
boot.extraModulePackages = [ config.boot.kernelPackages.ddcci-driver ];
|
||||||
boot.kernelModules = [
|
boot.kernelModules = [
|
||||||
"i2c-dev"
|
"i2c-dev"
|
||||||
|
|
@ -40,6 +36,10 @@
|
||||||
boot.loader.limine.maxGenerations = lib.mkForce 100;
|
boot.loader.limine.maxGenerations = lib.mkForce 100;
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
gamescope = {
|
||||||
|
enable = true;
|
||||||
|
capSysNice = false;
|
||||||
|
};
|
||||||
steam = {
|
steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
gamescopeSession.enable = true;
|
gamescopeSession.enable = true;
|
||||||
|
|
@ -48,11 +48,38 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.ananicy = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.ananicy-cpp;
|
||||||
|
rulesProvider = pkgs.ananicy-cpp;
|
||||||
|
extraRules = [
|
||||||
|
{
|
||||||
|
"name" = "gamescope";
|
||||||
|
"nice" = -20;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
services.xserver.videoDrivers = [
|
services.xserver.videoDrivers = [
|
||||||
"modesetting"
|
"modesetting"
|
||||||
"nvidia"
|
"nvidia"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.displayManager = {
|
||||||
|
autoLogin = {
|
||||||
|
enable = false;
|
||||||
|
user = "sckova";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
loginShellInit = ''
|
||||||
|
[[ "$(tty)" = "/dev/tty1" ]] && ./gs.sh
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = false;
|
||||||
|
|
@ -60,6 +87,13 @@
|
||||||
open = false;
|
open = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.sunshine = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
capSysAdmin = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
# virtualization settings
|
# virtualization settings
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
|
|
@ -75,21 +109,14 @@
|
||||||
virtualisation.hypervGuest.enable = true;
|
virtualisation.hypervGuest.enable = true;
|
||||||
boot.blacklistedKernelModules = [ "hyperv_fb" ];
|
boot.blacklistedKernelModules = [ "hyperv_fb" ];
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = [
|
||||||
|
"aarch64-linux"
|
||||||
|
"riscv64-linux"
|
||||||
|
];
|
||||||
|
|
||||||
# i don't even remember what this does or why i added it
|
# i don't even remember what this does or why i added it
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"
|
"L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"
|
||||||
"d /mnt/storage 0775 ${config.userOptions.username} users - -"
|
"d /mnt/storage 0775 sckova users - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
services.factorio = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
requireUserVerification = false;
|
|
||||||
lan = true;
|
|
||||||
port = 25565;
|
|
||||||
# bind = "[::]"; # support IPv6
|
|
||||||
game-name = "kova's minecraft";
|
|
||||||
game-password = "ThisIsASuperSecurePasswordThatNobodyWillGuess";
|
|
||||||
admins = [ config.userOptions.username ];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
27
system/hosts/alien/gs.sh
Normal file
27
system/hosts/alien/gs.sh
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -xeuo pipefail
|
||||||
|
|
||||||
|
gamescopeArgs=(
|
||||||
|
--adaptive-sync # VRR support
|
||||||
|
--hdr-enabled
|
||||||
|
--mangoapp # performance overlay
|
||||||
|
--rt
|
||||||
|
--steam
|
||||||
|
)
|
||||||
|
steamArgs=(
|
||||||
|
-pipewire-dmabuf
|
||||||
|
-tenfoot
|
||||||
|
)
|
||||||
|
mangoConfig=(
|
||||||
|
cpu_temp
|
||||||
|
gpu_temp
|
||||||
|
ram
|
||||||
|
vram
|
||||||
|
)
|
||||||
|
mangoVars=(
|
||||||
|
MANGOHUD=1
|
||||||
|
MANGOHUD_CONFIG="$(IFS=,; echo "${mangoConfig[*]}")"
|
||||||
|
)
|
||||||
|
|
||||||
|
export "${mangoVars[@]}"
|
||||||
|
exec gamescope "${gamescopeArgs[@]}" -- steam "${steamArgs[@]}"
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 5 KiB |
|
|
@ -1,8 +1,7 @@
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
seamless-asahi-plymouth,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
@ -14,43 +13,10 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(final: prev: {
|
|
||||||
uboot-asahi = prev.uboot-asahi.overrideAttrs (old: {
|
|
||||||
postConfigure = (old.postConfigure or "") + ''
|
|
||||||
cat >> .config <<'EOF'
|
|
||||||
# CONFIG_VIDEO_LOGO is not set
|
|
||||||
CONFIG_DISPLAY_BOARDINFO_LATE=n
|
|
||||||
CONFIG_BOOTDELAY=0
|
|
||||||
CONFIG_SILENT_CONSOLE=y
|
|
||||||
CONFIG_PREBOOT="setenv silent 1"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Regenerate the configuration with new flags
|
|
||||||
make olddefconfig
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelParams = [ "appledrm.show_notch=1" ];
|
kernelParams = [ "appledrm.show_notch=1" ];
|
||||||
# thank you to u/douv:
|
m1n1CustomLogo = "${asahi-artwork}/logos/png_256/AsahiLinux_logomark.png";
|
||||||
# https://www.reddit.com/r/AsahiLinux/comments/1sb8cby/retro_boot_logo/
|
plymouth.logo = lib.mkForce "${asahi-artwork}/logos/png_64/AsahiLinux_logomark.png";
|
||||||
m1n1CustomLogo = ./apple-rainbow.png;
|
|
||||||
plymouth = {
|
|
||||||
enable = true;
|
|
||||||
theme = "seamless-asahi";
|
|
||||||
themePackages = [
|
|
||||||
(seamless-asahi-plymouth.packages.${pkgs.system}.default.override {
|
|
||||||
logo = ./apple-rainbow.png;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
extraConfig = ''
|
|
||||||
DeviceScale=1
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.dconf.profiles.gdm.databases = [
|
programs.dconf.profiles.gdm.databases = [
|
||||||
|
|
@ -60,19 +26,6 @@ in
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
# environment.systemPackages = with pkgs; [
|
|
||||||
# # note for wine support (should be done by 26.05 release):
|
|
||||||
# # https://github.com/NixOS/nixpkgs/issues/412458
|
|
||||||
# muvm
|
|
||||||
# fex
|
|
||||||
# ];
|
|
||||||
|
|
||||||
services.logind.settings.Login = {
|
|
||||||
HandleSuspendKey = "ignore";
|
|
||||||
HandlePowerKey = "lock";
|
|
||||||
HandleLidSwitch = "lock";
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.docker = {
|
virtualisation.docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# Use the rootless mode - run Docker daemon as non-root user
|
# Use the rootless mode - run Docker daemon as non-root user
|
||||||
|
|
@ -81,7 +34,7 @@ in
|
||||||
setSocketVariable = true;
|
setSocketVariable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
users.users.${config.userOptions.username}.extraGroups = [ "docker" ];
|
users.users.sckova.extraGroups = [ "docker" ];
|
||||||
|
|
||||||
hardware.asahi = {
|
hardware.asahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -99,4 +52,6 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
17
system/hosts/vm-generic/default.nix
Normal file
17
system/hosts/vm-generic/default.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ catppuccin, ... }:
|
||||||
|
{
|
||||||
|
home-manager.users.sckova = {
|
||||||
|
imports = [ catppuccin.homeModules.catppuccin ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.spice-vdagentd.enable = true;
|
||||||
|
|
||||||
|
virtualisation.vmVariant = {
|
||||||
|
virtualisation = {
|
||||||
|
memorySize = 8192;
|
||||||
|
cores = 6;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
}
|
||||||
|
|
@ -1,20 +1,22 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
sops.templates."searxng.env".content = ''
|
|
||||||
SEARXNG_SECRET=${config.sops.placeholder.searxng_secret}
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.searx = {
|
services.searx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
redisCreateLocally = true;
|
redisCreateLocally = true;
|
||||||
environmentFile = config.sops.templates."searxng.env".path;
|
|
||||||
settings = {
|
settings = {
|
||||||
server = {
|
server = {
|
||||||
port = 5364;
|
secret_key = lib.removeSuffix "\n" (
|
||||||
|
builtins.readFile (
|
||||||
|
pkgs.runCommand "gen-key" { buildInputs = [ pkgs.openssl ]; } "openssl rand -hex 32 > $out"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
port = 8080;
|
||||||
bind_address = "127.0.0.1";
|
bind_address = "127.0.0.1";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,5 @@
|
||||||
alias edit "nvim"
|
alias edit "nvim"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
documentation.man.generateCaches = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,21 +7,26 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
tailscaleWaitScript = pkgs.writeShellScript "tailscale-wait-for-ip" ''
|
||||||
|
echo "Waiting for tailscale0 to get an IP address..."
|
||||||
|
for i in {1..15}; do
|
||||||
|
if ${lib.getExe' pkgs.iproute2 "ip"} addr show dev tailscale0 2>/dev/null | ${lib.getExe' pkgs.gnugrep "grep"} -q 'inet '; then
|
||||||
|
echo "tailscale0 has IP address"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo "Attempt $i"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
echo "Warning: tailscale0 did not get IP address within 15 seconds"
|
||||||
|
exit 0
|
||||||
|
'';
|
||||||
|
in
|
||||||
{
|
{
|
||||||
systemd.services.tailscaled = {
|
systemd.services.tailscaled = {
|
||||||
serviceConfig.ExecStartPost = pkgs.writeShellScript "tailscale-wait-for-ip" ''
|
serviceConfig = {
|
||||||
echo "Waiting for tailscale0 to get an IP address..."
|
ExecStartPost = tailscaleWaitScript;
|
||||||
for i in {1..15}; do
|
};
|
||||||
if ${lib.getExe' pkgs.iproute2 "ip"} addr show dev tailscale0 2>/dev/null | ${lib.getExe' pkgs.gnugrep "grep"} -q 'inet '; then
|
|
||||||
echo "tailscale0 has IP address"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
echo "Attempt $i"
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
echo "Warning: tailscale0 did not get IP address within 15 seconds"
|
|
||||||
exit 0
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.tailscale = {
|
services.tailscale = {
|
||||||
|
|
|
||||||
|
|
@ -7,42 +7,29 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
|
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
|
||||||
(
|
(final: prev: {
|
||||||
final: prev:
|
wrapFirefox =
|
||||||
let
|
browser: opts:
|
||||||
# Determine the correct directory name based on the system architecture
|
let
|
||||||
archDir =
|
extraPrefs = (opts.extraPrefs or "") + ''
|
||||||
if final.stdenv.hostPlatform.isAarch64 then
|
lockPref("media.gmp-widevinecdm.version", "system-installed");
|
||||||
"linux_arm64"
|
lockPref("media.gmp-widevinecdm.visible", true);
|
||||||
else if final.stdenv.hostPlatform.isx86_64 then
|
lockPref("media.gmp-widevinecdm.enabled", true);
|
||||||
"linux_x64"
|
lockPref("media.gmp-widevinecdm.autoupdate", false);
|
||||||
else
|
lockPref("media.eme.enabled", true);
|
||||||
throw "Unsupported architecture for Widevine CDM";
|
lockPref("media.eme.encrypted-media-encryption-scheme.enabled", true);
|
||||||
in
|
'';
|
||||||
{
|
widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm";
|
||||||
wrapFirefox =
|
widevineOutDir = "$out/gmp-widevinecdm/system-installed";
|
||||||
browser: opts:
|
in
|
||||||
let
|
(prev.wrapFirefox browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: {
|
||||||
extraPrefs = (opts.extraPrefs or "") + ''
|
buildCommand = previousAttrs.buildCommand + ''
|
||||||
lockPref("media.gmp-widevinecdm.version", "system-installed");
|
mkdir -p "${widevineOutDir}"
|
||||||
lockPref("media.gmp-widevinecdm.visible", true);
|
ln -s "${widevineCdmDir}/_platform_specific/linux_arm64/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so"
|
||||||
lockPref("media.gmp-widevinecdm.enabled", true);
|
ln -s "${widevineCdmDir}/manifest.json" "${widevineOutDir}/manifest.json"
|
||||||
lockPref("media.gmp-widevinecdm.autoupdate", false);
|
wrapProgram "$oldExe" --set MOZ_GMP_PATH "${widevineOutDir}"
|
||||||
lockPref("media.eme.enabled", true);
|
'';
|
||||||
lockPref("media.eme.encrypted-media-encryption-scheme.enabled", true);
|
});
|
||||||
'';
|
})
|
||||||
widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm";
|
|
||||||
widevineOutDir = "$out/gmp-widevinecdm/system-installed";
|
|
||||||
in
|
|
||||||
(prev.wrapFirefox browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: {
|
|
||||||
buildCommand = previousAttrs.buildCommand + ''
|
|
||||||
mkdir -p "${widevineOutDir}"
|
|
||||||
ln -s "${widevineCdmDir}/_platform_specific/${archDir}/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so"
|
|
||||||
ln -s "${widevineCdmDir}/manifest.json" "${widevineOutDir}/manifest.json"
|
|
||||||
wrapProgram "$oldExe" --set MOZ_GMP_PATH "${widevineOutDir}"
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue