Compare commits
108 Commits
7600f9da0c
...
dendritic-
| Author | SHA1 | Date | |
|---|---|---|---|
| dff9e94470 | |||
| 92dba21fd8 | |||
| 5edd43b802 | |||
| a435b7d0cc | |||
| 38f618f8c7 | |||
| 7f01bed179 | |||
| 3e6c55ebcb | |||
| 4ef866927d | |||
| 7da6280a1e | |||
| 60d1363f58 | |||
| f2628ed320 | |||
| c3517a0f7f | |||
| 380b774ee3 | |||
| cfc4e49f16 | |||
| e5bfd117b4 | |||
| 68ed6d035e | |||
| c41e664a6b | |||
| c78292ac67 | |||
| 88b161347d | |||
| a751485bf0 | |||
| e2d9522d89 | |||
| 53f787d6c8 | |||
| 45ed10b1ec | |||
| 041be371e5 | |||
| e32b7ce0a5 | |||
| 62160ebcf0 | |||
| 276d64816b | |||
| 743bec0bae | |||
| 881faf7aac | |||
| cb8eacf322 | |||
| 1a756d60e8 | |||
| e5b5d68808 | |||
| 80d7fc08cc | |||
| 8ccb9205bf | |||
| 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 | |||
| 2be712393f | |||
| 8d06b7b0d0 | |||
| c7b625459d | |||
| f0fd1745c5 | |||
| 865a15d016 | |||
| b168dc430e | |||
| 5301154190 | |||
| ed3e3c4832 | |||
| ae86863909 | |||
| 29e72b8cf3 | |||
| b98e958302 | |||
| 2a11df7fcc | |||
| b9f8bbfb9c | |||
| b91eb30fa9 | |||
| 1c80038c08 | |||
| 789879c6eb | |||
| add12d2958 | |||
| ad1408ebfd | |||
| ac6e0d98b8 | |||
| 7213a861ae | |||
| 873e9fd4e7 | |||
| efb8dcda36 | |||
| 148481fa52 | |||
| 1739679b25 | |||
| 3dbb31caf7 | |||
| e60623f0bc | |||
| 121fccf135 | |||
| 41d0fd2075 | |||
| 9e59f925b5 | |||
| 233029c316 | |||
| 75bf262cea | |||
| fe19fa616e | |||
| a8ebaf2dd6 | |||
| 7ae2f26c8a | |||
| 4133d74d85 | |||
| 61651d2bc0 | |||
| 09ba4ccbf0 | |||
| 4458732589 |
34
GarandOS.svg
Normal file
34
GarandOS.svg
Normal file
@@ -0,0 +1,34 @@
|
||||
<svg version="1.1" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<path d="M204.958 225.203L88.751 427.776L61.6218 381.485L92.9365 327.23L30.7418 327.069L17.485 303.936L31.0226 280.277L119.554 280.558L151.369 225.346L204.958 225.203ZM213.875 387.14L446.27 387.151L420.006 433.946L357.665 433.773L388.622 488.074L375.35 511.194L348.228 511.225L304.199 433.912L240.789 433.781L213.875 387.14ZM349.136 298.374L232.949 95.7897L286.345 95.2858L317.364 149.713L348.602 95.5781L375.134 95.5858L388.722 119.218L344.212 196.251L375.808 251.594L349.136 298.374Z" fill-rule="nonzero" transform="matrix(1, 0, 0, 1, 0, 0)" fill="#f87c0e" fill-opacity="1" stroke="#ffffff" stroke-width="0" stroke-linecap="butt" stroke-linejoin="round" opacity="1" id="Ścieżka" />
|
||||
</g>
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<path d="M163.021 308.653L279.209 511.237L225.812 511.741L194.794 457.313L163.556 511.448L137.023 511.441L123.436 487.808L167.946 410.776L136.35 355.433L163.021 308.653ZM297.975 219.375L65.5804 219.364L91.8478 172.572L154.185 172.745L123.228 118.445L136.5 95.3242L163.625 95.2858L207.651 172.599L271.065 172.73L297.979 219.371L297.975 219.375ZM307.042 381.781L423.249 179.205L450.378 225.5L419.06 279.75L481.258 279.916L494.515 303.048L480.977 326.707L392.446 326.426L360.631 381.638L307.042 381.781Z" fill-rule="nonzero" transform="matrix(1, 0, 0, 1, 0, 0)" fill="#d31411" fill-opacity="1" stroke="#ffffff" stroke-width="0" stroke-linecap="butt" stroke-linejoin="round" opacity="1" id="Ścieżka" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<path d="M2450 3260C2088 3214 2045 3204 1575 3048L1180 2917L928 2604C701 2323 658 2256 500 1940L324 1589L214 935L261 647C302 397 315 355 354 329C379 313 421 286 447 269C493 240 499 243 629 364C827 548 853 562 898 503C996 373 2188 395 3060 543C3524 622 4487 845 4562 891C4572 897 4752 924 4963 950C5340 997 5415 1021 5377 1085C5375 1088 5394 1128 5418 1175C5481 1300 5446 1823 5362 2010C5332 2076 5276 2200 5239 2285C5144 2500 4859 2805 4595 2974C4143 3264 3340 3371 2450 3260Z" fill-rule="nonzero" transform="matrix(0.07236655, 0.03395807, 0.03395807, -0.07236655, 1.3727798, 172.38365)" fill="url(#radialGradient0)" stroke="#ffffff" stroke-width="0" stroke-linecap="butt" stroke-linejoin="round" opacity="1" id="Ścieżka" />
|
||||
</g>
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<g opacity="1" id="sex">
|
||||
<path d="M817.655 463.605C817.655 463.605 854.451 461.794 890.298 462.854C920.592 463.75 999.455 459.842 999.455 459.842C999.455 459.842 1003.91 465.764 998.44 470.501C991.48 476.524 965.783 477.134 965.783 477.134C965.783 477.134 887.398 481.385 847.948 482.786C831.474 483.371 827.044 484.107 827.044 484.107C749.409 511.416 382.407 556.101 132.027 514.61C89.434 507.552 75.311 501.175 75.311 501.175C75.311 501.175 69.701 498.783 67.055 497.251C61.505 494.037 59.627 487.436 55.064 485.302C97.102 484.629 200.019 503.974 231.976 506.06C434.227 519.263 787.431 470.57 817.655 463.605Z" fill-rule="nonzero" transform="matrix(0.36220634, 0.1296544, -0.1296544, 0.36220634, 124.92382, -19.742592)" fill="#66403a" fill-opacity="1" stroke="#ffffff" stroke-width="0" stroke-linecap="butt" stroke-linejoin="round" opacity="1" id="Ścieżka" />
|
||||
</g>
|
||||
</g>
|
||||
<g opacity="1" id="Nowy folder">
|
||||
<path d="M673.187 -57.558C673.187 -57.558 612.481 82.106 627.658 249.732C640.891 395.9 728.739 515.282 728.739 515.282C479.26 696.823 247.039 715.481 -25.318 512.668C-25.318 512.668 28.205 384.383 19.217 255.062C10.52 129.933 -83.313 -14.958 -83.313 -14.958C39.333 -197.304 437.51 -263.061 673.187 -57.558Z" fill-rule="nonzero" transform="matrix(0.10106731, 0.015680183, -0.017484369, 0.11269537, 243.86673, 125.96185)" fill="#d5a12b" fill-opacity="1" stroke="#ffffff" stroke-width="0" stroke-linecap="butt" stroke-linejoin="round" opacity="1" id="Ścieżka" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<radialGradient gradientTransform="matrix(-2850.1318, 2233.969, 2233.969, 2850.1318, 3820.5884, 481.4537)" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" id="radialGradient0">
|
||||
<stop stop-color="#8b2928" offset="0%" stop-opacity="1" />
|
||||
<stop stop-color="#842929" offset="54%" stop-opacity="1" />
|
||||
<stop stop-color="#6d272e" offset="100%" stop-opacity="1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -1,10 +1,10 @@
|
||||
# 📜 License
|
||||
|
||||
### GarandOS is licensed under the MIT License.
|
||||
### ZaneyOS is licensed under the MIT License.
|
||||
|
||||
## MIT License
|
||||
|
||||
**Copyright (c) 2025 Garand_PLG**
|
||||
**Copyright (c) 2025 Tyler Kelley**
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the <strong> "Software" </strong>), to deal
|
||||
|
||||
42
README.md
42
README.md
@@ -1,3 +1,7 @@
|
||||

