summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-03-15 22:13:15 +0100
committeradikro <adikro@disroot.org>2026-03-15 22:13:15 +0100
commit18f08bf53591f3e68043730a627889957009deb6 (patch)
tree228a31ab5489e98253e963424cd064d57dcd7a6e
parent8eb0e90219a4de87d8d476e15329e14720f091c6 (diff)
browser stuff
-rw-r--r--flake.lock409
-rw-r--r--flake.nix15
-rw-r--r--hm/editors/editors.nix2
-rw-r--r--hm/editors/nvf/nvf.nix (renamed from hm/editors/nvf.nix)28
-rw-r--r--hm/env/env.nix2
-rw-r--r--hm/env/fsel.nix16
-rw-r--r--hm/env/niri/binds.nix10
-rw-r--r--hm/env/niri/niri.nix15
-rw-r--r--hm/env/otter.nix191
-rw-r--r--hm/shell/cli.nix3
-rw-r--r--hm/shell/fish.nix21
-rw-r--r--hm/soft/browser.nix124
-rw-r--r--hm/soft/czkawka-v11.nix97
-rw-r--r--hm/soft/nixcord.nix10
-rw-r--r--hosts/desktop/configuration.nix1
-rw-r--r--hosts/desktop/home.nix2
-rw-r--r--os/srv/files.nix2
-rw-r--r--os/srv/gaming.nix6
-rw-r--r--os/srv/srv.nix1
-rw-r--r--os/srv/yggdrasil.nix14
20 files changed, 791 insertions, 178 deletions
diff --git a/flake.lock b/flake.lock
index 278e318..b6f842c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -21,6 +21,29 @@
"type": "github"
}
},
+ "fenix": {
+ "inputs": {
+ "nixpkgs": [
+ "fsel",
+ "naersk",
+ "nixpkgs"
+ ],
+ "rust-analyzer-src": "rust-analyzer-src"
+ },
+ "locked": {
+ "lastModified": 1752475459,
+ "narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=",
+ "owner": "nix-community",
+ "repo": "fenix",
+ "rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "fenix",
+ "type": "github"
+ }
+ },
"flake-compat": {
"locked": {
"lastModified": 1733328505,
@@ -38,6 +61,22 @@
"flake-compat_2": {
"flake": false,
"locked": {
+ "lastModified": 1751685974,
+ "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
+ "ref": "refs/heads/main",
+ "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
+ "revCount": 92,
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
+ }
+ },
+ "flake-compat_3": {
+ "flake": false,
+ "locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
@@ -111,9 +150,48 @@
"type": "github"
}
},
+ "flake-parts_4": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "nvf",
+ "nixpkgs"
+ ]
+ },
+ "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_5": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib_2"
+ },
+ "locked": {
+ "lastModified": 1768135262,
+ "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
"flake-utils": {
"inputs": {
- "systems": "systems_3"
+ "systems": "systems"
},
"locked": {
"lastModified": 1731533236,
@@ -129,6 +207,46 @@
"type": "github"
}
},
+ "flake-utils_2": {
+ "inputs": {
+ "systems": "systems_6"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "fsel": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "naersk": "naersk",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1773279064,
+ "narHash": "sha256-BLcSfp2aNm+0oDoHbvTufBRS2XwKqbIeUOXD8t58efE=",
+ "owner": "Mjoyufull",
+ "repo": "fsel",
+ "rev": "7b38c6223eed6e509f98e066ff89f481bd1930d7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Mjoyufull",
+ "repo": "fsel",
+ "type": "github"
+ }
+ },
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -150,6 +268,83 @@
"type": "github"
}
},
+ "home-manager_2": {
+ "inputs": {
+ "nixpkgs": [
+ "otter-launcher",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1769638001,
+ "narHash": "sha256-hGwdJ/+oo+IRo2TiWV/V8BWWptQihcdFV/olTONaHqg=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "bd9f031efc634be4b80c5090b9171cc3a9f8e49c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "mnw": {
+ "locked": {
+ "lastModified": 1770419553,
+ "narHash": "sha256-b1XqsH7AtVf2dXmq2iyRr2NC1yG7skY7Z6N2MpWHlK4=",
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "rev": "2aaffa8030d0b262176146adbb6b0e6374ce2957",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "type": "github"
+ }
+ },
+ "naersk": {
+ "inputs": {
+ "fenix": "fenix",
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1769799857,
+ "narHash": "sha256-88IFXZ7Sa1vxbz5pty0Io5qEaMQMMUPMonLa3Ls/ss4=",
+ "owner": "nix-community",
+ "repo": "naersk",
+ "rev": "9d4ed44d8b8cecdceb1d6fd76e74123d90ae6339",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "naersk",
+ "type": "github"
+ }
+ },
+ "ndg": {
+ "inputs": {
+ "nixpkgs": [
+ "nvf",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1768214250,
+ "narHash": "sha256-hnBZDQWUxJV3KbtvyGW5BKLO/fAwydrxm5WHCWMQTbw=",
+ "owner": "feel-co",
+ "repo": "ndg",
+ "rev": "a6bd3c1ce2668d096e4fdaaa03ad7f03ba1fbca8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "feel-co",
+ "ref": "refs/tags/v2.6.0",
+ "repo": "ndg",
+ "type": "github"
+ }
+ },
"neovim-nightly-overlay": {
"inputs": {
"flake-parts": "flake-parts",
@@ -159,11 +354,11 @@
]
},
"locked": {
- "lastModified": 1773446705,
- "narHash": "sha256-IBAHAaYfiR9fhR+y6ZUdM697dht26tvrWeIrTLwBs3E=",
+ "lastModified": 1773578674,
+ "narHash": "sha256-UaO8aE+qRQgglrJbhi9hzSeiP8oob9brLY3pKvq8mRA=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
- "rev": "49ff0692b00466bee56c3c72e91e4d0b8342a93b",
+ "rev": "0990740d36eb5674abfd899746ac5f51a96bf1c0",
"type": "github"
},
"original": {
@@ -175,11 +370,11 @@
"neovim-src": {
"flake": false,
"locked": {
- "lastModified": 1773431856,
- "narHash": "sha256-Oj4HMwF261bJCS/zqgmqdxoCBSeEjwghxW+1MA9Ktik=",
+ "lastModified": 1773532807,
+ "narHash": "sha256-02OCZKwq7JsocizEcvJVt1uMkQzWT6abPemKQU3y1U8=",
"owner": "neovim",
"repo": "neovim",
- "rev": "fd1e019e90e76bb3f6236210ac6287f3b8d4d47f",
+ "rev": "9084483715649194de0497310ae191e35dab8e26",
"type": "github"
},
"original": {
@@ -200,11 +395,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
- "lastModified": 1773501701,
- "narHash": "sha256-+0LBAEm8F5h9Nm+hdS07aoS1W4oTtW6c8lltb66oOYQ=",
+ "lastModified": 1773577199,
+ "narHash": "sha256-Z77lGBRlueA+igtScByJ0soMRnEy5T/XG9w661OCPaw=",
"owner": "sodiboo",
"repo": "niri-flake",
- "rev": "39ac039250a4a32bf8691405cac04864fc66a70d",
+ "rev": "afc45f69929e5b5ab23d903b24532cfe718de6be",
"type": "github"
},
"original": {
@@ -271,11 +466,11 @@
},
"nixos-hardware": {
"locked": {
- "lastModified": 1772972630,
- "narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=",
+ "lastModified": 1773533765,
+ "narHash": "sha256-qonGfS2lzCgCl59Zl63jF6dIRRpvW3AJooBGMaXjHiY=",
"owner": "NixOS",
"repo": "nixos-hardware",
- "rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72",
+ "rev": "f8e82243fd601afb9f59ad230958bd073795cbfe",
"type": "github"
},
"original": {
@@ -287,16 +482,16 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1773389992,
- "narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
+ "lastModified": 1752077645,
+ "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
+ "rev": "be9e214982e20b8310878ac2baa063a961c1bdf6",
"type": "github"
},
"original": {
"owner": "NixOS",
- "ref": "nixos-unstable",
+ "ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
@@ -316,6 +511,21 @@
"type": "github"
}
},
+ "nixpkgs-lib_2": {
+ "locked": {
+ "lastModified": 1765674936,
+ "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
"nixpkgs-nixcord": {
"locked": {
"lastModified": 1773222311,
@@ -334,11 +544,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1773375660,
- "narHash": "sha256-SEzUWw2Rf5Ki3bcM26nSKgbeoqi2uYy8IHVBqOKjX3w=",
+ "lastModified": 1773524153,
+ "narHash": "sha256-Jms57zzlFf64ayKzzBWSE2SGvJmK+NGt8Gli71d9kmY=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "3e20095fe3c6cbb1ddcef89b26969a69a1570776",
+ "rev": "e9f278faa1d0c2fc835bd331d4666b59b505a410",
"type": "github"
},
"original": {
@@ -350,6 +560,22 @@
},
"nixpkgs_2": {
"locked": {
+ "lastModified": 1773389992,
+ "narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_3": {
+ "locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS",
@@ -370,7 +596,7 @@
"nixpkgs": [
"nixpkgs"
],
- "systems": "systems"
+ "systems": "systems_2"
},
"locked": {
"lastModified": 1772402258,
@@ -386,16 +612,67 @@
"type": "github"
}
},
+ "nvf": {
+ "inputs": {
+ "flake-compat": "flake-compat_2",
+ "flake-parts": "flake-parts_4",
+ "mnw": "mnw",
+ "ndg": "ndg",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "systems": "systems_3"
+ },
+ "locked": {
+ "lastModified": 1773579076,
+ "narHash": "sha256-GRuK5zh0Z68YXIoTpHQW2CFdpZRhGJRxpYh4vPOqjt4=",
+ "owner": "NotAShelf",
+ "repo": "nvf",
+ "rev": "baf207654ca613173e9d4b5255dba52f8c0c5577",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NotAShelf",
+ "repo": "nvf",
+ "type": "github"
+ }
+ },
+ "otter-launcher": {
+ "inputs": {
+ "flake-parts": "flake-parts_5",
+ "home-manager": "home-manager_2",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "systems": "systems_4"
+ },
+ "locked": {
+ "lastModified": 1773508893,
+ "narHash": "sha256-gLLCmLv46HrBzVuRlbDz0h/vniefirl4wNWePFTkrkA=",
+ "owner": "kuokuo123",
+ "repo": "otter-launcher",
+ "rev": "9cd1793065a5f81bfdf09bf5159205203cb15815",
+ "type": "github"
+ },
+ "original": {
+ "owner": "kuokuo123",
+ "repo": "otter-launcher",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"disko": "disko",
+ "fsel": "fsel",
"home-manager": "home-manager",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"niri": "niri",
"nixcord": "nixcord",
"nixos-hardware": "nixos-hardware",
- "nixpkgs": "nixpkgs",
+ "nixpkgs": "nixpkgs_2",
"nixvim": "nixvim",
+ "nvf": "nvf",
+ "otter-launcher": "otter-launcher",
"satty": "satty",
"sops-nix": "sops-nix",
"spicetify-nix": "spicetify-nix",
@@ -403,9 +680,26 @@
"yazi": "yazi"
}
},
+ "rust-analyzer-src": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1752428706,
+ "narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=",
+ "owner": "rust-lang",
+ "repo": "rust-analyzer",
+ "rev": "591e3b7624be97e4443ea7b5542c191311aa141d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "rust-lang",
+ "ref": "nightly",
+ "repo": "rust-analyzer",
+ "type": "github"
+ }
+ },
"rust-overlay": {
"inputs": {
- "nixpkgs": "nixpkgs_2"
+ "nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1748140821,
@@ -470,11 +764,11 @@
]
},
"locked": {
- "lastModified": 1773096132,
- "narHash": "sha256-M3zEnq9OElB7zqc+mjgPlByPm1O5t2fbUrH3t/Hm5Ag=",
+ "lastModified": 1773550941,
+ "narHash": "sha256-wa/++bL2QeMUreNFBZEWluQfOYB0MnQIeGNMuaX9sfs=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "d1ff3b1034d5bab5d7d8086a7803c5a5968cd784",
+ "rev": "c469b6885f0dcd5c7c56bd935a0f08dbcd9e79e1",
"type": "github"
},
"original": {
@@ -488,14 +782,14 @@
"nixpkgs": [
"nixpkgs"
],
- "systems": "systems_2"
+ "systems": "systems_5"
},
"locked": {
- "lastModified": 1773161309,
- "narHash": "sha256-k2Un0blYBeoN8mB5HO4rqCKISb427IWy0fzCdCUIcio=",
+ "lastModified": 1773553305,
+ "narHash": "sha256-q8TGUGhP8JRc3qm/m8GeFQM9vgvqKpzQRQZXA99OhoU=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
- "rev": "61df7293cf732c7b66cce7f8b46f7017e721a6cd",
+ "rev": "1eda71bfb3ba85fbe1b3169e8515a3d8d9512113",
"type": "github"
},
"original": {
@@ -549,9 +843,54 @@
"type": "github"
}
},
+ "systems_4": {
+ "locked": {
+ "lastModified": 1689347949,
+ "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
+ "owner": "nix-systems",
+ "repo": "default-linux",
+ "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default-linux",
+ "type": "github"
+ }
+ },
+ "systems_5": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_6": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
"waybar": {
"inputs": {
- "flake-compat": "flake-compat_2",
+ "flake-compat": "flake-compat_3",
"nixpkgs": [
"nixpkgs"
]
@@ -605,18 +944,18 @@
},
"yazi": {
"inputs": {
- "flake-utils": "flake-utils",
+ "flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay_2"
},
"locked": {
- "lastModified": 1773404924,
- "narHash": "sha256-HczaRbfStxmt83umm0Eiie8ECdUELPAcoH/q/DdYpss=",
+ "lastModified": 1773559138,
+ "narHash": "sha256-ZOEABQupsxZoMureDvrS5zg59DENjrEM1oRcfA4ctk0=",
"owner": "sxyazi",
"repo": "yazi",
- "rev": "fa1ee46edce52e0d3bc0c4179b9d65ca46b1efbd",
+ "rev": "d22c96b69ced5571bd73c38585d4c48401ee3abd",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index ab0a358..69c9158 100644
--- a/flake.nix
+++ b/flake.nix
@@ -46,6 +46,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
+ nvf = {
+ url = "github:NotAShelf/nvf";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay";
inputs.nixpkgs.follows = "nixpkgs";
@@ -60,6 +65,16 @@
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
+
+ otter-launcher = {
+ url = "github:kuokuo123/otter-launcher";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ fsel = {
+ url = "github:Mjoyufull/fsel";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs =
diff --git a/hm/editors/editors.nix b/hm/editors/editors.nix
index 02c349b..1dac436 100644
--- a/hm/editors/editors.nix
+++ b/hm/editors/editors.nix
@@ -3,6 +3,6 @@
imports = [
./helix.nix
./nixvim/nixvim.nix
- # ./nvf.nix
+ ./nvf/nvf.nix
];
}
diff --git a/hm/editors/nvf.nix b/hm/editors/nvf/nvf.nix
index 6da28fe..f9ba866 100644
--- a/hm/editors/nvf.nix
+++ b/hm/editors/nvf/nvf.nix
@@ -1,8 +1,16 @@
-{ inputs, config, lib, pkgs, ... }:
+{
+ inputs,
+ config,
+ lib,
+ pkgs,
+ ...
+}:
let
cfg = config.hm.editors.nvf;
in
{
+ imports = [ inputs.nvf.homeManagerModules.default ];
+
options.hm.editors.nvf.enable = lib.mkEnableOption "enables nvf configuration framework";
config = lib.mkIf cfg.enable {
programs.nvf = {
@@ -13,13 +21,13 @@ in
viAlias = true;
vimAlias = true;
-
+
theme = {
enable = true;
name = "gruvbox";
style = "dark";
};
-
+
statusline = {
lualine = {
enable = true;
@@ -27,19 +35,19 @@ in
};
};
- autopairs.nvim-autopairs.enable = true;
+ autopairs.nvim-autopairs.enable = true;
lsp.enable = true;
- languages = {
- nix = {
- enable = true;
- format = {
+ languages = {
+ nix = {
enable = true;
- type = "alejandra";
+ format = {
+ enable = true;
+ type = "alejandra";
};
};
- clang.enable = true;
+ clang.enable = true;
};
};
};
diff --git a/hm/env/env.nix b/hm/env/env.nix
index a5caec2..6222ffb 100644
--- a/hm/env/env.nix
+++ b/hm/env/env.nix
@@ -4,6 +4,7 @@
./niri/niri.nix
./awww.nix
+ ./otter.nix
./cursor.nix
./fuzzel.nix
./screenshot.nix
@@ -12,5 +13,6 @@
./theme.nix
./waybar.nix
./mako.nix
+ ./fsel.nix
];
}
diff --git a/hm/env/fsel.nix b/hm/env/fsel.nix
new file mode 100644
index 0000000..faa7f24
--- /dev/null
+++ b/hm/env/fsel.nix
@@ -0,0 +1,16 @@
+{
+ inputs,
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+let
+ cfg = config.hm.env.fsel;
+in
+{
+ options.hm.env.fsel.enable = lib.mkEnableOption "enables fsel";
+ config = lib.mkIf cfg.enable {
+ home.packages = [ inputs.fsel.packages.${pkgs.stdenv.hostPlatform.system}.default ];
+ };
+}
diff --git a/hm/env/niri/binds.nix b/hm/env/niri/binds.nix
index 27eb583..c5c1f56 100644
--- a/hm/env/niri/binds.nix
+++ b/hm/env/niri/binds.nix
@@ -11,6 +11,15 @@ let
ssPath = "${toString config.hm.conf.xdg-dirs.storagePath}/pics/ss/$(date +%Y-%m-%d_%H-%M-%S)";
obsEnabled = config.hm.soft.obs.enable or false;
obsPass = if obsEnabled then osConfig.sops.secrets."obs/websocket_password".path else "";
+ otter-menu = pkgs.writeShellScriptBin "otter-menu" ''
+ ${pkgs.foot}/bin/footclient -a otter-launcher otter-launcher &
+ ${pkgs.niri}/bin/niri msg event-stream | while read -r line; do
+ if echo "$line" | ${pkgs.ripgrep-all}/bin/rga -aq "Window focus changed"; then
+ ${pkgs.procps}/bin/pkill -f "otter-launcher"
+ exit 0
+ fi
+ done
+ '';
in
{
# --- System & Media ---
@@ -46,6 +55,7 @@ in
"Super+B".action = spawn "librewolf";
"Super+S".action = spawn "spotify";
"Super+E".action = spawn "thunar";
+ "Super+Space".action = spawn "${otter-menu}/bin/otter-menu";
# --- Navigation: Columns & Workspaces ---
"Mod+H".action = focus-column-or-monitor-left;
diff --git a/hm/env/niri/niri.nix b/hm/env/niri/niri.nix
index 2274259..8850396 100644
--- a/hm/env/niri/niri.nix
+++ b/hm/env/niri/niri.nix
@@ -82,6 +82,21 @@ in
};
window-rules = [
{
+ matches = [ { app-id = "^otter-launcher$"; } ];
+ open-floating = true;
+
+ default-column-width.fixed = 700;
+ default-window-height.fixed = 450;
+
+ default-floating-position = {
+ relative-to = "top";
+ x = 0;
+ y = 100;
+ };
+
+ focus-ring.active.color = "#fab387";
+ }
+ {
matches = [
{ app-id = "^Bitwarden$"; }
{ app-id = "^org\\.keepassxc\\.KeePassXC$"; }
diff --git a/hm/env/otter.nix b/hm/env/otter.nix
new file mode 100644
index 0000000..b7324e0
--- /dev/null
+++ b/hm/env/otter.nix
@@ -0,0 +1,191 @@
+{
+ inputs,
+ config,
+ lib,
+ ...
+}:
+let
+ cfg = config.hm.env.otter;
+in
+{
+ imports = [ inputs.otter-launcher.homeModules.otter-launcher ];
+
+ options.hm.env.otter.enable = lib.mkEnableOption "enables otter launcher";
+ config = lib.mkIf cfg.enable {
+ programs.otter-launcher = {
+ enable = true;
+ # settings = {
+ # interface = {
+ # suggestion_mode = "list";
+ # };
+ # };
+ settingsExtra = ''
+ [general]
+ default_module = "gg" # module to run when no prefix is matched
+ empty_module = "app" # run with an empty prompt
+ exec_cmd = "sh -c" # exec command of your shell
+ # for example: "bach -c" for bash; "zsh -c" for zsh; also accept wm commands like "hyprctl dispatch exec"
+ vi_mode = false # set true to use vi keybinds, false emacs keybinds
+ esc_to_abort = true # useful for vi users
+ cheatsheet_entry = "?" # when prompted, will show a list of configured modules
+ cheatsheet_viewer = "less -R; clear" # command to show cheatsheet; through piping stdout
+ clear_screen_after_execution = false
+ loop_mode = false # don't quit after executing a module, useful with scratchpads; stderr is hidden in loop mode
+ external_editor = "vi" # if set, press ctrl+x ctrl+ee (or v in vi normal mode) to edit prompt in the specified program
+ delay_startup = 0 # sometimes the otter runs too fast even before the terminal window is ready; this slows it down by milliseconds; useful when chafa image is skewed
+ #callback = "" # if set, will run after module execution; for example, calling swaymsg to adjust window size
+
+
+ # ANSI color codes are allowed. However, \x1b should be replaced with \u001B, because the rust toml crate cannot read \x as an escaped character
+ [interface]
+ # use three quotes to write longer codes
+ header = """
+ \u001B[34;1m$USER@$(printf $HOSTNAME)\u001B[0m \u001B[31m\u001B[0m $(mpstat | awk 'FNR ==4 {print $4}')
+ """
+ header_cmd = "" # run a command and print stdout above the header
+ header_cmd_trimmed_lines = 0 # remove trailing lines from header_cmd output, in case of some programs appending excessive empty lines
+ place_holder = "otterly awesome" # at the input field
+ suggestion_mode = "list" # available options: list, hint
+ separator = " \u001B[90mmodules ────────────────" # add a line between intput field and suggestion list; only effective in list mode
+ footer = "" # add a line after suggestion list
+ suggestion_lines = 3 # 0 to disable suggestions and tab completion
+ list_prefix = " "
+ selection_prefix = "\u001B[31;1m▌ "
+ prefix_padding = 3 # format prefixes to have a uniformed width
+ default_module_message = " \u001B[33msearch\u001B[0m the internet" # shown when the default module is in use
+ empty_module_message = "" # shown when the empty module is in use
+ customized_list_order = false # false to list modules alphabetically; true to list as per the configured order in the below [[modules]] section
+ indicator_with_arg_module = "" # the sign showing whether a module should run with an argument
+ indicator_no_arg_module = ""
+ # below color options affect all modules; per-module coloring can be configured using ansi codes individually
+ prefix_color = "\u001B[33m"
+ description_color = "\u001B[39m"
+ place_holder_color = "\u001B[30m"
+ hint_color = "\u001B[30m" # suggestion color in hint mode
+ # move the interface rightward or downward
+ move_interface_right = 16
+ move_interface_down = 1
+
+
+ # overlay is a floating layer that can be printed with stdout and moved around; useful for integrating chafa images
+ [overlay]
+ overlay_cmd = """
+ """
+ overlay_height = 0
+
+
+ # modules are defined as followed
+ [[modules]]
+ description = "google search"
+ prefix = "gg"
+ cmd = "xdg-open https://www.google.com/search?q='{}'"
+ with_argument = true # if true, {} in cmd will be replaced with user input. if not explicitly set, taken as false.
+ url_encode = true # should be true when calling webpages; this ensures special characters in url being readable to browsers; taken as false if not explicitly set
+ unbind_proc = true # run cmd in a forked shell as opposed to as a child process (simply by prepending setsid -f to the configured cmd); useful for launching gui programs; taken as false if not explicitly set; try wm's exec command for unbinding if this option goes wrong (like swaymsg exec)
+
+ # fzf is needed to run below functions
+ [[modules]]
+ description = "desktop programs"
+ prefix = "app"
+ cmd = """
+ desktop_file() {
+ find /usr/share/applications -name "*.desktop" 2>/dev/null
+ find /usr/local/share/applications -name "*.desktop" 2>/dev/null
+ find "$HOME/.local/share/applications" -name "*.desktop" 2>/dev/null
+ find /var/lib/flatpak/exports/share/applications -name "*.desktop" 2>/dev/null
+ find "$HOME/.local/share/flatpak/exports/share/applications" -name "*.desktop" 2>/dev/null
+ }
+ selected="$(desktop_file | awk -F/ '{name=$NF; sub(/\\.desktop$/, "", name); print name}' | sort -k1,1 | cut -f2- | fzf --reverse --padding 1,3 --info-command 'echo -e " desktop apps ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter " " --pointer " ▌" --color "bg+:-1,pointer:1,info:8,separator:8,scrollbar:0" --prompt ' ' -m -d / --with-nth -1 )"
+ [ -z "$selected" ] && exit
+ echo "$selected" | while read -r line ; do setsid -f gtk-launch "$(basename $line)"; done
+ """
+
+ [[modules]]
+ description = "power menu (fzf)"
+ prefix = "po"
+ cmd = """
+ function power {
+ if [[ -n $1 ]]; then
+ case $1 in
+ "logout") session=`loginctl session-status | head -n 1 | awk '{print $1}'`; loginctl terminate-session $session ;;
+ "suspend") systemctl suspend ;;
+ "hibernate") systemctl hibernate ;;
+ "reboot") systemctl reboot ;;
+ "shutdown") systemctl poweroff ;;
+ esac fi }
+ power $(echo -e 'reboot\nshutdown\nlogout\nsuspend\nhibernate' | fzf --reverse --padding 1,2 --info-command 'printf " power menu ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter " " --pointer " ▌" --color "bg+:-1,pointer:1,info:8,separator:8,scrollbar:0" --prompt ' ' | tail -1)
+ """
+
+ [[modules]]
+ description = "run commands"
+ prefix = "sh"
+ cmd = """
+ $(printf $TERM | sed 's/xterm-//g') -e sh -c "{}"
+ """
+ with_argument = true
+ unbind_proc = true
+
+ [[modules]]
+ description = "search archwiki"
+ prefix = "aw"
+ cmd = "xdg-open https://wiki.archlinux.org/index.php?search='{}'"
+ with_argument = true
+ url_encode = true
+ unbind_proc = true
+
+ [[modules]]
+ description = "search packages"
+ prefix = "pac"
+ cmd = "xdg-open https://archlinux.org/packages/?q='{}'"
+ with_argument = true
+ url_encode = true
+ unbind_proc = true
+
+ [[modules]]
+ description = "search the AUR"
+ prefix = "aur"
+ cmd = "xdg-open https://aur.archlinux.org/packages?K='{}'"
+ with_argument = true
+ url_encode = true
+ unbind_proc = true
+
+ [[modules]]
+ description = "cambridge dict"
+ prefix = "dc"
+ cmd = "xdg-open 'https://dictionary.cambridge.org/dictionary/english/{}'"
+ with_argument = true
+ url_encode = true
+ unbind_proc = true
+
+ [[modules]]
+ description = "open files (fzf)"
+ prefix = "fo"
+ cmd = """
+ find $HOME -type f -not -path '*/.cache/*' 2>/dev/null | fzf --reverse --padding 1,3 --info-command 'printf " files ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter ' ' --pointer ' ▌' --color 'bg+:-1,pointer:1,info:8,separator:8,scrollbar:0' --prompt ' ' | setsid -f xargs -r -I [] xdg-open '[]'
+ """
+
+ [[modules]]
+ description = "open dirs (yazi)"
+ prefix = "yz"
+ cmd = """
+ find $HOME -type d -not -path '*/.cache/*' 2>/dev/null | fzf --reverse --padding 1,3 --info-command 'printf " directories ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter ' ' --pointer ' ▌' --color 'bg+:-1,pointer:1,info:8,separator:8,scrollbar:0' --prompt ' ' | xargs -r -I [] setsid -f "$(echo $TERM | sed 's/xterm-//g')" -e yazi '[]'
+ """
+
+ [[modules]]
+ description = "ChatGPT prompt"
+ prefix = "gpt"
+ with_argument = true
+ unbind_proc = true
+ cmd = """
+ function chat {
+ encoded="$(jq -sRr @uri)"
+ exec xdg-open "https://chat.openai.com/?prompt=$encoded"
+ }
+ chat <<'EOF'
+ {}
+ EOF
+ """
+ '';
+ };
+ };
+}
diff --git a/hm/shell/cli.nix b/hm/shell/cli.nix
index a9e8397..7011d4d 100644
--- a/hm/shell/cli.nix
+++ b/hm/shell/cli.nix
@@ -178,7 +178,8 @@ in
};
};
};
- programs.pls = {
+ # TODO: set up lsd
+ programs.lsd = {
enable = true;
enableFishIntegration = true;
};
diff --git a/hm/shell/fish.nix b/hm/shell/fish.nix
index 20b9a95..172d192 100644
--- a/hm/shell/fish.nix
+++ b/hm/shell/fish.nix
@@ -13,27 +13,6 @@ in
programs.fish = {
enable = true;
- functions = {
- rga-fzf = {
- body = ''
- set -l RG_PREFIX "rga --files-with-matches --smart-case"
- set -l file (
- FZF_DEFAULT_COMMAND="$RG_PREFIX '$argv[1]'" \
- fzf --sort \
- --preview='test -n {}; and rga --pretty --context 5 {q} {}' \
- --phony -q "$argv[1]" \
- --bind "change:reload:$RG_PREFIX {q}" \
- --preview-window="70%:wrap"
- )
-
- if test -n "$file"
- echo "Opening $file..."
- xdg-open "$file"
- end
- '';
- };
- };
-
interactiveShellInit = ''
set fish_greeting
fastfetch
diff --git a/hm/soft/browser.nix b/hm/soft/browser.nix
index dd8f129..fd57809 100644
--- a/hm/soft/browser.nix
+++ b/hm/soft/browser.nix
@@ -16,10 +16,130 @@ in
(lib.mkIf cfg.librewolf.enable {
programs.librewolf = {
enable = true;
- settings."ui.key.menuAccessKeyFocuses" = false;
+ settings = {
+ "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+ };
+
+ profiles = {
+ main = {
+ id = 0;
+ name = "main";
+ isDefault = true;
+ search = {
+ force = true;
+ engines = {
+ "SearXNG" = {
+ urls = [ { template = "https://sxng.violets-purgatory.dev/search?q={searchTerms}"; } ];
+ definedAliases = [ "@s" ];
+ };
+ "NixOS Packages" = {
+ urls = [ { template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; } ];
+ icon = "";
+ definedAliases = [ "@np" ];
+ };
+ "NixOS Options" = {
+ urls = [ { template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; } ];
+ icon = "";
+ definedAliases = [ "@no" ];
+ };
+ "Home Manager Options" = {
+ urls = [
+ { template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master"; }
+ ];
+ definedAliases = [ "@hm" ];
+ };
+ };
+ };
+ settings = {
+ "identity.fxaccounts.enabled" = true;
+
+ # --- Privacy & Fingerprinting ---
+ "privacy.resistFingerprinting" = true;
+ "privacy.fingerprintingProtection" = true;
+ "privacy.query_stripping.enabled" = true;
+ "privacy.query_stripping.enabled.pbmode" = true;
+ "privacy.trackingprotection.enabled" = true;
+ "privacy.trackingprotection.socialtracking.enabled" = true;
+ "privacy.trackingprotection.emailtracking.enabled" = true;
+ "privacy.bounceTrackingProtection.mode" = 1;
+ "privacy.annotate_channels.strict_list.enabled" = true;
+ "privacy.clearOnShutdown_v2.formdata" = true;
+
+ # --- Data Collection & Form Security ---
+ "dom.forms.autocomplete.formautofill" = false;
+ "signon.management.page.breach-alerts.enabled" = false;
+ "browser.translations.enable" = false;
+ "browser.region.update.enabled" = false;
+
+ # --- Search & URL Bar ---
+ "browser.urlbar.shortcuts.bookmarks" = false;
+ "browser.urlbar.shortcuts.history" = false;
+ "browser.urlbar.shortcuts.tabs" = false;
+ "browser.urlbar.shortcuts.actions" = false;
+ "browser.urlbar.showSearchTerms.enabled" = false;
+
+ # --- Networking & Performance ---
+ "network.proxy.type" = 0;
+ "network.prefetch-next" = false;
+ "network.predictor.enabled" = false;
+ "network.http.speculative-parallel-limit" = 0;
+ "network.early-hints.preconnect.max_connections" = 0;
+ "network.connectivity-service.enabled" = false;
+ "network.captive-portal-service.enabled" = false;
+ "security.tls.enable_0rtt_data" = false;
+
+ # --- Interface & De-clutter ---
+ "browser.startup.page" = 3;
+ "browser.startup.homepage" = "chrome://browser/content/blanktab.html";
+ "browser.newtabpage.enabled" = false;
+ "browser.newtabpage.activity-stream.showSearch" = false;
+ "browser.newtabpage.activity-stream.showSponsoredCheckboxes" = false;
+ "browser.bookmarks.restore_default_bookmarks" = false;
+ "media.hardwaremediakeys.enabled" = false;
+ "media.videocontrols.picture-in-picture.video-toggle.enabled" = false;
+ "layout.spellcheckDefault" = 0;
+
+ # --- Safe Browsing (Privacy Trade-off) ---
+ "browser.safebrowsing.downloads.remote.enabled" = false;
+ "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
+ "browser.safebrowsing.downloads.remote.block_uncommon" = false;
+ };
+ userChrome = ''
+ #TabsToolbar { visibility: collapse !important; }
+ #sidebar-header { display: none !important; }
+ #toolbar-menubar { display: none !important; }
+ '';
+ };
+ privacy = {
+ id = 1;
+ name = "privacy";
+ settings = {
+ "media.peerconnection.enabled" = false;
+ "network.proxy.type" = 1;
+
+ "network.proxy.http" = "127.0.0.1";
+ "network.proxy.http_port" = 4444;
+
+ "network.proxy.ssl" = "127.0.0.1";
+ "network.proxy.ssl_port" = 4444;
+
+ "network.proxy.no_proxies_on" = "localhost, 127.0.0.1";
+
+ "network.http.proxy.pipelining" = true;
+ "network.proxy.share_proxy_settings" = true;
+
+ "network.prefetch-next" = false;
+ "network.dns.disablePrefetch" = true;
+ };
+ userChrome = ''
+ #TabsToolbar { visibility: collapse !important; }
+ #sidebar-header { display: none !important; }
+ #toolbar-menubar { display: none !important; }
+ '';
+ };
+ };
};
})
-
(lib.mkIf cfg.brave.enable {
home.packages = [ pkgs.brave ];
})
diff --git a/hm/soft/czkawka-v11.nix b/hm/soft/czkawka-v11.nix
deleted file mode 100644
index 781da99..0000000
--- a/hm/soft/czkawka-v11.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-{
- lib,
- atk,
- cairo,
- callPackage,
- fetchFromGitHub,
- gdk-pixbuf,
- glib,
- gobject-introspection,
- gtk4,
- pango,
- pkg-config,
- rustPlatform,
- stdenv,
- testers,
- wrapGAppsHook4,
- xvfb-run,
- versionCheckHook,
-}:
-
-let
- self = rustPlatform.buildRustPackage {
- pname = "czkawka";
- version = "11.0.1";
-
- src = fetchFromGitHub {
- owner = "qarmin";
- repo = "czkawka";
- tag = self.version;
- hash = "sha256-ke6N3vuKPGolfh6XpAg3/9dtwd09eX53fN2klUwwNwQ=";
- };
-
- cargoHash = "sha256-fx2ZH4I2WYCdMgNoKQuBBEJrPjmgTRPeVM2L+TWYn54=";
-
- nativeBuildInputs = [
- gobject-introspection
- pkg-config
- wrapGAppsHook4
- ];
-
- buildInputs = [
- atk
- cairo
- gdk-pixbuf
- glib
- gtk4
- pango
- ];
-
- nativeCheckInputs = [ xvfb-run ];
-
- strictDeps = true;
-
- doCheck = stdenv.hostPlatform.isLinux && (stdenv.hostPlatform == stdenv.buildPlatform);
-
- checkPhase = ''
- runHook preCheck
- xvfb-run cargo test
- runHook postCheck
- '';
-
- postInstall = ''
- install -Dm444 -t $out/share/applications data/com.github.qarmin.czkawka.desktop
- install -Dm444 -t $out/share/icons/hicolor/scalable/apps data/icons/com.github.qarmin.czkawka.svg
- install -Dm444 -t $out/share/icons/hicolor/scalable/apps data/icons/com.github.qarmin.czkawka-symbolic.svg
- install -Dm444 -t $out/share/metainfo data/com.github.qarmin.czkawka.metainfo.xml
- '';
-
- nativeInstallCheckInputs = [ versionCheckHook ];
- versionCheckProgram = "${placeholder "out"}/bin/czkawka_cli";
- doInstallCheck = true;
-
- passthru = {
- tests.version = testers.testVersion {
- package = self;
- command = "czkawka_cli --version";
- };
- # Ensure you have a wrapper.nix in the same folder if using this
- wrapper = callPackage ./wrapper.nix {
- czkawka = self;
- };
- };
-
- meta = {
- homepage = "https://github.com/qarmin/czkawka";
- description = "Simple, fast and easy to use app to remove unnecessary files from your computer";
- changelog = "https://github.com/qarmin/czkawka/raw/${self.version}/Changelog.md";
- license = with lib.licenses; [ mit ];
- mainProgram = "czkawka_gui";
- maintainers = with lib.maintainers; [
- yanganto
- _0x4A6F
- ];
- };
- };
-in
-self
diff --git a/hm/soft/nixcord.nix b/hm/soft/nixcord.nix
index a6b4217..bd43501 100644
--- a/hm/soft/nixcord.nix
+++ b/hm/soft/nixcord.nix
@@ -20,7 +20,7 @@ in
equibop
];
programs.nixcord = {
- enable = true;
+ # enable = true;
discord = {
enable = true;
autoscroll.enable = true;
@@ -28,10 +28,10 @@ in
vencord.enable = false;
equicord.enable = true;
};
- # equibop = {
- # enable = true;
- # autoscroll.enable = true;
- # };
+ equibop = {
+ enable = true;
+ autoscroll.enable = true;
+ };
config = {
themeLinks = [ "https://raw.codeberg.page/AllPurposeMat/Disblock-Origin/DisblockOrigin.theme.css" ];
frameless = true;
diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix
index 94672aa..ae4d569 100644
--- a/hosts/desktop/configuration.nix
+++ b/hosts/desktop/configuration.nix
@@ -61,6 +61,7 @@
users.enable = true;
};
srv = {
+ yggdrasil.enable = true;
i2p.enable = true;
files = {
enable = true;
diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix
index a637d12..c17502d 100644
--- a/hosts/desktop/home.nix
+++ b/hosts/desktop/home.nix
@@ -23,7 +23,9 @@
};
editors.nixvim.enable = true;
env = {
+ fsel.enable = true;
mako.enable = true;
+ otter.enable = true;
niri.enable = true;
cursor = {
size = 48;
diff --git a/os/srv/files.nix b/os/srv/files.nix
index 719642c..22117d0 100644
--- a/os/srv/files.nix
+++ b/os/srv/files.nix
@@ -33,7 +33,7 @@ in
};
environment.systemPackages = with pkgs; [
file-roller
- gdu
+ dua
pxz
pigz
];
diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix
index 00e6228..acfd754 100644
--- a/os/srv/gaming.nix
+++ b/os/srv/gaming.nix
@@ -70,12 +70,8 @@ in
localNetworkGameTransfers.openFirewall = true;
dedicatedServer.openFirewall = true;
remotePlay.openFirewall = false;
- # extest.enable = true;
+ extest.enable = true;
protontricks.enable = true;
-
- extraCompatPackages = with pkgs; [
- proton-ge-bin
- ];
};
environment.systemPackages = with pkgs; [ steamtinkerlaunch ];
})
diff --git a/os/srv/srv.nix b/os/srv/srv.nix
index 4edd742..a496a33 100644
--- a/os/srv/srv.nix
+++ b/os/srv/srv.nix
@@ -14,5 +14,6 @@
./monero.nix
./vpn.nix
./i2p.nix
+ ./yggdrasil.nix
];
}
diff --git a/os/srv/yggdrasil.nix b/os/srv/yggdrasil.nix
new file mode 100644
index 0000000..91bf6f0
--- /dev/null
+++ b/os/srv/yggdrasil.nix
@@ -0,0 +1,14 @@
+{
+ config,
+ lib,
+ ...
+}:
+let
+ cfg = config.os.srv.yggdrasil;
+in
+{
+ options.os.srv.yggdrasil.enable = lib.mkEnableOption "enables yggdrasild";
+
+ config = lib.mkIf cfg.enable {
+ };
+}