Compare commits
20 Commits
ee4237c6d6
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0bd23c5dfb | ||
|
|
986d227257 | ||
|
|
2d4510c2fd | ||
|
|
8ff72d5c6a | ||
|
|
84974b56ad | ||
|
|
1583ad75ee | ||
|
|
b025e987fc | ||
|
|
31a6f3aff8 | ||
|
|
6b5e71dd6c | ||
|
|
ca84fd5165 | ||
|
|
1b9322dd96 | ||
|
|
2fb9359a67 | ||
|
|
22df37a203 | ||
|
|
961351b098 | ||
|
|
e5f9674f8d | ||
|
|
bca6b60a3e | ||
|
|
2d430c1b3b | ||
|
|
66230cbc4f | ||
|
|
90f94f7888 | ||
|
|
6b7cbc4dbf |
31
README.md
Normal file
31
README.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# nix
|
||||||
|
|
||||||
|
[dendritic](https://github.com/vic/den) [nix](https://nixos.org/) configuration.
|
||||||
|
|
||||||
|
## hosts
|
||||||
|
| host | command |
|
||||||
|
|-|-|
|
||||||
|
| [desktop](https://github.com/4DBug/nix/tree/master/modules/hosts/nix/nix.nix) | `nh os switch ~/nix --impure -H nix` |
|
||||||
|
| [laptop](https://github.com/4DBug/nix/tree/master/modules/hosts/nix/laptop.nix) | `nh os switch ~/nix --impure -H laptop` |
|
||||||
|
| [server](https://github.com/4DBug/nix/tree/master/modules/hosts/nix/box.nix) | `nh os switch ~/nix --impure -H box` |
|
||||||
|
|
||||||
|
## services
|
||||||
|
| service | location | file |
|
||||||
|
|-|-|-|
|
||||||
|
| [invidious](https://github.com/invidious/invidious) | [tube.bug.tools](https://tube.bug.tools/) | /modules/services |
|
||||||
|
| [glances](https://github.com/nicolargo/glances) | [monitor.bug.tools](https://monitor.bug.tools/) | /modules/services |
|
||||||
|
| [searxng](https://github.com/searxng/searxng) | [search.bug.tools](https://search.bug.tools/) | /modules/services |
|
||||||
|
| [redlib](https://github.com/redlib-org/redlibb) | [reddit.bug.tools](https://reddit.bug.tools/) | ./modules/services/searxng/searxng.nix |
|
||||||
|
| [copyparty](https://github.com/9001/copyparty) | [files.bug.tools](https://files.bug.tools/) | /modules/services |
|
||||||
|
| [matrix](https://matrix.org/) | [matrix.bug.tools](https://matrix.bug.tools/) | /modules/services |
|
||||||
|
| [nixos-mailserver](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver) | [mail.bug.tools](https://mail.bug.tools/) | /modules/services |
|
||||||
|
| [sish](https://docs.ssi.sh/) | [tuns.bug.tools](https://tuns.bug.tools/) | /modules/services |
|
||||||
|
| [vscode-server](https://github.com/cdr/code-server) | - | /modules/services |
|
||||||
|
|
||||||
|
## software
|
||||||
|
|
||||||
|
| software | file |
|
||||||
|
|-|-|
|
||||||
|
| a | b |
|
||||||
|
| c | d |
|
||||||
|
| e | f |
|
||||||
@@ -1 +0,0 @@
|
|||||||
{ device = "server"; }
|
|
||||||
501
flake.lock
generated
501
flake.lock
generated
@@ -68,17 +68,35 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"copyparty": {
|
"catppuccin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770758715,
|
"lastModified": 1772153824,
|
||||||
"narHash": "sha256-FlRSDJ8OlCiWX+tIAZJkQnkBAAwbO125aUdAC6VJlOk=",
|
"narHash": "sha256-T65qXmlcD9qFpPTi+mOXsn4dIkO2N8Ls67nqmuzepv0=",
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nix",
|
||||||
|
"rev": "4b0f5b7bf7b3eeb484d49524f3c9791864ab9362",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"copyparty": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771834427,
|
||||||
|
"narHash": "sha256-B1j0ahVuxyZtpbFfy34gk2DjacimPIuzyzCPvDhvxI4=",
|
||||||
"owner": "9001",
|
"owner": "9001",
|
||||||
"repo": "copyparty",
|
"repo": "copyparty",
|
||||||
"rev": "d44ea245307c06eb060b6e6f5c2cba91a759c940",
|
"rev": "ab8bd0178b26a0b6c6406f7bae835d13b16ef188",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -87,6 +105,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"den": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771679476,
|
||||||
|
"narHash": "sha256-rU58QADljRw8/d0ciRtMeaB4/Y/V8JQBlhT1TTvaKmc=",
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "den",
|
||||||
|
"rev": "61341ee04b80104bdd22a60541fb8c4c3b49d342",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "den",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -103,27 +136,54 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-aspects": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746162366,
|
"lastModified": 1771395573,
|
||||||
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
|
"narHash": "sha256-bcCOG2CW23/Eww/zULJf1xd0Shz2zS4c2AJWwLALyJ8=",
|
||||||
"owner": "nix-community",
|
"owner": "vic",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-aspects",
|
||||||
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
|
"rev": "8297f3bc41ad79b9f01d56d0dd92f7aac51bacfb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "vic",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-aspects",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"revCount": 69,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-file": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771017549,
|
||||||
|
"narHash": "sha256-n68HeYEQJ67hMH2LPI0cERD2pkpNe5dyeOGg11uZ7rc=",
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "flake-file",
|
||||||
|
"rev": "9d89918faacdbd2ce26d0aa7298da0fecad8b437",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "flake-file",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nix-citizen",
|
"nixpkgs-lib"
|
||||||
"nixpkgs"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -194,40 +254,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681202837,
|
|
||||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flatpaks": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767983141,
|
|
||||||
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
|
|
||||||
"owner": "gmodena",
|
|
||||||
"repo": "nix-flatpak",
|
|
||||||
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "gmodena",
|
|
||||||
"ref": "latest",
|
|
||||||
"repo": "nix-flatpak",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fromYaml": {
|
"fromYaml": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -264,140 +290,90 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770654520,
|
|
||||||
"narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hytale-launcher": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770408363,
|
|
||||||
"narHash": "sha256-ocMI5t0EBxao7dRRnQi7Aa9jpBvtSZmOpPbXx8fbOjw=",
|
|
||||||
"owner": "JPyke3",
|
|
||||||
"repo": "hytale-launcher-nix",
|
|
||||||
"rev": "89db7a709e20525f145ea8ba729f32f8c6b43ac6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "JPyke3",
|
|
||||||
"repo": "hytale-launcher-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-citizen": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nix-gaming": [
|
|
||||||
"nix-gaming"
|
|
||||||
],
|
|
||||||
"nix-github-actions": "nix-github-actions",
|
|
||||||
"nixpkgs": "nixpkgs_4",
|
|
||||||
"systems": "systems",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770673830,
|
|
||||||
"narHash": "sha256-m/4WPh6komkPfizenqHmEVZBzn/CpL+WAD4B7axDjqs=",
|
|
||||||
"owner": "LovingMelody",
|
|
||||||
"repo": "nix-citizen",
|
|
||||||
"rev": "8a7401f3ff547d4ee1a54e893a5e52d4c18cc9ff",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "LovingMelody",
|
|
||||||
"repo": "nix-citizen",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-gaming": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_2",
|
|
||||||
"nixpkgs": "nixpkgs_5"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770691919,
|
|
||||||
"narHash": "sha256-e3G2ebDGaMfNCeRRSFQivSC+iWktI7a37AEzZ9I+JZA=",
|
|
||||||
"owner": "fufexan",
|
|
||||||
"repo": "nix-gaming",
|
|
||||||
"rev": "6cc488d4779f9dd15dd4831e97b15d2432ae761b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "fufexan",
|
|
||||||
"repo": "nix-gaming",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-github-actions": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nix-citizen",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737420293,
|
"lastModified": 1771683283,
|
||||||
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
|
"narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-github-actions",
|
"repo": "home-manager",
|
||||||
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
"rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-github-actions",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-cosmic": {
|
"import-tree": {
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"nixpkgs": "nixpkgs_6",
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
|
||||||
"rust-overlay": "rust-overlay"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751591814,
|
"lastModified": 1771045967,
|
||||||
"narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=",
|
"narHash": "sha256-oYO4poyw0Sb/db2PigqugMlDwsvwLg6CSpFrMUWxA3Q=",
|
||||||
"owner": "lilyinstarlight",
|
"owner": "vic",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "import-tree",
|
||||||
"rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc",
|
"rev": "c968d3b54d12cf5d9c13f16f7c545a06c9d1fde6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "lilyinstarlight",
|
"owner": "vic",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "import-tree",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-flatpak": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767983141,
|
||||||
|
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
|
||||||
|
"owner": "gmodena",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gmodena",
|
||||||
|
"ref": "latest",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixcord": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772266502,
|
||||||
|
"narHash": "sha256-HBO3W1ooO9UwmxwwwFflnbCrAVHhaxpB8YnxFGPvOsY=",
|
||||||
|
"owner": "FlameFlag",
|
||||||
|
"repo": "nixcord",
|
||||||
|
"rev": "e805e50f0cc8b9f2d950dc81cd9ee1c986899eaf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "FlameFlag",
|
||||||
|
"repo": "nixcord",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748162331,
|
"lastModified": 1771848320,
|
||||||
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
"rev": "2fc6539b481e1d2569f25f8799236694180c0993",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-unstable",
|
||||||
"type": "indirect"
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
@@ -415,132 +391,53 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751048012,
|
|
||||||
"narHash": "sha256-MYbotu4UjWpTsq01wglhN5xDRfZYLFtNk7SBY0BcjkU=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "a684c58d46ebbede49f280b653b9e56100aa3877",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-24.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770197578,
|
"lastModified": 1748162331,
|
||||||
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"type": "indirect"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770197578,
|
"lastModified": 1770617025,
|
||||||
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
"narHash": "sha256-1jZvgZoAagZZB6NwGRv2T2ezPy+X6EFDsJm+YSlsvEs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
"rev": "2db38e08fdadcc0ce3232f7279bab59a15b94482",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770562336,
|
"lastModified": 1771207753,
|
||||||
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
|
"narHash": "sha256-b9uG8yN50DRQ6A7JdZBfzq718ryYrlmGgqkRm9OOwCE=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
|
"rev": "d1c15b7d5806069da59e819999d70e1cec0760bf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770537093,
|
|
||||||
"narHash": "sha256-pF1quXG5wsgtyuPOHcLfYg/ft/QMr8NnX0i6tW2187s=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751011381,
|
|
||||||
"narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_7": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770562336,
|
|
||||||
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_8": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1682134069,
|
|
||||||
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
@@ -568,37 +465,22 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"catppuccin": "catppuccin",
|
||||||
"copyparty": "copyparty",
|
"copyparty": "copyparty",
|
||||||
"flatpaks": "flatpaks",
|
"den": "den",
|
||||||
|
"flake-aspects": "flake-aspects",
|
||||||
|
"flake-file": "flake-file",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hytale-launcher": "hytale-launcher",
|
"import-tree": "import-tree",
|
||||||
"nix-citizen": "nix-citizen",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nix-gaming": "nix-gaming",
|
"nixcord": "nixcord",
|
||||||
"nixos-cosmic": "nixos-cosmic",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs": "nixpkgs_7",
|
"nixpkgs-lib": [
|
||||||
"stylix": "stylix",
|
|
||||||
"vscode-server": "vscode-server"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixos-cosmic",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
},
|
"stylix": "stylix",
|
||||||
"locked": {
|
"systems": "systems_2"
|
||||||
"lastModified": 1751251399,
|
|
||||||
"narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stylix": {
|
"stylix": {
|
||||||
@@ -614,7 +496,7 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_2",
|
"systems": "systems",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
@@ -622,11 +504,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770587906,
|
"lastModified": 1771626923,
|
||||||
"narHash": "sha256-N9ZTG3ia7l4iQO+9JlOj+sX4yu6gl7a3aozrlhSIJwQ=",
|
"narHash": "sha256-Mn6oeKrY+Sw6kH0jK+hp5QQH4MTcqwBRQL/ScZDNcz8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "72e6483a88d51471a6c55e1d43e7ed2bc47a76a4",
|
"rev": "b09847414b50c65788936199918272377f70fb91",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -665,21 +547,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tinted-foot": {
|
"tinted-foot": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -760,46 +627,6 @@
|
|||||||
"repo": "base16-zed",
|
"repo": "base16-zed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-citizen",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770228511,
|
|
||||||
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"vscode-server": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"nixpkgs": "nixpkgs_8"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770124655,
|
|
||||||
"narHash": "sha256-yHmd2B13EtBUPLJ+x0EaBwNkQr9LTne1arLVxT6hSnY=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixos-vscode-server",
|
|
||||||
"rev": "92ce71c3ba5a94f854e02d57b14af4997ab54ef0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixos-vscode-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
106
flake.nix
106
flake.nix
@@ -1,90 +1,34 @@
|
|||||||
{
|
{
|
||||||
inputs = {
|
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules);
|
||||||
# nixpkgs.follows = "nixos-cosmic/nixpkgs";
|
|
||||||
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
inputs = {
|
||||||
|
den.url = "github:vic/den";
|
||||||
|
flake-aspects.url = "github:vic/flake-aspects";
|
||||||
|
flake-file.url = "github:vic/flake-file";
|
||||||
|
flake-parts = {
|
||||||
|
inputs.nixpkgs-lib.follows = "nixpkgs-lib";
|
||||||
|
url = "github:hercules-ci/flake-parts";
|
||||||
|
};
|
||||||
|
home-manager = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
};
|
||||||
|
import-tree.url = "github:vic/import-tree";
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
nixpkgs-lib.follows = "nixpkgs";
|
||||||
|
systems.url = "github:nix-systems/default";
|
||||||
|
|
||||||
flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest";
|
stylix = {
|
||||||
|
url = "github:nix-community/stylix";
|
||||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
|
||||||
|
|
||||||
stylix = {
|
|
||||||
url = "github:nix-community/stylix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
|
||||||
|
|
||||||
home-manager.url = "github:nix-community/home-manager";
|
|
||||||
|
|
||||||
nix-citizen.url = "github:LovingMelody/nix-citizen";
|
|
||||||
|
|
||||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
|
||||||
nix-citizen.inputs.nix-gaming.follows = "nix-gaming";
|
|
||||||
|
|
||||||
copyparty.url = "github:9001/copyparty";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, vscode-server, copyparty, nix-citizen, ... }:
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||||
let
|
|
||||||
deviceType = import ./device.nix;
|
|
||||||
system = "x86_64-linux";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
nixosConfigurations = {
|
|
||||||
nix = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
|
|
||||||
specialArgs = { inherit inputs; inherit (deviceType) device; };
|
copyparty.url = "github:9001/copyparty";
|
||||||
|
|
||||||
modules = [
|
catppuccin.url = "github:catppuccin/nix";
|
||||||
{
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [ "https://cosmic.cachix.org/" ];
|
|
||||||
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
nix-citizen.nixosModules.default
|
nixcord.url = "github:FlameFlag/nixcord";
|
||||||
|
};
|
||||||
flatpaks.nixosModules.nix-flatpak
|
|
||||||
|
|
||||||
./main.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
box = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
|
|
||||||
specialArgs = { inherit inputs; inherit (deviceType) device; };
|
|
||||||
|
|
||||||
modules = [
|
|
||||||
./main.nix
|
|
||||||
|
|
||||||
vscode-server.nixosModules.default
|
|
||||||
|
|
||||||
copyparty.nixosModules.default
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
homeConfigurations = {
|
|
||||||
bug = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit inputs;
|
|
||||||
inherit (deviceType) device;
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = [
|
|
||||||
stylix.homeModules.stylix
|
|
||||||
|
|
||||||
./home.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
40
home.nix
40
home.nix
@@ -1,40 +0,0 @@
|
|||||||
{inputs, config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./modules/syncthing.nix
|
|
||||||
] ++ (if device == "server" then [
|
|
||||||
|
|
||||||
] else [
|
|
||||||
./modules/stylix.nix
|
|
||||||
./modules/firefox.nix
|
|
||||||
]);
|
|
||||||
|
|
||||||
home = {
|
|
||||||
username = "bug";
|
|
||||||
homeDirectory = "/home/bug";
|
|
||||||
|
|
||||||
stateVersion = "25.11";
|
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
|
|
||||||
] ++ (if device == "server" then [
|
|
||||||
gh
|
|
||||||
luajit
|
|
||||||
nodejs
|
|
||||||
node2nix
|
|
||||||
cloudflared
|
|
||||||
] else []);
|
|
||||||
|
|
||||||
file = {};
|
|
||||||
|
|
||||||
sessionVariables = {
|
|
||||||
EDITOR = "micro";
|
|
||||||
MICRO_TRUECOLOR = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
#programs.home-manager.enable = true;
|
|
||||||
}
|
|
||||||
117
main.nix
117
main.nix
@@ -1,117 +0,0 @@
|
|||||||
{ lib, config, inputs, pkgs, options, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
/etc/nixos/hardware-configuration.nix
|
|
||||||
|
|
||||||
./modules/users.nix
|
|
||||||
./modules/boot.nix
|
|
||||||
./modules/network.nix
|
|
||||||
./modules/locale.nix
|
|
||||||
./modules/security.nix
|
|
||||||
] ++ (if device == "server" then [
|
|
||||||
./modules/mailserver.nix
|
|
||||||
./modules/vscode-server.nix
|
|
||||||
./modules/copyparty.nix
|
|
||||||
./modules/searxng.nix
|
|
||||||
./modules/cloudflared.nix
|
|
||||||
./modules/invidious.nix
|
|
||||||
./modules/glances.nix
|
|
||||||
./modules/redlib.nix
|
|
||||||
|
|
||||||
({ pkgs, ... }: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nh comma nix-index home-manager micro wget git fastfetch
|
|
||||||
];
|
|
||||||
})
|
|
||||||
] else [
|
|
||||||
./modules/packages.nix
|
|
||||||
./modules/cosmic.nix
|
|
||||||
./modules/graphics.nix
|
|
||||||
./modules/audio.nix
|
|
||||||
./modules/swap.nix
|
|
||||||
./modules/virtualisation.nix
|
|
||||||
|
|
||||||
#./modules/firefox.nix
|
|
||||||
]) ++ (if device == "laptop" then [
|
|
||||||
./modules/mpd.nix
|
|
||||||
] else []) ++ (if device == "desktop" then [
|
|
||||||
|
|
||||||
] else []);
|
|
||||||
|
|
||||||
system = {
|
|
||||||
stateVersion = "25.11";
|
|
||||||
|
|
||||||
autoUpgrade = {
|
|
||||||
enable = true;
|
|
||||||
allowReboot = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
optimise.automatic = true;
|
|
||||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs = {
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
|
|
||||||
cudaSupport = (device == "desktop");
|
|
||||||
nvidia.acceptLicense = (device == "desktop");
|
|
||||||
};
|
|
||||||
|
|
||||||
overlays = [
|
|
||||||
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.sessionVariables.NIXPKGS_ALLOW_UNFREE = 1;
|
|
||||||
|
|
||||||
systemd = {
|
|
||||||
user.extraConfig = ''
|
|
||||||
DefaultEnvironment="PATH=/run/current-system/sw/bin"
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.monitord.wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.fstrim.enable = true;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
bash.shellAliases = {
|
|
||||||
fetch = "fastfetch --file ~/nix/nix.ans";
|
|
||||||
|
|
||||||
rebuild = "nh os switch ~/nix"; #"sudo nixos-rebuild switch --impure"; # home-manager switch --impure
|
|
||||||
|
|
||||||
#pissh = "ssh -t $(avahi-resolve-host-name -4 pi.home | awk '{print $2}')";
|
|
||||||
#pi = "pissh \"cd $(pwd) && bash\"";
|
|
||||||
#pi = "ssh pi.bug.tools";
|
|
||||||
box = "ssh box.bug.tools";
|
|
||||||
|
|
||||||
unbox = "sh -c 'ssh -N -L \"$1\":0.0.0.0:\"$1\" box.bug.tools &' --";
|
|
||||||
|
|
||||||
rebox = "sh -c 'fuser -k \"$1\"/tcp' --";
|
|
||||||
|
|
||||||
dock = "sh -c 'ssh -N -D \"$1\" box.bug.tools &' --";
|
|
||||||
|
|
||||||
pico = "ssh pico.sh";
|
|
||||||
|
|
||||||
# tuns name port
|
|
||||||
tuns = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: tun name port\"; exit 1; fi;
|
|
||||||
if [[ \"$1\" =~ ^[0-9]+$ ]]; then port=\"$1\"; name=\"$2\";
|
|
||||||
elif [[ \"$2\" =~ ^[0-9]+$ ]]; then port=\"$2\"; name=\"$1\";
|
|
||||||
else echo \"Error: One argument must be a number (port)\"; exit 1; fi;
|
|
||||||
ssh -R \"$\{name}:80:localhost:$\{port}\" tuns.sh'\'' _";
|
|
||||||
|
|
||||||
# pgs name directory
|
|
||||||
pgs = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: pgs NAME DIRECTORY\"; exit 1; fi; rsync -rv \"$2\" pgs.sh:/\"$1\"'\'' _";
|
|
||||||
|
|
||||||
bambu = "env -u WAYLAND_DISPLAY XDG_SESSION_TYPE=x11 WEBKIT_FORCE_COMPOSITING_MODE=1 WEBKIT_DISABLE_COMPOSITING_MODE=1 GBM_BACKEND=dri bambu-studio";
|
|
||||||
|
|
||||||
scale = "env GDK_BACKEND=x11 GDK_SCALE=1 GDK_DPI_SCALE=1";
|
|
||||||
|
|
||||||
hytale = "env -u WAYLAND_DISPLAY -u EGL_PLATFORM -u ELECTRON_ENABLE_WAYLAND DISPLAY=:0 XDG_SESSION_TYPE=x11 __GLX_VENDOR_LIBRARY_NAME=nvidia LD_LIBRARY_PATH=/run/opengl-driver/lib hytale-launcher";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
services = {
|
|
||||||
pulseaudio.enable = false;
|
|
||||||
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
wireplumber.enable = true;
|
|
||||||
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
|
|
||||||
pulse.enable = true;
|
|
||||||
|
|
||||||
lowLatency.enable = false;
|
|
||||||
|
|
||||||
jack.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
kernelModules = if (device == "desktop") then ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "uinput"] else [];
|
|
||||||
kernelParams = if (device == "desktop") then ["nvidia-drm.modeset=1" "nvidia_drm.fbdev=1"] else [];
|
|
||||||
|
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
|
|
||||||
initrd.checkJournalingFS = false;
|
|
||||||
|
|
||||||
loader = {
|
|
||||||
grub.splashImage = null;
|
|
||||||
|
|
||||||
systemd-boot = {
|
|
||||||
enable = true;
|
|
||||||
configurationLimit = 25;
|
|
||||||
};
|
|
||||||
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
TUNNEL_UUID = "4118935e-359b-4dd2-95bd-eb27f7b0c5bb";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
environment.systemPackages = [ pkgs.cloudflared ];
|
|
||||||
|
|
||||||
environment.etc."cloudflared/${TUNNEL_UUID}.json".source = "/home/bug/.cloudflared/${TUNNEL_UUID}.json";
|
|
||||||
|
|
||||||
services.cloudflared = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
tunnels."${TUNNEL_UUID}" = {
|
|
||||||
credentialsFile = "/etc/cloudflared/${TUNNEL_UUID}.json";
|
|
||||||
default = "http_status:404";
|
|
||||||
|
|
||||||
ingress = {
|
|
||||||
"tvtun.bug.tools" = "http://127.0.0.1:3001";
|
|
||||||
"search.bug.tools" = "http://127.0.0.1:8888";
|
|
||||||
"files.bug.tools" = "http://127.0.0.1:3210";
|
|
||||||
"tube.bug.tools" = "http://127.0.0.1:3030";
|
|
||||||
"monitor.bug.tools" = "http://127.0.0.1:61208";
|
|
||||||
"reddit.bug.tools" = "http://127.0.0.1:8975";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
{ config, pkgs, inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
nixpkgs.overlays = [ inputs.copyparty.overlays.default ];
|
|
||||||
|
|
||||||
services.copyparty = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
user = "bug";
|
|
||||||
|
|
||||||
group = "copyparty";
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
i = "0.0.0.0";
|
|
||||||
p = [ 3210 3211 ];
|
|
||||||
no-reload = true;
|
|
||||||
ignored-flag = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
accounts = {
|
|
||||||
bug = {
|
|
||||||
passwordFile = "/home/bug/mailserver/bug.passwd";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
groups = {
|
|
||||||
g1 = [ "bug" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
volumes = {
|
|
||||||
"/" = {
|
|
||||||
path = "/srv/copyparty";
|
|
||||||
|
|
||||||
access = {
|
|
||||||
r = "*";
|
|
||||||
rw = [ "bug" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
flags = {
|
|
||||||
fk = 4;
|
|
||||||
scan = 60;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
openFilesLimit = 8192;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
28
modules/core/audio/audio.nix
Normal file
28
modules/core/audio/audio.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
den.aspects.audio = {
|
||||||
|
nixos = {
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
services = {
|
||||||
|
pulseaudio.enable = false;
|
||||||
|
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
wireplumber.enable = true;
|
||||||
|
|
||||||
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
pulse.enable = true;
|
||||||
|
|
||||||
|
#lowLatency.enable = false;
|
||||||
|
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
39
modules/core/audio/mpd.nix
Normal file
39
modules/core/audio/mpd.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
den.aspects.mpd = {
|
||||||
|
nixos = {
|
||||||
|
services = {
|
||||||
|
mpd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
music_directory = "/home/bug/Music";
|
||||||
|
|
||||||
|
decoder = [
|
||||||
|
{
|
||||||
|
plugin = "ffmpeg";
|
||||||
|
enabled = "yes";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = "opus";
|
||||||
|
enabled = "no";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
audio_output = [{
|
||||||
|
type = "pipewire";
|
||||||
|
name = "PipeWire Sound Server";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
|
||||||
|
user = "bug";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services = {
|
||||||
|
mpd.environment = {
|
||||||
|
XDG_RUNTIME_DIR = "/run/user/1000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
modules/core/dendritic.nix
Normal file
15
modules/core/dendritic.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
imports = [
|
||||||
|
(inputs.flake-file.flakeModules.dendritic or {})
|
||||||
|
(inputs.den.flakeModules.dendritic or {})
|
||||||
|
];
|
||||||
|
|
||||||
|
flake-file.inputs = {
|
||||||
|
den.url = "github:vic/den";
|
||||||
|
flake-file.url = "github:vic/flake-file";
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
74
modules/core/desktop/cosmic.nix
Normal file
74
modules/core/desktop/cosmic.nix
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
{
|
||||||
|
den.aspects.cosmic = {
|
||||||
|
nixos = { pkgs, ... }: {
|
||||||
|
services = {
|
||||||
|
greetd.enable = true;
|
||||||
|
|
||||||
|
system76-scheduler.enable = true;
|
||||||
|
|
||||||
|
displayManager = {
|
||||||
|
cosmic-greeter.enable = true;
|
||||||
|
|
||||||
|
autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "bug";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
desktopManager.cosmic.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
cosmic-edit
|
||||||
|
cosmic-ext-calculator
|
||||||
|
cosmic-ext-tweaks
|
||||||
|
cosmic-screenshot
|
||||||
|
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
xdg-desktop-portal-cosmic
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg = {
|
||||||
|
portal = {
|
||||||
|
enable = true;
|
||||||
|
xdgOpenUsePortal = true;
|
||||||
|
|
||||||
|
config.common.default = ["gtk"];
|
||||||
|
|
||||||
|
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-cosmic];
|
||||||
|
};
|
||||||
|
|
||||||
|
mime = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
defaultApplications = {
|
||||||
|
"text/html" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/http" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/https" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/about" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/unknown" = "firefox.desktop";
|
||||||
|
"application/pdf" = "firefox.desktop";
|
||||||
|
|
||||||
|
"inode/directory" = "com.system76.CosmicFiles.desktop";
|
||||||
|
|
||||||
|
"text/plain" = "com.system76.CosmicEdit.desktop";
|
||||||
|
"text/markdown" = "com.system76.CosmicEdit.desktop";
|
||||||
|
|
||||||
|
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-tar" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/gzip" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-xz" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-zip-compressed" = "org.gnome.FileRoller.desktop";
|
||||||
|
|
||||||
|
"application/x-ms-dos-executable" = "wine.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
10
modules/core/graphics/amdgpu.nix
Normal file
10
modules/core/graphics/amdgpu.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
den.aspects.amdgpu = {
|
||||||
|
nixos = {
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
videoDrivers = ["amdgpu"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
45
modules/core/graphics/nvidia.nix
Normal file
45
modules/core/graphics/nvidia.nix
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
den.aspects.nvidia = {
|
||||||
|
nixos = { pkgs, config, ... }: {
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
libva-vdpau-driver
|
||||||
|
libvdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
vdpauinfo
|
||||||
|
libva
|
||||||
|
libva-utils
|
||||||
|
libglvnd
|
||||||
|
mesa
|
||||||
|
nvidia-vaapi-driver
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
videoDrivers = ["nvidia"];
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
cudaSupport = true;
|
||||||
|
nvidia.acceptLicense = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
modules/core/network/cloudflare-warp.nix
Normal file
9
modules/core/network/cloudflare-warp.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
den.aspects.cloudflare-warp = {
|
||||||
|
nixos = {
|
||||||
|
services.cloudflare-warp = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
1
modules/core/network/crab-hole.nix
Normal file
1
modules/core/network/crab-hole.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
11
modules/core/network/dns.nix
Normal file
11
modules/core/network/dns.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
den.aspects.dns = {
|
||||||
|
nixos = {
|
||||||
|
networking = {
|
||||||
|
networkmanager.enable = true;
|
||||||
|
|
||||||
|
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
modules/core/network/openssh.nix
Normal file
15
modules/core/network/openssh.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
den.aspects.openssh = {
|
||||||
|
nixos = {
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
PrintMotd = true;
|
||||||
|
X11Forwarding = true;
|
||||||
|
AllowTcpForwarding = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
modules/core/swap.nix
Normal file
19
modules/core/swap.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
den.aspects.swap = {
|
||||||
|
nixos = {
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"fs.file-max" = 524288;
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [{
|
||||||
|
device = "/var/lib/swapfile";
|
||||||
|
size = 8 * 1024;
|
||||||
|
}];
|
||||||
|
|
||||||
|
zramSwap = {
|
||||||
|
enable = true;
|
||||||
|
memoryMax = 64 * 1024 * 1024 * 1024;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
35
modules/core/theme/catppuccin.nix
Normal file
35
modules/core/theme/catppuccin.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{ inputs, ... }: let
|
||||||
|
flavor = "mocha";
|
||||||
|
accent = "mauve";
|
||||||
|
in {
|
||||||
|
den.aspects.catppuccin = {
|
||||||
|
nixos = {
|
||||||
|
imports = [ inputs.catppuccin.nixosModules.catppuccin ];
|
||||||
|
|
||||||
|
catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
flavor = flavor;
|
||||||
|
accent = accent;
|
||||||
|
|
||||||
|
grub.enable = true;
|
||||||
|
gitea.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
homeManager = {
|
||||||
|
imports = [ inputs.catppuccin.homeModules.catppuccin ];
|
||||||
|
|
||||||
|
catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
flavor = flavor;
|
||||||
|
accent = accent;
|
||||||
|
|
||||||
|
firefox.enable = true;
|
||||||
|
fish.enable = true;
|
||||||
|
librewolf.enable = true;
|
||||||
|
vesktop.enable = true;
|
||||||
|
zed.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
47
modules/core/theme/stylix.nix
Normal file
47
modules/core/theme/stylix.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
den.aspects.stylix = {
|
||||||
|
homeManager = { pkgs, ... }: {
|
||||||
|
imports = [
|
||||||
|
(inputs.stylix.homeModules.stylix or {})
|
||||||
|
];
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
autoEnable = false;
|
||||||
|
polarity = "dark";
|
||||||
|
|
||||||
|
# catppuccin mocha
|
||||||
|
base16Scheme = {
|
||||||
|
base00 = "1E1E2E";
|
||||||
|
base01 = "181825";
|
||||||
|
base02 = "313244";
|
||||||
|
base03 = "45475A";
|
||||||
|
base04 = "585B70";
|
||||||
|
base05 = "CDD6F4";
|
||||||
|
base06 = "F5E0DC";
|
||||||
|
base07 = "B4BEFE";
|
||||||
|
base08 = "F38BA8";
|
||||||
|
base09 = "FAB387";
|
||||||
|
base0A = "F9E2AF";
|
||||||
|
base0B = "A6E3A1";
|
||||||
|
base0C = "94E2D5";
|
||||||
|
base0D = "89B4FA";
|
||||||
|
base0E = "CBA6F7";
|
||||||
|
base0F = "F2CDCD";
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.emoji = {
|
||||||
|
name = "Twitter Color Emoji";
|
||||||
|
package = pkgs.twitter-color-emoji;
|
||||||
|
};
|
||||||
|
|
||||||
|
targets = {
|
||||||
|
vesktop.enable = true;
|
||||||
|
gnome.enable = true;
|
||||||
|
gtk.enable = true;
|
||||||
|
firefox.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
3
modules/core/theme/stylus.nix
Normal file
3
modules/core/theme/stylus.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
11
modules/core/virtualisation.nix
Normal file
11
modules/core/virtualisation.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
den.aspects.virtualisation = {
|
||||||
|
nixos = {
|
||||||
|
virtualisation = {
|
||||||
|
libvirtd.enable = true;
|
||||||
|
|
||||||
|
spiceUSBRedirection.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
greetd.enable = true;
|
|
||||||
|
|
||||||
system76-scheduler.enable = true;
|
|
||||||
|
|
||||||
displayManager = {
|
|
||||||
cosmic-greeter.enable = true;
|
|
||||||
|
|
||||||
autoLogin = {
|
|
||||||
enable = (device == "desktop");
|
|
||||||
user = "bug";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
desktopManager.cosmic.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
COSMIC_DATA_CONTROL_ENABLED = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg = {
|
|
||||||
portal = {
|
|
||||||
enable = true;
|
|
||||||
xdgOpenUsePortal = true;
|
|
||||||
|
|
||||||
config.common.default = ["gtk"];
|
|
||||||
|
|
||||||
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-cosmic];
|
|
||||||
};
|
|
||||||
|
|
||||||
mime = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
defaultApplications = {
|
|
||||||
"text/html" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/http" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/https" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/about" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/unknown" = "firefox.desktop";
|
|
||||||
"application/pdf" = "firefox.desktop";
|
|
||||||
|
|
||||||
"inode/directory" = "com.system76.CosmicFiles.desktop";
|
|
||||||
|
|
||||||
"text/plain" = "com.system76.CosmicEdit.desktop";
|
|
||||||
"text/markdown" = "com.system76.CosmicEdit.desktop";
|
|
||||||
|
|
||||||
"application/zip" = "org.gnome.FileRoller.desktop";
|
|
||||||
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
|
|
||||||
"application/x-tar" = "org.gnome.FileRoller.desktop";
|
|
||||||
"application/gzip" = "org.gnome.FileRoller.desktop";
|
|
||||||
"application/x-xz" = "org.gnome.FileRoller.desktop";
|
|
||||||
"application/x-zip-compressed" = "org.gnome.FileRoller.desktop";
|
|
||||||
|
|
||||||
"application/x-ms-dos-executable" = "wine.desktop";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.librewolf;
|
|
||||||
|
|
||||||
profiles = {
|
|
||||||
"bug" = {
|
|
||||||
id = 0;
|
|
||||||
name = "bug";
|
|
||||||
isDefault = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
policies = {
|
|
||||||
DisableTelemetry = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
|
|
||||||
Preferences = {
|
|
||||||
"cookiebanners.service.mode" = 2;
|
|
||||||
"cookiebanners.service.mode.privateBrowsing" = 2;
|
|
||||||
"network.cookie.lifetimePolicy" = 0;
|
|
||||||
"privacy.clearonShutdown.cookies" = false;
|
|
||||||
"privacy.claerOnShutdown.history" = false;
|
|
||||||
"privacy.donottrackheader.enabled" = true;
|
|
||||||
"privacy.fingerprintingProtection.enabled" = true;
|
|
||||||
"privacy.resistFingerprinting" = false;
|
|
||||||
"privacy.trackingprotection.enabled" = true;
|
|
||||||
"privacy.trackingprotection.socialtracking.enabled" = true;
|
|
||||||
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
|
||||||
"privacy.trackingprotection.emailtracking.enabled" = true;
|
|
||||||
"webgl.disabled" = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
ExtensionSettings = {
|
|
||||||
# catppuccin no borders https://addons.mozilla.org/en-US/firefox/addon/catppuccin-mocha-no-borders/
|
|
||||||
"catppuccin-mocha-no-borders@skyrpex" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-mocha-no-borders/latest.xpi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# DeArrow
|
|
||||||
"dearrow@jetpack" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow-jetpack/latest.xpi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Return Youtube Dislike
|
|
||||||
"return-youtube-dislike@0.4.11" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislike/latest.xpi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# SponsorBlock for YouTube
|
|
||||||
"sponsorblock@sponsorblock.com" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock-for-youtube/latest.xpi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Stylus
|
|
||||||
"stylus@stylus" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/stylus/latest.xpi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Tampermonkey
|
|
||||||
"tampermonkey.net" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# uBlock Origin
|
|
||||||
"ublockorigin@raymondhill.net" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# BTRoblox
|
|
||||||
"btroblox@btroblox" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/btroblox/latest.xpi";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.glances
|
|
||||||
];
|
|
||||||
|
|
||||||
users.users.glances = {
|
|
||||||
isSystemUser = true;
|
|
||||||
group = "glances";
|
|
||||||
home = "/var/lib/glances";
|
|
||||||
createHome = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups.glances = {};
|
|
||||||
|
|
||||||
systemd.services.glances-web = {
|
|
||||||
description = "glances web interface";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
User = "glances";
|
|
||||||
Group = "glances";
|
|
||||||
|
|
||||||
ExecStart = ''
|
|
||||||
${pkgs.glances}/bin/glances \
|
|
||||||
-w \
|
|
||||||
-p 61208 \
|
|
||||||
-B 0.0.0.0
|
|
||||||
'';
|
|
||||||
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 5;
|
|
||||||
|
|
||||||
NoNewPrivileges = true;
|
|
||||||
PrivateTmp = true;
|
|
||||||
ProtectSystem = "strict";
|
|
||||||
ProtectHome = true;
|
|
||||||
LockPersonality = true;
|
|
||||||
MemoryDenyWriteExecute = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
xserver = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
videoDrivers = if (device == "desktop") then ["nvidia"] else ["amdgpu"];
|
|
||||||
excludePackages = [pkgs.xterm];
|
|
||||||
|
|
||||||
xkb = {
|
|
||||||
layout = "us";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
libva-vdpau-driver
|
|
||||||
libvdpau
|
|
||||||
libvdpau-va-gl
|
|
||||||
vdpauinfo
|
|
||||||
libva
|
|
||||||
libva-utils
|
|
||||||
libglvnd
|
|
||||||
mesa
|
|
||||||
] ++ (if (device == "desktop") then [
|
|
||||||
nvidia-vaapi-driver
|
|
||||||
] else [
|
|
||||||
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
|
|
||||||
nvidia = if (device == "desktop") then {
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
powerManagement.enable = false;
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
|
||||||
|
|
||||||
nvidiaPersistenced = true;
|
|
||||||
} else {};
|
|
||||||
|
|
||||||
enableRedistributableFirmware = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
variables = {
|
|
||||||
|
|
||||||
} // (if (device == "desktop") then {
|
|
||||||
WGPU_BACKEND = "gl";
|
|
||||||
GBM_BACKEND = "nvidia-drm";
|
|
||||||
LIBVA_DRIVER_NAME = "nvidia";
|
|
||||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
|
||||||
EGL_PLATFORM = "wayland";
|
|
||||||
} else {
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
sessionVariables = {
|
|
||||||
WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
|
||||||
} // (if (device == "desktop") then {
|
|
||||||
WGPU_BACKEND = "gl";
|
|
||||||
GBM_BACKEND = "nvidia-drm";
|
|
||||||
LIBVA_DRIVER_NAME = "nvidia";
|
|
||||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
|
||||||
EGL_PLATFORM = "wayland";
|
|
||||||
} else {
|
|
||||||
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
services.logind.settings.Login = {
|
|
||||||
HandleLidSwitch = "ignore";
|
|
||||||
HandleLidSwitchDocked = "ignore";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
15
modules/hosts.nix
Normal file
15
modules/hosts.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
let
|
||||||
|
bug = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "bug";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
den.hosts.x86_64-linux = {
|
||||||
|
nix.users.bug = bug;
|
||||||
|
laptop.users.bug = bug;
|
||||||
|
box.users.bug = bug;
|
||||||
|
};
|
||||||
|
|
||||||
|
den.homes.x86_64-linux.bug = { aspect = "bug"; };
|
||||||
|
}
|
||||||
46
modules/hosts/box/box.nix
Normal file
46
modules/hosts/box/box.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
{ den, ... }: {
|
||||||
|
den.aspects.box = {
|
||||||
|
includes = with den.aspects; [
|
||||||
|
den.default
|
||||||
|
den.provides.home-manager
|
||||||
|
syncthing
|
||||||
|
fish
|
||||||
|
|
||||||
|
#cloudflared
|
||||||
|
searxng
|
||||||
|
copyparty
|
||||||
|
glances
|
||||||
|
# invidious
|
||||||
|
mailserver
|
||||||
|
# matrix
|
||||||
|
redlib
|
||||||
|
# sish
|
||||||
|
vscode-server
|
||||||
|
dns
|
||||||
|
openssh
|
||||||
|
gitea
|
||||||
|
catppuccin
|
||||||
|
|
||||||
|
(tunnel 3001 "tvtun")
|
||||||
|
(tunnel 8888 "search")
|
||||||
|
(tunnel 3210 "files")
|
||||||
|
(tunnel 3030 "tube")
|
||||||
|
(tunnel 8975 "reddit")
|
||||||
|
(tunnel 3002 "git")
|
||||||
|
(tunnel 61208 "monitor")
|
||||||
|
];
|
||||||
|
|
||||||
|
nixos = {
|
||||||
|
networking.hostName = "box";
|
||||||
|
|
||||||
|
users.users.levi = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "levi";
|
||||||
|
extraGroups = [];
|
||||||
|
|
||||||
|
hashedPasswordFile = "/home/bug/users/levi.passwd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
101
modules/hosts/defaults.nix
Normal file
101
modules/hosts/defaults.nix
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
{
|
||||||
|
den.default = {
|
||||||
|
nixos = { pkgs, lib, ... }: {
|
||||||
|
imports = [
|
||||||
|
/etc/nixos/hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.backupFileExtension = "hm-backup";
|
||||||
|
|
||||||
|
system = {
|
||||||
|
stateVersion = "26.05";
|
||||||
|
|
||||||
|
autoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
allowReboot = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
optimise.automatic = true;
|
||||||
|
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
security = {
|
||||||
|
sudo = {
|
||||||
|
enable = true;
|
||||||
|
wheelNeedsPassword = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
#kernelPackages = lib.mkForce pkgs.linuxPackages_zen;
|
||||||
|
|
||||||
|
initrd.checkJournalingFS = false;
|
||||||
|
|
||||||
|
loader = {
|
||||||
|
grub.splashImage = null;
|
||||||
|
|
||||||
|
systemd-boot = {
|
||||||
|
enable = true;
|
||||||
|
configurationLimit = 25;
|
||||||
|
};
|
||||||
|
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
comma
|
||||||
|
fastfetch
|
||||||
|
git
|
||||||
|
home-manager
|
||||||
|
inetutils
|
||||||
|
micro
|
||||||
|
nh
|
||||||
|
nil
|
||||||
|
nixd
|
||||||
|
nixfmt
|
||||||
|
nix-index
|
||||||
|
nix-output-monitor
|
||||||
|
nix-prefetch
|
||||||
|
nvd
|
||||||
|
psmisc
|
||||||
|
tree
|
||||||
|
unzip
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
|
||||||
|
time.timeZone = "America/Chicago";
|
||||||
|
|
||||||
|
i18n = {
|
||||||
|
defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
homeManager = {
|
||||||
|
home = {
|
||||||
|
stateVersion = "26.05";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
40
modules/hosts/laptop/laptop.nix
Normal file
40
modules/hosts/laptop/laptop.nix
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
{ den, ... }: {
|
||||||
|
den.aspects.laptop = {
|
||||||
|
includes = with den.aspects; [
|
||||||
|
den.default
|
||||||
|
den.aspects.amdgpu
|
||||||
|
cosmic
|
||||||
|
firefox
|
||||||
|
audio
|
||||||
|
|
||||||
|
den.provides.home-manager
|
||||||
|
stylix
|
||||||
|
syncthing
|
||||||
|
swap
|
||||||
|
cloudflare-warp
|
||||||
|
packages
|
||||||
|
development
|
||||||
|
cad
|
||||||
|
mpd
|
||||||
|
virtualisation
|
||||||
|
flatpak
|
||||||
|
fish
|
||||||
|
dns
|
||||||
|
openssh
|
||||||
|
beets
|
||||||
|
catppuccin
|
||||||
|
#librewolf
|
||||||
|
nixcord
|
||||||
|
];
|
||||||
|
|
||||||
|
nixos = {
|
||||||
|
networking.hostName = "nix";
|
||||||
|
|
||||||
|
services.logind.settings.Login = {
|
||||||
|
HandleLidSwitch = "ignore";
|
||||||
|
HandleLidSwitchDocked = "ignore";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
36
modules/hosts/nix/nix.nix
Normal file
36
modules/hosts/nix/nix.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{ den, ... }:
|
||||||
|
{
|
||||||
|
den.aspects.nix = {
|
||||||
|
includes = with den.aspects; [
|
||||||
|
den.default
|
||||||
|
#amdgpu
|
||||||
|
cosmic
|
||||||
|
firefox
|
||||||
|
audio
|
||||||
|
|
||||||
|
den.provides.home-manager
|
||||||
|
stylix
|
||||||
|
nvidia
|
||||||
|
syncthing
|
||||||
|
swap
|
||||||
|
#cloudflare-warp
|
||||||
|
packages
|
||||||
|
development
|
||||||
|
#cad
|
||||||
|
mpd
|
||||||
|
virtualisation
|
||||||
|
flatpak
|
||||||
|
fish
|
||||||
|
dns
|
||||||
|
openssh
|
||||||
|
beets
|
||||||
|
catppuccin
|
||||||
|
# librewolf
|
||||||
|
nixcord
|
||||||
|
];
|
||||||
|
|
||||||
|
nixos = {
|
||||||
|
networking.hostName = "nix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
32
modules/infra/cloudflared.nix
Normal file
32
modules/infra/cloudflared.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{ den, ... }: let
|
||||||
|
tunnel_uuid = "4118935e-359b-4dd2-95bd-eb27f7b0c5bb";
|
||||||
|
domain = "bug.tools";
|
||||||
|
creds = "/home/bug/.cloudflared/${tunnel_uuid}.json";
|
||||||
|
|
||||||
|
tunnel = port: subdomain: { pkgs, ... }: {
|
||||||
|
environment = {
|
||||||
|
systemPackages = [ pkgs.cloudflared ];
|
||||||
|
|
||||||
|
etc."cloudflared/${tunnel_uuid}.json".source = creds;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.cloudflared = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
tunnels.${tunnel_uuid} = {
|
||||||
|
credentialsFile = "/etc/cloudflared/${tunnel_uuid}.json";
|
||||||
|
default = "http_status:404";
|
||||||
|
|
||||||
|
ingress = {
|
||||||
|
"${subdomain}.${domain}" = "http://127.0.0.1:${toString port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
den.aspects.tunnel = port: subdomain: den.lib.parametric {
|
||||||
|
includes = [
|
||||||
|
(_: { nixos = tunnel port subdomain; })
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
70
modules/infra/syncthing.nix
Normal file
70
modules/infra/syncthing.nix
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
den.aspects.syncthing = {
|
||||||
|
homeManager = {
|
||||||
|
services.syncthing = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
overrideDevices = true;
|
||||||
|
overrideFolders = true;
|
||||||
|
|
||||||
|
key = "/home/bug/.syncthing/key.pem";
|
||||||
|
cert = "/home/bug/.syncthing/cert.pem";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
devices = {
|
||||||
|
desktop.id = "VEZXY3W-U6UXWTP-6BHANIG-O5EKNZY-XNV5YOX-4V4O3HB-ETECIUX-T2DK7AV";
|
||||||
|
laptop.id = "I6NW53P-IJMMT73-7O53TXY-3GAHS2U-4EAADM7-ZNB5ZPB-62QHKVW-H7DYXQ2";
|
||||||
|
server.id = "KJECAIP-Y2Y3FHV-NOJKIQV-LWIDMMZ-5ITEAZ4-LQCQL72-3BGW6T7-BFPFJQA";
|
||||||
|
};
|
||||||
|
|
||||||
|
folders = {
|
||||||
|
"Documents" = {
|
||||||
|
path = "/home/bug/Documents";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Downloads" = {
|
||||||
|
path = "/home/bug/Downloads";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Pictures" = {
|
||||||
|
path = "/home/bug/Pictures";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Videos" = {
|
||||||
|
path = "/home/bug/Videos";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"nix" = {
|
||||||
|
path = "/home/bug/nix";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"hytale" = {
|
||||||
|
path = "/home/bug/.local/share/Hytale/UserData/Saves";
|
||||||
|
devices = ["desktop" "laptop"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"ssh" = {
|
||||||
|
path = "/home/bug/.ssh";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"cloudflared" = {
|
||||||
|
path = "/home/bug/.cloudflared";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Music" = {
|
||||||
|
path = "/home/bug/Music/";
|
||||||
|
devices = ["desktop" "laptop" "server"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
companionPort = 8282;
|
|
||||||
companionPath = "/companion";
|
|
||||||
companionKey = "kKg3RKeZjE7frmuw";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
virtualisation.podman.enable = true;
|
|
||||||
virtualisation.oci-containers.backend = lib.mkDefault "podman";
|
|
||||||
|
|
||||||
virtualisation.oci-containers.containers.invidious-companion = {
|
|
||||||
image = "quay.io/invidious/invidious-companion:latest";
|
|
||||||
extraOptions = [ "--network=host" "--pull=always" ];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
SERVER_SECRET_KEY = companionKey;
|
|
||||||
HOST = "127.0.0.1";
|
|
||||||
PORT = toString companionPort;
|
|
||||||
SERVER_BASE_URL = "http://127.0.0.1:${toString companionPort}";
|
|
||||||
|
|
||||||
# HTTP_PROXY = "http://proxy.example:3128";
|
|
||||||
# HTTPS_PROXY = "http://proxy.example:3128";
|
|
||||||
# NO_PROXY = "127.0.0.1,localhost";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.invidious = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.invidious;
|
|
||||||
|
|
||||||
address = "127.0.0.1";
|
|
||||||
port = 3030;
|
|
||||||
|
|
||||||
nginx.enable = false;
|
|
||||||
sig-helper.enable = false;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
domain = "tube.bug.tools";
|
|
||||||
https_only = true;
|
|
||||||
external_port = 3030;
|
|
||||||
|
|
||||||
invidious_companion = [
|
|
||||||
{ private_url = "http://127.0.0.1:${toString companionPort}${companionPath}"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
invidious_companion_key = companionKey;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.invidious = let dep = "podman-invidious-companion.service"; in {
|
|
||||||
wants = [ dep ];
|
|
||||||
after = [ dep ];
|
|
||||||
requires = [ dep ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
time.timeZone = "America/Chicago";
|
|
||||||
|
|
||||||
i18n = {
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
|
|
||||||
extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
|
||||||
LC_PAPER = "en_US.UTF-8";
|
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
|
||||||
LC_TIME = "en_US.UTF-8";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(builtins.fetchTarball {
|
|
||||||
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/master.tar.gz";
|
|
||||||
|
|
||||||
sha256 = "0xlhl8zhcz5c6hvmpkfw9ay2lfnk6nhax8pphvbv3vzxf1p9dhw9";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
security.acme = {
|
|
||||||
acceptTerms = true;
|
|
||||||
defaults.email = "security@bug.tools";
|
|
||||||
|
|
||||||
certs."mail.bug.tools" = {
|
|
||||||
listenHTTP = "1360";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mailserver = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
stateVersion = 3;
|
|
||||||
|
|
||||||
fqdn = "mail.bug.tools";
|
|
||||||
domains = [ "bug.tools" ];
|
|
||||||
|
|
||||||
x509.useACMEHost = "mail.bug.tools";
|
|
||||||
|
|
||||||
loginAccounts = {
|
|
||||||
"bug@bug.tools" = {
|
|
||||||
hashedPasswordFile = "/home/bug/mailserver/bug.passwd";
|
|
||||||
aliases = [
|
|
||||||
"admin@bug.tools"
|
|
||||||
"google@bug.tools"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"pare@bug.tools" = {
|
|
||||||
hashedPasswordFile = "/home/bug/mailserver/pare.passwd";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
mpd = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
music_directory = "/run/media/bug/Music/";
|
|
||||||
|
|
||||||
decoder = [
|
|
||||||
{
|
|
||||||
plugin = "ffmpeg";
|
|
||||||
enabled = "yes";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = "opus";
|
|
||||||
enabled = "no";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
audio_output = [{
|
|
||||||
type = "pipewire";
|
|
||||||
name = "PipeWire Sound Server";
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
|
|
||||||
user = "bug";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services = {
|
|
||||||
mpd.environment = {
|
|
||||||
XDG_RUNTIME_DIR = "/run/user/1000";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
networking = {
|
|
||||||
hostName = if (device == "server") then "box" else "nix";
|
|
||||||
|
|
||||||
networkmanager.enable = true;
|
|
||||||
|
|
||||||
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
cloudflare-warp.enable = (device == "laptop");
|
|
||||||
|
|
||||||
openssh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
PrintMotd = true;
|
|
||||||
X11Forwarding = true;
|
|
||||||
AllowTcpForwarding = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,359 +0,0 @@
|
|||||||
{ lib, config, inputs, pkgs, options, device, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
nix-gaming = import (builtins.fetchTarball "https://github.com/fufexan/nix-gaming/archive/master.tar.gz");
|
|
||||||
|
|
||||||
nix-alien = import (
|
|
||||||
builtins.fetchTarball "https://github.com/thiagokokada/nix-alien/tarball/master"
|
|
||||||
) {};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
nix-gaming.nixosModules.platformOptimizations
|
|
||||||
nix-gaming.nixosModules.pipewireLowLatency
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs = {
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
|
|
||||||
cudaSupport = (device == "desktop");
|
|
||||||
nvidia.acceptLicense = (device == "desktop");
|
|
||||||
};
|
|
||||||
|
|
||||||
overlays = [
|
|
||||||
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
BROWSER = "firefox";
|
|
||||||
NIXPKGS_ALLOW_UNFREE = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.bug.packages = with pkgs; [
|
|
||||||
vscode
|
|
||||||
|
|
||||||
(luajit.withPackages (ps: with ps; [
|
|
||||||
luasocket
|
|
||||||
bit32
|
|
||||||
]))
|
|
||||||
|
|
||||||
go
|
|
||||||
|
|
||||||
#(python3.withPackages (ps: with ps; [
|
|
||||||
#unidecode
|
|
||||||
#discordpy
|
|
||||||
#setuptools
|
|
||||||
|
|
||||||
#pip
|
|
||||||
#pynput
|
|
||||||
#python-uinput
|
|
||||||
|
|
||||||
#mido
|
|
||||||
|
|
||||||
#pyautogui
|
|
||||||
#pygobject3
|
|
||||||
#pycairo
|
|
||||||
|
|
||||||
#tkinter
|
|
||||||
|
|
||||||
#numpy
|
|
||||||
#scipy
|
|
||||||
#imageio
|
|
||||||
|
|
||||||
#evdev
|
|
||||||
#]))
|
|
||||||
|
|
||||||
nodejs
|
|
||||||
|
|
||||||
(blender.withPackages (ps: with ps; [
|
|
||||||
libGLU
|
|
||||||
gcc
|
|
||||||
zlib
|
|
||||||
xorg.libX11
|
|
||||||
fontconfig
|
|
||||||
pcre2
|
|
||||||
xorg.libXext
|
|
||||||
xorg.libxcb
|
|
||||||
glib
|
|
||||||
]))
|
|
||||||
|
|
||||||
plasticity
|
|
||||||
obsidian
|
|
||||||
vesktop
|
|
||||||
nicotine-plus
|
|
||||||
fastfetch
|
|
||||||
tree
|
|
||||||
gh
|
|
||||||
scanmem
|
|
||||||
samrewritten
|
|
||||||
impression
|
|
||||||
|
|
||||||
mission-center
|
|
||||||
|
|
||||||
authenticator
|
|
||||||
|
|
||||||
steamtinkerlaunch
|
|
||||||
|
|
||||||
obs-studio
|
|
||||||
|
|
||||||
#prismlauncher
|
|
||||||
|
|
||||||
euphonica
|
|
||||||
|
|
||||||
kooha
|
|
||||||
|
|
||||||
loupe
|
|
||||||
|
|
||||||
arduino-ide
|
|
||||||
|
|
||||||
geary
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
home-manager
|
|
||||||
comma # run nixpkgs without installing
|
|
||||||
nix-index
|
|
||||||
|
|
||||||
git
|
|
||||||
wget
|
|
||||||
|
|
||||||
gcc
|
|
||||||
gnumake
|
|
||||||
|
|
||||||
nmap
|
|
||||||
inetutils
|
|
||||||
|
|
||||||
nix-prefetch
|
|
||||||
nix-output-monitor
|
|
||||||
nvd # nix pkg diff
|
|
||||||
|
|
||||||
nixfmt # nix formatter
|
|
||||||
nixd # nix language server
|
|
||||||
nil # nix language server
|
|
||||||
|
|
||||||
nh # nix helper
|
|
||||||
|
|
||||||
gnome-boxes # gnome vm manager
|
|
||||||
vulkan-tools
|
|
||||||
|
|
||||||
openjdk
|
|
||||||
zlib
|
|
||||||
glfw
|
|
||||||
glew
|
|
||||||
|
|
||||||
wine64
|
|
||||||
wineWow64Packages.full
|
|
||||||
|
|
||||||
lug-helper
|
|
||||||
|
|
||||||
appimage-run
|
|
||||||
|
|
||||||
|
|
||||||
vulkan-validation-layers
|
|
||||||
vulkan-loader
|
|
||||||
|
|
||||||
pulseaudioFull
|
|
||||||
|
|
||||||
gamemode
|
|
||||||
|
|
||||||
winetricks
|
|
||||||
|
|
||||||
steam-run
|
|
||||||
|
|
||||||
firmware-updater
|
|
||||||
|
|
||||||
cosmic-applets
|
|
||||||
cosmic-edit
|
|
||||||
cosmic-ext-calculator
|
|
||||||
cosmic-ext-tweaks
|
|
||||||
cosmic-screenshot
|
|
||||||
quick-webapps
|
|
||||||
|
|
||||||
nix-alien.nix-alien
|
|
||||||
|
|
||||||
file-roller
|
|
||||||
unzip
|
|
||||||
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
xdg-desktop-portal-cosmic
|
|
||||||
|
|
||||||
mangohud
|
|
||||||
mesa-demos
|
|
||||||
|
|
||||||
lutris
|
|
||||||
|
|
||||||
gnome-software
|
|
||||||
|
|
||||||
neovim
|
|
||||||
|
|
||||||
micro
|
|
||||||
|
|
||||||
inputs.hytale-launcher.packages.${pkgs.system}.default
|
|
||||||
|
|
||||||
baobab
|
|
||||||
|
|
||||||
psmisc
|
|
||||||
|
|
||||||
firefox-bin
|
|
||||||
] ++ (if (device == "desktop") then [
|
|
||||||
#(nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override {
|
|
||||||
# tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ];
|
|
||||||
#})
|
|
||||||
|
|
||||||
inputs.nix-citizen.packages.${system}.rsi-launcher
|
|
||||||
|
|
||||||
libxshmfence
|
|
||||||
|
|
||||||
(appimage-run.override {
|
|
||||||
extraPkgs = pkgs: [ pkgs.xorg.libxshmfence pkgs.linuxPackages.nvidia_x11 ];
|
|
||||||
})
|
|
||||||
] else [
|
|
||||||
bambu-studio
|
|
||||||
]);
|
|
||||||
|
|
||||||
services = {
|
|
||||||
flatpak = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
remotes = lib.mkOptionDefault [{
|
|
||||||
name = "flathub-beta";
|
|
||||||
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
|
||||||
}];
|
|
||||||
|
|
||||||
update.auto.enable = true;
|
|
||||||
uninstallUnmanaged = true;
|
|
||||||
|
|
||||||
packages = [
|
|
||||||
"org.vinegarhq.Sober"
|
|
||||||
"org.vinegarhq.Vinegar"
|
|
||||||
"org.gnome.Decibels"
|
|
||||||
"org.pipewire.Helvum"
|
|
||||||
"community.pathofbuilding.PathOfBuilding"
|
|
||||||
|
|
||||||
{
|
|
||||||
appId = "com.hytale.Launcher";
|
|
||||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
|
||||||
bundle = "${pkgs.fetchurl {
|
|
||||||
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
|
|
||||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
|
||||||
}}";
|
|
||||||
}
|
|
||||||
|
|
||||||
# add Polytoria client
|
|
||||||
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
|
|
||||||
|
|
||||||
{
|
|
||||||
appId = "com.polytoria.launcher";
|
|
||||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
|
||||||
bundle = "${pkgs.fetchurl {
|
|
||||||
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
|
|
||||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
|
||||||
}}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
overrides = {
|
|
||||||
global = {
|
|
||||||
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ollama = {
|
|
||||||
enable = false;
|
|
||||||
|
|
||||||
loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "deepseek-r1:8b"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
fontDir.enable = true;
|
|
||||||
enableDefaultPackages = true;
|
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
twitter-color-emoji
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
nerd-fonts.droid-sans-mono
|
|
||||||
];
|
|
||||||
|
|
||||||
fontconfig = {
|
|
||||||
enable = true;
|
|
||||||
useEmbeddedBitmaps = true;
|
|
||||||
|
|
||||||
defaultFonts = {
|
|
||||||
emoji = [ "Twitter Color Emoji" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
rsi-launcher = {
|
|
||||||
enable = (device == "desktop");
|
|
||||||
|
|
||||||
preCommands = ''
|
|
||||||
export DISPLAY=;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
appimage = {
|
|
||||||
enable = true;
|
|
||||||
binfmt = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
#firefox = {
|
|
||||||
# enable = true;
|
|
||||||
|
|
||||||
# package = pkgs.firefox-bin;
|
|
||||||
#};
|
|
||||||
|
|
||||||
steam = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
remotePlay.openFirewall = true;
|
|
||||||
dedicatedServer.openFirewall = false;
|
|
||||||
|
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
|
||||||
|
|
||||||
gamescopeSession.enable = true;
|
|
||||||
|
|
||||||
extraCompatPackages = with pkgs; [
|
|
||||||
proton-ge-bin
|
|
||||||
];
|
|
||||||
|
|
||||||
platformOptimizations.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
ydotool.enable = true;
|
|
||||||
|
|
||||||
gamescope = {
|
|
||||||
enable = true;
|
|
||||||
capSysNice = true;
|
|
||||||
args = [
|
|
||||||
"--rt"
|
|
||||||
"--expose-wayland"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
virt-manager.enable = true;
|
|
||||||
|
|
||||||
nix-ld = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [
|
|
||||||
libxml2
|
|
||||||
udev
|
|
||||||
gcc
|
|
||||||
egl-wayland
|
|
||||||
mesa
|
|
||||||
libglvnd
|
|
||||||
wayland
|
|
||||||
xorg.libX11
|
|
||||||
xorg.libXcursor
|
|
||||||
xorg.libXrandr
|
|
||||||
xorg.libXi
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.redlib = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
address = "127.0.0.1";
|
|
||||||
port = 8975;
|
|
||||||
openFirewall = false;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
SFW_ONLY = "off"; # ["on", "off"]
|
|
||||||
ROBOTS_DISABLE_INDEXING = "on"; # ["on", "off"]
|
|
||||||
ENABLE_RSS = "on"; # ["on", "off"]
|
|
||||||
THEME = "system"; # ["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold", "rosebox", "gruvboxdark", "gruvboxlight", "tokyoNight", "icebergDark", "doomone", "libredditBlack", "libredditDark", "libredditLight"]
|
|
||||||
FRONT_PAGE = "default"; # ["default", "popular", "all"]
|
|
||||||
LAYOUT = "card"; # ["card", "clean", "compact"]
|
|
||||||
WIDE = "on"; # ["on", "off"]
|
|
||||||
POST_SORT = "hot"; # ["hot", "new", "top", "rising", "controversial"]
|
|
||||||
COMMENT_SORT = "confidence"; # ["confidence", "top", "new", "controversial", "old"]
|
|
||||||
BLUR_SPOILER = "off"; # ["on", "off"]
|
|
||||||
SHOW_NSFW = "on"; # ["on", "off"]
|
|
||||||
BLUR_NSFW = "off"; # ["on", "off"]
|
|
||||||
USE_HLS = "on"; # ["on", "off"]
|
|
||||||
HIDE_HLS_NOTIFICATION = "off"; # ["on", "off"]
|
|
||||||
AUTOPLAY_VIDEOS = "off"; # ["on", "off"]
|
|
||||||
HIDE_AWARDS = "off"; # ["on", "off"]
|
|
||||||
DISABLE_VISIT_REDDIT_CONFIRMATION = "off"; # ["on", "off"]
|
|
||||||
HIDE_SCORE = "off"; # ["on", "off"]
|
|
||||||
HIDE_SIDEBAR_AND_SUMMARY = "off"; # ["on", "off"]
|
|
||||||
FIXED_NAVBAR = "on"; # ["on", "off"]
|
|
||||||
REMOVE_DEFAULT_FEEDS = "off"; # ["on", "off"]
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
systemd.services.searx-init.serviceConfig.EnvironmentFile = [
|
|
||||||
"/home/bug/.searxng.env"
|
|
||||||
];
|
|
||||||
|
|
||||||
services.searx = {
|
|
||||||
enable = true;
|
|
||||||
redisCreateLocally = false;
|
|
||||||
configureUwsgi = false;
|
|
||||||
settingsFile = ./searxng.yml;
|
|
||||||
environmentFile = "/home/bug/.searxng.env";
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
general.instance_name = "search.bug.tools";
|
|
||||||
|
|
||||||
server.port = 8888;
|
|
||||||
server.bind_address = "0.0.0.0";
|
|
||||||
server.secret_key = "$SEARX_SECRET_KEY";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
security = {
|
|
||||||
polkit.enable = true;
|
|
||||||
|
|
||||||
sudo = {
|
|
||||||
enable = true;
|
|
||||||
wheelNeedsPassword = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
82
modules/services/copyparty.nix
Normal file
82
modules/services/copyparty.nix
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
den.aspects.copyparty = {
|
||||||
|
nixos = {
|
||||||
|
imports = [ inputs.copyparty.nixosModules.default ];
|
||||||
|
|
||||||
|
nixpkgs.overlays = [ inputs.copyparty.overlays.default ];
|
||||||
|
|
||||||
|
services.copyparty = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
user = "bug";
|
||||||
|
group = "copyparty";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
i = "0.0.0.0";
|
||||||
|
p = [ 3210 3211 ];
|
||||||
|
no-reload = true;
|
||||||
|
ignored-flag = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
accounts = {
|
||||||
|
bug = {
|
||||||
|
passwordFile = "/home/bug/mailserver/bug.passwd";
|
||||||
|
};
|
||||||
|
|
||||||
|
#sang = {
|
||||||
|
#passwordFile = "/home/bug/nix/sang.passwd";
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
|
||||||
|
groups = {
|
||||||
|
g1 = [ "bug" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
volumes = {
|
||||||
|
"/" = {
|
||||||
|
path = "/srv/copyparty";
|
||||||
|
|
||||||
|
access = {
|
||||||
|
r = "*";
|
||||||
|
rw = [ "bug" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
flags = {
|
||||||
|
fk = 4;
|
||||||
|
scan = 60;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"/music" = {
|
||||||
|
path = "/home/bug/Music/";
|
||||||
|
|
||||||
|
access = {
|
||||||
|
r = "*";
|
||||||
|
rw = [ "bug" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
flags = {
|
||||||
|
fk = 4;
|
||||||
|
scan = 60;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* "/sang" = {
|
||||||
|
path = "/srv/sang";
|
||||||
|
|
||||||
|
access = {
|
||||||
|
rw = [ "bug" ]; #"sang" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
flags = {
|
||||||
|
fk = 4;
|
||||||
|
scan = 60;
|
||||||
|
};
|
||||||
|
}; */
|
||||||
|
};
|
||||||
|
|
||||||
|
openFilesLimit = 8192;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
17
modules/services/gitea.nix
Normal file
17
modules/services/gitea.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
den.aspects.gitea = {
|
||||||
|
nixos = {
|
||||||
|
services.gitea = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
database.type = "mysql";
|
||||||
|
|
||||||
|
settings.service = {
|
||||||
|
DISABLE_REGISTRATION = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.server.HTTP_PORT = 3002;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
44
modules/services/glances.nix
Normal file
44
modules/services/glances.nix
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{ den, ...}: {
|
||||||
|
den.aspects.glances = {
|
||||||
|
nixos = { pkgs, ... }: {
|
||||||
|
environment.systemPackages = [ pkgs.glances ];
|
||||||
|
|
||||||
|
users.users.glances = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "glances";
|
||||||
|
home = "/var/lib/glances";
|
||||||
|
createHome = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups.glances = {};
|
||||||
|
|
||||||
|
systemd.services.glances-web = {
|
||||||
|
description = "glances web interface";
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
User = "glances";
|
||||||
|
Group = "glances";
|
||||||
|
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.glances}/bin/glances \
|
||||||
|
-w \
|
||||||
|
-p 61208 \
|
||||||
|
-B 0.0.0.0
|
||||||
|
'';
|
||||||
|
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 5;
|
||||||
|
|
||||||
|
NoNewPrivileges = true;
|
||||||
|
PrivateTmp = true;
|
||||||
|
ProtectSystem = "strict";
|
||||||
|
ProtectHome = true;
|
||||||
|
LockPersonality = true;
|
||||||
|
MemoryDenyWriteExecute = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
57
modules/services/invidious.nix
Normal file
57
modules/services/invidious.nix
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{ den, lib, ... }: {
|
||||||
|
den.aspects.invidious = {
|
||||||
|
nixos = { pkgs, ... }: let
|
||||||
|
companionPort = 8282;
|
||||||
|
companionPath = "/companion";
|
||||||
|
companionKey = "kKg3RKeZjE7frmvw";
|
||||||
|
in {
|
||||||
|
virtualisation.podman.enable = true;
|
||||||
|
virtualisation.oci-containers.backend = lib.mkDefault "podman";
|
||||||
|
|
||||||
|
virtualisation.oci-containers.containers.invidious-companion = {
|
||||||
|
image = "quay.io/invidious/invidious-companion:latest";
|
||||||
|
extraOptions = [ "--network=host" "--pull=always" ];
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
SERVER_SECRET_KEY = companionKey;
|
||||||
|
HOST = "127.0.0.1";
|
||||||
|
PORT = toString companionPort;
|
||||||
|
SERVER_BASE_URL = "http://127.0.0.1:${toString companionPort}";
|
||||||
|
|
||||||
|
# HTTP_PROXY = "http://proxy.example:3128";
|
||||||
|
# HTTPS_PROXY = "http://proxy.example:3128";
|
||||||
|
# NO_PROXY = "127.0.0.1,localhost";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.invidious = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.invidious;
|
||||||
|
|
||||||
|
address = "127.0.0.1";
|
||||||
|
port = 3030;
|
||||||
|
|
||||||
|
nginx.enable = false;
|
||||||
|
sig-helper.enable = false;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
domain = "tube.bug.tools";
|
||||||
|
https_only = false;
|
||||||
|
external_port = 3030;
|
||||||
|
|
||||||
|
invidious_companion = [
|
||||||
|
{ private_url = "http://127.0.0.1:${toString companionPort}${companionPath}"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
invidious_companion_key = companionKey;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.invidious = let dep = "podman-invidious-companion.service"; in {
|
||||||
|
wants = [ dep ];
|
||||||
|
after = [ dep ];
|
||||||
|
requires = [ dep ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
59
modules/services/mailserver.nix
Normal file
59
modules/services/mailserver.nix
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
den.aspects.mailserver = {
|
||||||
|
nixos = {
|
||||||
|
imports = [
|
||||||
|
(fetchTarball {
|
||||||
|
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/master.tar.gz";
|
||||||
|
sha256 = "0rm5f749xakmkqrpkl5ay1pydbnlinr50pvwg1vm795js2infmj5";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "security@bug.tools";
|
||||||
|
|
||||||
|
certs."mail.bug.tools" = {
|
||||||
|
listenHTTP = "1360";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mailserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
stateVersion = 3;
|
||||||
|
|
||||||
|
fqdn = "mail.bug.tools";
|
||||||
|
domains = [ "bug.tools" ];
|
||||||
|
|
||||||
|
x509.useACMEHost = "mail.bug.tools";
|
||||||
|
|
||||||
|
loginAccounts = {
|
||||||
|
"bug@bug.tools" = {
|
||||||
|
hashedPasswordFile = "/home/bug/mailserver/bug.passwd";
|
||||||
|
aliases = [
|
||||||
|
"admin@bug.tools"
|
||||||
|
"google@bug.tools"
|
||||||
|
"apple@bug.tools"
|
||||||
|
"roblox@bug.tools"
|
||||||
|
"twitch@bug.tools"
|
||||||
|
"discord@bug.tools"
|
||||||
|
"github@bug.tools"
|
||||||
|
"matrix@bug.tools"
|
||||||
|
"git@bug.tools"
|
||||||
|
"contact@bug.tools"
|
||||||
|
"fc2@bug.tools"
|
||||||
|
"counter@bug.tools"
|
||||||
|
"claude@bug.tools"
|
||||||
|
"bitcraft@bug.tools"
|
||||||
|
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"pare@bug.tools" = {
|
||||||
|
hashedPasswordFile = "/home/bug/mailserver/pare.passwd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
103
modules/services/matrix.nix
Normal file
103
modules/services/matrix.nix
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
den.aspects.matrix = {
|
||||||
|
nixos = {
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
domain = "bug.tools";
|
||||||
|
matrixDomain = "matrix.${domain}";
|
||||||
|
clientConfig = {
|
||||||
|
"m.homeserver".base_url = "https://${matrixDomain}";
|
||||||
|
"m.identity_server" = {};
|
||||||
|
};
|
||||||
|
serverConfig = {
|
||||||
|
"m.server" = "${matrixDomain}:443";
|
||||||
|
};
|
||||||
|
mkWellKnown = data: ''
|
||||||
|
default_type application/json;
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
return 200 '${builtins.toJSON data}';
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
services.matrix-synapse = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server_name = domain;
|
||||||
|
public_baseurl = "https://${matrixDomain}";
|
||||||
|
|
||||||
|
listeners = [
|
||||||
|
{
|
||||||
|
port = 8008;
|
||||||
|
bind_addresses = ["127.0.0.1"];
|
||||||
|
type = "http";
|
||||||
|
tls = false;
|
||||||
|
x_forwarded = true;
|
||||||
|
resources = [
|
||||||
|
{
|
||||||
|
names = ["client" "federation"];
|
||||||
|
compress = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
database = {
|
||||||
|
name = "psycopg2";
|
||||||
|
allow_unsafe_locale = true;
|
||||||
|
args = {
|
||||||
|
user = "matrix-synapse";
|
||||||
|
database = "matrix-synapse";
|
||||||
|
host = "/run/postgresql";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
max_upload_size_mib = 100;
|
||||||
|
url_preview_enabled = true;
|
||||||
|
enable_registration = false;
|
||||||
|
enable_metrics = false;
|
||||||
|
registration_shared_secret_path = "/var/lib/matrix-synapse/registration_secret";
|
||||||
|
|
||||||
|
trusted_key_servers = [
|
||||||
|
{
|
||||||
|
server_name = "matrix.org";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
ensureDatabases = ["matrix-synapse"];
|
||||||
|
ensureUsers = [
|
||||||
|
{
|
||||||
|
name = "matrix-synapse";
|
||||||
|
ensureDBOwnership = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts.${domain} = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."= /.well-known/matrix/server".extraConfig = mkWellKnown serverConfig;
|
||||||
|
locations."= /.well-known/matrix/client".extraConfig = mkWellKnown clientConfig;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts.${matrixDomain} = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:8008";
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
client_max_body_size 100M;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
1
modules/services/portmap.nix
Normal file
1
modules/services/portmap.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
37
modules/services/redlib.nix
Normal file
37
modules/services/redlib.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
den.aspects.redlib = {
|
||||||
|
nixos = {
|
||||||
|
services.redlib = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
address = "127.0.0.1";
|
||||||
|
port = 8975;
|
||||||
|
openFirewall = false;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
SFW_ONLY = "off";
|
||||||
|
ROBOTS_DISABLE_INDEXING = "on";
|
||||||
|
ENABLE_RSS = "on";
|
||||||
|
THEME = "system";
|
||||||
|
FRONT_PAGE = "default";
|
||||||
|
LAYOUT = "card";
|
||||||
|
WIDE = "on";
|
||||||
|
POST_SORT = "hot";
|
||||||
|
COMMENT_SORT = "confidence";
|
||||||
|
BLUR_SPOILER = "off";
|
||||||
|
SHOW_NSFW = "on";
|
||||||
|
BLUR_NSFW = "off";
|
||||||
|
USE_HLS = "on";
|
||||||
|
HIDE_HLS_NOTIFICATION = "off";
|
||||||
|
AUTOPLAY_VIDEOS = "off";
|
||||||
|
HIDE_AWARDS = "off";
|
||||||
|
DISABLE_VISIT_REDDIT_CONFIRMATION = "off";
|
||||||
|
HIDE_SCORE = "off";
|
||||||
|
HIDE_SIDEBAR_AND_SUMMARY = "off";
|
||||||
|
FIXED_NAVBAR = "on";
|
||||||
|
REMOVE_DEFAULT_FEEDS = "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
25
modules/services/searxng/searxng.nix
Normal file
25
modules/services/searxng/searxng.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
den.aspects.searxng = {
|
||||||
|
nixos = {
|
||||||
|
systemd.services.searx-init.serviceConfig.EnvironmentFile = [
|
||||||
|
"/home/bug/.searxng.env"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.searx = {
|
||||||
|
enable = true;
|
||||||
|
redisCreateLocally = false;
|
||||||
|
configureUwsgi = false;
|
||||||
|
settingsFile = ./searxng.yml;
|
||||||
|
environmentFile = "/home/bug/.searxng.env";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
general.instance_name = "search.bug.tools";
|
||||||
|
|
||||||
|
server.port = 8888;
|
||||||
|
server.bind_address = "0.0.0.0";
|
||||||
|
server.secret_key = "$SEARX_SECRET_KEY";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
general:
|
general:
|
||||||
# Debug mode, only for development. Is overwritten by ${SEARXNG_DEBUG}
|
|
||||||
debug: false
|
debug: false
|
||||||
# displayed name
|
|
||||||
instance_name: "search.bug.tools"
|
instance_name: "search.bug.tools"
|
||||||
# For example: https://example.com/privacy
|
# For example: https://example.com/privacy
|
||||||
privacypolicy_url: false
|
privacypolicy_url: false
|
||||||
@@ -9,7 +7,7 @@ general:
|
|||||||
# use false to disable the donation link
|
# use false to disable the donation link
|
||||||
donation_url: false
|
donation_url: false
|
||||||
# mailto:contact@example.com
|
# mailto:contact@example.com
|
||||||
contact_url: false
|
contact_url: contact@bug.tools
|
||||||
# record stats
|
# record stats
|
||||||
enable_metrics: true
|
enable_metrics: true
|
||||||
# expose stats in open metrics format at /metrics
|
# expose stats in open metrics format at /metrics
|
||||||
7
modules/services/sish.nix
Normal file
7
modules/services/sish.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
den.aspects.sish = {
|
||||||
|
nixos = {
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
modules/services/vscode-server.nix
Normal file
11
modules/services/vscode-server.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
den.aspects.vscode-server = {
|
||||||
|
nixos = {
|
||||||
|
imports = [
|
||||||
|
(fetchTarball "https://github.com/nix-community/nixos-vscode-server/tarball/master")
|
||||||
|
];
|
||||||
|
|
||||||
|
services.vscode-server.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
53
modules/software/beets.nix
Normal file
53
modules/software/beets.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
den.aspects.beets = {
|
||||||
|
homeManager = { pkgs, ... }: {
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
beets
|
||||||
|
ffmpeg
|
||||||
|
chromaprint
|
||||||
|
];
|
||||||
|
|
||||||
|
file.".config/beets/config.yaml".text = ''
|
||||||
|
library: ~/.local/share/beets/library.db
|
||||||
|
directory: ~/Music
|
||||||
|
|
||||||
|
import:
|
||||||
|
write: true
|
||||||
|
copy: true
|
||||||
|
|
||||||
|
plugins:
|
||||||
|
- convert
|
||||||
|
- fetchart
|
||||||
|
- embedart
|
||||||
|
- fromfilename
|
||||||
|
- chroma
|
||||||
|
- smartplaylist
|
||||||
|
|
||||||
|
paths:
|
||||||
|
default: $artist/$album/$track - $title
|
||||||
|
|
||||||
|
convert:
|
||||||
|
auto: true
|
||||||
|
format: opus
|
||||||
|
formats:
|
||||||
|
opus: ffmpeg -i $source -y -vn -c:a libopus -b:a 160k $dest
|
||||||
|
dest: /home/bug/Music
|
||||||
|
|
||||||
|
fetchart:
|
||||||
|
auto: yes
|
||||||
|
ifempty: yes
|
||||||
|
art_filename: folder
|
||||||
|
|
||||||
|
embedart:
|
||||||
|
auto: yes
|
||||||
|
|
||||||
|
smartplaylist:
|
||||||
|
playlist_dir: ~/Music/playlists
|
||||||
|
relative_to: library
|
||||||
|
output: extm3u
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
modules/software/cad.nix
Normal file
11
modules/software/cad.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
den.aspects.cad = {
|
||||||
|
nixos = { pkgs, ... }: {
|
||||||
|
users.users.bug.packages = with pkgs; [
|
||||||
|
blender
|
||||||
|
plasticity
|
||||||
|
orca-slicer
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
1
modules/software/compatibility.nix
Normal file
1
modules/software/compatibility.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
21
modules/software/development.nix
Normal file
21
modules/software/development.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
den.aspects.development = {
|
||||||
|
nixos = { pkgs, ... }: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
file-roller
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users.bug.packages = with pkgs; [
|
||||||
|
zed-editor
|
||||||
|
|
||||||
|
vscode
|
||||||
|
|
||||||
|
tree
|
||||||
|
gh
|
||||||
|
scanmem
|
||||||
|
|
||||||
|
arduino-ide
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
modules/software/firefox.nix
Normal file
11
modules/software/firefox.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
den.aspects.firefox = {
|
||||||
|
nixos = { pkgs, ... }: {
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
package = pkgs.firefox-bin;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
modules/software/fish.nix
Normal file
9
modules/software/fish.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
den.aspects.fish = {
|
||||||
|
nixos = {
|
||||||
|
programs.fish.shellAliases = {
|
||||||
|
box = "ssh box.bug.tools";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
55
modules/software/flatpak.nix
Normal file
55
modules/software/flatpak.nix
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{ inputs, lib, ... }: {
|
||||||
|
den.aspects.flatpak = {
|
||||||
|
nixos = { pkgs, ... }: {
|
||||||
|
imports = [ inputs.nix-flatpak.nixosModules.nix-flatpak ];
|
||||||
|
|
||||||
|
services.flatpak = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
remotes = lib.mkOptionDefault [{
|
||||||
|
name = "flathub-beta";
|
||||||
|
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||||
|
}];
|
||||||
|
|
||||||
|
update.auto.enable = true;
|
||||||
|
uninstallUnmanaged = true;
|
||||||
|
|
||||||
|
packages = [
|
||||||
|
"org.vinegarhq.Sober"
|
||||||
|
"org.vinegarhq.Vinegar"
|
||||||
|
"org.gnome.Decibels"
|
||||||
|
"org.pipewire.Helvum"
|
||||||
|
"community.pathofbuilding.PathOfBuilding"
|
||||||
|
"io.github.gaheldev.Millisecond"
|
||||||
|
|
||||||
|
{
|
||||||
|
appId = "com.hytale.Launcher";
|
||||||
|
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||||
|
bundle = "${pkgs.fetchurl {
|
||||||
|
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
|
||||||
|
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||||
|
}}";
|
||||||
|
}
|
||||||
|
|
||||||
|
# add Polytoria client
|
||||||
|
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
|
||||||
|
|
||||||
|
{
|
||||||
|
appId = "com.polytoria.launcher";
|
||||||
|
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||||
|
bundle = "${pkgs.fetchurl {
|
||||||
|
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
|
||||||
|
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||||
|
}}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
overrides = {
|
||||||
|
global = {
|
||||||
|
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
1
modules/software/gaming.nix
Normal file
1
modules/software/gaming.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
25
modules/software/librewolf.nix
Normal file
25
modules/software/librewolf.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
den.aspects.librewolf = {
|
||||||
|
homeManager = {
|
||||||
|
programs.librewolf = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
"browser.startup.homepage" = "https://search.bug.tools";
|
||||||
|
};
|
||||||
|
|
||||||
|
# set default search engine to search.bug.tools (searxng)
|
||||||
|
|
||||||
|
|
||||||
|
# and add stylus, tampermonkey, sponsorblock, dearrow, cookie quick manager
|
||||||
|
|
||||||
|
|
||||||
|
policies = {
|
||||||
|
BlockAboutConfig = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/nix-community/nur-combined/blob/main/repos/rycee/pkgs/firefox-addons/generated-firefox-addons.nix
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
1
modules/software/music.nix
Normal file
1
modules/software/music.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
46
modules/software/nixcord.nix
Normal file
46
modules/software/nixcord.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
den.aspects.nixcord = {
|
||||||
|
homeManager = {
|
||||||
|
imports = [ inputs.nixcord.homeModules.nixcord ];
|
||||||
|
|
||||||
|
programs.nixcord = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
discord.enable = false;
|
||||||
|
vesktop.enable = true;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
themeLinks = [ "https://catppuccin.github.io/discord/dist/catppuccin-mocha-mauve.theme.css" ];
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
alwaysTrust.enable = true;
|
||||||
|
betterGifPicker.enable = true;
|
||||||
|
betterUploadButton.enable = true;
|
||||||
|
biggerStreamPreview.enable = true;
|
||||||
|
callTimer.enable = true;
|
||||||
|
fullSearchContext.enable = true;
|
||||||
|
fullUserInChatbox.enable = true;
|
||||||
|
implicitRelationships.enable = true;
|
||||||
|
dearrow.enable = true;
|
||||||
|
youtubeAdblock.enable = true;
|
||||||
|
fixYoutubeEmbeds.enable = true;
|
||||||
|
|
||||||
|
# lastFMRichPresence = {
|
||||||
|
# enable = true;
|
||||||
|
# username = "USER_NAME";
|
||||||
|
# apiKey = "YOUR_LASTFM_API_KEY";
|
||||||
|
# hideWithSpotify = false;
|
||||||
|
# nameFormat = "artist-first";
|
||||||
|
# useListeningStatus = true;
|
||||||
|
# showLastFmLogo = false;
|
||||||
|
# };
|
||||||
|
|
||||||
|
viewIcons.enable = true;
|
||||||
|
volumeBooster.enable = true;
|
||||||
|
webScreenShareFixes.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
195
modules/software/placeholder.nix
Normal file
195
modules/software/placeholder.nix
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
{
|
||||||
|
den.aspects.packages = {
|
||||||
|
nixos = { pkgs, options, ... }: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gnome-boxes
|
||||||
|
|
||||||
|
wine64
|
||||||
|
wineWow64Packages.full
|
||||||
|
|
||||||
|
appimage-run
|
||||||
|
|
||||||
|
pulseaudioFull
|
||||||
|
|
||||||
|
lug-helper
|
||||||
|
gamemode
|
||||||
|
steam-run
|
||||||
|
|
||||||
|
firmware-updater
|
||||||
|
|
||||||
|
file-roller
|
||||||
|
|
||||||
|
baobab
|
||||||
|
|
||||||
|
firefox-bin
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users.bug.packages = with pkgs; [
|
||||||
|
obsidian
|
||||||
|
# vesktop
|
||||||
|
nicotine-plus
|
||||||
|
fastfetch
|
||||||
|
gh
|
||||||
|
scanmem
|
||||||
|
samrewritten
|
||||||
|
impression
|
||||||
|
|
||||||
|
mission-center
|
||||||
|
|
||||||
|
authenticator
|
||||||
|
|
||||||
|
steamtinkerlaunch
|
||||||
|
|
||||||
|
#prismlauncher
|
||||||
|
|
||||||
|
euphonica
|
||||||
|
|
||||||
|
kooha
|
||||||
|
|
||||||
|
loupe
|
||||||
|
|
||||||
|
arduino-ide
|
||||||
|
|
||||||
|
geary
|
||||||
|
|
||||||
|
fractal
|
||||||
|
|
||||||
|
gnome-calendar
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
services = {
|
||||||
|
/*
|
||||||
|
flatpak = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
remotes = lib.mkOptionDefault [{
|
||||||
|
name = "flathub-beta";
|
||||||
|
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||||
|
}];
|
||||||
|
|
||||||
|
update.auto.enable = true;
|
||||||
|
uninstallUnmanaged = true;
|
||||||
|
|
||||||
|
packages = [
|
||||||
|
"org.vinegarhq.Sober"
|
||||||
|
"org.vinegarhq.Vinegar"
|
||||||
|
"org.gnome.Decibels"
|
||||||
|
"org.pipewire.Helvum"
|
||||||
|
"community.pathofbuilding.PathOfBuilding"
|
||||||
|
"io.github.gaheldev.Millisecond"
|
||||||
|
|
||||||
|
{
|
||||||
|
appId = "com.hytale.Launcher";
|
||||||
|
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||||
|
bundle = "${pkgs.fetchurl {
|
||||||
|
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
|
||||||
|
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||||
|
}}";
|
||||||
|
}
|
||||||
|
|
||||||
|
# add Polytoria client
|
||||||
|
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
|
||||||
|
|
||||||
|
{
|
||||||
|
appId = "com.polytoria.launcher";
|
||||||
|
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||||
|
bundle = "${pkgs.fetchurl {
|
||||||
|
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
|
||||||
|
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||||
|
}}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
overrides = {
|
||||||
|
global = {
|
||||||
|
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
ollama = {
|
||||||
|
enable = false;
|
||||||
|
|
||||||
|
loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "deepseek-r1:8b"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
fontDir.enable = true;
|
||||||
|
enableDefaultPackages = true;
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
twitter-color-emoji
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.droid-sans-mono
|
||||||
|
];
|
||||||
|
|
||||||
|
fontconfig = {
|
||||||
|
enable = true;
|
||||||
|
useEmbeddedBitmaps = true;
|
||||||
|
|
||||||
|
defaultFonts = {
|
||||||
|
emoji = [ "Twitter Color Emoji" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
appimage = {
|
||||||
|
enable = true;
|
||||||
|
binfmt = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
dedicatedServer.openFirewall = false;
|
||||||
|
|
||||||
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
|
|
||||||
|
gamescopeSession.enable = true;
|
||||||
|
|
||||||
|
extraCompatPackages = with pkgs; [
|
||||||
|
proton-ge-bin
|
||||||
|
];
|
||||||
|
|
||||||
|
#platformOptimizations.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
ydotool.enable = true;
|
||||||
|
|
||||||
|
gamescope = {
|
||||||
|
enable = true;
|
||||||
|
capSysNice = true;
|
||||||
|
args = [
|
||||||
|
"--rt"
|
||||||
|
"--expose-wayland"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
virt-manager.enable = true;
|
||||||
|
|
||||||
|
nix-ld = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [
|
||||||
|
libxml2
|
||||||
|
udev
|
||||||
|
gcc
|
||||||
|
egl-wayland
|
||||||
|
mesa
|
||||||
|
libglvnd
|
||||||
|
wayland
|
||||||
|
libX11
|
||||||
|
libXcursor
|
||||||
|
libXrandr
|
||||||
|
libXi
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
1
modules/software/social.nix
Normal file
1
modules/software/social.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
stylix = {
|
|
||||||
enable = true;
|
|
||||||
autoEnable = true;
|
|
||||||
polarity = "dark";
|
|
||||||
|
|
||||||
# catppuccin mocha
|
|
||||||
base16Scheme = {
|
|
||||||
base00 = "1E1E2E";
|
|
||||||
base01 = "181825";
|
|
||||||
base02 = "313244";
|
|
||||||
base03 = "45475A";
|
|
||||||
base04 = "585B70";
|
|
||||||
base05 = "CDD6F4";
|
|
||||||
base06 = "F5E0DC";
|
|
||||||
base07 = "B4BEFE";
|
|
||||||
base08 = "F38BA8";
|
|
||||||
base09 = "FAB387";
|
|
||||||
base0A = "F9E2AF";
|
|
||||||
base0B = "A6E3A1";
|
|
||||||
base0C = "94E2D5";
|
|
||||||
base0D = "89B4FA";
|
|
||||||
base0E = "CBA6F7";
|
|
||||||
base0F = "F2CDCD";
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.emoji = {
|
|
||||||
name = "Twitter Color Emoji";
|
|
||||||
package = pkgs.twitter-color-emoji;
|
|
||||||
};
|
|
||||||
|
|
||||||
targets = {
|
|
||||||
vesktop.enable = true;
|
|
||||||
gnome.enable = true;
|
|
||||||
gtk.enable = true;
|
|
||||||
firefox.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
boot.kernel.sysctl = {
|
|
||||||
"fs.file-max" = 524288;
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [{
|
|
||||||
device = "/var/lib/swapfile";
|
|
||||||
size = 8 * 1024;
|
|
||||||
}];
|
|
||||||
|
|
||||||
zramSwap = {
|
|
||||||
enable = true;
|
|
||||||
memoryMax = 64 * 1024 * 1024 * 1024;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
overrideDevices = true;
|
|
||||||
overrideFolders = true;
|
|
||||||
|
|
||||||
key = "/home/bug/.syncthing/key.pem";
|
|
||||||
cert = "/home/bug/.syncthing/cert.pem";
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
devices = {
|
|
||||||
desktop.id = "VEZXY3W-U6UXWTP-6BHANIG-O5EKNZY-XNV5YOX-4V4O3HB-ETECIUX-T2DK7AV";
|
|
||||||
laptop.id = "I6NW53P-IJMMT73-7O53TXY-3GAHS2U-4EAADM7-ZNB5ZPB-62QHKVW-H7DYXQ2";
|
|
||||||
server.id = "KJECAIP-Y2Y3FHV-NOJKIQV-LWIDMMZ-5ITEAZ4-LQCQL72-3BGW6T7-BFPFJQA";
|
|
||||||
};
|
|
||||||
|
|
||||||
folders = {
|
|
||||||
"Documents" = {
|
|
||||||
path = "/home/bug/Documents";
|
|
||||||
devices = ["desktop" "laptop" "server"];
|
|
||||||
};
|
|
||||||
|
|
||||||
"Downloads" = {
|
|
||||||
path = "/home/bug/Downloads";
|
|
||||||
devices = ["desktop" "laptop" "server"];
|
|
||||||
};
|
|
||||||
|
|
||||||
"Pictures" = {
|
|
||||||
path = "/home/bug/Pictures";
|
|
||||||
devices = ["desktop" "laptop" "server"];
|
|
||||||
};
|
|
||||||
|
|
||||||
"Videos" = {
|
|
||||||
path = "/home/bug/Videos";
|
|
||||||
devices = ["desktop" "laptop" "server"];
|
|
||||||
};
|
|
||||||
|
|
||||||
"nix" = {
|
|
||||||
path = "/home/bug/nix";
|
|
||||||
devices = ["desktop" "laptop" "server"];
|
|
||||||
|
|
||||||
ignorePatterns = [
|
|
||||||
"device.nix"
|
|
||||||
"hardware-configuration.nix"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"hytale" = {
|
|
||||||
path = "/home/bug/.local/share/Hytale/UserData/Saves";
|
|
||||||
devices = ["desktop" "laptop"];
|
|
||||||
};
|
|
||||||
|
|
||||||
"ssh" = {
|
|
||||||
path = "/home/bug/.ssh";
|
|
||||||
devices = ["desktop" "laptop" "server"];
|
|
||||||
};
|
|
||||||
|
|
||||||
"cloudflared" = {
|
|
||||||
path = "/home/bug/.cloudflared";
|
|
||||||
devices = ["desktop" "laptop" "server"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
users.users = {
|
|
||||||
bug = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "bug";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
|
|
||||||
};
|
|
||||||
} // (if (device == "server") then {
|
|
||||||
levi = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "levi";
|
|
||||||
extraGroups = [];
|
|
||||||
|
|
||||||
hashedPasswordFile = "/home/bug/users/levi.passwd";
|
|
||||||
};
|
|
||||||
} else {});
|
|
||||||
}
|
|
||||||
11
modules/users/bug.nix
Normal file
11
modules/users/bug.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ den, ... }: {
|
||||||
|
den.aspects.bug = {
|
||||||
|
includes = [
|
||||||
|
den.provides.primary-user
|
||||||
|
(den.provides.user-shell "fish")
|
||||||
|
#den.provides.home-manager
|
||||||
|
];
|
||||||
|
|
||||||
|
user.extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
virtualisation = {
|
|
||||||
libvirtd.enable = true;
|
|
||||||
|
|
||||||
spiceUSBRedirection.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
16
modules/vm.nix
Normal file
16
modules/vm.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# nix run .#vm
|
||||||
|
|
||||||
|
{ inputs, den, ... }: {
|
||||||
|
den.aspects.nix.includes = [ (den.provides.tty-autologin "bug") ];
|
||||||
|
|
||||||
|
perSystem = { pkgs, ... }: {
|
||||||
|
packages.vm = pkgs.writeShellApplication {
|
||||||
|
name = "vm";
|
||||||
|
text = let
|
||||||
|
host = inputs.self.nixosConfigurations.nix.config;
|
||||||
|
in ''
|
||||||
|
${host.system.build.vm}/bin/run-${host.networking.hostName}-vm "$@"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, device, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
vscode-server.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
16
nix.ans
16
nix.ans
@@ -1,16 +0,0 @@
|
|||||||
[38;2;82;119;195m ◢██◣[38;2;127;183;255m ◥███◣ ◢██◣
|
|
||||||
[38;2;82;119;195m ◥███◣[38;2;127;183;255m ◥███◣◢███◤
|
|
||||||
[38;2;82;119;195m ◥███◣[38;2;127;183;255m ◥██████◤
|
|
||||||
[38;2;82;119;195m ◢████████████[48;2;127;183;255m◣[0m[38;2;127;183;255m████◤[38;2;82;119;195m ◢◣
|
|
||||||
[38;2;82;119;195m ◢██████████████[48;2;127;183;255m◣[0m[38;2;127;183;255m███◣[38;2;82;119;195m ◢██◣
|
|
||||||
[38;2;127;183;255m ◢███◤ ◥███◣[38;2;82;119;195m◢███◤
|
|
||||||
[38;2;127;183;255m ◢███◤ ◥██[48;2;82;119;195m◤[0m[38;2;82;119;195m███◤
|
|
||||||
[38;2;127;183;255m◢█████████◤ ◥[48;2;82;119;195m◤[0m[38;2;82;119;195m████████◣
|
|
||||||
[38;2;127;183;255m◥████████[48;2;82;119;195m◤[0m[38;2;82;119;195m◣ ◢█████████◤
|
|
||||||
[38;2;127;183;255m ◢███[48;2;82;119;195m◤[0m[38;2;82;119;195m██◣ ◢███◤
|
|
||||||
[38;2;127;183;255m ◢███◤[38;2;82;119;195m◥███◣ ◢███◤
|
|
||||||
[38;2;127;183;255m ◥██◤ [38;2;82;119;195m◥███[48;2;127;183;255m◣[0m[38;2;127;183;255m██████████████◤
|
|
||||||
[38;2;127;183;255m ◥◤ [38;2;82;119;195m◢████[48;2;127;183;255m◣[0m[38;2;127;183;255m████████████◤
|
|
||||||
[38;2;82;119;195m ◢██████◣[38;2;127;183;255m ◥███◣
|
|
||||||
[38;2;82;119;195m ◢███◤◥███◣[38;2;127;183;255m ◥███◣
|
|
||||||
[38;2;82;119;195m ◥██◤ ◥███◣[38;2;127;183;255m ◥██◤
|
|
||||||
16
resources/nix.ans
Executable file
16
resources/nix.ans
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
[38;2;82;119;195m ██[38;2;127;183;255m ███ ██
|
||||||
|
[38;2;82;119;195m ███[38;2;127;183;255m ██████
|
||||||
|
[38;2;82;119;195m ███[38;2;127;183;255m ██████
|
||||||
|
[38;2;82;119;195m ████████████[48;2;127;183;255m[0m[38;2;127;183;255m████[38;2;82;119;195m
|
||||||
|
[38;2;82;119;195m ██████████████[48;2;127;183;255m[0m[38;2;127;183;255m███[38;2;82;119;195m ██
|
||||||
|
[38;2;127;183;255m ███ ███[38;2;82;119;195m███
|
||||||
|
[38;2;127;183;255m ███ ██[48;2;82;119;195m[0m[38;2;82;119;195m███
|
||||||
|
[38;2;127;183;255m█████████ [48;2;82;119;195m[0m[38;2;82;119;195m████████
|
||||||
|
[38;2;127;183;255m████████[48;2;82;119;195m[0m[38;2;82;119;195m █████████
|
||||||
|
[38;2;127;183;255m ███[48;2;82;119;195m[0m[38;2;82;119;195m██ ███
|
||||||
|
[38;2;127;183;255m ███[38;2;82;119;195m███ ███
|
||||||
|
[38;2;127;183;255m ██ [38;2;82;119;195m███[48;2;127;183;255m[0m[38;2;127;183;255m██████████████
|
||||||
|
[38;2;127;183;255m [38;2;82;119;195m████[48;2;127;183;255m[0m[38;2;127;183;255m████████████
|
||||||
|
[38;2;82;119;195m ██████[38;2;127;183;255m ███
|
||||||
|
[38;2;82;119;195m ██████[38;2;127;183;255m ███
|
||||||
|
[38;2;82;119;195m ██ ███[38;2;127;183;255m ██
|
||||||
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
Reference in New Issue
Block a user