Compare commits
36 Commits
2be712393f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 51ad90dc9c | |||
| 248b2f1dbb | |||
| c258681d10 | |||
| 5314aba270 | |||
| 0f00938787 | |||
| 6cbbd0110d | |||
| 01cc53fff1 | |||
| 7501159100 | |||
| 727462ffd3 | |||
| 7446d8c239 | |||
| 085e02f539 | |||
| 9d9ed0f04b | |||
| 28daa28c6b | |||
| b8a7ead4be | |||
| 2881d84c16 | |||
| 591e42fe61 | |||
| f21640749a | |||
| 0b9623241a | |||
| 7a6e3916f5 | |||
| 43c657523e | |||
| 594accfe8d | |||
| 86c5e8ad5b | |||
| f7fe35b3be | |||
| 629e7b6a9e | |||
| 29c62adbd1 | |||
| 5747e449b2 | |||
| 087ffd4194 | |||
| 7a2382cb3c | |||
| be74b351e8 | |||
| 8d3fd7dbe2 | |||
| d80266e89a | |||
| 3f14984072 | |||
| ef49539fed | |||
| d951277cec | |||
| 196db56791 | |||
| 900b565405 |
24
README.md
24
README.md
@@ -191,22 +191,38 @@ git add .
|
||||
- `waybarChoice` - system top bar style.
|
||||
- `animChoice` - system animation style.
|
||||
|
||||
### 5. Copy the ready `hardware-configuration.nix` to host folder:
|
||||
### 5. Review module activation options
|
||||
|
||||
Also check my new project - [GarandOS TUI](https://gitea.garandplg.com/GarandPLG/garandos-tui)! It's an automated way of tweaking this settings. You can use it later *(simply type `tui` into the terminal)*, after the setup, or use it right now by cloning the repo.
|
||||
|
||||
Open the module files for your host and adjust the `enable` options for the services you need:
|
||||
|
||||
```bash
|
||||
# Home‑modules (enable/disable home-scoped applications)
|
||||
nano hosts/<your-system-hostname>/home-modules.nix
|
||||
|
||||
# System‑modules (enable/disable system‑wide services)
|
||||
nano hosts/<your-system-hostname>/system-modules.nix
|
||||
```
|
||||
|
||||
Set the options to `true` for the components you want active and `false` for those you don’t need.
|
||||
|
||||
### 6. Copy the ready `hardware-configuration.nix` to host folder:
|
||||
```bash
|
||||
sudo cp /etc/nixos/hardware-configuration.nix hosts/<your-system-hostname>/hardware.nix
|
||||
```
|
||||
|
||||
### 6. Enable `Flake` functionality in your system.
|
||||
### 7. Enable `Flake` functionality in your system.
|
||||
```bash
|
||||
NIX_CONFIG="experimental-features = nix-command flakes"
|
||||
```
|
||||
|
||||
### 7. Build system (provide your hostname)
|
||||
### 8. Build system (provide your hostname)
|
||||
```bash
|
||||
sudo nixos-rebuild switch --flake .#your-system-hostname
|
||||
```
|
||||
|
||||
### 8. After system rebuild you can use the following aliases instead of repeating the previous command
|
||||
### 9. After system rebuild you can use the following aliases instead of repeating the previous command
|
||||
|
||||
- `pullos` - pull latest commits from my repository.
|
||||
- `upd` - rebuild system.
|
||||
|
||||
261
flake.lock
generated
261
flake.lock
generated
@@ -15,11 +15,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763676235,
|
||||
"narHash": "sha256-6Bri1agFBZdwrO3l32m1aUO6jHfbeBW+8eFVSlBkUAM=",
|
||||
"lastModified": 1767916874,
|
||||
"narHash": "sha256-IcvLwoF1CIOd7yELc0Xwqskilw2FxHHRm5ZnmNdBuKc=",
|
||||
"owner": "mrshmllow",
|
||||
"repo": "affinity-nix",
|
||||
"rev": "f4ed11bdb68bc14a11a1c1a545ef1891a02cb1a1",
|
||||
"rev": "0c110a15fb5605490f7de451073db1c775745fee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -35,11 +35,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763546214,
|
||||
"narHash": "sha256-vc9seqvw2ElF8jPetsCoCQ5lo9P3fmgiTle3HlOMezk=",
|
||||
"lastModified": 1769608722,
|
||||
"narHash": "sha256-yWUG0Emd9EuqIZ8jQ6fxqf7USw7Gtcqb4+sBhn+S+Wg=",
|
||||
"owner": "AdnanHodzic",
|
||||
"repo": "auto-cpufreq",
|
||||
"rev": "76ccb66f8e4875671fd746fb6b50931454ab8cd8",
|
||||
"rev": "a11a98c46bf6a77d0c2e0ea8d87acef78507cae5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -69,28 +69,28 @@
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1754405784,
|
||||
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
|
||||
"lastModified": 1765809053,
|
||||
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1752979451,
|
||||
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
|
||||
"lastModified": 1760703920,
|
||||
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
|
||||
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -135,6 +135,28 @@
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762929886,
|
||||
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "6998514dce2c365142a0a119a95ef95d89b84086",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -143,11 +165,11 @@
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1763784262,
|
||||
"narHash": "sha256-bg+MOwWA4GgsHQ2QZQHCixIs0ouPHvN1EVAzMTELPiQ=",
|
||||
"lastModified": 1769918637,
|
||||
"narHash": "sha256-3XyGk89S0UFvKRZiKpFL4ImP5qP/2AOJUaYC7ogXnJo=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "a717a95e58c8dfdb3d07797b97fdedc97697d65c",
|
||||
"rev": "5659e4c18d1350d1b511fcdce885fdd879effa22",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -160,11 +182,11 @@
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1758112371,
|
||||
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
|
||||
"lastModified": 1764873433,
|
||||
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
|
||||
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -189,15 +211,15 @@
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -207,11 +229,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762980239,
|
||||
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
|
||||
"lastModified": 1767609335,
|
||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
|
||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -227,11 +249,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"lastModified": 1767609335,
|
||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -256,6 +278,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"garandos-tui": {
|
||||
"inputs": {
|
||||
"fenix": "fenix",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765060905,
|
||||
"narHash": "sha256-YLU5g2aSs1Sh+6j301BtQYUdQ8IqLvoeR4Eivr4eVYc=",
|
||||
"ref": "main",
|
||||
"rev": "028b50c9e4d7160cfa8fac8150a54a52680f4ff5",
|
||||
"revCount": 13,
|
||||
"type": "git",
|
||||
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
|
||||
},
|
||||
"original": {
|
||||
"ref": "main",
|
||||
"type": "git",
|
||||
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
@@ -265,11 +310,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763319842,
|
||||
"narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=",
|
||||
"lastModified": 1767281941,
|
||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761",
|
||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -302,11 +347,11 @@
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"lastModified": 1762869044,
|
||||
"narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=",
|
||||
"lastModified": 1767737596,
|
||||
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad",
|
||||
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -324,11 +369,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763845215,
|
||||
"narHash": "sha256-8W4YByiS3zxwcdDR2sABm1nUCSOEXJwdY/XddRTVjWM=",
|
||||
"lastModified": 1769952507,
|
||||
"narHash": "sha256-eNTfxT3v8b7s1dqswgposi5Y1CUMoOUhQKiy29QY25U=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "9a5042a88caea9b729a1d3bc981069159de4fc49",
|
||||
"rev": "b59376563943ce163b2553aeb63d0c170967d74e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -341,11 +386,11 @@
|
||||
"libnbtplusplus": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1699286814,
|
||||
"narHash": "sha256-yy0q+bky80LtK1GWzz7qpM+aAGrOqLuewbid8WT1ilk=",
|
||||
"lastModified": 1744811532,
|
||||
"narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=",
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"rev": "23b955121b8217c1c348a9ed2483167a6f3ff4ad",
|
||||
"rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -354,13 +399,38 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"fenix": [
|
||||
"garandos-tui",
|
||||
"fenix"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752689277,
|
||||
"narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"rev": "0e72363d0938b0208d6c646d10649164c43f4d64",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1739444422,
|
||||
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
|
||||
"lastModified": 1767983141,
|
||||
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
|
||||
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -372,11 +442,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1763678758,
|
||||
"narHash": "sha256-+hBiJ+kG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s=",
|
||||
"lastModified": 1769789167,
|
||||
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "117cc7f94e8072499b0a7aa4c52084fa4e11cc9b",
|
||||
"rev": "62c8382960464ceb98ea593cb8321a2cf8f9e3e5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -388,11 +458,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1761765539,
|
||||
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
|
||||
"lastModified": 1765674936,
|
||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
|
||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -428,11 +498,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758998580,
|
||||
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
|
||||
"lastModified": 1767810917,
|
||||
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
|
||||
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -444,11 +514,11 @@
|
||||
"on-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1763514293,
|
||||
"narHash": "sha256-x766SlDqS6DoOQyW4u1zV3iZbrEKoy4P9K6XDjZ4fGU=",
|
||||
"lastModified": 1766544016,
|
||||
"narHash": "sha256-3X1426N7n6bwM7GAQOvpCq2OVdlQevCzbpak0l9B6BU=",
|
||||
"owner": "seapear",
|
||||
"repo": "AffinityOnLinux",
|
||||
"rev": "2eacfdf625bfafa3099d411f8e2d5afec565fcd6",
|
||||
"rev": "da601564dfefe2ae3ec10e3f177db81578847b7b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -477,11 +547,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747683146,
|
||||
"narHash": "sha256-zZS//xyNYQHvD4fUMoWx86uVUwPk+p5FjZLTTu0pelQ=",
|
||||
"lastModified": 1768437816,
|
||||
"narHash": "sha256-GG+V2g5NfVrypTs8qbtGnUWTXTMkGtohy/uIDa5duI0=",
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"rev": "0612187254ef41a1087f3107e927e0dd59c9b29d",
|
||||
"rev": "e8418b74059bdbe4fcc97522b25dc17373b0cc21",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -495,11 +565,30 @@
|
||||
"affinity-nix": "affinity-nix",
|
||||
"auto-cpufreq": "auto-cpufreq",
|
||||
"firefox-addons": "firefox-addons",
|
||||
"garandos-tui": "garandos-tui",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"prismlauncher-cracked": "prismlauncher-cracked",
|
||||
"stylix": "stylix"
|
||||
"stylix": "stylix",
|
||||
"wrappers": "wrappers"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1762860488,
|
||||
"narHash": "sha256-rMfWMCOo/pPefM2We0iMBLi2kLBAnYoB9thi4qS7uk4=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "2efc80078029894eec0699f62ec8d5c1a56af763",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
@@ -523,11 +612,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763845141,
|
||||
"narHash": "sha256-o8TKdZluj/yC8qPIVNe2g4qopyFmQglH52+lvQx82kE=",
|
||||
"lastModified": 1769888473,
|
||||
"narHash": "sha256-4KWbaJwaYnZ60bFyTudZYAKskjr7Sa17R3/yh+oXS7w=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "adc650610085adbe130b9860d5bdb869f96050af",
|
||||
"rev": "ae5c0239ae4f82a8c7e33ad8a456535d5a9ba813",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -587,11 +676,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757716333,
|
||||
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
|
||||
"lastModified": 1767710407,
|
||||
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
|
||||
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -603,11 +692,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757811970,
|
||||
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
|
||||
"lastModified": 1767489635,
|
||||
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
|
||||
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -619,11 +708,11 @@
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1757811247,
|
||||
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
|
||||
"lastModified": 1767488740,
|
||||
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
|
||||
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -639,11 +728,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762938485,
|
||||
"narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
|
||||
"lastModified": 1767801790,
|
||||
"narHash": "sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2+gM5tf8=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
|
||||
"rev": "778a1d691f1ef45dd68c661715c5bf8cbf131c80",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -651,6 +740,26 @@
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wrappers": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769799671,
|
||||
"narHash": "sha256-b1LwqiIjgNLw6/aJlOwIqe1mfqc4PQqeRpKOo5sFWu0=",
|
||||
"owner": "lassulus",
|
||||
"repo": "wrappers",
|
||||
"rev": "8bef93dddd89a0b45486d5cd9f0bdd5ce8aceced",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lassulus",
|
||||
"repo": "wrappers",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
28
flake.nix
28
flake.nix
@@ -49,22 +49,30 @@
|
||||
};
|
||||
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
||||
|
||||
garandos-tui = {
|
||||
url = "git+https://gitea.garandplg.com/GarandPLG/garandos-tui?ref=main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
wrappers = {
|
||||
url = "github:lassulus/wrappers";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
nix-flatpak,
|
||||
auto-cpufreq,
|
||||
garandos-tui,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
} @ inputs: let
|
||||
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
|
||||
|
||||
mkHost =
|
||||
hostName:
|
||||
let
|
||||
inherit (import ./hosts/${hostName}/variables.nix)
|
||||
mkHost = hostName: let
|
||||
inherit
|
||||
(import ./hosts/${hostName}/variables.nix)
|
||||
host
|
||||
username
|
||||
profile
|
||||
@@ -84,10 +92,10 @@
|
||||
./profiles/${profile}
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
auto-cpufreq.nixosModules.default
|
||||
garandos-tui.nixosModules.garandos-tui
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
in {
|
||||
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
66
hosts/Garand-Desktop/home-modules.nix
Normal file
66
hosts/Garand-Desktop/home-modules.nix
Normal file
@@ -0,0 +1,66 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
peaclock.enable = true; # Peaclock: Clock, timer, and stopwatch for the terminal
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
|
||||
90
hosts/Garand-Desktop/system-modules.nix
Normal file
90
hosts/Garand-Desktop/system-modules.nix
Normal file
@@ -0,0 +1,90 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = true; # VirtualBox: PC emulator
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
logisim-evolution.enable = true; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = true; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
galculator.enable = false; # Galculator: simple calculator
|
||||
gedit.enable = true; # Gedit: GNOME text editor
|
||||
winboat.enable = true; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
66
hosts/Garand-Laptop/home-modules.nix
Normal file
66
hosts/Garand-Laptop/home-modules.nix
Normal file
@@ -0,0 +1,66 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
peaclock.enable = true; # Peaclock: Clock, timer, and stopwatch for the terminal
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
|
||||
90
hosts/Garand-Laptop/system-modules.nix
Normal file
90
hosts/Garand-Laptop/system-modules.nix
Normal file
@@ -0,0 +1,90 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = true; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
galculator.enable = false; # Galculator: simple calculator
|
||||
gedit.enable = false; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -4,12 +4,9 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
@@ -29,8 +26,7 @@
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device =
|
||||
"/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
|
||||
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = "/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/C2A6-DF56";
|
||||
|
||||
66
hosts/default/home-modules.nix
Normal file
66
hosts/default/home-modules.nix
Normal file
@@ -0,0 +1,66 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
peaclock.enable = true; # Peaclock: Clock, timer, and stopwatch for the terminal
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
|
||||
90
hosts/default/system-modules.nix
Normal file
90
hosts/default/system-modules.nix
Normal file
@@ -0,0 +1,90 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = false; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = true; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
galculator.enable = false; # Galculator: simple calculator
|
||||
gedit.enable = false; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
programs.auto-cpufreq = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernelModules = ["v4l2loopback"];
|
||||
@@ -21,7 +19,7 @@
|
||||
wallpapers = [
|
||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
||||
];
|
||||
wallpaperStyle = lib.mkDefault "centered";
|
||||
wallpaperStyle = lib.mkForce "centered";
|
||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
||||
interface = {
|
||||
branding = "GarandOS Bootloader";
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
{inputs, ...}: {
|
||||
imports = [
|
||||
./packages
|
||||
./auto-cpufreq.nix
|
||||
./boot.nix
|
||||
./docker.nix
|
||||
./flatpak.nix
|
||||
./fonts.nix
|
||||
./garandos-tui.nix
|
||||
./hardware.nix
|
||||
./network.nix
|
||||
./nfs.nix
|
||||
@@ -21,9 +19,10 @@
|
||||
./stylix.nix
|
||||
./syncthing.nix
|
||||
./system.nix
|
||||
./tailscale.nix
|
||||
./thunar.nix
|
||||
./user.nix
|
||||
./virtualisation.nix
|
||||
./virtualbox.nix
|
||||
./xdg.nix
|
||||
./xserver.nix
|
||||
inputs.stylix.nixosModules.stylix
|
||||
|
||||
14
modules/core/docker.nix
Normal file
14
modules/core/docker.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.docker.enable = lib.mkEnableOption "Docker";
|
||||
|
||||
config.virtualisation.docker = lib.mkIf config.docker.enable {
|
||||
enable = true;
|
||||
package = pkgs.docker;
|
||||
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
|
||||
};
|
||||
}
|
||||
@@ -1,13 +1,28 @@
|
||||
_: {
|
||||
services = {
|
||||
flatpak = {
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
mkFlatpakPackage = name: pkgId: {
|
||||
options.flatpak.packages.${name}.enable = lib.mkEnableOption "Flatpak: ${name}";
|
||||
|
||||
config.services.flatpak.packages =
|
||||
lib.mkIf config.flatpak.packages.${name}.enable [pkgId];
|
||||
};
|
||||
|
||||
flatpakPackages = {
|
||||
sober = "org.vinegarhq.Sober";
|
||||
warehouse = "io.github.flattool.Warehouse";
|
||||
flatseal = "com.github.tchx84.Flatseal";
|
||||
};
|
||||
in {
|
||||
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
||||
|
||||
config.services.flatpak = lib.mkIf config.flatpak.enable {
|
||||
enable = true;
|
||||
packages = [
|
||||
# "org.vinegarhq.Sober"
|
||||
"io.github.flattool.Warehouse"
|
||||
"com.github.tchx84.Flatseal"
|
||||
];
|
||||
update.onActivation = true;
|
||||
packages = [];
|
||||
};
|
||||
};
|
||||
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkFlatpakPackage flatpakPackages);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
dejavu_fonts
|
||||
|
||||
11
modules/core/garandos-tui.nix
Normal file
11
modules/core/garandos-tui.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
host,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
programs.garandos-tui = {
|
||||
enable = true;
|
||||
systemModulesFilePath = "/home/${username}/garandos/hosts/${host}/system-modules.nix";
|
||||
homeModulesFilePath = "/home/${username}/garandos/hosts/${host}/home-modules.nix";
|
||||
};
|
||||
}
|
||||
@@ -2,8 +2,7 @@
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
#vt = 3;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
hardware = {
|
||||
sane = {
|
||||
enable = true;
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
host,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
||||
in
|
||||
{
|
||||
in {
|
||||
# Defensive assertion for hostname validity (clearer message at eval time)
|
||||
assertions = [
|
||||
{
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
|
||||
in
|
||||
{
|
||||
in {
|
||||
services = {
|
||||
rpcbind.enable = enableNFS;
|
||||
nfs.server.enable = enableNFS;
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
{username, ...}: {
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
clean = {
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Communication
|
||||
slack
|
||||
mattermost-desktop
|
||||
# Productivity & Office
|
||||
# bitwarden-desktop
|
||||
tutanota-desktop
|
||||
iotas
|
||||
# logseq
|
||||
# Utilities
|
||||
galculator
|
||||
gedit
|
||||
eddie
|
||||
gnome-text-editor
|
||||
];
|
||||
}
|
||||
@@ -1,14 +1,8 @@
|
||||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
imports = [
|
||||
./essentials.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
./clients.nix
|
||||
./development.nix
|
||||
./gaming.nix
|
||||
./multimedia.nix
|
||||
./terminal.nix
|
||||
./tools.nix
|
||||
./virtualization.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Learning & practice
|
||||
exercism
|
||||
# AI coding
|
||||
opencode
|
||||
];
|
||||
}
|
||||
@@ -1,11 +1,18 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
mpv
|
||||
pavucontrol
|
||||
playerctl
|
||||
cmatrix
|
||||
cowsay
|
||||
sl
|
||||
fortune
|
||||
# File management
|
||||
trash-cli
|
||||
file-roller
|
||||
unrar
|
||||
unzip
|
||||
p7zip
|
||||
# System monitoring & info
|
||||
inxi
|
||||
lm_sensors
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
# inputs,
|
||||
# system,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# inputs.prismlauncher-cracked.packages.${system}.default
|
||||
space-cadet-pinball
|
||||
tty-solitaire
|
||||
];
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
# inputs,
|
||||
# system,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Video & image processing
|
||||
ffmpeg
|
||||
ffmpegthumbnailer
|
||||
mpv
|
||||
# gimp3
|
||||
# inputs.affinity-nix.packages.${system}.v3
|
||||
eog
|
||||
# kdePackages.kdenlive
|
||||
# Audio
|
||||
rhythmbox
|
||||
plexamp
|
||||
picard
|
||||
pavucontrol
|
||||
playerctl
|
||||
# Media downloaders & clients
|
||||
# freetube
|
||||
# ytmdl
|
||||
];
|
||||
}
|
||||
56
modules/core/packages/packages.nix
Normal file
56
modules/core/packages/packages.nix
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
mkPackage = name: pkgsOrList: {
|
||||
options.packages.${name}.enable = lib.mkEnableOption name;
|
||||
config.environment.systemPackages =
|
||||
lib.mkIf config.packages.${name}.enable
|
||||
(lib.toList pkgsOrList);
|
||||
};
|
||||
|
||||
packages = with pkgs; {
|
||||
bitwarden = bitwarden-desktop;
|
||||
eddieAirVPN = eddie;
|
||||
galculator = galculator;
|
||||
gedit = gedit;
|
||||
iotas = iotas;
|
||||
logseq = logseq;
|
||||
mattermost = mattermost-desktop;
|
||||
slack = slack;
|
||||
tutanota = tutanota-desktop;
|
||||
exercism = exercism;
|
||||
opencode = opencode;
|
||||
jan = jan;
|
||||
lazygit = lazygit;
|
||||
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
|
||||
spaceCadetPinball = space-cadet-pinball;
|
||||
ttySolitaire = tty-solitaire;
|
||||
gimp = gimp;
|
||||
affinity = inputs.affinity-nix.packages.${system}.v3;
|
||||
eyeOfGnome = eog;
|
||||
kdenlive = kdePackages.kdenlive;
|
||||
plex = [
|
||||
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
|
||||
plexamp
|
||||
];
|
||||
freetube = freetube;
|
||||
lazydocker = lazydocker;
|
||||
distrobox = [distrobox pkgs.boxbuddy];
|
||||
winboat = [winboat freerdp];
|
||||
signal = signal-desktop;
|
||||
pixieditor = pixieditor;
|
||||
bottles = bottles;
|
||||
heroic = heroic;
|
||||
adb = android-tools;
|
||||
teams = teams-for-linux;
|
||||
ferdium = ferdium;
|
||||
logisim-evolution = logisim-evolution;
|
||||
};
|
||||
in {
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
|
||||
}
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
# pkgs
|
||||
...
|
||||
}:
|
||||
{
|
||||
_: {
|
||||
programs = {
|
||||
nano.enable = true;
|
||||
hyprland = {
|
||||
@@ -13,7 +9,6 @@
|
||||
seahorse.enable = true;
|
||||
fuse.userAllowOther = true;
|
||||
mtr.enable = true;
|
||||
adb.enable = true;
|
||||
hyprlock.enable = true;
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
cmatrix
|
||||
cowsay
|
||||
sl
|
||||
fortune
|
||||
lolcat
|
||||
eza
|
||||
];
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
virt-viewer
|
||||
# lazydocker
|
||||
docker-client
|
||||
# distrobox
|
||||
# boxbuddy
|
||||
# freerdp
|
||||
# winboat
|
||||
];
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) printEnable;
|
||||
in
|
||||
{
|
||||
in {
|
||||
services = {
|
||||
printing = {
|
||||
enable = printEnable;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ profile, ... }:
|
||||
{
|
||||
{profile, ...}: {
|
||||
# Services to start
|
||||
services = {
|
||||
libinput.enable = true; # Input Handling
|
||||
@@ -19,7 +18,10 @@
|
||||
gnome.gnome-keyring.enable = true;
|
||||
|
||||
smartd = {
|
||||
enable = if profile == "vm" then false else true;
|
||||
enable =
|
||||
if profile == "vm"
|
||||
then false
|
||||
else true;
|
||||
autodetect = true;
|
||||
};
|
||||
pipewire = {
|
||||
|
||||
@@ -1,21 +1,43 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
steam = {
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
steam.enable = lib.mkEnableOption "Steam";
|
||||
gamescope.enable = lib.mkEnableOption "Gamescope";
|
||||
gamemode.enable = lib.mkEnableOption "Gamemode";
|
||||
};
|
||||
|
||||
config.programs = {
|
||||
steam = lib.mkIf config.steam.enable {
|
||||
enable = true;
|
||||
package = pkgs.steam;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
gamescopeSession = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||
};
|
||||
# gamescope = {
|
||||
# enable = true;
|
||||
# capSysNice = true;
|
||||
# args = [
|
||||
# "--rt"
|
||||
# "--expose-wayland"
|
||||
# ];
|
||||
# };
|
||||
gamemode.enable = true;
|
||||
|
||||
gamescope = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
gamemode = lib.mkIf config.gamemode.enable {
|
||||
enable = true;
|
||||
enableRenice = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||
in
|
||||
{
|
||||
in {
|
||||
# Styling Options
|
||||
stylix = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ username, ... }:
|
||||
{
|
||||
{username, ...}: {
|
||||
services.syncthing = {
|
||||
enable = false;
|
||||
user = "${username}";
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
|
||||
in
|
||||
{
|
||||
host,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
|
||||
in {
|
||||
nix = {
|
||||
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
settings = {
|
||||
download-buffer-size = 200000000;
|
||||
auto-optimise-store = true;
|
||||
@@ -16,8 +19,9 @@ in
|
||||
};
|
||||
};
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
i18n.defaultLocale = "pl_PL.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
i18n = {
|
||||
defaultLocale = "pl_PL.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "pl_PL.UTF-8";
|
||||
LC_IDENTIFICATION = "pl_PL.UTF-8";
|
||||
LC_MEASUREMENT = "pl_PL.UTF-8";
|
||||
@@ -28,6 +32,7 @@ in
|
||||
LC_TELEPHONE = "pl_PL.UTF-8";
|
||||
LC_TIME = "pl_PL.UTF-8";
|
||||
};
|
||||
};
|
||||
environment.variables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GARANDOS_VERSION = "1.0";
|
||||
|
||||
14
modules/core/tailscale.nix
Normal file
14
modules/core/tailscale.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
options.tailscale.enable = lib.mkEnableOption "Tailscale";
|
||||
|
||||
config.services.tailscale = lib.mkIf config.tailscale.enable {
|
||||
enable = true;
|
||||
package = pkgs.tailscale;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,15 +1,9 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs = {
|
||||
thunar = {
|
||||
{pkgs, ...}: {
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs.xfce; [
|
||||
plugins = with pkgs; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
profile,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
@@ -26,16 +24,17 @@ in
|
||||
;
|
||||
};
|
||||
users.${username} = {
|
||||
imports = [ ./../home ];
|
||||
imports = [./../home ../../hosts/${host}/home-modules.nix];
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = "23.11";
|
||||
stateVersion = "25.11";
|
||||
};
|
||||
};
|
||||
};
|
||||
users.mutableUsers = true;
|
||||
users.users.${username} = {
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "${gitUsername}";
|
||||
extraGroups = [
|
||||
@@ -45,12 +44,14 @@ in
|
||||
"lp"
|
||||
"networkmanager"
|
||||
"scanner"
|
||||
"wheel" # subdo access
|
||||
"wheel" # sudo access
|
||||
"vboxusers" # Virtual Box
|
||||
"gamemode"
|
||||
];
|
||||
shell = pkgs.bash;
|
||||
ignoreShellProgramCheck = true;
|
||||
linger = true;
|
||||
};
|
||||
};
|
||||
nix.settings.allowed-users = ["${username}"];
|
||||
}
|
||||
|
||||
17
modules/core/virtualbox.nix
Normal file
17
modules/core/virtualbox.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.virtualbox.enable = lib.mkEnableOption "Enable VirtualBox";
|
||||
|
||||
config.virtualisation.virtualbox.host = lib.mkIf config.virtualbox.enable {
|
||||
enable = true;
|
||||
package = pkgs.virtualbox;
|
||||
enableKvm = true;
|
||||
enableHardening = true;
|
||||
enableExtensionPack = false;
|
||||
addNetworkInterface = false;
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
# Only enable either docker or podman -- Not both
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
podman.enable = false;
|
||||
libvirtd.enable = true;
|
||||
|
||||
virtualbox.host = {
|
||||
enable = false;
|
||||
enableExtensionPack = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.virt-manager.enable = false;
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
@@ -8,5 +7,6 @@
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = [pkgs.hyprland];
|
||||
xdgOpenUsePortal = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
|
||||
in
|
||||
{
|
||||
in {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
with lib; let
|
||||
cfg = config.drivers.amdgpu;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.drivers.amdgpu = {
|
||||
enable = mkEnableOption "Enable AMD Drivers";
|
||||
};
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
{...}: {
|
||||
imports = [
|
||||
./amd-drivers.nix
|
||||
./intel-drivers.nix
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
with lib; let
|
||||
cfg = config.drivers.intel;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.drivers.intel = {
|
||||
enable = mkEnableOption "Enable Intel Graphics Drivers";
|
||||
};
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
with lib; let
|
||||
cfg = config.local.hardware-clock;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.local.hardware-clock = {
|
||||
enable = mkEnableOption "Change Hardware Clock To Local Time";
|
||||
};
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.drivers.nvidia = {
|
||||
enable = mkEnableOption "Enable Nvidia Drivers";
|
||||
};
|
||||
@@ -38,12 +36,11 @@ in
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
# Making nvidia docker toolkit work:
|
||||
#
|
||||
# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
|
||||
@@ -59,3 +56,4 @@ in
|
||||
# EOF
|
||||
#
|
||||
# docker run --device nvidia.com/gpu=all
|
||||
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia-prime;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.drivers.nvidia-prime = {
|
||||
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
|
||||
intelBusID = mkOption {
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
with lib; let
|
||||
cfg = config.vm.guest-services;
|
||||
in
|
||||
{
|
||||
in {
|
||||
options.vm.guest-services = {
|
||||
enable = mkEnableOption "Enable Virtual Machine Guest Services";
|
||||
};
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
{ pkgs, username, ... }:
|
||||
{
|
||||
programs.anki = {
|
||||
pkgs,
|
||||
username,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.anki.enable = lib.mkEnableOption "Anki";
|
||||
|
||||
config.programs.anki = lib.mkIf config.anki.enable {
|
||||
enable = true;
|
||||
package = pkgs.anki;
|
||||
language = "pl_PL";
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
{ host, username, ... }:
|
||||
{
|
||||
programs.bash = {
|
||||
shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "nh os switch --hostname ${host}";
|
||||
upg = "nh os switch --hostname ${host} --update";
|
||||
upf = "sudo nix flake update";
|
||||
upd-bt = "nh os boot --hostname ${host}";
|
||||
upd-ts = "nh os test --hostname ${host}";
|
||||
upd-bd = "nh os build --hostname ${host}";
|
||||
ncg = "nh clean all";
|
||||
|
||||
# Development aliases
|
||||
srvenv = "source .venv/bin/activate";
|
||||
"..srvenv" = "source ../.venv/bin/activate";
|
||||
pm = "uv run manage.py";
|
||||
f8 = "uv run flake8 .";
|
||||
bbr = "bun --bun run";
|
||||
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||
zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
|
||||
|
||||
# Development aliases for nix flake
|
||||
nd = "nix develop";
|
||||
nb = "nix build";
|
||||
nr = "nix run";
|
||||
nbr = "nix build && nix run";
|
||||
nbd = "nix build .#develop";
|
||||
nrd = "nix run .#develop";
|
||||
nbrd = "nix build .#develop && nix run .#develop";
|
||||
|
||||
# System aliases
|
||||
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||
kys = "shutdown now";
|
||||
ookla = "speedtest";
|
||||
hypr-cli = "hyprctl clients";
|
||||
|
||||
# Navigation aliases
|
||||
"~" = "cd ~";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
"...." = "cd ../../..";
|
||||
"....." = "cd ../../../..";
|
||||
|
||||
# Modifies commands
|
||||
cat = "bat";
|
||||
cp = "cp -i";
|
||||
mv = "mv -i";
|
||||
rm = "trash -v";
|
||||
mkdir = "mkdir -p";
|
||||
ps = "ps auxf";
|
||||
ping = "ping -c 10";
|
||||
less = "less -R";
|
||||
cls = "clear";
|
||||
multitail = "multitail --no-repeat -c";
|
||||
freshclam = "sudo freshclam";
|
||||
|
||||
# Alias"s for multiple directory listing commands
|
||||
la = "eza -alh --icons"; # show hidden files
|
||||
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
|
||||
lx = "eza -lh --icons --sort=extension"; # sort by extension
|
||||
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
|
||||
lc = "eza -lh --icons --sort=changed"; # sort by change time
|
||||
lu = "eza -lh --icons --sort=accessed"; # sort by access time
|
||||
lr = "eza -lh --icons --recurse"; # recursive ls
|
||||
lt = "eza -lh --icons --sort=modified"; # sort by date
|
||||
lm = "eza -alh --icons | more"; # pipe through "more"
|
||||
lw = "eza -xh --icons"; # wide listing format
|
||||
ll = "eza -lh --icons"; # long listing format
|
||||
labc = "eza -lah --icons --sort=name"; # alphabetical sort
|
||||
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
|
||||
ldir = "eza -lh --icons --only-dirs"; # directories only
|
||||
lla = "eza -alh --icons"; # List and Hidden Files
|
||||
las = "eza -a --icons"; # Hidden Files
|
||||
lls = "eza -lh --icons"; # List
|
||||
|
||||
# chmod commands
|
||||
mx = "chmod a+x";
|
||||
"000" = "chmod -R 000";
|
||||
"644" = "chmod -R 644";
|
||||
"666" = "chmod -R 666";
|
||||
"755" = "chmod -R 755";
|
||||
"777" = "chmod -R 777";
|
||||
|
||||
# Search command line history
|
||||
h = "history | grep ";
|
||||
|
||||
# Search running processes
|
||||
p = "ps aux | grep ";
|
||||
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
|
||||
|
||||
# Search files in the current folder
|
||||
f = "find . | grep ";
|
||||
|
||||
# Count all files (recursively) in the current folder
|
||||
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
|
||||
|
||||
# Alias"s to show disk space and space used in a folder
|
||||
diskspace = "du -S | sort -n -r |more";
|
||||
folders = "du -h --max-depth=1";
|
||||
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
|
||||
tree = "tree -CAhF --dirsfirst";
|
||||
treed = "tree -CAFd";
|
||||
mountedinfo = "df -hT";
|
||||
|
||||
# Show all logs in /var/log
|
||||
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
|
||||
|
||||
# fix kitty ssh connection
|
||||
kssh = "kitty +kitten ssh";
|
||||
|
||||
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
|
||||
|
||||
# Remove a directory and all files
|
||||
rmd = "/bin/rm --recursive --force --verbose ";
|
||||
|
||||
# Fun aliases
|
||||
pasjans = "ttysolitaire -p 10 --no-background-color";
|
||||
fc = "fortune | cowsay";
|
||||
|
||||
# Network aliases
|
||||
kssh-server = "kssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
|
||||
ssh-server = "ssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,146 +0,0 @@
|
||||
_: {
|
||||
programs.bash = {
|
||||
bashrcExtra = ''
|
||||
# Quick directory creation and navigation
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
# Extract various archive formats
|
||||
extract() {
|
||||
for archive in "$@"; do
|
||||
if [ -f "$archive" ]; then
|
||||
case "$archive" in
|
||||
*.tar.bz2) tar xvjf "$archive" ;;
|
||||
*.tar.gz) tar xvzf "$archive" ;;
|
||||
*.bz2) bunzip2 "$archive" ;;
|
||||
*.rar) unrar x "$archive" ;;
|
||||
*.gz) gunzip "$archive" ;;
|
||||
*.tar) tar xvf "$archive" ;;
|
||||
*.tbz2) tar xvjf "$archive" ;;
|
||||
*.tgz) tar xvzf "$archive" ;;
|
||||
*.zip) unzip "$archive" ;;
|
||||
*.Z) uncompress "$archive" ;;
|
||||
*.7z) 7z x "$archive" ;;
|
||||
*) echo "don't know how to extract '$archive'..." ;;
|
||||
esac
|
||||
else
|
||||
echo "'$archive' is not a valid file!"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Find files quickly
|
||||
ff() {
|
||||
find . -name "*$1*" -type f
|
||||
}
|
||||
|
||||
# Find directories quickly
|
||||
fd() {
|
||||
find . -name "*$1*" -type d
|
||||
}
|
||||
|
||||
# IP address lookup
|
||||
alias whatismyip="whatsmyip"
|
||||
function whatsmyip () {
|
||||
# Internal IP Lookup.
|
||||
if command -v ip &> /dev/null; then
|
||||
echo -n "Internal IP: "
|
||||
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
|
||||
else
|
||||
echo -n "Internal IP: "
|
||||
ifconfig wlan0 | grep "inet " | awk '{print $2}'
|
||||
fi
|
||||
|
||||
# External IP Lookup
|
||||
echo -n "External IP: "
|
||||
curl -4 ifconfig.me
|
||||
}
|
||||
|
||||
# Searches for text in all files in the current folder
|
||||
ftext() {
|
||||
# -i case-insensitive
|
||||
# -I ignore binary files
|
||||
# -H causes filename to be printed
|
||||
# -r recursive search
|
||||
# -n causes line number to be printed
|
||||
# optional: -F treat search term as a literal, not a regular expression
|
||||
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
|
||||
grep -iIHrn --color=always "$1" . | less -r
|
||||
}
|
||||
|
||||
# Copy file with a progress bar
|
||||
cpp() {
|
||||
set -e
|
||||
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
|
||||
awk '{
|
||||
count += $NF
|
||||
if (count % 10 == 0) {
|
||||
percent = count / total_size * 100
|
||||
printf "%3d%% [", percent
|
||||
for (i=0;i<=percent;i++)
|
||||
printf "="
|
||||
printf ">"
|
||||
for (i=percent;i<100;i++)
|
||||
printf " "
|
||||
printf "]\r"
|
||||
}
|
||||
}
|
||||
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
|
||||
}
|
||||
|
||||
# Copy and go to the directory
|
||||
cpg() {
|
||||
if [ -d "$2" ]; then
|
||||
cp "$1" "$2" && cd "$2"
|
||||
else
|
||||
cp "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Move and go to the directory
|
||||
mvg() {
|
||||
if [ -d "$2" ]; then
|
||||
mv "$1" "$2" && cd "$2"
|
||||
else
|
||||
mv "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create and go to the directory
|
||||
mkdirg() {
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
}
|
||||
|
||||
# Goes up a specified number of directories (i.e. up 4)
|
||||
up() {
|
||||
local d=""
|
||||
limit=$1
|
||||
for ((i = 1; i <= limit; i++)); do
|
||||
d=$d/..
|
||||
done
|
||||
d=$(echo $d | sed 's/^\///')
|
||||
if [ -z "$d" ]; then
|
||||
d=..
|
||||
fi
|
||||
cd $d
|
||||
}
|
||||
|
||||
# Automatically do an ls after each cd, z, or zoxide
|
||||
cd ()
|
||||
{
|
||||
if [ -n "$1" ]; then
|
||||
builtin cd "$@" && ls
|
||||
else
|
||||
builtin cd ~ && ls
|
||||
fi
|
||||
}
|
||||
|
||||
# Returns the last 2 fields of the working directory
|
||||
pwdtail() {
|
||||
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
138
modules/home/bash/aliases.nix
Normal file
138
modules/home/bash/aliases.nix
Normal file
@@ -0,0 +1,138 @@
|
||||
{
|
||||
username,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.bash.shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "nh os switch --hostname ${host}";
|
||||
upg = "nh os switch --hostname ${host} --update";
|
||||
upf = "sudo nix flake update --flake /home/${username}/garandos";
|
||||
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||
upd-bt = "nh os boot --hostname ${host}";
|
||||
upd-ts = "nh os test --hostname ${host}";
|
||||
upd-bd = "nh os build --hostname ${host}";
|
||||
tui = "garandos-tui";
|
||||
ncg = "nh clean all";
|
||||
|
||||
# Development aliases
|
||||
srvenv = "source .venv/bin/activate";
|
||||
"..srvenv" = "source ../.venv/bin/activate";
|
||||
pm = "uv run manage.py";
|
||||
f8 = "uv run flake8 .";
|
||||
bbr = "bun --bun run";
|
||||
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||
zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
|
||||
|
||||
# Development aliases for nix flake
|
||||
nd = "nix develop";
|
||||
nb = "nix build";
|
||||
nr = "nix run";
|
||||
nbr = "nix build && nix run";
|
||||
nbd = "nix build .#develop";
|
||||
nrd = "nix run .#develop";
|
||||
nbrd = "nix build .#develop && nix run .#develop";
|
||||
|
||||
# Development aliases for docker
|
||||
dcu = "docker compose up -d";
|
||||
dcd = "docker compose down";
|
||||
dcb = "docker compose build";
|
||||
dcub = "docker compose up -d --build";
|
||||
|
||||
# System aliases
|
||||
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||
kys = "shutdown now";
|
||||
ookla = "speedtest";
|
||||
hypr-cli = "hyprctl clients";
|
||||
|
||||
# Navigation aliases
|
||||
"~" = "cd ~";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
"...." = "cd ../../..";
|
||||
"....." = "cd ../../../..";
|
||||
|
||||
# Modifies commands
|
||||
cat = "bat";
|
||||
cp = "cp -i";
|
||||
mv = "mv -i";
|
||||
rm = "trash -v";
|
||||
mkdir = "mkdir -p";
|
||||
ps = "ps auxf";
|
||||
ping = "ping -c 10";
|
||||
less = "less -R";
|
||||
cls = "clear";
|
||||
multitail = "multitail --no-repeat -c";
|
||||
freshclam = "sudo freshclam";
|
||||
|
||||
# Alias"s for multiple directory listing commands
|
||||
la = "eza -alh --icons"; # show hidden files
|
||||
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
|
||||
lx = "eza -lh --icons --sort=extension"; # sort by extension
|
||||
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
|
||||
lc = "eza -lh --icons --sort=changed"; # sort by change time
|
||||
lu = "eza -lh --icons --sort=accessed"; # sort by access time
|
||||
lr = "eza -lh --icons --recurse"; # recursive ls
|
||||
lt = "eza -lh --icons --sort=modified"; # sort by date
|
||||
lm = "eza -alh --icons | more"; # pipe through "more"
|
||||
lw = "eza -xh --icons"; # wide listing format
|
||||
ll = "eza -lh --icons"; # long listing format
|
||||
labc = "eza -lah --icons --sort=name"; # alphabetical sort
|
||||
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
|
||||
ldir = "eza -lh --icons --only-dirs"; # directories only
|
||||
lla = "eza -alh --icons"; # List and Hidden Files
|
||||
las = "eza -a --icons"; # Hidden Files
|
||||
lls = "eza -lh --icons"; # List
|
||||
|
||||
# chmod commands
|
||||
mx = "chmod a+x";
|
||||
"000" = "chmod -R 000";
|
||||
"644" = "chmod -R 644";
|
||||
"666" = "chmod -R 666";
|
||||
"755" = "chmod -R 755";
|
||||
"777" = "chmod -R 777";
|
||||
|
||||
# Search command line history
|
||||
h = "history | grep ";
|
||||
|
||||
# Search running processes
|
||||
p = "ps aux | grep ";
|
||||
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
|
||||
|
||||
# Search files in the current folder
|
||||
f = "find . | grep ";
|
||||
|
||||
# Count all files (recursively) in the current folder
|
||||
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
|
||||
|
||||
# Alias"s to show disk space and space used in a folder
|
||||
diskspace = "du -S | sort -n -r |more";
|
||||
folders = "du -h --max-depth=1";
|
||||
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
|
||||
tree = "tree -CAhF --dirsfirst";
|
||||
treed = "tree -CAFd";
|
||||
mountedinfo = "df -hT";
|
||||
|
||||
# Show all logs in /var/log
|
||||
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
|
||||
|
||||
# fix kitty ssh connection
|
||||
kssh = "kitty +kitten ssh";
|
||||
|
||||
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
|
||||
|
||||
# Remove a directory and all files
|
||||
rmd = "/bin/rm --recursive --force --verbose ";
|
||||
|
||||
# Fun aliases
|
||||
pasjans = "ttysolitaire -p 10 --no-background-color";
|
||||
fc = "fortune | cowsay";
|
||||
|
||||
# Network aliases
|
||||
kssh-server = "kssh hp-t640-homeserver";
|
||||
kssh-server-ts = "kssh hp-t640-homeserver-tailscale";
|
||||
ssh-server = "ssh hp-t640-homeserver";
|
||||
ssh-server-ts = "ssh hp-t640-homeserver-tailscale";
|
||||
};
|
||||
}
|
||||
@@ -6,4 +6,8 @@ _: {
|
||||
# fastfetch
|
||||
# '';
|
||||
};
|
||||
imports = [
|
||||
./aliases.nix
|
||||
./functions.nix
|
||||
];
|
||||
}
|
||||
144
modules/home/bash/functions.nix
Normal file
144
modules/home/bash/functions.nix
Normal file
@@ -0,0 +1,144 @@
|
||||
_: {
|
||||
programs.bash.bashrcExtra = ''
|
||||
# Quick directory creation and navigation
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
# Extract various archive formats
|
||||
extract() {
|
||||
for archive in "$@"; do
|
||||
if [ -f "$archive" ]; then
|
||||
case "$archive" in
|
||||
*.tar.bz2) tar xvjf "$archive" ;;
|
||||
*.tar.gz) tar xvzf "$archive" ;;
|
||||
*.bz2) bunzip2 "$archive" ;;
|
||||
*.rar) unrar x "$archive" ;;
|
||||
*.gz) gunzip "$archive" ;;
|
||||
*.tar) tar xvf "$archive" ;;
|
||||
*.tbz2) tar xvjf "$archive" ;;
|
||||
*.tgz) tar xvzf "$archive" ;;
|
||||
*.zip) unzip "$archive" ;;
|
||||
*.Z) uncompress "$archive" ;;
|
||||
*.7z) 7z x "$archive" ;;
|
||||
*) echo "don't know how to extract '$archive'..." ;;
|
||||
esac
|
||||
else
|
||||
echo "'$archive' is not a valid file!"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Find files quickly
|
||||
ff() {
|
||||
find . -name "*$1*" -type f
|
||||
}
|
||||
|
||||
# Find directories quickly
|
||||
fd() {
|
||||
find . -name "*$1*" -type d
|
||||
}
|
||||
|
||||
# IP address lookup
|
||||
alias whatismyip="whatsmyip"
|
||||
function whatsmyip () {
|
||||
# Internal IP Lookup.
|
||||
if command -v ip &> /dev/null; then
|
||||
echo -n "Internal IP: "
|
||||
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
|
||||
else
|
||||
echo -n "Internal IP: "
|
||||
ifconfig wlan0 | grep "inet " | awk '{print $2}'
|
||||
fi
|
||||
|
||||
# External IP Lookup
|
||||
echo -n "External IP: "
|
||||
curl -4 ifconfig.me
|
||||
}
|
||||
|
||||
# Searches for text in all files in the current folder
|
||||
ftext() {
|
||||
# -i case-insensitive
|
||||
# -I ignore binary files
|
||||
# -H causes filename to be printed
|
||||
# -r recursive search
|
||||
# -n causes line number to be printed
|
||||
# optional: -F treat search term as a literal, not a regular expression
|
||||
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
|
||||
grep -iIHrn --color=always "$1" . | less -r
|
||||
}
|
||||
|
||||
# Copy file with a progress bar
|
||||
cpp() {
|
||||
set -e
|
||||
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
|
||||
awk '{
|
||||
count += $NF
|
||||
if (count % 10 == 0) {
|
||||
percent = count / total_size * 100
|
||||
printf "%3d%% [", percent
|
||||
for (i=0;i<=percent;i++)
|
||||
printf "="
|
||||
printf ">"
|
||||
for (i=percent;i<100;i++)
|
||||
printf " "
|
||||
printf "]\r"
|
||||
}
|
||||
}
|
||||
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
|
||||
}
|
||||
|
||||
# Copy and go to the directory
|
||||
cpg() {
|
||||
if [ -d "$2" ]; then
|
||||
cp "$1" "$2" && cd "$2"
|
||||
else
|
||||
cp "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Move and go to the directory
|
||||
mvg() {
|
||||
if [ -d "$2" ]; then
|
||||
mv "$1" "$2" && cd "$2"
|
||||
else
|
||||
mv "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create and go to the directory
|
||||
mkdirg() {
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
}
|
||||
|
||||
# Goes up a specified number of directories (i.e. up 4)
|
||||
up() {
|
||||
local d=""
|
||||
limit=$1
|
||||
for ((i = 1; i <= limit; i++)); do
|
||||
d=$d/..
|
||||
done
|
||||
d=$(echo $d | sed 's/^\///')
|
||||
if [ -z "$d" ]; then
|
||||
d=..
|
||||
fi
|
||||
cd $d
|
||||
}
|
||||
|
||||
# Automatically do an ls after each cd, z, or zoxide
|
||||
cd ()
|
||||
{
|
||||
if [ -n "$1" ]; then
|
||||
builtin cd "$@" && ls
|
||||
else
|
||||
builtin cd ~ && ls
|
||||
fi
|
||||
}
|
||||
|
||||
# Returns the last 2 fields of the working directory
|
||||
pwdtail() {
|
||||
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
||||
}
|
||||
'';
|
||||
}
|
||||
@@ -2,17 +2,12 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
# other styles available and cane be combined
|
||||
# style = "numbers,changes,headers,rule,grid";
|
||||
style = "full";
|
||||
# Bat has other thems as well
|
||||
# Dracula,ansi,Catppuccin,base16,base16-256,GitHub,Nord,etc
|
||||
theme = lib.mkForce "base16";
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.btop = {
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.btop.enable = lib.mkEnableOption "Btop";
|
||||
|
||||
config.programs.btop = lib.mkIf config.btop.enable {
|
||||
enable = true;
|
||||
package = pkgs.btop.override {
|
||||
rocmSupport = true;
|
||||
|
||||
@@ -1,42 +1,17 @@
|
||||
_: {
|
||||
programs.cava = {
|
||||
enable = false;
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.cava.enable = lib.mkEnableOption "Cava";
|
||||
|
||||
config.programs.cava = lib.mkIf config.cava.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
bar_spacing = 1;
|
||||
bar_width = 2;
|
||||
frame_rate = 60;
|
||||
};
|
||||
color = {
|
||||
#gradient = 1;
|
||||
#gradient_color_1 = "'#011f30'";
|
||||
#gradient_color_2 = "'#09465b'";
|
||||
#gradient_color_3 = "'#045a93'";
|
||||
#gradient_color_4 = "'#00aa00'";
|
||||
#gradient_color_5 = "'#ffff00'";
|
||||
#gradient_color_6 = "'#cc8033'";
|
||||
#gradient_color_7 = "'#aa0000'";
|
||||
#gradient_color_8 = "'#ff00ff'";
|
||||
# Old config
|
||||
#gradient = 1;
|
||||
#gradient_color_1 = "'#8bd5ca'";
|
||||
#gradient_color_2 = "'#91d7e3'";
|
||||
#gradient_color_3 = "'#7dc4e4'";
|
||||
#gradient_color_4 = "'#8aadf4'";
|
||||
#gradient_color_5 = "'#c6a0f6'";
|
||||
#gradient_color_6 = "'#f5bde6'";
|
||||
#gradient_color_7 = "'#ee99a0'";
|
||||
#gradient_color_8 = "'#ed8796'";
|
||||
# Dracula
|
||||
gradient = 1;
|
||||
gradient_color_1 = "'#8BE9FD'";
|
||||
gradient_color_2 = "'#9AEDFE'";
|
||||
gradient_color_3 = "'#CAA9FA'";
|
||||
gradient_color_4 = "'#BD93F9'";
|
||||
gradient_color_5 = "'#FF92D0'";
|
||||
gradient_color_6 = "'#FF79C6'";
|
||||
gradient_color_7 = "'#FF6E67'";
|
||||
gradient_color_8 = "'#FF5555'";
|
||||
frame_rate = 144;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = pkgs.ungoogled-chromium;
|
||||
# commandLineArgs = [ ];
|
||||
dictionaries = with pkgs; [
|
||||
hunspellDictsChromium.en_US
|
||||
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
|
||||
];
|
||||
extensions = [
|
||||
{
|
||||
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
|
||||
}
|
||||
{
|
||||
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
|
||||
}
|
||||
{
|
||||
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
|
||||
}
|
||||
{
|
||||
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
|
||||
}
|
||||
{
|
||||
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
|
||||
}
|
||||
{
|
||||
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
|
||||
}
|
||||
{
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
22
modules/home/chromium/default.nix
Normal file
22
modules/home/chromium/default.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.ungoogled-chromium.enable = lib.mkEnableOption "Ungoogled Chromium";
|
||||
|
||||
config.programs.chromium = lib.mkIf config.ungoogled-chromium.enable {
|
||||
enable = true;
|
||||
package = pkgs.ungoogled-chromium;
|
||||
# commandLineArgs = [ ];
|
||||
dictionaries = with pkgs; [
|
||||
hunspellDictsChromium.en_US
|
||||
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
|
||||
];
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extensions.nix
|
||||
];
|
||||
}
|
||||
25
modules/home/chromium/extensions.nix
Normal file
25
modules/home/chromium/extensions.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
_: {
|
||||
programs.chromium.extensions = [
|
||||
{
|
||||
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
|
||||
}
|
||||
{
|
||||
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
|
||||
}
|
||||
{
|
||||
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
|
||||
}
|
||||
{
|
||||
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
|
||||
}
|
||||
{
|
||||
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
|
||||
}
|
||||
{
|
||||
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
|
||||
}
|
||||
{
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,31 +1,32 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) waybarChoice;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
./bash
|
||||
./chromium
|
||||
./fastfetch
|
||||
./hyprland
|
||||
./kitty
|
||||
./librewolf
|
||||
./peaclock
|
||||
./rofi
|
||||
./scripts
|
||||
./swaync
|
||||
./vscodium
|
||||
waybarChoice
|
||||
./wlogout
|
||||
./xdg
|
||||
./zed
|
||||
./anki.nix
|
||||
./bash.nix
|
||||
./bash-aliases.nix
|
||||
./bash-functions.nix
|
||||
./bat.nix
|
||||
./btop.nix
|
||||
./cava.nix
|
||||
./chromium.nix
|
||||
./emoji.nix
|
||||
./eza.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./gtk.nix
|
||||
./kdeConnect.nix
|
||||
./kitty.nix
|
||||
./librewolf.nix
|
||||
./lutris.nix
|
||||
./nextcloud.nix
|
||||
./obs-studio.nix
|
||||
@@ -35,13 +36,9 @@ in
|
||||
./starship.nix
|
||||
./stylix.nix
|
||||
./swappy.nix
|
||||
./swaync.nix
|
||||
./tealdeer.nix
|
||||
./vesktop.nix
|
||||
./virtmanager.nix
|
||||
./xdg.nix
|
||||
./zoxide.nix
|
||||
./vscode.nix
|
||||
./zed.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
home.file.".config/.emoji".text = ''
|
||||
😀 grinning face face smile happy joy :D grin
|
||||
😃 grinning face with big eyes face happy joy haha :D :) smile funny
|
||||
|
||||
@@ -1,184 +1,17 @@
|
||||
{
|
||||
programs.fastfetch = {
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.fastfetch.enable = lib.mkEnableOption "FastFetch";
|
||||
|
||||
config.programs.fastfetch = lib.mkIf config.fastfetch.enable {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
display = {
|
||||
color = {
|
||||
keys = "35";
|
||||
output = "90";
|
||||
};
|
||||
separator = " ➜ ";
|
||||
package = pkgs.fastfetch;
|
||||
};
|
||||
|
||||
logo = {
|
||||
source = ./garandos.png;
|
||||
type = "kitty-direct";
|
||||
height = 15;
|
||||
width = 30;
|
||||
padding = {
|
||||
top = 3;
|
||||
left = 3;
|
||||
};
|
||||
};
|
||||
|
||||
modules = [
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Hardware────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "host";
|
||||
format = "{5} {1} Type {2}";
|
||||
key = "│ PC";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "cpu";
|
||||
format = "{1} ({3}) @ {7} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "gpu";
|
||||
format = "{1} {2} @ {12} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "memory";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "swap";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "disk";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
key = "│ └ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Software─────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "os";
|
||||
key = "│ OS";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
|
||||
}
|
||||
{
|
||||
type = "kernel";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "packages";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
key = "│ └ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "wm";
|
||||
key = "│ WM";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "wmtheme";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "icons";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "cursor";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminal";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminalfont";
|
||||
key = "│ └ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌───────────────────────────────Age / Uptime───────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ IN";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
if [ "$birth_install" -gt 0 ]; then
|
||||
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
|
||||
else
|
||||
echo "Installation date unknown"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
current=$(date +%s)
|
||||
delta=$((current - birth_install))
|
||||
delta_days=$((delta / 86400))
|
||||
echo $delta_days days
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "uptime";
|
||||
key = "│ └ ";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
"break"
|
||||
imports = [
|
||||
./settings
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 24 KiB |
7
modules/home/fastfetch/settings/default.nix
Normal file
7
modules/home/fastfetch/settings/default.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
_: {
|
||||
imports = [
|
||||
./display.nix
|
||||
./logo.nix
|
||||
./modules.nix
|
||||
];
|
||||
}
|
||||
9
modules/home/fastfetch/settings/display.nix
Normal file
9
modules/home/fastfetch/settings/display.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.display = {
|
||||
color = {
|
||||
keys = "35";
|
||||
output = "90";
|
||||
};
|
||||
separator = " ➜ ";
|
||||
};
|
||||
}
|
||||
12
modules/home/fastfetch/settings/logo.nix
Normal file
12
modules/home/fastfetch/settings/logo.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.logo = {
|
||||
source = ../garandos.png;
|
||||
type = "kitty-direct";
|
||||
height = 15;
|
||||
width = 30;
|
||||
padding = {
|
||||
top = 3;
|
||||
left = 3;
|
||||
};
|
||||
};
|
||||
}
|
||||
159
modules/home/fastfetch/settings/modules.nix
Normal file
159
modules/home/fastfetch/settings/modules.nix
Normal file
@@ -0,0 +1,159 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.modules = [
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Hardware────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "host";
|
||||
format = "{5} {1} Type {2}";
|
||||
key = "│ PC";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "cpu";
|
||||
format = "{1} ({3}) @ {7} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "gpu";
|
||||
format = "{1} {2} @ {12} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "memory";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "swap";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "disk";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
key = "│ └ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Software─────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "os";
|
||||
key = "│ OS";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
|
||||
}
|
||||
{
|
||||
type = "kernel";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "packages";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
key = "│ └ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "wm";
|
||||
key = "│ WM";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "wmtheme";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "icons";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "cursor";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminal";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminalfont";
|
||||
key = "│ └ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌───────────────────────────────Age / Uptime───────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ IN";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
if [ "$birth_install" -gt 0 ]; then
|
||||
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
|
||||
else
|
||||
echo "Installation date unknown"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
current=$(date +%s)
|
||||
delta=$((current - birth_install))
|
||||
delta_days=$((delta / 86400))
|
||||
echo $delta_days days
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "uptime";
|
||||
key = "│ └ ";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
"break"
|
||||
];
|
||||
}
|
||||
@@ -3,13 +3,11 @@
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
gtk = {
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
animations = {
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"wind, -1.05, 0.9, 0.1, 1.05"
|
||||
@@ -19,5 +17,4 @@
|
||||
"workspaces, 0, 5, wind"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
_: {
|
||||
# name "Dynamic"
|
||||
# credit https://github.com/mylinuxforwork/dotfiles
|
||||
animations = {
|
||||
wayland.windowManager.hyprland.settings.animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"wind, 0.05, 0.9, 0.1, 1.05"
|
||||
@@ -22,5 +19,4 @@
|
||||
"workspaces, 1, 5, wind"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
_: {
|
||||
# Name: END-4
|
||||
# Credit: END-4 project https://github.com/end-4/dots-hyprland
|
||||
animations = {
|
||||
wayland.windowManager.hyprland.settings.animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
@@ -34,5 +31,4 @@
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
_: {
|
||||
# name "moving"
|
||||
# credit https://github.com/mylinuxforwork/dotfiles
|
||||
animations = {
|
||||
wayland.windowManager.hyprland.settings.animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"overshot, 0.05, 0.9, 0.1, 1.05"
|
||||
@@ -21,5 +18,4 @@
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,128 +1,140 @@
|
||||
{ host, username, ... }:
|
||||
let
|
||||
{
|
||||
host,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) browser terminal;
|
||||
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
|
||||
in
|
||||
{
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bind = [
|
||||
# =============================================================================
|
||||
# APLIKACJE - GŁÓWNE
|
||||
# =============================================================================
|
||||
"$modifier, A, exec, anki"
|
||||
"$modifier, C, exec, chromium"
|
||||
"$modifier, D, exec, vesktop"
|
||||
"$modifier, I, exec, iotas"
|
||||
"$modifier, M, exec, plexamp"
|
||||
"$modifier, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
|
||||
"$modifier, Return, exec, ${terminal}"
|
||||
"$modifier, S, exec, steam"
|
||||
"$modifier, T, exec, thunar"
|
||||
"$modifier, W, exec, ${browser}"
|
||||
"$modifier, Z, exec, zeditor"
|
||||
"SUPER, A, exec, anki"
|
||||
"SUPER, B, exec, bitwarden"
|
||||
"SUPER, C, exec, chromium"
|
||||
"SUPER, D, exec, vesktop"
|
||||
"SUPER, G, exec, affinity-v3"
|
||||
"SUPER, I, exec, iotas"
|
||||
"SUPER, J, exec, Jan"
|
||||
"SUPER, L, exec, logseq"
|
||||
"SUPER, M, exec, plexamp"
|
||||
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
|
||||
"SUPER, O, exec, obs"
|
||||
"SUPER, P, exec, plex-desktop"
|
||||
"SUPER, Return, exec, ${terminal}"
|
||||
"SUPER, S, exec, steam"
|
||||
"SUPER, T, exec, thunar"
|
||||
"SUPER, V, exec, codium"
|
||||
"SUPER, W, exec, ${browser}"
|
||||
"SUPER, Z, exec, zeditor"
|
||||
|
||||
# =============================================================================
|
||||
# APLIKACJE - Z SHIFT
|
||||
# =============================================================================
|
||||
"$modifier SHIFT, B, exec, blueman-manager"
|
||||
"$modifier SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop"
|
||||
"$modifier SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop"
|
||||
"$modifier SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop"
|
||||
"$modifier SHIFT, N, exec, nextcloud"
|
||||
"$modifier SHIFT, O, exec, onlyoffice-desktopeditors"
|
||||
"$modifier SHIFT, Return, exec, rofi-launcher"
|
||||
"$modifier SHIFT, T, exec, tutanota-desktop"
|
||||
"$modifier SHIFT, W, exec, web-search"
|
||||
"SUPER SHIFT, B, exec, blueman-manager"
|
||||
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop"
|
||||
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop"
|
||||
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop"
|
||||
"SUPER SHIFT, N, exec, nextcloud"
|
||||
"SUPER SHIFT, O, exec, onlyoffice-desktopeditors"
|
||||
"SUPER SHIFT, Return, exec, rofi-launcher"
|
||||
"SUPER SHIFT, T, exec, tutanota-desktop"
|
||||
"SUPER SHIFT, W, exec, web-search"
|
||||
|
||||
# =============================================================================
|
||||
# APLIKACJE - Z ALT
|
||||
# =============================================================================
|
||||
"$modifier ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop"
|
||||
"$modifier ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
|
||||
"$modifier ALT, S, exec, slack"
|
||||
"$modifier ALT, T, exec, gnome-text-editor"
|
||||
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop"
|
||||
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
|
||||
"SUPER ALT, S, exec, slack"
|
||||
"SUPER ALT, T, exec, gedit"
|
||||
|
||||
# =============================================================================
|
||||
# APLIKACJE - Z CONTROL
|
||||
# =============================================================================
|
||||
"$modifier CONTROL, M, exec, mattermost-desktop"
|
||||
"SUPER CONTROL, G, exec, gimp"
|
||||
"SUPER CONTROL, M, exec, mattermost-desktop"
|
||||
"SUPER CONTROL, S, exec, signal-desktop"
|
||||
|
||||
# =============================================================================
|
||||
# NARZĘDZIA SYSTEMOWE
|
||||
# =============================================================================
|
||||
"$modifier, E, exec, emopicker9000"
|
||||
"$modifier, K, exec, galculator"
|
||||
"$modifier, P, exec, hyprpicker -a"
|
||||
"$modifier ALT, W, exec, wallsetter"
|
||||
"$modifier SHIFT, K, exec, list-keybinds"
|
||||
"$modifier SHIFT, P, exec, pavucontrol"
|
||||
"$modifier SHIFT, S, exec, screenshootin"
|
||||
"SUPER, E, exec, emopicker9000"
|
||||
"SUPER, K, exec, galculator"
|
||||
"SUPER ALT, W, exec, wallsetter"
|
||||
"SUPER CONTROL, P, exec, hyprpicker -a"
|
||||
"SUPER SHIFT, K, exec, list-keybinds"
|
||||
"SUPER SHIFT, P, exec, pavucontrol"
|
||||
"SUPER SHIFT, S, exec, screenshootin"
|
||||
|
||||
# =============================================================================
|
||||
# ZARZĄDZANIE OKNAMI
|
||||
# =============================================================================
|
||||
"$modifier, Escape, exec, hyprlock"
|
||||
"$modifier, F, fullscreen,"
|
||||
"$modifier, Q, killactive,"
|
||||
"$modifier CONTROL, Escape, exec, wlogout"
|
||||
"$modifier SHIFT, Escape, exit,"
|
||||
"$modifier SHIFT, I, togglesplit,"
|
||||
"SUPER, Escape, exec, hyprlock"
|
||||
"SUPER, F, fullscreen,"
|
||||
"SUPER, Q, killactive,"
|
||||
"SUPER CONTROL, Escape, exec, wlogout"
|
||||
"SUPER SHIFT, Escape, exit,"
|
||||
"SUPER SHIFT, I, togglesplit,"
|
||||
"SUPER SHIFT, F, togglefloating,"
|
||||
|
||||
# =============================================================================
|
||||
# FOKUS OKIEN
|
||||
# =============================================================================
|
||||
"$modifier, down, movefocus, d"
|
||||
"$modifier, left, movefocus, l"
|
||||
"$modifier, right, movefocus, r"
|
||||
"$modifier, up, movefocus, u"
|
||||
"SUPER, down, movefocus, d"
|
||||
"SUPER, left, movefocus, l"
|
||||
"SUPER, right, movefocus, r"
|
||||
"SUPER, up, movefocus, u"
|
||||
|
||||
# =============================================================================
|
||||
# PRZEMIESZCZANIE OKIEN
|
||||
# =============================================================================
|
||||
"$modifier SHIFT, down, movewindow, d"
|
||||
"$modifier SHIFT, left, movewindow, l"
|
||||
"$modifier SHIFT, right, movewindow, r"
|
||||
"$modifier SHIFT, up, movewindow, u"
|
||||
"SUPER SHIFT, down, movewindow, d"
|
||||
"SUPER SHIFT, left, movewindow, l"
|
||||
"SUPER SHIFT, right, movewindow, r"
|
||||
"SUPER SHIFT, up, movewindow, u"
|
||||
|
||||
# =============================================================================
|
||||
# ZAMIANA OKIEN
|
||||
# =============================================================================
|
||||
"$modifier ALT, down, swapwindow, d"
|
||||
"$modifier ALT, left, swapwindow, l"
|
||||
"$modifier ALT, right, swapwindow, r"
|
||||
"$modifier ALT, up, swapwindow, u"
|
||||
"SUPER ALT, down, swapwindow, d"
|
||||
"SUPER ALT, left, swapwindow, l"
|
||||
"SUPER ALT, right, swapwindow, r"
|
||||
"SUPER ALT, up, swapwindow, u"
|
||||
|
||||
# =============================================================================
|
||||
# WORKSPACES - PRZEŁĄCZANIE
|
||||
# =============================================================================
|
||||
"$modifier, 0, workspace, 10"
|
||||
"$modifier, 1, workspace, 1"
|
||||
"$modifier, 2, workspace, 2"
|
||||
"$modifier, 3, workspace, 3"
|
||||
"$modifier, 4, workspace, 4"
|
||||
"$modifier, 5, workspace, 5"
|
||||
"$modifier, 6, workspace, 6"
|
||||
"$modifier, 7, workspace, 7"
|
||||
"$modifier, 8, workspace, 8"
|
||||
"$modifier, 9, workspace, 9"
|
||||
"$modifier CONTROL, left, workspace, e-1"
|
||||
"$modifier CONTROL, right, workspace, e+1"
|
||||
"$modifier, mouse_down, workspace, e+1"
|
||||
"$modifier, mouse_up, workspace, e-1"
|
||||
"SUPER, 0, workspace, 10"
|
||||
"SUPER, 1, workspace, 1"
|
||||
"SUPER, 2, workspace, 2"
|
||||
"SUPER, 3, workspace, 3"
|
||||
"SUPER, 4, workspace, 4"
|
||||
"SUPER, 5, workspace, 5"
|
||||
"SUPER, 6, workspace, 6"
|
||||
"SUPER, 7, workspace, 7"
|
||||
"SUPER, 8, workspace, 8"
|
||||
"SUPER, 9, workspace, 9"
|
||||
"SUPER CONTROL, left, workspace, e-1"
|
||||
"SUPER CONTROL, right, workspace, e+1"
|
||||
"SUPER, mouse_down, workspace, e+1"
|
||||
"SUPER, mouse_up, workspace, e-1"
|
||||
|
||||
# =============================================================================
|
||||
# WORKSPACES - PRZENOSZENIE OKIEN
|
||||
# =============================================================================
|
||||
"$modifier SHIFT, 0, movetoworkspace, 10"
|
||||
"$modifier SHIFT, 1, movetoworkspace, 1"
|
||||
"$modifier SHIFT, 2, movetoworkspace, 2"
|
||||
"$modifier SHIFT, 3, movetoworkspace, 3"
|
||||
"$modifier SHIFT, 4, movetoworkspace, 4"
|
||||
"$modifier SHIFT, 5, movetoworkspace, 5"
|
||||
"$modifier SHIFT, 6, movetoworkspace, 6"
|
||||
"$modifier SHIFT, 7, movetoworkspace, 7"
|
||||
"$modifier SHIFT, 8, movetoworkspace, 8"
|
||||
"$modifier SHIFT, 9, movetoworkspace, 9"
|
||||
"SUPER SHIFT, 0, movetoworkspace, 10"
|
||||
"SUPER SHIFT, 1, movetoworkspace, 1"
|
||||
"SUPER SHIFT, 2, movetoworkspace, 2"
|
||||
"SUPER SHIFT, 3, movetoworkspace, 3"
|
||||
"SUPER SHIFT, 4, movetoworkspace, 4"
|
||||
"SUPER SHIFT, 5, movetoworkspace, 5"
|
||||
"SUPER SHIFT, 6, movetoworkspace, 6"
|
||||
"SUPER SHIFT, 7, movetoworkspace, 7"
|
||||
"SUPER SHIFT, 8, movetoworkspace, 8"
|
||||
"SUPER SHIFT, 9, movetoworkspace, 9"
|
||||
|
||||
# =============================================================================
|
||||
# MEDIA I KONTROLKI SYSTEMOWE
|
||||
@@ -140,25 +152,18 @@ in
|
||||
# =============================================================================
|
||||
# NIEUŻYWANE KEYBINDY
|
||||
# =============================================================================
|
||||
# "$modifier, B, exec, bitwarden"
|
||||
# "$modifier, G, exec, affinity-v3"
|
||||
# "$modifier, L, exec, logseq"
|
||||
# "$modifier, O, exec, obs"
|
||||
# "$modifier, V, exec, codium"
|
||||
|
||||
# "$modifier SHIFT, N, exec, swaync-client -rs"
|
||||
# "$modifier, P, pseudo,"
|
||||
# "$modifier SHIFT,F, togglefloating,"
|
||||
# "$modifier ALT,F, workspaceopt, allfloat"
|
||||
# "$modifier SHIFT, SPACE, movetoworkspace, special"
|
||||
# "$modifier, SPACE, togglespecialworkspace"
|
||||
# "SUPER SHIFT, N, exec, swaync-client -rs"
|
||||
# "SUPER, P, pseudo,"
|
||||
# "SUPER ALT,F, workspaceopt, allfloat"
|
||||
# "SUPER SHIFT, SPACE, movetoworkspace, special"
|
||||
# "SUPER, SPACE, togglespecialworkspace"
|
||||
# "ALT,Tab,cyclenext"
|
||||
# "ALT,Tab,bringactivetotop"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$modifier, mouse:272, movewindow"
|
||||
"$modifier, mouse:273, resizewindow"
|
||||
"SUPER, mouse:272, movewindow"
|
||||
"SUPER, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
{host, ...}: let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) animChoice;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
animChoice
|
||||
./binds.nix
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
env = [
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.env = [
|
||||
"NIXOS_OZONE_WL, 1"
|
||||
"NIXPKGS_ALLOW_UNFREE, 1"
|
||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
||||
@@ -32,6 +29,4 @@
|
||||
"TERMINAL,kitty"
|
||||
"XDG_TERMINAL_EMULATOR,kitty"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../../hosts/${host}/variables.nix)
|
||||
{host, ...}: let
|
||||
inherit
|
||||
(import ../../../hosts/${host}/variables.nix)
|
||||
stylixImage
|
||||
;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = [
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"wl-paste --type text --watch cliphist store" # Saves text
|
||||
"wl-paste --type image --watch cliphist store" # Saves images
|
||||
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
@@ -21,5 +19,4 @@ in
|
||||
"nm-applet --indicator"
|
||||
"sleep 1.0 && swww img ${stylixImage}"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
hypridle = {
|
||||
_: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
@@ -23,5 +20,4 @@
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
|
||||
in
|
||||
{
|
||||
in {
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = [
|
||||
"xdg-desktop-autostart.target"
|
||||
];
|
||||
@@ -28,9 +26,7 @@ in
|
||||
enableXdgAutostart = true;
|
||||
variables = ["--all"];
|
||||
};
|
||||
xwayland = {
|
||||
enable = true;
|
||||
};
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "${keyboardLayout}";
|
||||
@@ -62,14 +58,12 @@ in
|
||||
};
|
||||
|
||||
general = {
|
||||
"$modifier" = "SUPER";
|
||||
layout = "dwindle";
|
||||
gaps_in = 6;
|
||||
gaps_out = 8;
|
||||
border_size = 2;
|
||||
resize_on_border = true;
|
||||
"col.active_border" =
|
||||
"rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
||||
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
||||
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||
};
|
||||
|
||||
@@ -135,9 +129,7 @@ in
|
||||
direct_scanout = 0;
|
||||
};
|
||||
|
||||
debug = {
|
||||
full_cm_proto = true;
|
||||
};
|
||||
debug.full_cm_proto = true;
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
@@ -146,17 +138,13 @@ in
|
||||
};
|
||||
|
||||
# Ensure Xwayland windows render at integer scale; compositor scales them
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
xwayland.force_zero_scaling = true;
|
||||
};
|
||||
|
||||
extraConfig = "
|
||||
monitor=,preferred,auto,auto
|
||||
monitor=Virtual-1,1920x1080@60,auto,1
|
||||
${
|
||||
extraMonitorSettings
|
||||
}
|
||||
${extraMonitorSettings}
|
||||
# To enable blur on waybar uncomment the line below
|
||||
# Thanks to SchotjeChrisman
|
||||
#layerrule = blur,waybar
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ username, ... }:
|
||||
{
|
||||
{username, ...}: {
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
home.file.".config/hypr/pyprland.toml".text = ''
|
||||
[pyprland]
|
||||
plugins = [
|
||||
|
||||
@@ -1,100 +1,97 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
windowrule = [
|
||||
wayland.windowManager.hyprland.settings.windowrule = [
|
||||
# XWayland specific rules
|
||||
#"noblur, xwayland:1" # Helps prevent odd borders/shadows for xwayland apps
|
||||
# downside it can impact other xwayland apps
|
||||
# This rule is a template for a more targeted approach
|
||||
"noblur, class:^(\bresolve\b)$, xwayland:1" # Window rule for just resolve
|
||||
"no_blur on, match:class resolve, match:xwayland 1" # Window rule for just resolve
|
||||
|
||||
# Application tags
|
||||
"tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$"
|
||||
"tag +terminal, class:^(com.mitchellh.ghostty|org.wezfurlong.wezterm|Alacritty|kitty|kitty-dropterm)$"
|
||||
"tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$"
|
||||
"tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$"
|
||||
"tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$"
|
||||
"tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$"
|
||||
"tag +projects, class:^(codium|codium-url-handler|VSCodium)$"
|
||||
"tag +projects, class:^(VSCode|code-url-handler)$"
|
||||
"tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$"
|
||||
"tag +im, class:^([Ff]erdium)$"
|
||||
"tag +im, class:^([Ww]hatsapp-for-linux)$"
|
||||
"tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$"
|
||||
"tag +im, class:^(teams-for-linux)$"
|
||||
"tag +games, class:^(gamescope)$"
|
||||
"tag +games, class:^(steam_app_\d+)$"
|
||||
"tag +gamestore, class:^([Ss]team)$"
|
||||
"tag +gamestore, title:^([Ll]utris)$"
|
||||
"tag +gamestore, class:^(com.heroicgameslauncher.hgl)$"
|
||||
"tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$"
|
||||
"tag +settings, class:^([Rr]ofi)$"
|
||||
"tag +settings, class:^(file-roller|org.gnome.FileRoller)$"
|
||||
"tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$"
|
||||
"tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$"
|
||||
"tag +settings, class:^(nwg-look|qt5ct|qt6ct|[Yy]ad)$"
|
||||
"tag +settings, class:(xdg-desktop-portal-gtk)"
|
||||
"tag +settings, class:(.blueman-manager-wrapped)"
|
||||
"tag +settings, class:(nwg-displays)"
|
||||
"tag +file-manager, match:class [Tt]hunar|org\.gnome\.Nautilus|[Pp]cmanfm-qt"
|
||||
"tag +terminal, match:class com\.mitchellh\.ghostty|org\.wezfurlong\.wezterm|Alacritty|kitty|kitty-dropterm"
|
||||
"tag +browser, match:class [Ff]irefox|org\.mozilla\.firefox|[Ff]irefox-esr"
|
||||
"tag +browser, match:class [Ll]ibrewolf|io\.gitlab\.librewolf-community"
|
||||
"tag +browser, match:class [Gg]oogle-chrome(-beta|-dev|-unstable)?|[Cc]hromium-browser(-beta|-dev|-unstable)?"
|
||||
"tag +projects, match:class VSCode|code|code-url-handler|codium|codium-url-handler|VSCodium|VSCodium-url-handler"
|
||||
"tag +projects, match:class dev\.zed\.Zed"
|
||||
"tag +im, match:class [Dd]iscord|[Ww]ebCord|[Vv]esktop"
|
||||
"tag +im, match:class [Ff]erdium"
|
||||
"tag +im, match:class [Ss]ignal"
|
||||
"tag +im, match:class [Ss]lack"
|
||||
"tag +im, match:class [Tt]eams-for-linux"
|
||||
"tag +games, match:class gamescope"
|
||||
"tag +games, match:class ?:steam_app_\d+"
|
||||
"tag +games, match:class tf_linux64"
|
||||
"tag +games, match:class Minecraft\*.*"
|
||||
"tag +gamestore, match:class [Ss]team"
|
||||
"tag +gamestore, match:title [Ll]utris"
|
||||
"tag +gamestore, match:class com\.heroicgameslauncher\.hgl"
|
||||
"tag +gamestore, match:class org\.prismlauncher\.PrismLauncher"
|
||||
"tag +settings, match:class gnome-disks|wihotspot(-gui)?"
|
||||
"tag +settings, match:class [Rr]ofi"
|
||||
"tag +settings, match:class file-roller|org\.gnome\.FileRoller"
|
||||
"tag +settings, match:class nm-applet|nm-connection-editor|blueman-manager"
|
||||
"tag +settings, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
||||
"tag +settings, match:class nwg-look|qt5ct|qt6ct|[Yy]ad"
|
||||
"tag +settings, match:class xdg-desktop-portal-gtk"
|
||||
"tag +settings, match:class ?:blueman-manager-wrapped"
|
||||
"tag +settings, match:class nwg-displays"
|
||||
|
||||
# Position and movement rules
|
||||
"move 72% 7%,title:^(Picture-in-Picture)$"
|
||||
"center, class:^([Ff]erdium)$"
|
||||
"center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$"
|
||||
"center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)"
|
||||
"center, title:^(Authentication Required)$"
|
||||
"move 72% 7%, match:title Picture-in-Picture"
|
||||
"center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
||||
"center on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||
"center on, match:title Authentication Required"
|
||||
|
||||
# Idle inhibit rules
|
||||
"idleinhibit fullscreen, class:^(*)$"
|
||||
"idleinhibit fullscreen, title:^(*)$"
|
||||
"idleinhibit fullscreen, fullscreen:1"
|
||||
"idle_inhibit fullscreen, match:class .*"
|
||||
"idle_inhibit fullscreen, match:title .*"
|
||||
"idle_inhibit fullscreen, match:fullscreen 1"
|
||||
|
||||
# Float rules
|
||||
"float, class:^([Ww]aypaper)$"
|
||||
"float, tag:settings*"
|
||||
"float, class:^([Ff]erdium)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"float, class:^(mpv|com.github.rafostar.Clapper)$"
|
||||
"float, title:^(Authentication Required)$"
|
||||
"float, title:^(War in Tunnels)$"
|
||||
"float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)"
|
||||
"float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher)"
|
||||
"float, class:^([Ss]team)$, title:negative:^([Ss]team)$"
|
||||
"float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)"
|
||||
"float, class:^(galculator)$"
|
||||
"float, initialTitle:(Add Folder to Workspace)"
|
||||
"float, initialTitle:(Open Files)"
|
||||
"float, initialTitle:(wants to save)"
|
||||
"float on, match:class [Ww]aypaper"
|
||||
"float on, match:tag settings*"
|
||||
"float on, match:title Picture-in-Picture"
|
||||
"float on, match:title Authentication Required"
|
||||
"float on, match:title War in Tunnels"
|
||||
"float on, match:class codium|codium-url-handler|VSCodium, match:title negative:.*(?:codium|VSCodium).*"
|
||||
"float on, match:class com\.heroicgameslauncher\.hgl, match:title negative Heroic Games Launcher"
|
||||
"float on, match:class [Ss]team, match:title negative:[Ss]team"
|
||||
"float on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||
"float on, match:class galculator"
|
||||
"float on, match:initial_title Add Folder to Workspace"
|
||||
"float on, match:initial_title Open Files"
|
||||
"float on, match:initial_title wants to save"
|
||||
|
||||
# Size rules
|
||||
"size 70% 60%, initialTitle:(Open Files)"
|
||||
"size 70% 60%, initialTitle:(Add Folder to Workspace)"
|
||||
"size 70% 70%, tag:settings*"
|
||||
"size 60% 70%, class:^([Ff]erdium)$"
|
||||
"size 70% 60%, match:initial_title Open Files"
|
||||
"size 70% 60%, match:initial_title Add Folder to Workspace"
|
||||
"size 70% 70%, match:tag settings*"
|
||||
|
||||
# Tile rules
|
||||
"tile, class:^(affinity.exe)$"
|
||||
"tile, class:^(dev.zed.Zed)$"
|
||||
"tile on, match:class affinity\.exe"
|
||||
"tile on, match:class dev\.zed\.Zed"
|
||||
"tile on, match:class mpv"
|
||||
"tile on, match:class com-cburch-logisim-Main"
|
||||
|
||||
# Opacity rules
|
||||
"opacity 1.0 1.0, tag:browser*"
|
||||
"opacity 0.9 0.8, tag:projects*"
|
||||
"opacity 0.94 0.86, tag:im*"
|
||||
"opacity 0.9 0.8, tag:file-manager*"
|
||||
"opacity 0.8 0.7, tag:terminal*"
|
||||
"opacity 0.8 0.7, tag:settings*"
|
||||
"opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$"
|
||||
"opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui"
|
||||
"opacity 0.95 0.75, title:^(Picture-in-Picture)$"
|
||||
"opacity 1.0 1.0, match:tag browser*"
|
||||
"opacity 0.9 0.8, match:tag projects*"
|
||||
"opacity 0.94 0.86, match:tag im*"
|
||||
"opacity 0.85 0.75, match:tag gamestore*"
|
||||
"opacity 0.9 0.8, match:tag file-manager*"
|
||||
"opacity 0.8 0.7, match:tag terminal*"
|
||||
"opacity 0.8 0.7, match:tag settings*"
|
||||
"opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad"
|
||||
"opacity 0.9 0.8, match:class seahorse # gnome-keyring gui"
|
||||
"opacity 0.95 0.75, match:title Picture-in-Picture"
|
||||
|
||||
# Picture-in-Picture specific rules
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"keepaspectratio, title:^(Picture-in-Picture)$"
|
||||
"pin on, match:title Picture-in-Picture"
|
||||
"keep_aspect_ratio on, match:title Picture-in-Picture"
|
||||
|
||||
# Games specific rules
|
||||
"noblur, tag:games*"
|
||||
"fullscreen, tag:games*"
|
||||
"no_blur on, match:tag games*"
|
||||
"fullscreen on, match:tag games*"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.kdeconnect = {
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
|
||||
|
||||
config.services.kdeconnect = lib.mkIf config.kdeconnect.enable {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
package = pkgs.kdePackages.kdeconnect-kde;
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
package = pkgs.kitty;
|
||||
settings = {
|
||||
font_size = 12;
|
||||
wheel_scroll_min_lines = 1;
|
||||
window_padding_width = 4;
|
||||
confirm_os_window_close = 0;
|
||||
scrollback_lines = 10000;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = 60;
|
||||
cursor_trail = 1;
|
||||
tab_fade = 1;
|
||||
active_tab_font_style = "bold";
|
||||
inactive_tab_font_style = "bold";
|
||||
tab_bar_edge = "top";
|
||||
tab_bar_margin_width = 0;
|
||||
tab_bar_style = "powerline";
|
||||
#tab_bar_style = "fade";
|
||||
enabled_layouts = "splits";
|
||||
};
|
||||
extraConfig = ''
|
||||
|
||||
# Clipboard
|
||||
map ctrl+shift+v paste_from_selection
|
||||
map shift+insert paste_from_selection
|
||||
|
||||
# Scrolling
|
||||
map ctrl+shift+up scroll_line_up
|
||||
map ctrl+shift+down scroll_line_down
|
||||
map ctrl+shift+k scroll_line_up
|
||||
map ctrl+shift+j scroll_line_down
|
||||
map ctrl+shift+page_up scroll_page_up
|
||||
map ctrl+shift+page_down scroll_page_down
|
||||
map ctrl+shift+home scroll_home
|
||||
map ctrl+shift+end scroll_end
|
||||
map ctrl+shift+h show_scrollback
|
||||
|
||||
# Window management
|
||||
map alt+n new_window_with_cwd #open in current dir
|
||||
#map alt+n new_os_window #opens term in $HOME
|
||||
map alt+w close_window
|
||||
map ctrl+shift+enter launch --location=hsplit
|
||||
map ctrl+shift+s launch --location=vsplit
|
||||
map ctrl+shift+] next_window
|
||||
map ctrl+shift+[ previous_window
|
||||
map ctrl+shift+f move_window_forward
|
||||
map ctrl+shift+b move_window_backward
|
||||
map ctrl+shift+` move_window_to_top
|
||||
map ctrl+shift+1 first_window
|
||||
map ctrl+shift+2 second_window
|
||||
map ctrl+shift+3 third_window
|
||||
map ctrl+shift+4 fourth_window
|
||||
map ctrl+shift+5 fifth_window
|
||||
map ctrl+shift+6 sixth_window
|
||||
map ctrl+shift+7 seventh_window
|
||||
map ctrl+shift+8 eighth_window
|
||||
map ctrl+shift+9 ninth_window # Tab management
|
||||
map ctrl+shift+0 tenth_window
|
||||
map ctrl+shift+right next_tab
|
||||
map ctrl+shift+left previous_tab
|
||||
map ctrl+shift+t new_tab
|
||||
map ctrl+shift+q close_tab
|
||||
map ctrl+shift+l next_layout
|
||||
map ctrl+shift+. move_tab_forward
|
||||
map ctrl+shift+, move_tab_backward
|
||||
|
||||
# Miscellaneous
|
||||
map ctrl+shift+up increase_font_size
|
||||
map ctrl+shift+down decrease_font_size
|
||||
map ctrl+shift+backspace restore_font_size
|
||||
'';
|
||||
};
|
||||
}
|
||||
11
modules/home/kitty/default.nix
Normal file
11
modules/home/kitty/default.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{pkgs, ...}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
package = pkgs.kitty;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extra-config.nix
|
||||
./settings.nix
|
||||
];
|
||||
}
|
||||
52
modules/home/kitty/extra-config.nix
Normal file
52
modules/home/kitty/extra-config.nix
Normal file
@@ -0,0 +1,52 @@
|
||||
_: {
|
||||
programs.kitty.extraConfig = ''
|
||||
# Clipboard
|
||||
map ctrl+shift+v paste_from_selection
|
||||
map shift+insert paste_from_selection
|
||||
|
||||
# Scrolling
|
||||
map ctrl+shift+up scroll_line_up
|
||||
map ctrl+shift+down scroll_line_down
|
||||
map ctrl+shift+k scroll_line_up
|
||||
map ctrl+shift+j scroll_line_down
|
||||
map ctrl+shift+page_up scroll_page_up
|
||||
map ctrl+shift+page_down scroll_page_down
|
||||
map ctrl+shift+home scroll_home
|
||||
map ctrl+shift+end scroll_end
|
||||
map ctrl+shift+h show_scrollback
|
||||
|
||||
# Window management
|
||||
map alt+n new_window_with_cwd #open in current dir
|
||||
#map alt+n new_os_window #opens term in $HOME
|
||||
map alt+w close_window
|
||||
map ctrl+shift+enter launch --location=hsplit
|
||||
map ctrl+shift+s launch --location=vsplit
|
||||
map ctrl+shift+] next_window
|
||||
map ctrl+shift+[ previous_window
|
||||
map ctrl+shift+f move_window_forward
|
||||
map ctrl+shift+b move_window_backward
|
||||
map ctrl+shift+` move_window_to_top
|
||||
map ctrl+shift+1 first_window
|
||||
map ctrl+shift+2 second_window
|
||||
map ctrl+shift+3 third_window
|
||||
map ctrl+shift+4 fourth_window
|
||||
map ctrl+shift+5 fifth_window
|
||||
map ctrl+shift+6 sixth_window
|
||||
map ctrl+shift+7 seventh_window
|
||||
map ctrl+shift+8 eighth_window
|
||||
map ctrl+shift+9 ninth_window # Tab management
|
||||
map ctrl+shift+0 tenth_window
|
||||
map ctrl+shift+right next_tab
|
||||
map ctrl+shift+left previous_tab
|
||||
map ctrl+shift+t new_tab
|
||||
map ctrl+shift+q close_tab
|
||||
map ctrl+shift+l next_layout
|
||||
map ctrl+shift+. move_tab_forward
|
||||
map ctrl+shift+, move_tab_backward
|
||||
|
||||
# Miscellaneous
|
||||
map ctrl+shift+up increase_font_size
|
||||
map ctrl+shift+down decrease_font_size
|
||||
map ctrl+shift+backspace restore_font_size
|
||||
'';
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user