|
||||
|
||||
---
|
||||
|
||||
# **GarandOS**
|
||||
Disclaimer: This configuration is a fork of [ZaneyOS](https://gitlab.com/Zaney/zaneyos), a wonderful configuration I had the pleasure of ~~stealing~~ forking almost a year ago for my laptop (version 2.2). Now that I've installed NIxOS on my main computer, I've installed the latest version (2.4), connected my repository, and am customizing it to suit my needs. My configuration won't be synchronized with the main project, as it serves as the foundation upon which I'm building my custom system. The original has been stripped of many unnecessary features, so I highly recommend checking out the original project and, like me, adapting it to your needs. If you like my configuration, fork it too and manage it yourself, as the project won't accept external pull requests.
|
||||
|
||||
@@ -54,8 +58,8 @@ sudo vgcreate vg0 /dev/mapper/cryptroot
|
||||
# Create Logical Volumes
|
||||
# (Up to max 16GB)
|
||||
sudo lvcreate -L 12G -n swap vg0 # 12GB SWAP
|
||||
# (For ROOT partition it's best to give at least 1/4 of the disk, but from experience I recommend roughly 100-200GB. System takes about 70GB, but it's worth leaving some extra space)
|
||||
sudo lvcreate -L 175G -n root vg0 # 175GB ROOT
|
||||
# (For ROOT partition it's best to give at least 1/4 of the disk. System takes about 45GB, but around 1,5x more is necessary)
|
||||
sudo lvcreate -L 75GB -n root vg0 # 75GB ROOT
|
||||
sudo lvcreate -l 100%FREE -n home vg0 # rest HOME
|
||||
```
|
||||
|
||||
@@ -183,30 +187,42 @@ git add .
|
||||
- `profile` - graphics card profile, choose the one most suitable for your hardware.
|
||||
- `gitUsername` and `gitEmail` - required for proper git usage.
|
||||
- `extraMonitorSettings` - specify your monitor (cable, resolution, refresh rate. You can leave the other two options).
|
||||
- `clock24h` - whether you want 24 or 12 hour clock.
|
||||
- `browser` - browser package name opened with shortcut **SUPER + W**.
|
||||
- `terminal` - terminal package name opened with shortcut **SUPER + Enter**
|
||||
- `keyboardLayout` and `consoleKeyMap` - keyboard layout (special characters ą,ę, etc.).
|
||||
- `location` - your location.
|
||||
- `stylixImage` - default system wallpaper, based on which the graphical theme (stylix) will be generated. You can browse them in the `wallpapers` folder.
|
||||
- `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.
|
||||
@@ -215,5 +231,5 @@ sudo nixos-rebuild switch --flake .#your-system-hostname
|
||||
- `upd-ts` - rebuild system and switch to it, but won't be added to bootloader.
|
||||
- `upd-bd` - only builds new configuration.
|
||||
|
||||
## TODO:
|
||||
- Add instruction for needed PWA
|
||||
## Winboat
|
||||
I highly recommend using [Ghost Spectre 11](https://tech-latest.com/ghost-spectre-windows-11/#Download_Ghost_Spectre_Windows_11_Superlite_Version) as windows ISO for **winboat**.
|
||||
|
||||
441
flake.lock
generated
441
flake.lock
generated
@@ -1,441 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"auto-cpufreq": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758887019,
|
||||
"narHash": "sha256-5QDHaIKbmremgFh8Pc9ess59K4HJ5APM8pNgnYzAMno=",
|
||||
"owner": "AdnanHodzic",
|
||||
"repo": "auto-cpufreq",
|
||||
"rev": "52194f4db364347626985fed5372eba2b6109cf4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "AdnanHodzic",
|
||||
"repo": "auto-cpufreq",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755819240,
|
||||
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1622559957,
|
||||
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1752979451,
|
||||
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-vim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1732806396,
|
||||
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1758798674,
|
||||
"narHash": "sha256-9ocRdyGIr67hgrfG8TWv8M6EuIGYUi3256JVHxXaD6s=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "810a33a4d21060a52a7babd8af7672485954b3ad",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756083905,
|
||||
"narHash": "sha256-UqYGTBgI5ypGh0Kf6zZjom/vABg7HQocB4gmxzl12uo=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "b655eaf16d4cbec9c3472f62eee285d4b419a808",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1731966426,
|
||||
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1748186689,
|
||||
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "GNOME",
|
||||
"ref": "48.2",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758810399,
|
||||
"narHash": "sha256-bpWoE1tiFX5T1tr5EudkpW9Kk02XR+6olkoSkf3nHZU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "39d26c16866260eee6d0487fe9c102ba1c1bf7b2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "master",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libnbtplusplus": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1699286814,
|
||||
"narHash": "sha256-yy0q+bky80LtK1GWzz7qpM+aAGrOqLuewbid8WT1ilk=",
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"rev": "23b955121b8217c1c348a9ed2483167a6f3ff4ad",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1739444422,
|
||||
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gmodena",
|
||||
"ref": "latest",
|
||||
"repo": "nix-flatpak",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1758690382,
|
||||
"narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e643668fd71b949c53f8626614b21ff71a07379d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
"stylix",
|
||||
"flake-parts"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756961635,
|
||||
"narHash": "sha256-hETvQcILTg5kChjYNns1fD5ELdsYB/VVgVmBtqKQj9A=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "6ca27b2654ac55e3f6e0ca434c1b4589ae22b370",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"prismlauncher-cracked": {
|
||||
"inputs": {
|
||||
"libnbtplusplus": "libnbtplusplus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747683146,
|
||||
"narHash": "sha256-zZS//xyNYQHvD4fUMoWx86uVUwPk+p5FjZLTTu0pelQ=",
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"rev": "0612187254ef41a1087f3107e927e0dd59c9b29d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"auto-cpufreq": "auto-cpufreq",
|
||||
"firefox-addons": "firefox-addons",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"prismlauncher-cracked": "prismlauncher-cracked",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
"base16-fish": "base16-fish",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-parts": "flake-parts",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
"tinted-tmux": "tinted-tmux",
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758757969,
|
||||
"narHash": "sha256-2zC4aHoDsR12Jyd6WvSxmQbAKT4V93frnHHDjA8o3r8=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "484819a16fdc1c76cdd62d8e94018db44e5e1a8b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726913040,
|
||||
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1735730497,
|
||||
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1754779259,
|
||||
"narHash": "sha256-8KG2lXGaXLUE0F/JVwLQe7kOVm21IDfNEo0gfga5P4M=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "097d751b9e3c8b97ce158e7d141e5a292545b502",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1754788770,
|
||||
"narHash": "sha256-LAu5nBr7pM/jD9jwFc6/kyFY4h7Us4bZz7dvVvehuwo=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "fb2175accef8935f6955503ec9dd3c973eec385c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1755613540,
|
||||
"narHash": "sha256-zBFrrTxHLDMDX/OYxkCwGGbAhPXLi8FrnLhYLsSOKeY=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "937bada16cd3200bdbd3a2f5776fc3b686d5cba0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
74
flake.nix
74
flake.nix
@@ -1,75 +1,15 @@
|
||||
{
|
||||
description = "GarandOS";
|
||||
description = "GarandOS flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
|
||||
import-tree.url = "github:vic/import-tree";
|
||||
};
|
||||
|
||||
stylix = {
|
||||
url = "github:danth/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
auto-cpufreq = {
|
||||
url = "github:AdnanHodzic/auto-cpufreq";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
prismlauncher-cracked = {
|
||||
url = "github:Diegiwg/PrismLauncher-Cracked";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
nix-flatpak,
|
||||
auto-cpufreq,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
|
||||
|
||||
mkHost =
|
||||
hostName:
|
||||
let
|
||||
inherit (import ./hosts/${hostName}/variables.nix)
|
||||
host
|
||||
username
|
||||
profile
|
||||
system
|
||||
;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
outputs = inputs: inputs.flake-parts.lib.mkFlake {
|
||||
inherit inputs;
|
||||
inherit username;
|
||||
inherit host;
|
||||
inherit profile;
|
||||
inherit system;
|
||||
};
|
||||
modules = [
|
||||
./profiles/${profile}
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
auto-cpufreq.nixosModules.default
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
|
||||
};
|
||||
} (inputs.import-tree ./src);
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
];
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = [ "dm-snapshot" ];
|
||||
luks.devices = {
|
||||
cryptroot = {
|
||||
device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
|
||||
preLVM = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
extraModulePackages = [ ];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/783D-A507";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = lib.mkForce [
|
||||
{
|
||||
device = "/dev/disk/by-uuid/8e8cc3dc-5754-4757-a2d7-53e6a2c3b5a4";
|
||||
}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "Garand-Desktop";
|
||||
username = "garand_plg";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "nvidia";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
# extraMonitorSettings = "monitor = HDMI-A-1,1920x1080@60,auto,1";
|
||||
# You can configure multiple monitors.
|
||||
# Inside the quotes, create a new line for each monitor.
|
||||
extraMonitorSettings = "monitor = DP-1,1920x1080@144,auto,1";
|
||||
|
||||
# Waybar Settings
|
||||
clock24h = true;
|
||||
|
||||
# Program Options
|
||||
# Set Default Browser (google-chrome-stable for google-chrome)
|
||||
# This does NOT install your browser
|
||||
# You need to install it by adding it to the `packages.nix`
|
||||
# or as a flatpak
|
||||
browser = "librewolf";
|
||||
|
||||
# Setting it here does not enable it. Kitty is installed by default
|
||||
terminal = "kitty"; # Set Default System Terminal
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = true;
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg;
|
||||
#stylixImage = ../../wallpapers/DW_Pacts.jpg;
|
||||
#stylixImage = ../../wallpapers/edward-elric-fullmetal-alchemist.jpg;
|
||||
#stylixImage = ../../wallpapers/fire-nation.jpg;
|
||||
#stylixImage = ../../wallpapers/four-elements.jpg;
|
||||
#stylixImage = ../../wallpapers/Grounded_Wallpaper_4K.jpg;
|
||||
#stylixImage = ../../wallpapers/jablon.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-two.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-one.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-three.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-one.jpg;
|
||||
|
||||
# Set Waybar
|
||||
# Available Options:
|
||||
waybarChoice = ../../modules/home/waybar/waybar-curved.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-simple.nix;
|
||||
# Throwback to GarandOS v1.0
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-jerry.nix;
|
||||
# Very colorful and bright colors
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix;
|
||||
# DWM styled waybars from Matt at TheLinuxCast
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-dwm.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-dwm-2.nix;
|
||||
|
||||
# Set Animation style
|
||||
# Available options are:
|
||||
# animations-def.nix (default)
|
||||
# animations-end4.nix (end-4 project very fluid)
|
||||
# animations-dynamic.nix (ml4w project)
|
||||
# animations-moving.nix (ml4w project)
|
||||
# animChoice = ../../modules/home/hyprland/animations-def.nix;
|
||||
animChoice = ../../modules/home/hyprland/animations-end4.nix;
|
||||
#animChoice = ../../modules/home/hyprland/animations-dynamic.nix;
|
||||
#animChoice = ../../modules/home/hyprland/animations-moving.nix;
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "5ab03f50";
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
];
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = [ "dm-snapshot" ];
|
||||
luks.devices.cryptroot = {
|
||||
device = "/dev/disk/by-uuid/6abc2228-823e-42b0-94c7-48fda757732c";
|
||||
preLVM = true;
|
||||
};
|
||||
};
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
extraModulePackages = [ ];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/d30939d0-53ed-4728-9190-6a5b9dec8fb4";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/3df34a25-7e42-433d-b723-be80f1738ba5";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/0E68-9A34";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/5da7c845-7dd3-4882-93af-2d679cdb5e7a"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "Garand-Laptop";
|
||||
username = "garand_plg";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "amd";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
# extraMonitorSettings = "monitor = HDMI-A-1,1920x1080@60,auto,1";
|
||||
# You can configure multiple monitors.
|
||||
# Inside the quotes, create a new line for each monitor.
|
||||
extraMonitorSettings = "monitor = eDP-1,1920x1080@60,auto,1";
|
||||
|
||||
# Waybar Settings
|
||||
clock24h = true;
|
||||
|
||||
# Program Options
|
||||
# Set Default Browser (google-chrome-stable for google-chrome)
|
||||
# This does NOT install your browser
|
||||
# You need to install it by adding it to the `packages.nix`
|
||||
# or as a flatpak
|
||||
browser = "librewolf";
|
||||
|
||||
# Setting it here does not enable it. Kitty is installed by default
|
||||
terminal = "kitty"; # Set Default System Terminal
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = false;
|
||||
|
||||
# Themes, waybar and animation.
|
||||
# Only uncomment your selection
|
||||
# The others much be commented out.
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg;
|
||||
#stylixImage = ../../wallpapers/DW_Pacts.jpg;
|
||||
#stylixImage = ../../wallpapers/edward-elric-fullmetal-alchemist.jpg;
|
||||
#stylixImage = ../../wallpapers/fire-nation.jpg;
|
||||
#stylixImage = ../../wallpapers/four-elements.jpg;
|
||||
#stylixImage = ../../wallpapers/Grounded_Wallpaper_4K.jpg;
|
||||
#stylixImage = ../../wallpapers/jablon.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-two.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-one.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-three.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-one.jpg;
|
||||
|
||||
# Set Waybar
|
||||
# Available Options:
|
||||
waybarChoice = ../../modules/home/waybar/waybar-curved.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-simple.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-jerry.nix;
|
||||
# Very colorful and bright colors
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix;
|
||||
# DWM styled waybars from Matt at TheLinuxCast
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-dwm.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-dwm-2.nix;
|
||||
|
||||
# Set Animation style
|
||||
# Available options are:
|
||||
# animations-def.nix (default)
|
||||
# animations-end4.nix (end-4 project very fluid)
|
||||
# animations-dynamic.nix (ml4w project)
|
||||
# animations-moving.nix (ml4w project)
|
||||
# animChoice = ../../modules/home/hyprland/animations-def.nix;
|
||||
animChoice = ../../modules/home/hyprland/animations-end4.nix;
|
||||
#animChoice = ../../modules/home/hyprland/animations-dynamic.nix;
|
||||
#animChoice = ../../modules/home/hyprland/animations-moving.nix;
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "7bc04e61";
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
];
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
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";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = lib.mkForce [
|
||||
{
|
||||
device = "/dev/vg0/swap";
|
||||
}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.docker0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "My-Desktop";
|
||||
username = "my_username";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "nvidia";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "my@email.com";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
# extraMonitorSettings = "monitor = HDMI-A-1,1920x1080@60,auto,1";
|
||||
# You can configure multiple monitors.
|
||||
# Inside the quotes, create a new line for each monitor.
|
||||
extraMonitorSettings = "
|
||||
|
||||
";
|
||||
|
||||
# Waybar Settings
|
||||
clock24h = true;
|
||||
|
||||
# Program Options
|
||||
# Set Default Browser (google-chrome-stable for google-chrome)
|
||||
# This does NOT install your browser
|
||||
# You need to install it by adding it to the `packages.nix`
|
||||
# or as a flatpak
|
||||
browser = "librewolf";
|
||||
|
||||
# Setting it here does not enable it. Kitty is installed by default
|
||||
terminal = "kitty"; # Set Default System Terminal
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = false;
|
||||
|
||||
# Themes, waybar and animation.
|
||||
# Only uncomment your selection
|
||||
# The others much be commented out.
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg;
|
||||
#stylixImage = ../../wallpapers/DW_Pacts.jpg;
|
||||
#stylixImage = ../../wallpapers/edward-elric-fullmetal-alchemist.jpg;
|
||||
#stylixImage = ../../wallpapers/fire-nation.jpg;
|
||||
#stylixImage = ../../wallpapers/four-elements.jpg;
|
||||
#stylixImage = ../../wallpapers/Grounded_Wallpaper_4K.jpg;
|
||||
#stylixImage = ../../wallpapers/jablon.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-two.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-one.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-log-three.jpg;
|
||||
#stylixImage = ../../wallpapers/rammstein-one.jpg;
|
||||
|
||||
# Set Waybar
|
||||
# Available Options:
|
||||
waybarChoice = ../../modules/home/waybar/waybar-curved.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-simple.nix;
|
||||
# Throwback to GarandOS v1.0
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-jerry.nix;
|
||||
# Very colorful and bright colors
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix;
|
||||
# DWM styled waybars from Matt at TheLinuxCast
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-dwm.nix;
|
||||
#waybarChoice = ../../modules/home/waybar/waybar-dwm-2.nix;
|
||||
|
||||
# Set Animation style
|
||||
# Available options are:
|
||||
# animations-def.nix (default)
|
||||
# animations-end4.nix (end-4 project very fluid)
|
||||
# animations-dynamic.nix (ml4w project)
|
||||
# animations-moving.nix (ml4w project)
|
||||
animChoice = ../../modules/home/hyprland/animations-def.nix;
|
||||
#animChoice = ../../modules/home/hyprland/animations-end4.nix;
|
||||
#animChoice = ../../modules/home/hyprland/animations-dynamic.nix;
|
||||
#animChoice = ../../modules/home/hyprland/animations-moving.nix;
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "5ab03f50";
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.auto-cpufreq = {
|
||||
enable = true;
|
||||
settings = {
|
||||
charger = {
|
||||
governor = "performance";
|
||||
turbo = "auto";
|
||||
};
|
||||
|
||||
battery = {
|
||||
governor = "powersave";
|
||||
turbo = "auto";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernelModules = [ "v4l2loopback" ];
|
||||
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||
kernel.sysctl = {
|
||||
"vm.max_map_count" = 2147483642;
|
||||
};
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
limine = {
|
||||
enable = true;
|
||||
style = {
|
||||
wallpapers = [
|
||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
||||
];
|
||||
wallpaperStyle = "centered";
|
||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
||||
interface = {
|
||||
branding = "GarandOS Bootloader";
|
||||
resolution = "1920x1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# Appimage Support
|
||||
binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||
};
|
||||
plymouth.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./packages
|
||||
./auto-cpufreq.nix
|
||||
./boot.nix
|
||||
./flatpak.nix
|
||||
./fonts.nix
|
||||
./hardware.nix
|
||||
./network.nix
|
||||
./nfs.nix
|
||||
./nh.nix
|
||||
./printing.nix
|
||||
./greetd.nix
|
||||
./security.nix
|
||||
./services.nix
|
||||
./steam.nix
|
||||
./stylix.nix
|
||||
./syncthing.nix
|
||||
./system.nix
|
||||
./thunar.nix
|
||||
./user.nix
|
||||
./virtualisation.nix
|
||||
./xserver.nix
|
||||
inputs.stylix.nixosModules.stylix
|
||||
];
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = [ pkgs.hyprland ];
|
||||
config.common = {
|
||||
default = [
|
||||
"hyprland"
|
||||
"gtk"
|
||||
];
|
||||
"org.freedesktop.impl.portal.Settings" = [
|
||||
"hyprland"
|
||||
];
|
||||
"org.freedesktop.impl.portal.FileChooser" = [
|
||||
"gtk"
|
||||
];
|
||||
};
|
||||
};
|
||||
services = {
|
||||
flatpak = {
|
||||
enable = true;
|
||||
packages = [
|
||||
"org.vinegarhq.Sober"
|
||||
"io.github.flattool.Warehouse"
|
||||
"com.github.tchx84.Flatseal"
|
||||
];
|
||||
|
||||
update.onActivation = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
dejavu_fonts
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome
|
||||
hackgen-nf-font
|
||||
ibm-plex
|
||||
inter
|
||||
jetbrains-mono
|
||||
material-icons
|
||||
maple-mono.NF
|
||||
minecraftia
|
||||
nerd-fonts.im-writing
|
||||
nerd-fonts.blex-mono
|
||||
noto-fonts
|
||||
noto-fonts-emoji
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-monochrome-emoji
|
||||
powerline-fonts
|
||||
roboto
|
||||
roboto-mono
|
||||
#symbola
|
||||
terminus_font
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
#vt = 3;
|
||||
settings = {
|
||||
default_session = {
|
||||
user = username;
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # start Hyprland with a TUI login manager
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
hardware = {
|
||||
sane = {
|
||||
enable = true;
|
||||
extraBackends = [ pkgs.sane-airscan ];
|
||||
disabledDefaultBackends = [ "escl" ];
|
||||
};
|
||||
logitech.wireless.enable = false;
|
||||
logitech.wireless.enableGraphical = false;
|
||||
graphics.enable = true;
|
||||
enableRedistributableFirmware = true;
|
||||
keyboard.qmk.enable = true;
|
||||
bluetooth.enable = true;
|
||||
bluetooth.powerOnBoot = true;
|
||||
};
|
||||
local.hardware-clock.enable = false;
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
host,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
||||
in
|
||||
{
|
||||
# Defensive assertion for hostname validity (clearer message at eval time)
|
||||
assertions = [
|
||||
{
|
||||
assertion = builtins.match "^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$" host != null;
|
||||
message = "Invalid hostname '${host}'. Must be 1-63 chars, start/end alphanumeric; allowed middle chars: letters, digits, '-' or '_'.";
|
||||
}
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "${host}";
|
||||
hostId = hostId;
|
||||
networkmanager.enable = true;
|
||||
timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ];
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
80
|
||||
443
|
||||
59010
|
||||
59011
|
||||
8080
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
59010
|
||||
59011
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
rpcbind.enable = enableNFS;
|
||||
nfs.server.enable = enableNFS;
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since 7d --keep 5";
|
||||
};
|
||||
flake = "/home/${username}/garandos";
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Communication
|
||||
discord
|
||||
slack
|
||||
mattermost-desktop
|
||||
# Productivity & Office
|
||||
bitwarden-desktop
|
||||
tutanota-desktop
|
||||
anki-bin
|
||||
onlyoffice-bin
|
||||
# Cloud
|
||||
nextcloud-client
|
||||
# Browsers
|
||||
ungoogled-chromium
|
||||
# Utilities
|
||||
galculator
|
||||
gedit
|
||||
eddie
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
imports = [
|
||||
./programs.nix
|
||||
./clients.nix
|
||||
./development.nix
|
||||
./gaming.nix
|
||||
./multimedia.nix
|
||||
./terminal.nix
|
||||
./tools.nix
|
||||
./virtualization.nix
|
||||
];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Language servers & formatters
|
||||
nixd
|
||||
nil
|
||||
nixfmt-rfc-style
|
||||
# Editors & IDEs
|
||||
zed-editor
|
||||
# Learning & practice
|
||||
exercism
|
||||
];
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Gaming platforms
|
||||
lutris
|
||||
wineWowPackages.waylandFull
|
||||
inputs.prismlauncher-cracked.packages.${system}.default
|
||||
# Games
|
||||
space-cadet-pinball
|
||||
tty-solitaire
|
||||
];
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Video & image processing
|
||||
ffmpeg
|
||||
ffmpegthumbnailer
|
||||
mpv
|
||||
gimp3
|
||||
eog
|
||||
kdePackages.kdenlive
|
||||
# Audio
|
||||
rhythmbox
|
||||
plexamp
|
||||
picard
|
||||
pavucontrol
|
||||
playerctl
|
||||
# Media downloaders & clients
|
||||
freetube
|
||||
ytmdl
|
||||
];
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs = {
|
||||
nano.enable = true;
|
||||
hyprland = {
|
||||
enable = true;
|
||||
withUWSM = false;
|
||||
};
|
||||
dconf.enable = true;
|
||||
seahorse.enable = true;
|
||||
fuse.userAllowOther = true;
|
||||
mtr.enable = true;
|
||||
adb.enable = true;
|
||||
hyprlock.enable = true;
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
cmatrix
|
||||
cowsay
|
||||
sl
|
||||
fortune
|
||||
lolcat
|
||||
eza
|
||||
amfora
|
||||
];
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# File management
|
||||
trash-cli
|
||||
file-roller
|
||||
unrar
|
||||
unzip
|
||||
# System monitoring & info
|
||||
inxi
|
||||
lm_sensors
|
||||
lshw
|
||||
pciutils
|
||||
usbutils
|
||||
glxinfo
|
||||
nix-output-monitor
|
||||
nvd
|
||||
onefetch
|
||||
# Disk utilities
|
||||
duf
|
||||
dysk
|
||||
ncdu
|
||||
# Network & system utilities
|
||||
ripgrep
|
||||
wget
|
||||
socat
|
||||
ookla-speedtest
|
||||
brightnessctl
|
||||
killall
|
||||
dex
|
||||
# Desktop environment
|
||||
networkmanagerapplet
|
||||
tuigreet
|
||||
nwg-displays
|
||||
waypaper
|
||||
uwsm
|
||||
hyprpicker
|
||||
cliphist
|
||||
# Development utilities
|
||||
pkg-config
|
||||
appimage-run
|
||||
libnotify
|
||||
v4l-utils
|
||||
kronometer
|
||||
];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
virt-viewer
|
||||
lazydocker
|
||||
docker-client
|
||||
docker-compose
|
||||
distrobox
|
||||
];
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) printEnable;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
printing = {
|
||||
enable = printEnable;
|
||||
drivers = [
|
||||
# pkgs.hplipWithPlugin
|
||||
];
|
||||
};
|
||||
avahi = {
|
||||
enable = printEnable;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
ipp-usb.enable = printEnable;
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
_: {
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
polkit = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ( subject.isInGroup("users") && (
|
||||
action.id == "org.freedesktop.login1.reboot" ||
|
||||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
||||
action.id == "org.freedesktop.login1.power-off" ||
|
||||
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
|
||||
))
|
||||
{ return polkit.Result.YES; }
|
||||
})
|
||||
'';
|
||||
};
|
||||
pam.services.swaylock = {
|
||||
text = ''auth include login '';
|
||||
};
|
||||
sudo = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
Defaults pwfeedback
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{ profile, ... }:
|
||||
{
|
||||
# Services to start
|
||||
services = {
|
||||
libinput.enable = true; # Input Handling
|
||||
fstrim.enable = true; # SSD Optimizer
|
||||
gvfs.enable = true; # For Mounting USB & More
|
||||
openssh = {
|
||||
enable = true; # Enable SSH
|
||||
settings = {
|
||||
PermitRootLogin = "no"; # Prevent root from SSH login
|
||||
PasswordAuthentication = true; # Users can SSH using kb and password
|
||||
KbdInteractiveAuthentication = true;
|
||||
};
|
||||
ports = [ 22 ];
|
||||
};
|
||||
blueman.enable = true; # Bluetooth Support
|
||||
tumbler.enable = true; # Image/video preview
|
||||
gnome.gnome-keyring.enable = true;
|
||||
|
||||
smartd = {
|
||||
enable = if profile == "vm" then false else true;
|
||||
autodetect = true;
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
extraConfig.pipewire."92-low-latency" = {
|
||||
"context.properties" = {
|
||||
"default.clock.rate" = 48000;
|
||||
"default.clock.quantum" = 256;
|
||||
"default.clock.min-quantum" = 256;
|
||||
"default.clock.max-quantum" = 256;
|
||||
};
|
||||
};
|
||||
extraConfig.pipewire-pulse."92-low-latency" = {
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-protocol-pulse";
|
||||
args = {
|
||||
pulse.min.req = "256/48000";
|
||||
pulse.default.req = "256/48000";
|
||||
pulse.max.req = "256/48000";
|
||||
pulse.min.quantum = "256/48000";
|
||||
pulse.max.quantum = "256/48000";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs = {
|
||||
starship = {
|
||||
enable = false;
|
||||
settings = {
|
||||
add_newline = false;
|
||||
buf = {
|
||||
symbol = " ";
|
||||
};
|
||||
c = {
|
||||
symbol = " ";
|
||||
};
|
||||
directory = {
|
||||
read_only = " ";
|
||||
};
|
||||
docker_context = {
|
||||
symbol = " ";
|
||||
};
|
||||
fossil_branch = {
|
||||
symbol = " ";
|
||||
};
|
||||
git_branch = {
|
||||
symbol = " ";
|
||||
};
|
||||
golang = {
|
||||
symbol = " ";
|
||||
};
|
||||
hg_branch = {
|
||||
symbol = " ";
|
||||
};
|
||||
hostname = {
|
||||
ssh_symbol = " ";
|
||||
};
|
||||
lua = {
|
||||
symbol = " ";
|
||||
};
|
||||
memory_usage = {
|
||||
symbol = " ";
|
||||
};
|
||||
meson = {
|
||||
symbol = " ";
|
||||
};
|
||||
nim = {
|
||||
symbol = " ";
|
||||
};
|
||||
nix_shell = {
|
||||
symbol = " ";
|
||||
};
|
||||
nodejs = {
|
||||
symbol = " ";
|
||||
};
|
||||
ocaml = {
|
||||
symbol = " ";
|
||||
};
|
||||
package = {
|
||||
symbol = " ";
|
||||
};
|
||||
python = {
|
||||
symbol = " ";
|
||||
};
|
||||
rust = {
|
||||
symbol = " ";
|
||||
};
|
||||
swift = {
|
||||
symbol = " ";
|
||||
};
|
||||
zig = {
|
||||
symbol = " ";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
extraCompatPackages = [ pkgs.proton-ge-bin ];
|
||||
};
|
||||
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
gamemode.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||
in
|
||||
{
|
||||
# Styling Options
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = stylixImage;
|
||||
# base16Scheme = {
|
||||
# base00 = "282936";
|
||||
# base01 = "3a3c4e";
|
||||
# base02 = "4d4f68";
|
||||
# base03 = "626483";
|
||||
# base04 = "62d6e8";
|
||||
# base05 = "e9e9f4";
|
||||
# base06 = "f1f2f8";
|
||||
# base07 = "f7f7fb";
|
||||
# base08 = "ea51b2";
|
||||
# base09 = "b45bcf";
|
||||
# base0A = "00f769";
|
||||
# base0B = "ebff87";
|
||||
# base0C = "a1efe4";
|
||||
# base0D = "62d6e8";
|
||||
# base0E = "b45bcf";
|
||||
# base0F = "00f769";
|
||||
# };
|
||||
polarity = "dark";
|
||||
opacity.terminal = 1.0;
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 24;
|
||||
};
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
name = "JetBrains Mono";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.montserrat;
|
||||
name = "Montserrat";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.montserrat;
|
||||
name = "Montserrat";
|
||||
};
|
||||
sizes = {
|
||||
applications = 12;
|
||||
terminal = 15;
|
||||
desktop = 11;
|
||||
popups = 12;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ username, ... }:
|
||||
{
|
||||
services.syncthing = {
|
||||
enable = false;
|
||||
user = "${username}";
|
||||
dataDir = "/home/${username}";
|
||||
configDir = "/home/${username}/.config/syncthing";
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
|
||||
in
|
||||
{
|
||||
nix = {
|
||||
settings = {
|
||||
download-buffer-size = 200000000;
|
||||
auto-optimise-store = true;
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
substituters = [ "https://hyprland.cachix.org" ];
|
||||
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
||||
};
|
||||
};
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
i18n.defaultLocale = "pl_PL.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "pl_PL.UTF-8";
|
||||
LC_IDENTIFICATION = "pl_PL.UTF-8";
|
||||
LC_MEASUREMENT = "pl_PL.UTF-8";
|
||||
LC_MONETARY = "pl_PL.UTF-8";
|
||||
LC_NAME = "pl_PL.UTF-8";
|
||||
LC_NUMERIC = "pl_PL.UTF-8";
|
||||
LC_PAPER = "pl_PL.UTF-8";
|
||||
LC_TELEPHONE = "pl_PL.UTF-8";
|
||||
LC_TIME = "pl_PL.UTF-8";
|
||||
};
|
||||
environment.variables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GARANDOS_VERSION = "1.0";
|
||||
GARANDOS = "true";
|
||||
};
|
||||
console.keyMap = "${consoleKeyMap}";
|
||||
system.stateVersion = "23.11"; # Do not change!
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs = {
|
||||
thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs.xfce; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
username,
|
||||
host,
|
||||
profile,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
||||
in
|
||||
{
|
||||
imports = [ inputs.home-manager.nixosModules.home-manager ];
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = false;
|
||||
backupFileExtension = "backup-nixos";
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
username
|
||||
host
|
||||
profile
|
||||
system
|
||||
;
|
||||
};
|
||||
users.${username} = {
|
||||
imports = [ ./../home ];
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = "23.11";
|
||||
};
|
||||
};
|
||||
};
|
||||
users.mutableUsers = true;
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "${gitUsername}";
|
||||
extraGroups = [
|
||||
"adbusers"
|
||||
"docker" # access to docker as non-root
|
||||
"libvirtd" # Virt manager/QEMU access
|
||||
"lp"
|
||||
"networkmanager"
|
||||
"scanner"
|
||||
"wheel" # subdo access
|
||||
"vboxusers" # Virtual Box
|
||||
"gamemode"
|
||||
];
|
||||
shell = pkgs.bash;
|
||||
ignoreShellProgramCheck = true;
|
||||
};
|
||||
nix.settings.allowed-users = [ "${username}" ];
|
||||
}
|
||||
@@ -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,13 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
|
||||
in
|
||||
{
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "${keyboardLayout}";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.drivers.amdgpu;
|
||||
in
|
||||
{
|
||||
options.drivers.amdgpu = {
|
||||
enable = mkEnableOption "Enable AMD Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" ];
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./amd-drivers.nix
|
||||
./intel-drivers.nix
|
||||
./local-hardware-clock.nix
|
||||
./nvidia-drivers.nix
|
||||
./nvidia-prime-drivers.nix
|
||||
./vm-guest-services.nix
|
||||
];
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.drivers.intel;
|
||||
in
|
||||
{
|
||||
options.drivers.intel = {
|
||||
enable = mkEnableOption "Enable Intel Graphics Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# OpenGL
|
||||
hardware.graphics = {
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.local.hardware-clock;
|
||||
in
|
||||
{
|
||||
options.local.hardware-clock = {
|
||||
enable = mkEnableOption "Change Hardware Clock To Local Time";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable { time.hardwareClockInLocalTime = true; };
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.drivers.nvidia;
|
||||
in
|
||||
{
|
||||
options.drivers.nvidia = {
|
||||
enable = mkEnableOption "Enable Nvidia Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware.nvidia = {
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
powerManagement.enable = true;
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
# Enable the Nvidia settings menu,
|
||||
# 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.drivers.nvidia-prime;
|
||||
in
|
||||
{
|
||||
options.drivers.nvidia-prime = {
|
||||
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
|
||||
intelBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:1:0:0";
|
||||
};
|
||||
nvidiaBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:0:2:0";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
hardware.nvidia = {
|
||||
prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
# Make sure to use the correct Bus ID values for your system!
|
||||
intelBusId = "${cfg.intelBusID}";
|
||||
nvidiaBusId = "${cfg.nvidiaBusID}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.vm.guest-services;
|
||||
in
|
||||
{
|
||||
options.vm.guest-services = {
|
||||
enable = mkEnableOption "Enable Virtual Machine Guest Services";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.qemuGuest.enable = true;
|
||||
services.spice-vdagentd.enable = true;
|
||||
services.spice-webdavd.enable = false; # Causes navfs2 build failure invalid neon version 9-12-25
|
||||
};
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
_: {
|
||||
home.file = {
|
||||
".config/amfora/config.toml".text = ''
|
||||
[a-general]
|
||||
home = "gemini://gem.zaney.org"
|
||||
color = true
|
||||
ansi = true
|
||||
bullets = true
|
||||
show_link = false
|
||||
scrollbar = "never"
|
||||
auto_redirect = false
|
||||
http = 'brave'
|
||||
search = "gemini://gus.guru/search"
|
||||
max_width = 140
|
||||
page_max_size = 2097152 # 2 MiB
|
||||
page_max_time = 10
|
||||
highlight_code = true
|
||||
highlight_style = "dracula"
|
||||
downloads = '~/Downloads/'
|
||||
underline = true
|
||||
[auth]
|
||||
[auth.certs]
|
||||
[auth.keys]
|
||||
[commands]
|
||||
[keybindings]
|
||||
bind_bottom = ":"
|
||||
bind_quit = "Q"
|
||||
bind_reload = "R"
|
||||
bind_back = "h"
|
||||
bind_forward = "l"
|
||||
bind_moveup = "k"
|
||||
bind_movedown = "j"
|
||||
bind_moveleft = "H"
|
||||
bind_moveright = "L"
|
||||
bind_next_tab = "J"
|
||||
bind_prev_tab = "K"
|
||||
bind_edit = "o"
|
||||
bind_new_tab = "O"
|
||||
bind_close_tab = "q"
|
||||
bind_save = "S"
|
||||
bind_home = "Ctrl-h"
|
||||
bind_bookmarks = "b"
|
||||
bind_add_bookmark = "B"
|
||||
bind_copy_page_url = "c"
|
||||
bind_copy_target_url = "C"
|
||||
bind_search = "/"
|
||||
bind_next_match = "n"
|
||||
bind_prev_match = "N"
|
||||
[url-handlers]
|
||||
[url-prompts]
|
||||
[cache]
|
||||
max_size = 0 # Size in bytes
|
||||
max_pages = 30 # The maximum number of pages the cache will store
|
||||
timeout = 1800 # 30 mins
|
||||
[proxies]
|
||||
[subscriptions]
|
||||
popup = true
|
||||
update_interval = 1800 # 30 mins
|
||||
workers = 3
|
||||
entries_per_page = 20
|
||||
header = true
|
||||
[theme]
|
||||
bg = "#282a36"
|
||||
tab_num = "#bd93f9"
|
||||
tab_divider = "#f8f8f2"
|
||||
bottombar_label = "#bd93f9"
|
||||
bottombar_text = "#8be9fd"
|
||||
bottombar_bg = "#44475a"
|
||||
scrollbar = "#44475a"
|
||||
hdg_1 = "#bd93f9"
|
||||
hdg_2 = "#7cafc2"
|
||||
hdg_3 = "#a16946"
|
||||
amfora_link = "#ff79c6"
|
||||
foreign_link = "#ffb86c"
|
||||
link_number = "#8be9fd"
|
||||
regular_text = "#f8f8f2"
|
||||
quote_text = "#f1fa8c"
|
||||
preformatted_text = "#ffb86c"
|
||||
list_text = "#f8f8f2"
|
||||
btn_bg = "#44475a"
|
||||
btn_text = "#f8f8f2"
|
||||
dl_choice_modal_bg = "#6272a4"
|
||||
dl_choice_modal_text = "#f8f8f2"
|
||||
dl_modal_bg = "#6272a4"
|
||||
dl_modal_text = "#f8f8f2"
|
||||
info_modal_bg = "#6272a4"
|
||||
info_modal_text = "#f8f8f2"
|
||||
error_modal_bg = "#ff5555"
|
||||
error_modal_text = "#f8f8f2"
|
||||
yesno_modal_bg = "#6272a4"
|
||||
yesno_modal_text = "#f8f8f2"
|
||||
tofu_modal_bg = "#6272a4"
|
||||
tofu_modal_text = "#f8f8f2"
|
||||
subscription_modal_bg = "#6272a4"
|
||||
subscription_modal_text = "#f8f8f2"
|
||||
input_modal_bg = "#6272a4"
|
||||
input_modal_text = "#f8f8f2"
|
||||
input_modal_field_bg = "#44475a"
|
||||
input_modal_field_text = "#f8f8f2"
|
||||
bkmk_modal_bg = "#6272a4"
|
||||
bkmk_modal_text = "#f8f8f2"
|
||||
bkmk_modal_label = "#f8f8f2"
|
||||
bkmk_modal_field_bg = "#44475a"
|
||||
bkmk_modal_field_text = "#f8f8f2"
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
{ host, username, ... }:
|
||||
{
|
||||
programs.bash = {
|
||||
shellAliases = {
|
||||
# NixOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "nh os switch --hostname ${host}";
|
||||
upg = "nh os switch --hostname ${host} --update";
|
||||
upd-bt = "nh os boot --hostname ${host}";
|
||||
upd-ts = "nh os test --hostname ${host}";
|
||||
upd-bd = "nh os build --hostname ${host}";
|
||||
ncg = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
|
||||
|
||||
# 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";
|
||||
snano = "sudo nano";
|
||||
zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
|
||||
|
||||
# System aliases
|
||||
flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||
kys = "shutdown now";
|
||||
ookla = "speedtest";
|
||||
snala = "sudo nala";
|
||||
|
||||
# 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
|
||||
ssh-server = "kssh 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}'
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
initExtra = ''
|
||||
fastfetch
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
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
|
||||
# ansi,Catppuccin,base16,base16-256,GitHub,Nord,etc
|
||||
theme = lib.mkForce "Dracula";
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
batman
|
||||
batpipe
|
||||
batgrep
|
||||
];
|
||||
};
|
||||
home.sessionVariables = {
|
||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||
MANROFFOPT = "-c";
|
||||
};
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.bottom = {
|
||||
enable = true;
|
||||
settings = {
|
||||
enable_gpu = true;
|
||||
theme = "nord";
|
||||
flags.group_processes = true;
|
||||
row = [
|
||||
{
|
||||
ratio = 2;
|
||||
child = [
|
||||
{ type = "cpu"; }
|
||||
{ type = "temp"; }
|
||||
];
|
||||
}
|
||||
{
|
||||
ratio = 2;
|
||||
child = [
|
||||
{ type = "network"; }
|
||||
];
|
||||
}
|
||||
{
|
||||
ratio = 3;
|
||||
child = [
|
||||
{
|
||||
type = "proc";
|
||||
ratio = 1;
|
||||
default = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
package = pkgs.btop.override {
|
||||
rocmSupport = true;
|
||||
cudaSupport = true;
|
||||
};
|
||||
settings = {
|
||||
rounded_corners = true;
|
||||
proc_tree = true;
|
||||
show_gpu_info = "on";
|
||||
show_uptime = true;
|
||||
show_coretemp = true;
|
||||
cpu_sensor = "auto";
|
||||
show_disks = true;
|
||||
only_physical = true;
|
||||
io_mode = true;
|
||||
io_graph_combined = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
programs.cava = {
|
||||
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'";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) waybarChoice;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./fastfetch
|
||||
./hyprland
|
||||
./rofi
|
||||
./scripts
|
||||
waybarChoice
|
||||
./wlogout
|
||||
./amfora.nix
|
||||
./bash.nix
|
||||
./bash-aliases.nix
|
||||
./bash-functions.nix
|
||||
./bat.nix
|
||||
./btop.nix
|
||||
./bottom.nix
|
||||
./cava.nix
|
||||
./emoji.nix
|
||||
./eza.nix
|
||||
./fzf.nix
|
||||
./gh.nix
|
||||
./git.nix
|
||||
./gtk.nix
|
||||
./htop.nix
|
||||
./kitty.nix
|
||||
./lazygit.nix
|
||||
./librewolf.nix
|
||||
./obs-studio.nix
|
||||
./qt.nix
|
||||
./ssh.nix
|
||||
./starship.nix
|
||||
./stylix.nix
|
||||
./swappy.nix
|
||||
./swaync.nix
|
||||
./tealdeer.nix
|
||||
./virtmanager.nix
|
||||
./xdg.nix
|
||||
./zoxide.nix
|
||||
./vscode.nix
|
||||
# ./zed.nix
|
||||
];
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,20 +0,0 @@
|
||||
# Eza is a ls replacement
|
||||
{
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
enableBashIntegration = true;
|
||||
git = true;
|
||||
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
"--no-quotes"
|
||||
"--header" # Show header row
|
||||
"--git-ignore"
|
||||
"--icons=always"
|
||||
# "--time-style=long-iso" # ISO 8601 extended format for time
|
||||
"--classify" # append indicator (/, *, =, @, |)
|
||||
"--hyperlink" # make paths clickable in some terminals
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,184 +0,0 @@
|
||||
{
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
display = {
|
||||
color = {
|
||||
keys = "35";
|
||||
output = "90";
|
||||
};
|
||||
separator = " ➜ ";
|
||||
};
|
||||
|
||||
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"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 96 KiB |
@@ -1,38 +0,0 @@
|
||||
# Fzf is a general-purpose command-line fuzzy finder.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
in
|
||||
{
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
colors = lib.mkForce {
|
||||
"fg+" = accent;
|
||||
"bg+" = "-1";
|
||||
"fg" = foreground;
|
||||
"bg" = "-1";
|
||||
"prompt" = muted;
|
||||
"pointer" = accent;
|
||||
};
|
||||
defaultOptions = [
|
||||
"--margin=1"
|
||||
"--layout=reverse"
|
||||
"--border=none"
|
||||
"--info='hidden'"
|
||||
"--header=''"
|
||||
"--prompt='/ '"
|
||||
"-i"
|
||||
"--no-bold"
|
||||
"--bind='enter:execute(nano {})'"
|
||||
"--preview='bat --style=numbers --color=always --line-range :500 {}'"
|
||||
"--preview-window=right:60%:wrap"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs = {
|
||||
gh.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
|
||||
in
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "${gitUsername}";
|
||||
userEmail = "${gitEmail}";
|
||||
|
||||
extraConfig = {
|
||||
# FOSS-friendly settings
|
||||
push.default = "simple"; # Match modern push behavior
|
||||
credential.helper = "cache --timeout=7200";
|
||||
init.defaultBranch = "main"; # Set default new branches to 'main'
|
||||
log.decorate = "full"; # Show branch/tag info in git log
|
||||
log.date = "iso"; # ISO 8601 date format
|
||||
# Conflict resolution style for readable diffs
|
||||
merge.conflictStyle = "diff3";
|
||||
};
|
||||
# Optional: FOSS-friendly Git aliases
|
||||
aliases = {
|
||||
br = "branch --sort=-committerdate";
|
||||
co = "checkout";
|
||||
df = "diff";
|
||||
com = "commit -a";
|
||||
gs = "stash";
|
||||
gp = "pull";
|
||||
lg = "log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %C(green)(%cr)%C(bold blue) <%an>%Creset' --abbrev-commit";
|
||||
st = "status";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
gtk = {
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
programs.htop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_scheme = 6;
|
||||
cpu_count_from_one = 0;
|
||||
delay = 15;
|
||||
fields = with config.lib.htop.fields; [
|
||||
PID
|
||||
USER
|
||||
PRIORITY
|
||||
NICE
|
||||
M_SIZE
|
||||
M_RESIDENT
|
||||
M_SHARE
|
||||
STATE
|
||||
PERCENT_CPU
|
||||
PERCENT_MEM
|
||||
TIME
|
||||
COMM
|
||||
];
|
||||
highlight_base_name = 1;
|
||||
highlight_megabytes = 1;
|
||||
highlight_threads = 1;
|
||||
}
|
||||
// (
|
||||
with config.lib.htop;
|
||||
leftMeters [
|
||||
(bar "AllCPUs2")
|
||||
(bar "Memory")
|
||||
(bar "Swap")
|
||||
(text "Zram")
|
||||
]
|
||||
)
|
||||
// (
|
||||
with config.lib.htop;
|
||||
rightMeters [
|
||||
(text "Tasks")
|
||||
(text "LoadAverage")
|
||||
(text "Uptime")
|
||||
(text "Systemd")
|
||||
]
|
||||
);
|
||||
};
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"wind, -1.05, 0.9, 0.1, 1.05"
|
||||
"winIn, -1.1, 1.1, 0.1, 1.1"
|
||||
"winOut, -1.3, -0.3, 0, 1"
|
||||
"liner, 0, 1, 1, 1"
|
||||
];
|
||||
animation = [
|
||||
"windows, 0, 6, wind, slide"
|
||||
"windowsIn, 0, 6, winIn, slide"
|
||||
"windowsOut, 0, 5, winOut, slide"
|
||||
"windowsMove, 0, 5, wind, slide"
|
||||
"border, 0, 1, liner"
|
||||
"fade, 0, 10, default"
|
||||
"workspaces, 0, 5, wind"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# name "Dynamic"
|
||||
# credit https://github.com/mylinuxforwork/dotfiles
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"wind, 0.05, 0.9, 0.1, 1.05"
|
||||
"winIn, 0.1, 1.1, 0.1, 1.1"
|
||||
"winOut, 0.3, -0.3, 0, 1"
|
||||
"liner, 1, 1, 1, 1"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 6, wind, slide"
|
||||
"windowsIn, 1, 6, winIn, slide"
|
||||
"windowsOut, 1, 5, winOut, slide"
|
||||
"windowsMove, 1, 5, wind, slide"
|
||||
"border, 1, 1, liner"
|
||||
"borderangle, 1, 30, liner, loop"
|
||||
"fade, 1, 10, default"
|
||||
"workspaces, 1, 5, wind"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# Name: END-4
|
||||
# Credit: END-4 project https://github.com/end-4/dots-hyprland
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92 "
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1 # use with .2s duration"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 3, md3_decel, popin 60%"
|
||||
"windowsIn, 1, 3, md3_decel, popin 60%"
|
||||
"windowsOut, 1, 3, md3_accel, popin 60%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 3, md3_decel"
|
||||
"layersIn, 1, 3, menu_decel, slide"
|
||||
"layersOut, 1, 1.6, menu_accel"
|
||||
"fadeLayersIn, 1, 2, menu_decel"
|
||||
"fadeLayersOut, 1, 4.5, menu_accel"
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# name "moving"
|
||||
# credit https://github.com/mylinuxforwork/dotfiles
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"overshot, 0.05, 0.9, 0.1, 1.05"
|
||||
"smoothOut, 0.5, 0, 0.99, 0.99"
|
||||
"smoothIn, 0.5, -0.5, 0.68, 1.5"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 5, overshot, slide"
|
||||
"windowsOut, 1, 3, smoothOut"
|
||||
"windowsIn, 1, 3, smoothOut"
|
||||
"windowsMove, 1, 4, smoothIn, slide"
|
||||
"border, 1, 5, default"
|
||||
"fade, 1, 5, smoothIn"
|
||||
"fadeDim, 1, 5, smoothIn"
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,156 +0,0 @@
|
||||
{ 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
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bind = [
|
||||
# =============================================================================
|
||||
# APLIKACJE - GŁÓWNE
|
||||
# =============================================================================
|
||||
"$modifier, A, exec, anki"
|
||||
"$modifier, B, exec, btop"
|
||||
"$modifier, C, exec, chromium"
|
||||
"$modifier, D, exec, discord"
|
||||
"$modifier, G, exec, gimp"
|
||||
"$modifier, M, exec, plexamp"
|
||||
"$modifier, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
|
||||
"$modifier, O, exec, obs"
|
||||
"$modifier, Return, exec, ${terminal}"
|
||||
"$modifier, S, exec, steam"
|
||||
"$modifier, T, exec, thunar"
|
||||
"$modifier, V, exec, codium"
|
||||
"$modifier, W, exec, ${browser}"
|
||||
"$modifier, 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"
|
||||
|
||||
# =============================================================================
|
||||
# APLIKACJE - Z ALT I CONTROL
|
||||
# =============================================================================
|
||||
"$modifier ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
|
||||
"$modifier ALT, S, exec, slack"
|
||||
"$modifier CONTROL, M, exec, mattermost-desktop"
|
||||
|
||||
# =============================================================================
|
||||
# NARZĘDZIA SYSTEMOWE
|
||||
# =============================================================================
|
||||
"$modifier, E, exec, emopicker9000"
|
||||
"$modifier, K, exec, galculator"
|
||||
"$modifier, P, exec, hyprpicker -a"
|
||||
"$modifier ALT, K, exec, kronometer"
|
||||
"$modifier ALT, W, exec, wallsetter"
|
||||
"$modifier SHIFT, K, exec, list-keybinds"
|
||||
"$modifier SHIFT, P, exec, pavucontrol"
|
||||
"$modifier SHIFT, S, exec, screenshootin"
|
||||
|
||||
# =============================================================================
|
||||
# ZARZĄDZANIE OKNAMI
|
||||
# =============================================================================
|
||||
"$modifier, Escape, exec, hyprlock"
|
||||
"$modifier, F, fullscreen,"
|
||||
"$modifier, Q, killactive,"
|
||||
"$modifier SHIFT, Escape, exit,"
|
||||
"$modifier SHIFT, I, togglesplit,"
|
||||
|
||||
# =============================================================================
|
||||
# FOKUS OKIEN
|
||||
# =============================================================================
|
||||
"$modifier, down, movefocus, d"
|
||||
"$modifier, left, movefocus, l"
|
||||
"$modifier, right, movefocus, r"
|
||||
"$modifier, 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"
|
||||
|
||||
# =============================================================================
|
||||
# ZAMIANA OKIEN
|
||||
# =============================================================================
|
||||
"$modifier ALT, down, swapwindow, d"
|
||||
"$modifier ALT, left, swapwindow, l"
|
||||
"$modifier ALT, right, swapwindow, r"
|
||||
"$modifier 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"
|
||||
|
||||
# =============================================================================
|
||||
# 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"
|
||||
|
||||
# =============================================================================
|
||||
# MEDIA I KONTROLKI SYSTEMOWE
|
||||
# =============================================================================
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
",XF86AudioNext, exec, playerctl next"
|
||||
",XF86AudioPause, exec, playerctl play-pause"
|
||||
",XF86AudioPlay, exec, playerctl play-pause"
|
||||
",XF86AudioPrev, exec, playerctl previous"
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
||||
",XF86MonBrightnessUp, exec, brightnessctl set +5%"
|
||||
|
||||
# =============================================================================
|
||||
# NIEUŻYWANE KEYBINDY (ZAKOMENTOWANE)
|
||||
# =============================================================================
|
||||
# "$modifier , R, exec, rofi-launcher"
|
||||
# "$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"
|
||||
# "ALT,Tab,cyclenext"
|
||||
# "ALT,Tab,bringactivetotop"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$modifier, mouse:272, movewindow"
|
||||
"$modifier, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) animChoice;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
animChoice
|
||||
./binds.nix
|
||||
./env.nix
|
||||
./exec-once.nix
|
||||
./hypridle.nix
|
||||
./hyprland.nix
|
||||
./hyprlock.nix
|
||||
./pyprland.nix
|
||||
./windowrules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
env = [
|
||||
"NIXOS_OZONE_WL, 1"
|
||||
"NIXPKGS_ALLOW_UNFREE, 1"
|
||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
||||
"XDG_SESSION_TYPE, wayland"
|
||||
"XDG_SESSION_DESKTOP, Hyprland"
|
||||
"GDK_BACKEND, wayland, x11"
|
||||
"CLUTTER_BACKEND, wayland"
|
||||
"QT_QPA_PLATFORM=wayland;xcb"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION, 1"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR, 1"
|
||||
"SDL_VIDEODRIVER, x11"
|
||||
"MOZ_ENABLE_WAYLAND, 1"
|
||||
# This is to make electron apps start in wayland
|
||||
"ELECTRON_OZONE_PLATFORM_HINT,wayland"
|
||||
# Disabling this by default as it can result in inop cfg
|
||||
# Added card2 in case this gets enabled. For better coverage
|
||||
# This is mostly needed by Hybrid laptops.
|
||||
# but if you have multiple discrete GPUs this will set order
|
||||
#"AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1:/dev/card2"
|
||||
"GDK_SCALE,1"
|
||||
"QT_SCALE_FACTOR,1"
|
||||
"EDITOR,nano"
|
||||
# Set terminal and xdg_terminal_emulator to kitty
|
||||
# To provent yazi from starting xterm when run from rofi menu
|
||||
# You can set to your preferred terminal if you you like
|
||||
# ToDo: Pull default terminal from config
|
||||
"TERMINAL,kitty"
|
||||
"XDG_TERMINAL_EMULATOR,kitty"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../../hosts/${host}/variables.nix)
|
||||
stylixImage
|
||||
;
|
||||
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
|
||||
"
|
||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user start hyprpolkitagent"
|
||||
|
||||
"killall -q swww;sleep .5 && swww-daemon"
|
||||
"killall -q waybar;sleep .5 && waybar"
|
||||
"killall -q swaync;sleep .5 && swaync"
|
||||
"#wallsetter &"
|
||||
"pypr &"
|
||||
"nm-applet --indicator"
|
||||
"sleep 1.0 && swww img ${stylixImage}"
|
||||
];
|
||||
};
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,27 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
lock_cmd = "hyprlock";
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 900;
|
||||
on-timeout = "hyprlock";
|
||||
}
|
||||
{
|
||||
timeout = 1200;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,161 +0,0 @@
|
||||
{
|
||||
host,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
|
||||
in
|
||||
{
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = [
|
||||
"xdg-desktop-autostart.target"
|
||||
];
|
||||
# Place Files Inside Home Directory
|
||||
home.file = {
|
||||
"Pictures/Wallpapers" = {
|
||||
source = ../../../wallpapers;
|
||||
recursive = true;
|
||||
};
|
||||
".face.icon".source = ./face.jpg;
|
||||
".config/face.jpg".source = ./face.jpg;
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = pkgs.hyprland;
|
||||
systemd = {
|
||||
enable = true;
|
||||
enableXdgAutostart = true;
|
||||
variables = [ "--all" ];
|
||||
};
|
||||
xwayland = {
|
||||
enable = true;
|
||||
};
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "${keyboardLayout}";
|
||||
kb_options = [
|
||||
"grp:alt_caps_toggle"
|
||||
"caps:super"
|
||||
];
|
||||
numlock_by_default = true;
|
||||
repeat_delay = 300;
|
||||
follow_mouse = 1;
|
||||
float_switch_override_focus = 0;
|
||||
sensitivity = 0;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
disable_while_typing = true;
|
||||
scroll_factor = 0.8;
|
||||
};
|
||||
};
|
||||
|
||||
gestures = {
|
||||
# workspace_swipe = 1;
|
||||
# workspace_swipe_fingers = 3;
|
||||
workspace_swipe_distance = 500;
|
||||
workspace_swipe_invert = 1;
|
||||
workspace_swipe_min_speed_to_force = 30;
|
||||
workspace_swipe_cancel_ratio = 0.5;
|
||||
workspace_swipe_create_new = 1;
|
||||
workspace_swipe_forever = 1;
|
||||
};
|
||||
|
||||
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.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||
};
|
||||
|
||||
misc = {
|
||||
layers_hog_keyboard_focus = true;
|
||||
initial_workspace_tracking = 0;
|
||||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = false;
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
enable_swallow = true;
|
||||
swallow_regex = "^(kitty)$";
|
||||
vfr = true; # Variable Frame Rate
|
||||
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
||||
# Screen flashing to black momentarily or going black when app is fullscreen
|
||||
# Try setting vrr to 0
|
||||
|
||||
# Application not responding (ANR) settings
|
||||
enable_anr_dialog = true;
|
||||
anr_missed_pings = 15;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
force_split = 2;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 5;
|
||||
passes = 3;
|
||||
ignore_opacity = false;
|
||||
new_optimizations = true;
|
||||
};
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
|
||||
ecosystem = {
|
||||
no_donation_nag = true;
|
||||
no_update_news = false;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
sync_gsettings_theme = true;
|
||||
no_hardware_cursors = 2; # change to 1 if want to disable
|
||||
enable_hyprcursor = false;
|
||||
warp_on_change_workspace = 2;
|
||||
no_warps = true;
|
||||
};
|
||||
|
||||
render = {
|
||||
# Disabling as no longer supported
|
||||
#explicit_sync = 1; # Change to 1 to disable
|
||||
#explicit_sync_kms = 1;
|
||||
direct_scanout = 0;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
new_on_top = 1;
|
||||
mfact = 0.5;
|
||||
};
|
||||
|
||||
# Ensure Xwayland windows render at integer scale; compositor scales them
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = "
|
||||
monitor=,preferred,auto,auto
|
||||
monitor=Virtual-1,1920x1080@60,auto,1
|
||||
${
|
||||
extraMonitorSettings
|
||||
}
|
||||
# To enable blur on waybar uncomment the line below
|
||||
# Thanks to SchotjeChrisman
|
||||
#layerrule = blur,waybar
|
||||
";
|
||||
};
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{ username, ... }:
|
||||
{
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
disable_loading_bar = true;
|
||||
grace = 10;
|
||||
hide_cursor = true;
|
||||
no_fade_in = false;
|
||||
};
|
||||
background = [
|
||||
{
|
||||
path = "/home/${username}/Pictures/Wallpapers/four-elements.jpg";
|
||||
blur_passes = 3;
|
||||
blur_size = 8;
|
||||
}
|
||||
];
|
||||
image = [
|
||||
{
|
||||
path = "/home/${username}/.config/face.jpg";
|
||||
size = 150;
|
||||
border_size = 4;
|
||||
border_color = "rgb(0C96F9)";
|
||||
rounding = -1; # Negative means circle
|
||||
position = "0, 200";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
input-field = [
|
||||
{
|
||||
size = "200, 50";
|
||||
position = "0, -80";
|
||||
monitor = "";
|
||||
dots_center = true;
|
||||
fade_on_empty = false;
|
||||
font_color = "rgb(CFE6F4)";
|
||||
inner_color = "rgb(657DC2)";
|
||||
outer_color = "rgb(0D0E15)";
|
||||
outline_thickness = 5;
|
||||
placeholder_text = "Password...";
|
||||
shadow_passes = 2;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
home.file.".config/hypr/pyprland.toml".text = ''
|
||||
[pyprland]
|
||||
plugins = [
|
||||
"scratchpads",
|
||||
]
|
||||
|
||||
[scratchpads.term]
|
||||
animation = "fromTop"
|
||||
command = "kitty --class kitty-dropterm"
|
||||
class = "kitty-dropterm"
|
||||
size = "70% 70%"
|
||||
max_size = "1920px 100%"
|
||||
position = "150px 150px"
|
||||
'';
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
{ host, ... }:
|
||||
let
|
||||
inherit (import ../../../hosts/${host}/variables.nix)
|
||||
extraMonitorSettings
|
||||
;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
windowrule = [
|
||||
#"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
|
||||
"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)"
|
||||
"move 72% 7%,title:^(Picture-in-Picture)$"
|
||||
"center, class:^([Ff]erdium)$"
|
||||
"float, class:^([Ww]aypaper)$"
|
||||
"center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$"
|
||||
"center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)"
|
||||
"center, title:^(Authentication Required)$"
|
||||
"idleinhibit fullscreen, class:^(*)$"
|
||||
"idleinhibit fullscreen, title:^(*)$"
|
||||
"idleinhibit fullscreen, fullscreen:1"
|
||||
"float, tag:settings*"
|
||||
"float, class:^([Ff]erdium)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"float, class:^(mpv|com.github.rafostar.Clapper)$"
|
||||
"float, title:^(Authentication Required)$"
|
||||
"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)"
|
||||
"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)$"
|
||||
"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)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"keepaspectratio, title:^(Picture-in-Picture)$"
|
||||
"noblur, tag:games*"
|
||||
"fullscreen, tag:games*"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
# Lazygit is a simple terminal UI for git commands.
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
accent = "#${config.lib.stylix.colors.base0D}";
|
||||
muted = "#${config.lib.stylix.colors.base03}";
|
||||
in
|
||||
{
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
settings = lib.mkForce {
|
||||
disableStartupPopups = true;
|
||||
notARepository = "skip";
|
||||
promptToReturnFromSubprocess = false;
|
||||
update.method = "never";
|
||||
git = {
|
||||
commit.signOff = true;
|
||||
parseEmoji = true;
|
||||
};
|
||||
gui = {
|
||||
theme = {
|
||||
activeBorderColor = [
|
||||
accent
|
||||
"bold"
|
||||
];
|
||||
inactiveBorderColor = [ muted ];
|
||||
};
|
||||
showListFooter = false;
|
||||
showRandomTip = false;
|
||||
showCommandLog = false;
|
||||
showBottomLine = false;
|
||||
nerdFontsVersion = "3";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,15 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-pipewire-audio-capture
|
||||
obs-vkcapture
|
||||
obs-source-clone
|
||||
obs-move-transition
|
||||
obs-composite-blur
|
||||
obs-backgroundremoval
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = lib.mkForce "qtct";
|
||||
};
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
home.file.".config/rofi/config-long.rasi".text = ''
|
||||
@import "~/.config/rofi/config.rasi"
|
||||
* {
|
||||
font: "JetBrainsMono Nerd Font Mono 12";
|
||||
}
|
||||
window {
|
||||
width: 750px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
mainbox {
|
||||
orientation: vertical;
|
||||
children: [ "inputbar", "listbox" ];
|
||||
}
|
||||
listview {
|
||||
lines: 13;
|
||||
}
|
||||
inputbar {
|
||||
padding: 55px 30px;
|
||||
background-color: transparent;
|
||||
background-image: url("~/Pictures/Wallpapers/attack-on-titan-mikasa-ackerman.jpg", width);
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "entry" ];
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
padding: 12px 20px;
|
||||
border-radius: 100%;
|
||||
background-color: @bg-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
entry {
|
||||
expand: true;
|
||||
padding: 12px 16px;
|
||||
border-radius: 100%;
|
||||
background-color: @bg-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
button {
|
||||
padding: 2px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
element {
|
||||
spacing: 2px;
|
||||
padding: 2px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
textbox {
|
||||
padding: 12px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
error-message {
|
||||
border-radius: 0px;
|
||||
}
|
||||
'';
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./config-long.nix
|
||||
./rofi.nix
|
||||
];
|
||||
}
|
||||
@@ -1,210 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs = {
|
||||
rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi;
|
||||
extraConfig = {
|
||||
modi = "drun,filebrowser,run";
|
||||
show-icons = true;
|
||||
icon-theme = "Papirus";
|
||||
font = "JetBrainsMono Nerd Font Mono 12";
|
||||
drun-display-format = "{icon} {name}";
|
||||
display-drun = " Apps";
|
||||
display-run = " Run";
|
||||
display-filebrowser = " File";
|
||||
};
|
||||
theme =
|
||||
let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in
|
||||
{
|
||||
"*" = {
|
||||
bg = mkLiteral "#${config.stylix.base16Scheme.base00}";
|
||||
bg-alt = mkLiteral "#${config.stylix.base16Scheme.base09}";
|
||||
foreground = mkLiteral "#${config.stylix.base16Scheme.base01}";
|
||||
selected = mkLiteral "#${config.stylix.base16Scheme.base08}";
|
||||
active = mkLiteral "#${config.stylix.base16Scheme.base0B}";
|
||||
text-selected = mkLiteral "#${config.stylix.base16Scheme.base00}";
|
||||
text-color = mkLiteral "#${config.stylix.base16Scheme.base05}";
|
||||
border-color = mkLiteral "#${config.stylix.base16Scheme.base0F}";
|
||||
urgent = mkLiteral "#${config.stylix.base16Scheme.base0E}";
|
||||
};
|
||||
"window" = {
|
||||
transparency = "real";
|
||||
width = mkLiteral "1000px";
|
||||
location = mkLiteral "center";
|
||||
anchor = mkLiteral "center";
|
||||
fullscreen = false;
|
||||
x-offset = mkLiteral "0px";
|
||||
y-offset = mkLiteral "0px";
|
||||
cursor = "default";
|
||||
enabled = true;
|
||||
border-radius = mkLiteral "15px";
|
||||
background-color = mkLiteral "@bg";
|
||||
};
|
||||
"mainbox" = {
|
||||
enabled = true;
|
||||
spacing = mkLiteral "0px";
|
||||
orientation = mkLiteral "horizontal";
|
||||
children = map mkLiteral [
|
||||
"imagebox"
|
||||
"listbox"
|
||||
];
|
||||
background-color = mkLiteral "transparent";
|
||||
};
|
||||
"imagebox" = {
|
||||
padding = mkLiteral "20px";
|
||||
background-color = mkLiteral "transparent";
|
||||
background-image = mkLiteral ''url("~/Pictures/Wallpapers/fire-nation.jpg", height)'';
|
||||
orientation = mkLiteral "vertical";
|
||||
children = map mkLiteral [
|
||||
"inputbar"
|
||||
"dummy"
|
||||
"mode-switcher"
|
||||
];
|
||||
};
|
||||
"listbox" = {
|
||||
spacing = mkLiteral "20px";
|
||||
padding = mkLiteral "20px";
|
||||
background-color = mkLiteral "transparent";
|
||||
orientation = mkLiteral "vertical";
|
||||
children = map mkLiteral [
|
||||
"message"
|
||||
"listview"
|
||||
];
|
||||
};
|
||||
"dummy" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
};
|
||||
"inputbar" = {
|
||||
enabled = true;
|
||||
spacing = mkLiteral "10px";
|
||||
padding = mkLiteral "10px";
|
||||
border-radius = mkLiteral "10px";
|
||||
background-color = mkLiteral "@bg-alt";
|
||||
text-color = mkLiteral "@foreground";
|
||||
children = map mkLiteral [
|
||||
"textbox-prompt-colon"
|
||||
"entry"
|
||||
];
|
||||
};
|
||||
"textbox-prompt-colon" = {
|
||||
enabled = true;
|
||||
expand = false;
|
||||
str = "";
|
||||
background-color = mkLiteral "inherit";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
"entry" = {
|
||||
enabled = true;
|
||||
background-color = mkLiteral "inherit";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "text";
|
||||
placeholder = "Search";
|
||||
placeholder-color = mkLiteral "inherit";
|
||||
};
|
||||
"mode-switcher" = {
|
||||
enabled = true;
|
||||
spacing = mkLiteral "20px";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
"button" = {
|
||||
padding = mkLiteral "15px";
|
||||
border-radius = mkLiteral "10px";
|
||||
background-color = mkLiteral "@bg-alt";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
"button selected" = {
|
||||
background-color = mkLiteral "@selected";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
"listview" = {
|
||||
enabled = true;
|
||||
columns = 1;
|
||||
lines = 8;
|
||||
cycle = true;
|
||||
dynamic = true;
|
||||
scrollbar = false;
|
||||
layout = mkLiteral "vertical";
|
||||
reverse = false;
|
||||
fixed-height = true;
|
||||
fixed-columns = true;
|
||||
spacing = mkLiteral "10px";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
cursor = "default";
|
||||
};
|
||||
"element" = {
|
||||
enabled = true;
|
||||
spacing = mkLiteral "15px";
|
||||
padding = mkLiteral "8px";
|
||||
border-radius = mkLiteral "10px";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@text-color";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
"element normal.normal" = {
|
||||
background-color = mkLiteral "inherit";
|
||||
text-color = mkLiteral "@text-color";
|
||||
};
|
||||
"element normal.urgent" = {
|
||||
background-color = mkLiteral "@urgent";
|
||||
text-color = mkLiteral "@text-color";
|
||||
};
|
||||
"element normal.active" = {
|
||||
background-color = mkLiteral "inherit";
|
||||
text-color = mkLiteral "@text-color";
|
||||
};
|
||||
"element selected.normal" = {
|
||||
background-color = mkLiteral "@selected";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
"element selected.urgent" = {
|
||||
background-color = mkLiteral "@urgent";
|
||||
text-color = mkLiteral "@text-selected";
|
||||
};
|
||||
"element selected.active" = {
|
||||
background-color = mkLiteral "@urgent";
|
||||
text-color = mkLiteral "@text-selected";
|
||||
};
|
||||
"element-icon" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
size = mkLiteral "36px";
|
||||
cursor = mkLiteral "inherit";
|
||||
};
|
||||
"element-text" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
vertical-align = mkLiteral "0.5";
|
||||
horizontal-align = mkLiteral "0.0";
|
||||
};
|
||||
"message" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
};
|
||||
"textbox" = {
|
||||
padding = mkLiteral "15px";
|
||||
border-radius = mkLiteral "10px";
|
||||
background-color = mkLiteral "@bg-alt";
|
||||
text-color = mkLiteral "@foreground";
|
||||
vertical-align = mkLiteral "0.5";
|
||||
horizontal-align = mkLiteral "0.0";
|
||||
};
|
||||
"error-message" = {
|
||||
padding = mkLiteral "15px";
|
||||
border-radius = mkLiteral "20px";
|
||||
background-color = mkLiteral "@bg";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# hyprland
|
||||
swww
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swappy
|
||||
ydotool
|
||||
hyprpolkitagent
|
||||
hyprland-qtutils # needed for banners and ANR messages
|
||||
# pyprland
|
||||
pyprland
|
||||
|
||||
(import ./emopicker9000.nix { inherit pkgs; })
|
||||
(import ./hm-find.nix { inherit pkgs; })
|
||||
(import ./keybinds.nix { inherit pkgs username; })
|
||||
(import ./note.nix { inherit pkgs; })
|
||||
(import ./note-from-clipboard.nix { inherit pkgs; })
|
||||
(import ./nvidia-offload.nix { inherit pkgs; })
|
||||
(import ./rofi-launcher.nix { inherit pkgs; })
|
||||
(import ./screenshootin.nix { inherit pkgs; })
|
||||
(import ./task-waybar.nix { inherit pkgs; })
|
||||
(import ./wallsetter.nix {
|
||||
inherit pkgs;
|
||||
inherit username;
|
||||
})
|
||||
(import ./web-search.nix { inherit pkgs; })
|
||||
];
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{ pkgs }:
|
||||
pkgs.writeShellScriptBin "emopicker9000" ''
|
||||
# check if rofi is already running
|
||||
if pidof rofi > /dev/null; then
|
||||
pkill rofi
|
||||
fi
|
||||
|
||||
# Get user selection via wofi from emoji file.
|
||||
chosen=$(cat $HOME/.config/.emoji | ${pkgs.rofi}/bin/rofi -i -dmenu -config ~/.config/rofi/config-long.rasi | awk '{print $1}')
|
||||
|
||||
# Exit if none chosen.
|
||||
[ -z "$chosen" ] && exit
|
||||
|
||||
# If you run this command with an argument, it will automatically insert the
|
||||
# character. Otherwise, show a message that the emoji has been copied.
|
||||
if [ -n "$1" ]; then
|
||||
${pkgs.ydotool}/bin/ydotool type "$chosen"
|
||||
else
|
||||
printf "$chosen" | ${pkgs.wl-clipboard}/bin/wl-copy
|
||||
${pkgs.libnotify}/bin/notify-send "'$chosen' copied to clipboard." &
|
||||
fi
|
||||
''
|
||||
@@ -1,60 +0,0 @@
|
||||
{ pkgs }:
|
||||
pkgs.writeShellScriptBin "hm-find" ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Script Metadata
|
||||
#===============================================
|
||||
# This script searches recent journalctl entries for Home Manager errors
|
||||
# It identifies backup files that prevent rebuilds and allows removal.
|
||||
# Author: Don Williams
|
||||
# Creation Date: May 6th, 2025
|
||||
# Revision History:
|
||||
#-----------------------------------------------
|
||||
# 0.1 - 5/6/25 - Initial version
|
||||
# 0.2 - 5/7/25 - Improved messaging, added log directory check
|
||||
|
||||
# Display WARNING message
|
||||
echo "==============================================="
|
||||
echo " ⚠️ WARNING ⚠️ "
|
||||
echo "==============================================="
|
||||
echo "*** This script is experimental! ***"
|
||||
echo "It will attempt to find old backup files that are preventing Home Manager from rebuilding."
|
||||
echo "If conflicting files are found, you will be prompted to remove them."
|
||||
echo "A log of any deletions will be stored in \$HOME/hm-logs."
|
||||
echo "==============================================="
|
||||
|
||||
# Define the time range (default: last 30 minutes)
|
||||
TIME_RANGE="30m"
|
||||
LOG_DIR="$HOME/hm-logs"
|
||||
LOG_FILE="$LOG_DIR/hm-cleanup-$(date +'%Y-%m-%d_%H-%M-%S').log"
|
||||
|
||||
# Ensure the log directory exists
|
||||
if [ ! -d "$LOG_DIR" ]; then
|
||||
echo "Creating log directory: $LOG_DIR"
|
||||
mkdir -p "$LOG_DIR"
|
||||
fi
|
||||
|
||||
# Search journal logs for backup conflicts and extract file paths
|
||||
FILES=$(journalctl --since "-$TIME_RANGE" -xe | grep hm-activate | awk -F "'|'" '/would be clobbered by backing up/ {print $2}')
|
||||
|
||||
# Check if any files were found
|
||||
if [ -z "$FILES" ]; then
|
||||
echo "No conflicting backup files found in the last $TIME_RANGE."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Display found backup files
|
||||
echo "🚨 The following backup files are preventing Home Manager from rebuilding:"
|
||||
echo "$FILES" | tr ' ' '\n'
|
||||
|
||||
# Ask for user confirmation before deletion
|
||||
read -p "❓ Do you want to remove these files? (y/N): " confirm
|
||||
|
||||
if [[ "$confirm" == "y" || "$confirm" == "Y" ]]; then
|
||||
echo "🗑️ Deleting files..." | tee -a "$LOG_FILE"
|
||||
echo "$FILES" | xargs rm -v | tee -a "$LOG_FILE"
|
||||
echo "✅ Cleanup completed at $(date)" | tee -a "$LOG_FILE"
|
||||
else
|
||||
echo "⛔ No files were removed." | tee -a "$LOG_FILE"
|
||||
fi
|
||||
''
|
||||
@@ -1,20 +0,0 @@
|
||||
{ pkgs, username, ... }:
|
||||
let
|
||||
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
|
||||
in
|
||||
pkgs.writeShellScriptBin "list-keybinds" ''
|
||||
# check if rofi is already running
|
||||
if pidof rofi > /dev/null; then
|
||||
pkill rofi
|
||||
fi
|
||||
|
||||
msg=' = Windows/Super/CAPS LOCK (Enter nie wykonuje skrótu)'
|
||||
keybinds=$(cat ~/.config/hypr/hyprland.conf | grep -E '^bind')
|
||||
|
||||
# replace #modifier with SUPER in the displayed keybinds for rofi
|
||||
display_keybinds=$(echo "$keybinds" | sed 's/\$modifier//g' | sed 's|${desktopEntriesPath}/||g')
|
||||
|
||||
# use rofi to display the keybinds with the modified content
|
||||
echo "$display_keybinds" | rofi -dmenu -i -config ~/.config/rofi/config-long.rasi -mesg "$msg"
|
||||
|
||||
''
|
||||
@@ -1,20 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
pkgs.writeShellScriptBin "note-from-clipboard" ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Check clipboard content type
|
||||
clipboard_type=$(${pkgs.wl-clipboard}/bin/wl-paste --list-types | head -n 1)
|
||||
|
||||
if [[ "$clipboard_type" == "text/plain"* ]]; then
|
||||
# It's text, let's create a note
|
||||
${pkgs.wl-clipboard}/bin/wl-paste | note
|
||||
if [ $? -eq 0 ]; then
|
||||
${pkgs.libnotify}/bin/notify-send -t 3000 "📝 Note Created" "Clipboard content added as a new note."
|
||||
else
|
||||
${pkgs.libnotify}/bin/notify-send -t 5000 -u critical "❌ Note Creation Failed" "There was an error creating the note."
|
||||
fi
|
||||
else
|
||||
# It's not text, so we do nothing and notify the user
|
||||
${pkgs.libnotify}/bin/notify-send -t 4000 -u low "📋 Note Skipped" "Clipboard does not contain text."
|
||||
fi
|
||||
''
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user