Compare commits

..

38 Commits

Author SHA1 Message Date
80d7fc08cc Update settings shortcut and force mimeapps.list
- Replace Super+Shift+, with Super+Alt+P to toggle settings
- Force mimeapps.list in XDG config
2026-02-02 02:20:37 +01:00
8ccb9205bf Add Noctalia shell with Quickshell overview
- Add `noctalia` input to flake and lock it in `flake.lock`.
- Include `noctalia` and `quickshell` modules in `flake.nix`.
- Extend core packages to accept `inputs` and `system`; add
  `quickshell.nix`
  with required Qt6 packages and environment variables.
- Enable `upower` service for battery handling.
- Add home modules `noctalia.nix` and `overview.nix` (QML UI, README,
  assets, widgets, services) to provide a workspace overview.
- Comment out unused rofi and web‑search binds; update `exec‑once` to
  start
  the overview daemon and `noctalia-shell`.
- Provide `restart.noctalia` script and its Nix wrapper.
- Enable `noctalia-shell` in `stylix` configuration.
2026-02-02 01:57:56 +01:00
51ad90dc9c Update flake.lock with latest revisions 2026-02-02 00:38:36 +01:00
248b2f1dbb Enable VirtualBox and add development aliases 2026-01-31 16:48:35 +01:00
c258681d10 Add VirtualBox support with disabled default 2026-01-30 14:15:28 +01:00
5314aba270 update 2026-01-29 01:55:42 +01:00
0f00938787 Enable Winboat remote desktop module 2026-01-27 19:43:17 +01:00
6cbbd0110d Tile mpv windows instead of floating 2026-01-21 23:43:01 +01:00
01cc53fff1 Add tailscale SSH host and use username variable
- Simplify server aliases and add tailscale‑specific aliases
- Make SSH module accept a username argument
- Add match block for Tailscale host with port 22 and identity file
2026-01-19 11:14:41 +01:00
7501159100 Add Logisim Evolution support
- Include logisim‑evolution in the core packages list.
- Add `logisim-evolution.enable` option to system modules (enabled on
  desktop).
- Bind `SUPER SHIFT F` to toggle floating windows.
- Add tiling rule for Logisim windows.
- Update `upf` alias to specify the flake path.
- Refresh flake.lock revisions for firefox‑addons and wrappers.
2026-01-18 02:12:59 +01:00
727462ffd3 Update flake.lock with latest revisions 2026-01-17 13:57:47 +01:00
7446d8c239 Enable Tailscale and Prism Launcher in Garand-Laptop config 2026-01-15 08:30:32 +01:00
085e02f539 Update flake.lock and add game window rules
- Bump all flake.lock entries to their latest revisions (updated
  lastModified, narHash, and rev values).
- Add Hyprland rule to tag Minecraft windows as games.
- Tag PrismLauncher windows as gamestore.
- Apply reduced opacity for the gamestore tag.
2026-01-12 05:52:55 +01:00
9d9ed0f04b Add Teams, disable Ferdium, refactor Hyprland
Enable teams-for-linux and disable ferdium in system modules; add both
to core packages. Simplify Hyprland configuration by using direct
settings for animations, window rules, env, exec‑once and hypridle.
Remove unused Microsoft Teams PWA entry.
2026-01-07 19:49:21 +01:00
28daa28c6b Replace $modifier with SUPER and update defaults 2026-01-06 21:46:12 +01:00
b8a7ead4be Add Tailscale module 2026-01-04 13:49:01 +01:00
2881d84c16 Add Peaclock home module and wrappers input
Enable Peaclock in the user’s home configuration and add a new
`wrappers` input to the flake. System‑level Peaclock references are
commented out, and default and digital config files for Peaclock are
included.
2026-01-03 18:00:23 +01:00
591e42fe61 aktualizacja 2025-12-29 01:14:13 +01:00
f21640749a Disable Opencode; update flake.lock and librewolf
- Opencode module disabled in desktop, laptop, and default host configs
- Updated flake.lock revisions for firefox‑addons, home‑manager, nixpkgs
  and stylix
- Librewolf now uses pkgs.librewolf (source) instead of the binary
  package
2025-12-23 06:05:45 +01:00
0b9623241a Add Bottles and Heroic
Update flake.lock revisions for firefox‑addons, home‑manager and nixpkgs
to reflect the inclusion of the new Bottles and Heroic packages.
2025-12-20 14:36:34 +01:00
7a6e3916f5 Add p7zip to essential packages 2025-12-17 16:30:45 +01:00
43c657523e Enable peaclock and bump locked revisions
Add peaclock to the core packages list and enable the peaclock module in
all system configurations. Update the flake.lock entries for several
packages with newer revisions and nar hashes.
2025-12-16 23:31:30 +01:00
594accfe8d Update flake.lock and force wallpaper style
Bump locked revisions for firefox‑addons, home‑manager, nixpkgs and
stylix in flake.lock, updating their lastModified timestamps, narHash
values and rev identifiers.

Change wallpaperStyle in boot.nix from lib.mkDefault to lib.mkForce to
ensure the centered style is always applied.
2025-12-15 15:55:39 +01:00
86c5e8ad5b Add Pixieditor module 2025-12-10 15:54:42 +01:00
f7fe35b3be update 2025-12-10 01:50:19 +01:00
629e7b6a9e Add enable XDG PWA entries and enable Signal 2025-12-08 21:43:17 +01:00
29c62adbd1 dodanie garandos-tui 2025-12-07 00:00:33 +01:00
5747e449b2 Update flake.lock with latest revisions 2025-12-04 10:47:39 +01:00
087ffd4194 Refactor Zed/Flatpak options and add C++ & clangd settings
- Switch Zed remote server and Flatpak packages to use `enable`
suboption - Update host modules to match the new option hierarchy - Add
default C++ settings (format on save, tab size) to Zed user settings -
Introduce clangd LSP configuration with inlay hints and fallback command
2025-12-01 13:28:43 +01:00
7a2382cb3c zmiana logo 2025-11-30 22:01:42 +01:00
be74b351e8 Restructure system-modules and bump flake.lock
- Consolidate enable flags into a `packages` attribute in all host
system-modules.nix files. - Rename package option paths to
`config.packages.<name>.enable` in modules/core/packages/packages.nix. -
Update locked revisions (lastModified, narHash, rev) for firefox‑addons
and stylix in flake.lock.
2025-11-30 14:05:19 +01:00
8d3fd7dbe2 Add Jan UI and selective Flatpak options
- Expose Jan as a core package and add a Hyprland shortcut (Mod + J). -
Refactor Flatpak module to provide per‑package enable options; default
package list is now empty. - Update librewolf search template to use a
single‑parameter URL. - Minor comment formatting changes across host
module files.
2025-11-30 13:26:51 +01:00
d80266e89a Upgrade flakes, use NVIDIA beta, add Zed inlay hints
- Bumped versions in flake.lock (affinity‑nix, nur‑expressions,
home‑manager, nixpkgs, stylix). - Switched NVIDIA driver package from
stable to beta. - Added Zed `inlay_hints` configuration and
rust‑analyzer inlayHints options.
2025-11-29 19:38:27 +01:00
3f14984072 Refresh locked deps and use librewolf-bin
Update flake.lock entries to newer revisions and switch Librewolf to the
pre‑built binary package.
2025-11-26 20:25:23 +01:00
ef49539fed Add plex-desktop bind; move hyprpicker to Ctrl+P 2025-11-24 01:57:27 +01:00
d951277cec Add host modules and home options; update README 2025-11-24 01:38:45 +01:00
196db56791 Refactor home modules and update configs
- Remove unused `pkgs` import from hardware and adjust user stateVersion
to 25.11 with updated wheel comment. - Split Bash aliases and functions
into separate modules and rename `bash.nix` to `bash/default.nix` with
imports. - Delete old Bash alias/function files and consolidate them
under the new structure. - Simplify `bat.nix` by removing commented
style lines. - Increase Cava `frame_rate` from 60 to 144 and clean up
legacy color settings. - Refactor Chromium configuration: separate
extensions into `extensions.nix` and use a minimal default module. -
Replace large Kitty config with minimal enable/module and import
`extra-config.nix` and `settings.nix`. - Overhaul Librewolf setup:
extract profiles, extensions, search, and settings into dedicated files.
- Update home `default.nix` imports to reflect new module paths and
remove obsolete references. - Modularize SwayNC by moving settings and
style to separate files. - Add explicit Vesktop package definition. -
Remove old VSCode module; introduce VSCodium with profile-based
extensions, keybindings, and user settings. - Reorganize XDG portal and
desktop entries into modular files. - Rebuild Zed configuration: split
user settings, language models, languages, LSP, extensions, and extra
packages into distinct files.
2025-11-23 19:38:52 +01:00
900b565405 Update Zed configuration for nix LSP and formatter. 2025-11-23 16:34:22 +01:00
199 changed files with 7293 additions and 4923 deletions

View File

@@ -191,22 +191,38 @@ git add .
- `waybarChoice` - system top bar style.
- `animChoice` - system animation style.
### 5. Copy the ready `hardware-configuration.nix` to host folder:
### 5. Review module activation options
Also check my new project - [GarandOS TUI](https://gitea.garandplg.com/GarandPLG/garandos-tui)! It's an automated way of tweaking this settings. You can use it later *(simply type `tui` into the terminal)*, after the setup, or use it right now by cloning the repo.
Open the module files for your host and adjust the `enable` options for the services you need:
```bash
# Homemodules (enable/disable home-scoped applications)
nano hosts/<your-system-hostname>/home-modules.nix
# Systemmodules (enable/disable systemwide 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 dont 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.

282
flake.lock generated
View File

@@ -15,11 +15,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1763676235,
"narHash": "sha256-6Bri1agFBZdwrO3l32m1aUO6jHfbeBW+8eFVSlBkUAM=",
"lastModified": 1767916874,
"narHash": "sha256-IcvLwoF1CIOd7yELc0Xwqskilw2FxHHRm5ZnmNdBuKc=",
"owner": "mrshmllow",
"repo": "affinity-nix",
"rev": "f4ed11bdb68bc14a11a1c1a545ef1891a02cb1a1",
"rev": "0c110a15fb5605490f7de451073db1c775745fee",
"type": "github"
},
"original": {
@@ -35,11 +35,11 @@
]
},
"locked": {
"lastModified": 1763546214,
"narHash": "sha256-vc9seqvw2ElF8jPetsCoCQ5lo9P3fmgiTle3HlOMezk=",
"lastModified": 1769608722,
"narHash": "sha256-yWUG0Emd9EuqIZ8jQ6fxqf7USw7Gtcqb4+sBhn+S+Wg=",
"owner": "AdnanHodzic",
"repo": "auto-cpufreq",
"rev": "76ccb66f8e4875671fd746fb6b50931454ab8cd8",
"rev": "a11a98c46bf6a77d0c2e0ea8d87acef78507cae5",
"type": "github"
},
"original": {
@@ -69,28 +69,28 @@
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1752979451,
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
"lastModified": 1760703920,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github"
},
"original": {
@@ -135,6 +135,28 @@
"type": "gitlab"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"garandos-tui",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1762929886,
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
"owner": "nix-community",
"repo": "fenix",
"rev": "6998514dce2c365142a0a119a95ef95d89b84086",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"firefox-addons": {
"inputs": {
"nixpkgs": [
@@ -143,11 +165,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1763784262,
"narHash": "sha256-bg+MOwWA4GgsHQ2QZQHCixIs0ouPHvN1EVAzMTELPiQ=",
"lastModified": 1769918637,
"narHash": "sha256-3XyGk89S0UFvKRZiKpFL4ImP5qP/2AOJUaYC7ogXnJo=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "a717a95e58c8dfdb3d07797b97fdedc97697d65c",
"rev": "5659e4c18d1350d1b511fcdce885fdd879effa22",
"type": "gitlab"
},
"original": {
@@ -160,11 +182,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1758112371,
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
"lastModified": 1764873433,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"type": "github"
},
"original": {
@@ -189,15 +211,15 @@
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "edolstra",
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
@@ -207,11 +229,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1762980239,
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github"
},
"original": {
@@ -227,11 +249,11 @@
]
},
"locked": {
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github"
},
"original": {
@@ -256,6 +278,29 @@
"type": "github"
}
},
"garandos-tui": {
"inputs": {
"fenix": "fenix",
"naersk": "naersk",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1765060905,
"narHash": "sha256-YLU5g2aSs1Sh+6j301BtQYUdQ8IqLvoeR4Eivr4eVYc=",
"ref": "main",
"rev": "028b50c9e4d7160cfa8fac8150a54a52680f4ff5",
"revCount": 13,
"type": "git",
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
},
"original": {
"ref": "main",
"type": "git",
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
@@ -265,11 +310,11 @@
]
},
"locked": {
"lastModified": 1763319842,
"narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=",
"lastModified": 1767281941,
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761",
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
"type": "github"
},
"original": {
@@ -302,11 +347,11 @@
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1762869044,
"narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab"
},
"original": {
@@ -324,11 +369,11 @@
]
},
"locked": {
"lastModified": 1763845215,
"narHash": "sha256-8W4YByiS3zxwcdDR2sABm1nUCSOEXJwdY/XddRTVjWM=",
"lastModified": 1769952507,
"narHash": "sha256-eNTfxT3v8b7s1dqswgposi5Y1CUMoOUhQKiy29QY25U=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "9a5042a88caea9b729a1d3bc981069159de4fc49",
"rev": "b59376563943ce163b2553aeb63d0c170967d74e",
"type": "github"
},
"original": {
@@ -341,11 +386,11 @@
"libnbtplusplus": {
"flake": false,
"locked": {
"lastModified": 1699286814,
"narHash": "sha256-yy0q+bky80LtK1GWzz7qpM+aAGrOqLuewbid8WT1ilk=",
"lastModified": 1744811532,
"narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=",
"owner": "PrismLauncher",
"repo": "libnbtplusplus",
"rev": "23b955121b8217c1c348a9ed2483167a6f3ff4ad",
"rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78",
"type": "github"
},
"original": {
@@ -354,13 +399,38 @@
"type": "github"
}
},
"naersk": {
"inputs": {
"fenix": [
"garandos-tui",
"fenix"
],
"nixpkgs": [
"garandos-tui",
"nixpkgs"
]
},
"locked": {
"lastModified": 1752689277,
"narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=",
"owner": "nix-community",
"repo": "naersk",
"rev": "0e72363d0938b0208d6c646d10649164c43f4d64",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"lastModified": 1767983141,
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
"type": "github"
},
"original": {
@@ -372,11 +442,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1763678758,
"narHash": "sha256-+hBiJ+kG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s=",
"lastModified": 1769789167,
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "117cc7f94e8072499b0a7aa4c52084fa4e11cc9b",
"rev": "62c8382960464ceb98ea593cb8321a2cf8f9e3e5",
"type": "github"
},
"original": {
@@ -388,11 +458,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"lastModified": 1765674936,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"type": "github"
},
"original": {
@@ -417,6 +487,26 @@
"type": "github"
}
},
"noctalia": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1769983098,
"narHash": "sha256-PKej3N1BxAoKzusrdWuS9gT8bXW0U/Zk8RkedsP3qYc=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "2a98d04b2f5e251935ba296c0d7dc374bdc5e32d",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
@@ -428,11 +518,11 @@
]
},
"locked": {
"lastModified": 1758998580,
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
"lastModified": 1767810917,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"type": "github"
},
"original": {
@@ -444,11 +534,11 @@
"on-linux": {
"flake": false,
"locked": {
"lastModified": 1763514293,
"narHash": "sha256-x766SlDqS6DoOQyW4u1zV3iZbrEKoy4P9K6XDjZ4fGU=",
"lastModified": 1766544016,
"narHash": "sha256-3X1426N7n6bwM7GAQOvpCq2OVdlQevCzbpak0l9B6BU=",
"owner": "seapear",
"repo": "AffinityOnLinux",
"rev": "2eacfdf625bfafa3099d411f8e2d5afec565fcd6",
"rev": "da601564dfefe2ae3ec10e3f177db81578847b7b",
"type": "github"
},
"original": {
@@ -477,11 +567,11 @@
]
},
"locked": {
"lastModified": 1747683146,
"narHash": "sha256-zZS//xyNYQHvD4fUMoWx86uVUwPk+p5FjZLTTu0pelQ=",
"lastModified": 1768437816,
"narHash": "sha256-GG+V2g5NfVrypTs8qbtGnUWTXTMkGtohy/uIDa5duI0=",
"owner": "Diegiwg",
"repo": "PrismLauncher-Cracked",
"rev": "0612187254ef41a1087f3107e927e0dd59c9b29d",
"rev": "e8418b74059bdbe4fcc97522b25dc17373b0cc21",
"type": "github"
},
"original": {
@@ -495,11 +585,31 @@
"affinity-nix": "affinity-nix",
"auto-cpufreq": "auto-cpufreq",
"firefox-addons": "firefox-addons",
"garandos-tui": "garandos-tui",
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs",
"noctalia": "noctalia",
"prismlauncher-cracked": "prismlauncher-cracked",
"stylix": "stylix"
"stylix": "stylix",
"wrappers": "wrappers"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1762860488,
"narHash": "sha256-rMfWMCOo/pPefM2We0iMBLi2kLBAnYoB9thi4qS7uk4=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "2efc80078029894eec0699f62ec8d5c1a56af763",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"stylix": {
@@ -523,11 +633,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1763845141,
"narHash": "sha256-o8TKdZluj/yC8qPIVNe2g4qopyFmQglH52+lvQx82kE=",
"lastModified": 1769888473,
"narHash": "sha256-4KWbaJwaYnZ60bFyTudZYAKskjr7Sa17R3/yh+oXS7w=",
"owner": "danth",
"repo": "stylix",
"rev": "adc650610085adbe130b9860d5bdb869f96050af",
"rev": "ae5c0239ae4f82a8c7e33ad8a456535d5a9ba813",
"type": "github"
},
"original": {
@@ -587,11 +697,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1757716333,
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
"lastModified": 1767710407,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"type": "github"
},
"original": {
@@ -603,11 +713,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1757811970,
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
"lastModified": 1767489635,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"type": "github"
},
"original": {
@@ -619,11 +729,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1757811247,
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
"lastModified": 1767488740,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"type": "github"
},
"original": {
@@ -639,11 +749,11 @@
]
},
"locked": {
"lastModified": 1762938485,
"narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
"lastModified": 1767801790,
"narHash": "sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2+gM5tf8=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
"rev": "778a1d691f1ef45dd68c661715c5bf8cbf131c80",
"type": "github"
},
"original": {
@@ -651,6 +761,26 @@
"repo": "treefmt-nix",
"type": "github"
}
},
"wrappers": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1769799671,
"narHash": "sha256-b1LwqiIjgNLw6/aJlOwIqe1mfqc4PQqeRpKOo5sFWu0=",
"owner": "lassulus",
"repo": "wrappers",
"rev": "8bef93dddd89a0b45486d5cd9f0bdd5ce8aceced",
"type": "github"
},
"original": {
"owner": "lassulus",
"repo": "wrappers",
"type": "github"
}
}
},
"root": "root",

View File

@@ -49,45 +49,58 @@
};
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
garandos-tui = {
url = "git+https://gitea.garandplg.com/GarandPLG/garandos-tui?ref=main";
inputs.nixpkgs.follows = "nixpkgs";
};
wrappers = {
url = "github:lassulus/wrappers";
inputs.nixpkgs.follows = "nixpkgs";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
nixpkgs,
nix-flatpak,
auto-cpufreq,
...
}@inputs:
let
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
outputs = {
nixpkgs,
nix-flatpak,
auto-cpufreq,
garandos-tui,
...
} @ 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 = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
inherit system;
};
modules = [
./profiles/${profile}
nix-flatpak.nixosModules.nix-flatpak
auto-cpufreq.nixosModules.default
];
};
mkHost = hostName: let
inherit
(import ./hosts/${hostName}/variables.nix)
host
username
profile
system
;
in
{
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
};
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
inherit system;
};
modules = [
./profiles/${profile}
nix-flatpak.nixosModules.nix-flatpak
auto-cpufreq.nixosModules.default
garandos-tui.nixosModules.garandos-tui
];
};
in {
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
};
}

View File

@@ -1,7 +1,7 @@
{ ... }:
{
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}

View File

@@ -6,8 +6,7 @@
lib,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
@@ -22,7 +21,7 @@
"usb_storage"
"sd_mod"
];
kernelModules = [ "dm-snapshot" ];
kernelModules = ["dm-snapshot"];
luks.devices = {
cryptroot = {
device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
@@ -30,8 +29,8 @@
};
};
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
kernelModules = ["kvm-amd"];
extraModulePackages = [];
};
fileSystems = {

View File

@@ -0,0 +1,66 @@
_: {
/*
Development editors and IDEs
*/
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor
remote-server.enable = true; # Remote Server: enable remote editing capabilities
};
/*
Web browsers
*/
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
btop.enable = true; # Btop: a resource monitor for the terminal
cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool
peaclock.enable = true; # Peaclock: Clock, timer, and stopwatch for the terminal
/*
Communication and synchronization
*/
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = true; # Vesktop: a communitydriven Discord client
/*
Gaming
*/
lutris.enable = false; # Lutris: an open gaming platform
/*
Media recording and streaming
*/
obs-studio.enable = false; # OBS Studio: streaming and recording software
/*
Office suite
*/
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
/*
Learning tools
*/
anki.enable = true; # Anki: spacedrepetition flashcard program
/*
XDG desktop entries (PWA)
*/
xdgDesktopEntries = {
enable = true; # Enable XDG desktop entries
entries = {
messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
};
};
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];

View File

@@ -0,0 +1,90 @@
_: {
/*
Container & Packaging
*/
docker.enable = true; # Docker: container runtime and management
virtualbox.enable = true; # VirtualBox: PC emulator
flatpak = {
enable = true; # Flatpak: universal packaging system for Linux
packages = {
sober.enable = false; # Roblox client
warehouse.enable = true; # Flatpak manager
flatseal.enable = true; # Flatpak permissions manager
};
};
/*
Networking
*/
tailscale.enable = true; # Tailscale: secure network for remote access
/*
Gaming
*/
gamemode.enable = true; # GameMode: optimizes system performance for gaming
gamescope.enable = false; # Gamescope: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games
packages = {
/*
Container & Packaging
*/
distrobox.enable = false; # Distrobox: containerized development environments
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
/*
Gaming
*/
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
/*
Development Tools
*/
exercism.enable = true; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git
opencode.enable = false; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = true; # Logisim-Evolution: Digital logic designer and simulator
/*
Communication & Collaboration
*/
mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
ferdium.enable = false; # Ferdium: All your services in one place built by the community
/*
Productivity / Knowledge Management
*/
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = false; # Kdenlive: video editing software
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
plex.enable = true; # Plex: media player and server client
/*
Utilities / Misc
*/
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = false; # Galculator: simple calculator
gedit.enable = true; # Gedit: GNOME text editor
winboat.enable = true; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
};
}

View File

@@ -1,7 +1,7 @@
{ ... }:
{
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}

View File

@@ -6,9 +6,7 @@
lib,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
@@ -21,14 +19,14 @@
"usb_storage"
"sd_mod"
];
kernelModules = [ "dm-snapshot" ];
kernelModules = ["dm-snapshot"];
luks.devices.cryptroot = {
device = "/dev/disk/by-uuid/6abc2228-823e-42b0-94c7-48fda757732c";
preLVM = true;
};
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
kernelModules = ["kvm-amd"];
extraModulePackages = [];
};
fileSystems = {
@@ -51,7 +49,7 @@
};
swapDevices = [
{ device = "/dev/disk/by-uuid/5da7c845-7dd3-4882-93af-2d679cdb5e7a"; }
{device = "/dev/disk/by-uuid/5da7c845-7dd3-4882-93af-2d679cdb5e7a";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@@ -0,0 +1,66 @@
_: {
/*
Development editors and IDEs
*/
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor
remote-server.enable = true; # Remote Server: enable remote editing capabilities
};
/*
Web browsers
*/
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
btop.enable = true; # Btop: a resource monitor for the terminal
cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool
peaclock.enable = true; # Peaclock: Clock, timer, and stopwatch for the terminal
/*
Communication and synchronization
*/
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = true; # Vesktop: a communitydriven Discord client
/*
Gaming
*/
lutris.enable = false; # Lutris: an open gaming platform
/*
Media recording and streaming
*/
obs-studio.enable = false; # OBS Studio: streaming and recording software
/*
Office suite
*/
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
/*
Learning tools
*/
anki.enable = true; # Anki: spacedrepetition flashcard program
/*
XDG desktop entries (PWA)
*/
xdgDesktopEntries = {
enable = true; # Enable XDG desktop entries
entries = {
messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
};
};
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];

View File

@@ -0,0 +1,90 @@
_: {
/*
Container & Packaging
*/
docker.enable = true; # Docker: container runtime and management
virtualbox.enable = false; # VirtualBox: PC emulator
flatpak = {
enable = true; # Flatpak: universal packaging system for Linux
packages = {
sober.enable = false; # Roblox client
warehouse.enable = true; # Flatpak manager
flatseal.enable = true; # Flatpak permissions manager
};
};
/*
Networking
*/
tailscale.enable = true; # Tailscale: secure network for remote access
/*
Gaming
*/
gamemode.enable = true; # GameMode: optimizes system performance for gaming
gamescope.enable = false; # Gamescope: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games
packages = {
/*
Container & Packaging
*/
distrobox.enable = false; # Distrobox: containerized development environments
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
/*
Gaming
*/
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
/*
Development Tools
*/
exercism.enable = true; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git
opencode.enable = false; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
/*
Communication & Collaboration
*/
mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
ferdium.enable = false; # Ferdium: All your services in one place built by the community
/*
Productivity / Knowledge Management
*/
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = false; # Kdenlive: video editing software
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
plex.enable = true; # Plex: media player and server client
/*
Utilities / Misc
*/
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = false; # Galculator: simple calculator
gedit.enable = false; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
};
}

View File

@@ -1,7 +1,7 @@
{ ... }:
{
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}

View File

@@ -4,12 +4,9 @@
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
@@ -20,17 +17,16 @@
"nvme"
"usbhid"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
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";
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";

View File

@@ -0,0 +1,66 @@
_: {
/*
Development editors and IDEs
*/
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor
remote-server.enable = true; # Remote Server: enable remote editing capabilities
};
/*
Web browsers
*/
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
btop.enable = true; # Btop: a resource monitor for the terminal
cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool
peaclock.enable = true; # Peaclock: Clock, timer, and stopwatch for the terminal
/*
Communication and synchronization
*/
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = true; # Vesktop: a communitydriven Discord client
/*
Gaming
*/
lutris.enable = false; # Lutris: an open gaming platform
/*
Media recording and streaming
*/
obs-studio.enable = false; # OBS Studio: streaming and recording software
/*
Office suite
*/
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
/*
Learning tools
*/
anki.enable = true; # Anki: spacedrepetition flashcard program
/*
XDG desktop entries (PWA)
*/
xdgDesktopEntries = {
enable = true; # Enable XDG desktop entries
entries = {
messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
};
};
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];

View File

@@ -0,0 +1,90 @@
_: {
/*
Container & Packaging
*/
docker.enable = true; # Docker: container runtime and management
virtualbox.enable = false; # VirtualBox: PC emulator
flatpak = {
enable = true; # Flatpak: universal packaging system for Linux
packages = {
sober.enable = false; # Roblox client
warehouse.enable = true; # Flatpak manager
flatseal.enable = true; # Flatpak permissions manager
};
};
/*
Networking
*/
tailscale.enable = false; # Tailscale: secure network for remote access
/*
Gaming
*/
gamemode.enable = true; # GameMode: optimizes system performance for gaming
gamescope.enable = false; # Gamescope: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games
packages = {
/*
Container & Packaging
*/
distrobox.enable = false; # Distrobox: containerized development environments
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
/*
Gaming
*/
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
/*
Development Tools
*/
exercism.enable = true; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git
opencode.enable = false; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
/*
Communication & Collaboration
*/
mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
ferdium.enable = false; # Ferdium: All your services in one place built by the community
/*
Productivity / Knowledge Management
*/
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = false; # Kdenlive: video editing software
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
plex.enable = true; # Plex: media player and server client
/*
Utilities / Misc
*/
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = false; # Galculator: simple calculator
gedit.enable = false; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
};
}

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
programs.auto-cpufreq = {
enable = true;
settings = {

View File

@@ -3,13 +3,11 @@
config,
lib,
...
}:
{
}: {
boot = {
kernelPackages = pkgs.linuxPackages_zen;
kernelModules = [ "v4l2loopback" ];
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
kernelModules = ["v4l2loopback"];
extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
kernel.sysctl = {
"vm.max_map_count" = 2147483642;
};
@@ -21,7 +19,7 @@
wallpapers = [
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
];
wallpaperStyle = lib.mkDefault "centered";
wallpaperStyle = lib.mkForce "centered";
backdrop = "${config.stylix.base16Scheme.base00}";
interface = {
branding = "GarandOS Bootloader";

View File

@@ -1,19 +1,18 @@
{
inputs,
...
}:
{
{inputs, ...}: {
imports = [
./packages
./auto-cpufreq.nix
./boot.nix
./docker.nix
./flatpak.nix
./fonts.nix
./garandos-tui.nix
./hardware.nix
./network.nix
./nfs.nix
./nh.nix
./printing.nix
./quickshell.nix
./greetd.nix
./security.nix
./services.nix
@@ -21,9 +20,10 @@
./stylix.nix
./syncthing.nix
./system.nix
./tailscale.nix
./thunar.nix
./user.nix
./virtualisation.nix
./virtualbox.nix
./xdg.nix
./xserver.nix
inputs.stylix.nixosModules.stylix

14
modules/core/docker.nix Normal file
View File

@@ -0,0 +1,14 @@
{
pkgs,
lib,
config,
...
}: {
options.docker.enable = lib.mkEnableOption "Docker";
config.virtualisation.docker = lib.mkIf config.docker.enable {
enable = true;
package = pkgs.docker;
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
};
}

View File

@@ -1,13 +1,28 @@
_: {
services = {
flatpak = {
enable = true;
packages = [
# "org.vinegarhq.Sober"
"io.github.flattool.Warehouse"
"com.github.tchx84.Flatseal"
];
update.onActivation = true;
};
{
lib,
config,
...
}: let
mkFlatpakPackage = name: pkgId: {
options.flatpak.packages.${name}.enable = lib.mkEnableOption "Flatpak: ${name}";
config.services.flatpak.packages =
lib.mkIf config.flatpak.packages.${name}.enable [pkgId];
};
flatpakPackages = {
sober = "org.vinegarhq.Sober";
warehouse = "io.github.flattool.Warehouse";
flatseal = "com.github.tchx84.Flatseal";
};
in {
options.flatpak.enable = lib.mkEnableOption "Flatpak";
config.services.flatpak = lib.mkIf config.flatpak.enable {
enable = true;
update.onActivation = true;
packages = [];
};
imports = builtins.attrValues (builtins.mapAttrs mkFlatpakPackage flatpakPackages);
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
fonts = {
packages = with pkgs; [
dejavu_fonts

View File

@@ -0,0 +1,11 @@
{
host,
username,
...
}: {
programs.garandos-tui = {
enable = true;
systemModulesFilePath = "/home/${username}/garandos/hosts/${host}/system-modules.nix";
homeModulesFilePath = "/home/${username}/garandos/hosts/${host}/home-modules.nix";
};
}

View File

@@ -2,8 +2,7 @@
pkgs,
username,
...
}:
{
}: {
services.greetd = {
enable = true;
#vt = 3;

View File

@@ -1,10 +1,9 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
hardware = {
sane = {
enable = true;
extraBackends = [ pkgs.sane-airscan ];
disabledDefaultBackends = [ "escl" ];
extraBackends = [pkgs.sane-airscan];
disabledDefaultBackends = ["escl"];
};
logitech.wireless = {
enable = false;

View File

@@ -2,11 +2,9 @@
host,
options,
...
}:
let
}: let
inherit (import ../../hosts/${host}/variables.nix) hostId;
in
{
in {
# Defensive assertion for hostname validity (clearer message at eval time)
assertions = [
{
@@ -19,7 +17,7 @@ in
hostName = "${host}";
hostId = hostId;
networkmanager.enable = true;
timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ];
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
firewall = {
enable = true;
allowedTCPPorts = [

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
in
{
in {
services = {
rpcbind.enable = enableNFS;
nfs.server.enable = enableNFS;

View File

@@ -1,8 +1,4 @@
{
username,
...
}:
{
{username, ...}: {
programs.nh = {
enable = true;
clean = {

View File

@@ -1,18 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Communication
slack
mattermost-desktop
# Productivity & Office
# bitwarden-desktop
tutanota-desktop
iotas
# logseq
# Utilities
galculator
gedit
eddie
gnome-text-editor
];
}

View File

@@ -1,14 +1,8 @@
{ ... }:
{
_: {
nixpkgs.config.allowUnfree = true;
imports = [
./essentials.nix
./packages.nix
./programs.nix
./clients.nix
./development.nix
./gaming.nix
./multimedia.nix
./terminal.nix
./tools.nix
./virtualization.nix
];
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Learning & practice
exercism
# AI coding
opencode
];
}

View File

@@ -1,11 +1,23 @@
{ pkgs, ... }:
{
pkgs,
inputs,
system,
...
}: {
environment.systemPackages = with pkgs; [
mpv
pavucontrol
playerctl
cmatrix
cowsay
sl
fortune
# File management
trash-cli
file-roller
unrar
unzip
p7zip
# System monitoring & info
inxi
lm_sensors
@@ -46,5 +58,10 @@
hunspell
hunspellDicts.pl_PL
hunspellDicts.en_US
# Noctalia Shell Dependencies
matugen
app2unit
gpu-screen-recorder
power-profiles-daemon
];
}

View File

@@ -1,13 +0,0 @@
{
pkgs,
# inputs,
# system,
...
}:
{
environment.systemPackages = with pkgs; [
# inputs.prismlauncher-cracked.packages.${system}.default
space-cadet-pinball
tty-solitaire
];
}

View File

@@ -1,27 +0,0 @@
{
pkgs,
# inputs,
# system,
...
}:
{
environment.systemPackages = with pkgs; [
# Video & image processing
ffmpeg
ffmpegthumbnailer
mpv
# gimp3
# inputs.affinity-nix.packages.${system}.v3
eog
# kdePackages.kdenlive
# Audio
rhythmbox
plexamp
picard
pavucontrol
playerctl
# Media downloaders & clients
# freetube
# ytmdl
];
}

View File

@@ -0,0 +1,56 @@
{
pkgs,
lib,
config,
inputs,
system,
...
}: let
mkPackage = name: pkgsOrList: {
options.packages.${name}.enable = lib.mkEnableOption name;
config.environment.systemPackages =
lib.mkIf config.packages.${name}.enable
(lib.toList pkgsOrList);
};
packages = with pkgs; {
bitwarden = bitwarden-desktop;
eddieAirVPN = eddie;
galculator = galculator;
gedit = gedit;
iotas = iotas;
logseq = logseq;
mattermost = mattermost-desktop;
slack = slack;
tutanota = tutanota-desktop;
exercism = exercism;
opencode = opencode;
jan = jan;
lazygit = lazygit;
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
spaceCadetPinball = space-cadet-pinball;
ttySolitaire = tty-solitaire;
gimp = gimp;
affinity = inputs.affinity-nix.packages.${system}.v3;
eyeOfGnome = eog;
kdenlive = kdePackages.kdenlive;
plex = [
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
plexamp
];
freetube = freetube;
lazydocker = lazydocker;
distrobox = [distrobox pkgs.boxbuddy];
winboat = [winboat freerdp];
signal = signal-desktop;
pixieditor = pixieditor;
bottles = bottles;
heroic = heroic;
adb = android-tools;
teams = teams-for-linux;
ferdium = ferdium;
logisim-evolution = logisim-evolution;
};
in {
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
}

View File

@@ -1,8 +1,4 @@
{
# pkgs
...
}:
{
_: {
programs = {
nano.enable = true;
hyprland = {
@@ -13,7 +9,6 @@
seahorse.enable = true;
fuse.userAllowOther = true;
mtr.enable = true;
adb.enable = true;
hyprlock.enable = true;
gnupg.agent = {
enable = true;

View File

@@ -1,11 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
cmatrix
cowsay
sl
fortune
lolcat
eza
];
}

View File

@@ -1,12 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
virt-viewer
# lazydocker
docker-client
# distrobox
# boxbuddy
# freerdp
# winboat
];
}

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) printEnable;
in
{
in {
services = {
printing = {
enable = printEnable;

View File

@@ -0,0 +1,30 @@
{pkgs, ...}: {
environment = {
systemPackages = with pkgs; [
quickshell
# Qt6 related kitsfor slove Qt5Compat problem
qt6.qt5compat
qt6.qtbase
qt6.qtquick3d
qt6.qtwayland
qt6.qtdeclarative
qt6.qtsvg
# alternate options
# libsForQt5.qt5compat
kdePackages.qt5compat
libsForQt5.qt5.qtgraphicaleffects
];
# necessary environment variables
variables = {
QML_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
QML2_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
};
# make sure the Qt application is working properly
sessionVariables = {
QT_QPA_PLATFORM = "wayland;xcb";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
};
};
}

View File

@@ -1,5 +1,4 @@
{ profile, ... }:
{
{profile, ...}: {
# Services to start
services = {
libinput.enable = true; # Input Handling
@@ -12,14 +11,17 @@
PasswordAuthentication = true; # Users can SSH using kb and password
KbdInteractiveAuthentication = true;
};
ports = [ 22 ];
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;
enable =
if profile == "vm"
then false
else true;
autodetect = true;
};
pipewire = {
@@ -51,5 +53,6 @@
];
};
};
upower.enable = true; # noctalia shell battery
};
}

View File

@@ -1,21 +1,43 @@
{ pkgs, ... }:
{
programs = {
steam = {
pkgs,
lib,
config,
...
}: {
options = {
steam.enable = lib.mkEnableOption "Steam";
gamescope.enable = lib.mkEnableOption "Gamescope";
gamemode.enable = lib.mkEnableOption "Gamemode";
};
config.programs = {
steam = lib.mkIf config.steam.enable {
enable = true;
package = pkgs.steam;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
gamescopeSession.enable = true;
extraCompatPackages = [ pkgs.proton-ge-bin ];
gamescopeSession = lib.mkIf config.gamescope.enable {
enable = true;
args = [
"--rt"
"--expose-wayland"
];
};
extraCompatPackages = [pkgs.proton-ge-bin];
};
gamescope = lib.mkIf config.gamescope.enable {
enable = true;
capSysNice = true;
args = [
"--rt"
"--expose-wayland"
];
};
gamemode = lib.mkIf config.gamemode.enable {
enable = true;
enableRenice = true;
};
# gamescope = {
# enable = true;
# capSysNice = true;
# args = [
# "--rt"
# "--expose-wayland"
# ];
# };
gamemode.enable = true;
};
}

View File

@@ -2,11 +2,9 @@
pkgs,
host,
...
}:
let
}: let
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
in
{
in {
# Styling Options
stylix = {
enable = true;

View File

@@ -1,5 +1,4 @@
{ username, ... }:
{
{username, ...}: {
services.syncthing = {
enable = false;
user = "${username}";

View File

@@ -1,9 +1,12 @@
{ host, ... }:
let
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
in
{
host,
inputs,
...
}: let
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
in {
nix = {
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
settings = {
download-buffer-size = 200000000;
auto-optimise-store = true;
@@ -11,22 +14,24 @@ in
"nix-command"
"flakes"
];
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
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";
i18n = {
defaultLocale = "pl_PL.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "pl_PL.UTF-8";
LC_IDENTIFICATION = "pl_PL.UTF-8";
LC_MEASUREMENT = "pl_PL.UTF-8";
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";

View File

@@ -0,0 +1,14 @@
{
pkgs,
config,
lib,
...
}: {
options.tailscale.enable = lib.mkEnableOption "Tailscale";
config.services.tailscale = lib.mkIf config.tailscale.enable {
enable = true;
package = pkgs.tailscale;
openFirewall = true;
};
}

View File

@@ -1,15 +1,9 @@
{
pkgs,
...
}:
{
programs = {
thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
{pkgs, ...}: {
programs.thunar = {
enable = true;
plugins = with pkgs; [
thunar-archive-plugin
thunar-volman
];
};
}

View File

@@ -6,12 +6,10 @@
profile,
system,
...
}:
let
}: let
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
in
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
in {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager = {
useUserPackages = true;
useGlobalPkgs = false;
@@ -26,31 +24,34 @@ in
;
};
users.${username} = {
imports = [ ./../home ];
imports = [./../home ../../hosts/${host}/home-modules.nix];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "23.11";
stateVersion = "25.11";
};
};
};
users.mutableUsers = true;
users.users.${username} = {
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;
users = {
mutableUsers = true;
users.${username} = {
isNormalUser = true;
description = "${gitUsername}";
extraGroups = [
"adbusers"
"docker" # access to docker as non-root
"libvirtd" # Virt manager/QEMU access
"lp"
"networkmanager"
"scanner"
"wheel" # sudo access
"vboxusers" # Virtual Box
"gamemode"
];
shell = pkgs.bash;
ignoreShellProgramCheck = true;
linger = true;
};
};
nix.settings.allowed-users = [ "${username}" ];
nix.settings.allowed-users = ["${username}"];
}

View File

@@ -0,0 +1,17 @@
{
pkgs,
lib,
config,
...
}: {
options.virtualbox.enable = lib.mkEnableOption "Enable VirtualBox";
config.virtualisation.virtualbox.host = lib.mkIf config.virtualbox.enable {
enable = true;
package = pkgs.virtualbox;
enableKvm = true;
enableHardening = true;
enableExtensionPack = false;
addNetworkInterface = false;
};
}

View File

@@ -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;
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
xdg.portal = {
enable = true;
wlr.enable = true;
@@ -7,6 +6,7 @@
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
];
configPackages = [ pkgs.hyprland ];
configPackages = [pkgs.hyprland];
xdgOpenUsePortal = true;
};
}

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
in
{
in {
services.xserver = {
enable = true;
xkb = {

View File

@@ -4,18 +4,16 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.amdgpu;
in
{
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" ];
environment.systemPackages = with pkgs; [ rocmPackages.rocm-smi ];
systemd.tmpfiles.rules = ["L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"];
services.xserver.videoDrivers = ["amdgpu"];
environment.systemPackages = with pkgs; [rocmPackages.rocm-smi];
};
}

View File

@@ -1,7 +1,4 @@
{
...
}:
{
{...}: {
imports = [
./amd-drivers.nix
./intel-drivers.nix

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.intel;
in
{
in {
options.drivers.intel = {
enable = mkEnableOption "Enable Intel Graphics Drivers";
};

View File

@@ -4,14 +4,12 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.local.hardware-clock;
in
{
in {
options.local.hardware-clock = {
enable = mkEnableOption "Change Hardware Clock To Local Time";
};
config = mkIf cfg.enable { time.hardwareClockInLocalTime = true; };
config = mkIf cfg.enable {time.hardwareClockInLocalTime = true;};
}

View File

@@ -4,18 +4,16 @@
pkgs,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.nvidia;
in
{
in {
options.drivers.nvidia = {
enable = mkEnableOption "Enable Nvidia Drivers";
};
config = mkIf cfg.enable {
services.xserver.videoDrivers = [ "nvidia" ];
environment.systemPackages = with pkgs; [ nvidia-docker ];
services.xserver.videoDrivers = ["nvidia"];
environment.systemPackages = with pkgs; [nvidia-docker];
hardware = {
nvidia-container-toolkit.enable = true;
nvidia = {
@@ -38,12 +36,11 @@ in
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
package = config.boot.kernelPackages.nvidiaPackages.beta;
};
};
};
}
# Making nvidia docker toolkit work:
#
# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
@@ -59,3 +56,4 @@ in
# EOF
#
# docker run --device nvidia.com/gpu=all

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.drivers.nvidia-prime;
in
{
in {
options.drivers.nvidia-prime = {
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
intelBusID = mkOption {

View File

@@ -4,11 +4,9 @@
config,
...
}:
with lib;
let
with lib; let
cfg = config.vm.guest-services;
in
{
in {
options.vm.guest-services = {
enable = mkEnableOption "Enable Virtual Machine Guest Services";
};

View File

@@ -1,6 +1,13 @@
{ pkgs, username, ... }:
{
programs.anki = {
pkgs,
username,
lib,
config,
...
}: {
options.anki.enable = lib.mkEnableOption "Anki";
config.programs.anki = lib.mkIf config.anki.enable {
enable = true;
package = pkgs.anki;
language = "pl_PL";

View File

@@ -1,127 +0,0 @@
{ host, username, ... }:
{
programs.bash = {
shellAliases = {
# GarandOS aliases
pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch --hostname ${host}";
upg = "nh os switch --hostname ${host} --update";
upf = "sudo nix flake update";
upd-bt = "nh os boot --hostname ${host}";
upd-ts = "nh os test --hostname ${host}";
upd-bd = "nh os build --hostname ${host}";
ncg = "nh clean all";
# Development aliases
srvenv = "source .venv/bin/activate";
"..srvenv" = "source ../.venv/bin/activate";
pm = "uv run manage.py";
f8 = "uv run flake8 .";
bbr = "bun --bun run";
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
# Development aliases for nix flake
nd = "nix develop";
nb = "nix build";
nr = "nix run";
nbr = "nix build && nix run";
nbd = "nix build .#develop";
nrd = "nix run .#develop";
nbrd = "nix build .#develop && nix run .#develop";
# System aliases
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
kys = "shutdown now";
ookla = "speedtest";
hypr-cli = "hyprctl clients";
# Navigation aliases
"~" = "cd ~";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../../..";
"....." = "cd ../../../..";
# Modifies commands
cat = "bat";
cp = "cp -i";
mv = "mv -i";
rm = "trash -v";
mkdir = "mkdir -p";
ps = "ps auxf";
ping = "ping -c 10";
less = "less -R";
cls = "clear";
multitail = "multitail --no-repeat -c";
freshclam = "sudo freshclam";
# Alias"s for multiple directory listing commands
la = "eza -alh --icons"; # show hidden files
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
lx = "eza -lh --icons --sort=extension"; # sort by extension
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
lc = "eza -lh --icons --sort=changed"; # sort by change time
lu = "eza -lh --icons --sort=accessed"; # sort by access time
lr = "eza -lh --icons --recurse"; # recursive ls
lt = "eza -lh --icons --sort=modified"; # sort by date
lm = "eza -alh --icons | more"; # pipe through "more"
lw = "eza -xh --icons"; # wide listing format
ll = "eza -lh --icons"; # long listing format
labc = "eza -lah --icons --sort=name"; # alphabetical sort
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
ldir = "eza -lh --icons --only-dirs"; # directories only
lla = "eza -alh --icons"; # List and Hidden Files
las = "eza -a --icons"; # Hidden Files
lls = "eza -lh --icons"; # List
# chmod commands
mx = "chmod a+x";
"000" = "chmod -R 000";
"644" = "chmod -R 644";
"666" = "chmod -R 666";
"755" = "chmod -R 755";
"777" = "chmod -R 777";
# Search command line history
h = "history | grep ";
# Search running processes
p = "ps aux | grep ";
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
# Search files in the current folder
f = "find . | grep ";
# Count all files (recursively) in the current folder
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
# Alias"s to show disk space and space used in a folder
diskspace = "du -S | sort -n -r |more";
folders = "du -h --max-depth=1";
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
tree = "tree -CAhF --dirsfirst";
treed = "tree -CAFd";
mountedinfo = "df -hT";
# Show all logs in /var/log
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
# fix kitty ssh connection
kssh = "kitty +kitten ssh";
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
# Remove a directory and all files
rmd = "/bin/rm --recursive --force --verbose ";
# Fun aliases
pasjans = "ttysolitaire -p 10 --no-background-color";
fc = "fortune | cowsay";
# Network aliases
kssh-server = "kssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
ssh-server = "ssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
};
};
}

View File

@@ -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}'
}
'';
};
}

View File

@@ -0,0 +1,138 @@
{
username,
host,
...
}: {
programs.bash.shellAliases = {
# GarandOS aliases
pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch --hostname ${host}";
upg = "nh os switch --hostname ${host} --update";
upf = "sudo nix flake update --flake /home/${username}/garandos";
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
upd-bt = "nh os boot --hostname ${host}";
upd-ts = "nh os test --hostname ${host}";
upd-bd = "nh os build --hostname ${host}";
tui = "garandos-tui";
ncg = "nh clean all";
# Development aliases
srvenv = "source .venv/bin/activate";
"..srvenv" = "source ../.venv/bin/activate";
pm = "uv run manage.py";
f8 = "uv run flake8 .";
bbr = "bun --bun run";
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
# Development aliases for nix flake
nd = "nix develop";
nb = "nix build";
nr = "nix run";
nbr = "nix build && nix run";
nbd = "nix build .#develop";
nrd = "nix run .#develop";
nbrd = "nix build .#develop && nix run .#develop";
# Development aliases for docker
dcu = "docker compose up -d";
dcd = "docker compose down";
dcb = "docker compose build";
dcub = "docker compose up -d --build";
# System aliases
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
kys = "shutdown now";
ookla = "speedtest";
hypr-cli = "hyprctl clients";
# Navigation aliases
"~" = "cd ~";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../../..";
"....." = "cd ../../../..";
# Modifies commands
cat = "bat";
cp = "cp -i";
mv = "mv -i";
rm = "trash -v";
mkdir = "mkdir -p";
ps = "ps auxf";
ping = "ping -c 10";
less = "less -R";
cls = "clear";
multitail = "multitail --no-repeat -c";
freshclam = "sudo freshclam";
# Alias"s for multiple directory listing commands
la = "eza -alh --icons"; # show hidden files
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
lx = "eza -lh --icons --sort=extension"; # sort by extension
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
lc = "eza -lh --icons --sort=changed"; # sort by change time
lu = "eza -lh --icons --sort=accessed"; # sort by access time
lr = "eza -lh --icons --recurse"; # recursive ls
lt = "eza -lh --icons --sort=modified"; # sort by date
lm = "eza -alh --icons | more"; # pipe through "more"
lw = "eza -xh --icons"; # wide listing format
ll = "eza -lh --icons"; # long listing format
labc = "eza -lah --icons --sort=name"; # alphabetical sort
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
ldir = "eza -lh --icons --only-dirs"; # directories only
lla = "eza -alh --icons"; # List and Hidden Files
las = "eza -a --icons"; # Hidden Files
lls = "eza -lh --icons"; # List
# chmod commands
mx = "chmod a+x";
"000" = "chmod -R 000";
"644" = "chmod -R 644";
"666" = "chmod -R 666";
"755" = "chmod -R 755";
"777" = "chmod -R 777";
# Search command line history
h = "history | grep ";
# Search running processes
p = "ps aux | grep ";
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
# Search files in the current folder
f = "find . | grep ";
# Count all files (recursively) in the current folder
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
# Alias"s to show disk space and space used in a folder
diskspace = "du -S | sort -n -r |more";
folders = "du -h --max-depth=1";
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
tree = "tree -CAhF --dirsfirst";
treed = "tree -CAFd";
mountedinfo = "df -hT";
# Show all logs in /var/log
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
# fix kitty ssh connection
kssh = "kitty +kitten ssh";
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
# Remove a directory and all files
rmd = "/bin/rm --recursive --force --verbose ";
# Fun aliases
pasjans = "ttysolitaire -p 10 --no-background-color";
fc = "fortune | cowsay";
# Network aliases
kssh-server = "kssh hp-t640-homeserver";
kssh-server-ts = "kssh hp-t640-homeserver-tailscale";
ssh-server = "ssh hp-t640-homeserver";
ssh-server-ts = "ssh hp-t640-homeserver-tailscale";
};
}

View File

@@ -6,4 +6,8 @@ _: {
# fastfetch
# '';
};
imports = [
./aliases.nix
./functions.nix
];
}

View File

@@ -0,0 +1,144 @@
_: {
programs.bash.bashrcExtra = ''
# Quick directory creation and navigation
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Extract various archive formats
extract() {
for archive in "$@"; do
if [ -f "$archive" ]; then
case "$archive" in
*.tar.bz2) tar xvjf "$archive" ;;
*.tar.gz) tar xvzf "$archive" ;;
*.bz2) bunzip2 "$archive" ;;
*.rar) unrar x "$archive" ;;
*.gz) gunzip "$archive" ;;
*.tar) tar xvf "$archive" ;;
*.tbz2) tar xvjf "$archive" ;;
*.tgz) tar xvzf "$archive" ;;
*.zip) unzip "$archive" ;;
*.Z) uncompress "$archive" ;;
*.7z) 7z x "$archive" ;;
*) echo "don't know how to extract '$archive'..." ;;
esac
else
echo "'$archive' is not a valid file!"
fi
done
}
# Find files quickly
ff() {
find . -name "*$1*" -type f
}
# Find directories quickly
fd() {
find . -name "*$1*" -type d
}
# IP address lookup
alias whatismyip="whatsmyip"
function whatsmyip () {
# Internal IP Lookup.
if command -v ip &> /dev/null; then
echo -n "Internal IP: "
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
else
echo -n "Internal IP: "
ifconfig wlan0 | grep "inet " | awk '{print $2}'
fi
# External IP Lookup
echo -n "External IP: "
curl -4 ifconfig.me
}
# Searches for text in all files in the current folder
ftext() {
# -i case-insensitive
# -I ignore binary files
# -H causes filename to be printed
# -r recursive search
# -n causes line number to be printed
# optional: -F treat search term as a literal, not a regular expression
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
grep -iIHrn --color=always "$1" . | less -r
}
# Copy file with a progress bar
cpp() {
set -e
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
}
# Copy and go to the directory
cpg() {
if [ -d "$2" ]; then
cp "$1" "$2" && cd "$2"
else
cp "$1" "$2"
fi
}
# Move and go to the directory
mvg() {
if [ -d "$2" ]; then
mv "$1" "$2" && cd "$2"
else
mv "$1" "$2"
fi
}
# Create and go to the directory
mkdirg() {
mkdir -p "$1"
cd "$1"
}
# Goes up a specified number of directories (i.e. up 4)
up() {
local d=""
limit=$1
for ((i = 1; i <= limit; i++)); do
d=$d/..
done
d=$(echo $d | sed 's/^\///')
if [ -z "$d" ]; then
d=..
fi
cd $d
}
# Automatically do an ls after each cd, z, or zoxide
cd ()
{
if [ -n "$1" ]; then
builtin cd "$@" && ls
else
builtin cd ~ && ls
fi
}
# Returns the last 2 fields of the working directory
pwdtail() {
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
}
'';
}

View File

@@ -2,17 +2,12 @@
pkgs,
lib,
...
}:
{
}: {
programs.bat = {
enable = true;
config = {
pager = "less -FR";
# other styles available and cane be combined
# style = "numbers,changes,headers,rule,grid";
style = "full";
# Bat has other thems as well
# Dracula,ansi,Catppuccin,base16,base16-256,GitHub,Nord,etc
theme = lib.mkForce "base16";
};
extraPackages = with pkgs.bat-extras; [

View File

@@ -1,6 +1,12 @@
{ pkgs, ... }:
{
programs.btop = {
pkgs,
lib,
config,
...
}: {
options.btop.enable = lib.mkEnableOption "Btop";
config.programs.btop = lib.mkIf config.btop.enable {
enable = true;
package = pkgs.btop.override {
rocmSupport = true;

View File

@@ -1,42 +1,17 @@
_: {
programs.cava = {
enable = false;
{
lib,
config,
...
}: {
options.cava.enable = lib.mkEnableOption "Cava";
config.programs.cava = lib.mkIf config.cava.enable {
enable = true;
settings = {
general = {
bar_spacing = 1;
bar_width = 2;
frame_rate = 60;
};
color = {
#gradient = 1;
#gradient_color_1 = "'#011f30'";
#gradient_color_2 = "'#09465b'";
#gradient_color_3 = "'#045a93'";
#gradient_color_4 = "'#00aa00'";
#gradient_color_5 = "'#ffff00'";
#gradient_color_6 = "'#cc8033'";
#gradient_color_7 = "'#aa0000'";
#gradient_color_8 = "'#ff00ff'";
# Old config
#gradient = 1;
#gradient_color_1 = "'#8bd5ca'";
#gradient_color_2 = "'#91d7e3'";
#gradient_color_3 = "'#7dc4e4'";
#gradient_color_4 = "'#8aadf4'";
#gradient_color_5 = "'#c6a0f6'";
#gradient_color_6 = "'#f5bde6'";
#gradient_color_7 = "'#ee99a0'";
#gradient_color_8 = "'#ed8796'";
# Dracula
gradient = 1;
gradient_color_1 = "'#8BE9FD'";
gradient_color_2 = "'#9AEDFE'";
gradient_color_3 = "'#CAA9FA'";
gradient_color_4 = "'#BD93F9'";
gradient_color_5 = "'#FF92D0'";
gradient_color_6 = "'#FF79C6'";
gradient_color_7 = "'#FF6E67'";
gradient_color_8 = "'#FF5555'";
frame_rate = 144;
};
};
};

View File

@@ -1,35 +0,0 @@
{ pkgs, ... }:
{
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
# commandLineArgs = [ ];
dictionaries = with pkgs; [
hunspellDictsChromium.en_US
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
];
extensions = [
{
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
}
{
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
}
{
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
}
{
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
}
{
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
}
{
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
}
{
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
}
];
};
}

View File

@@ -0,0 +1,22 @@
{
pkgs,
lib,
config,
...
}: {
options.ungoogled-chromium.enable = lib.mkEnableOption "Ungoogled Chromium";
config.programs.chromium = lib.mkIf config.ungoogled-chromium.enable {
enable = true;
package = pkgs.ungoogled-chromium;
# commandLineArgs = [ ];
dictionaries = with pkgs; [
hunspellDictsChromium.en_US
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
];
};
imports = [
./extensions.nix
];
}

View File

@@ -0,0 +1,25 @@
_: {
programs.chromium.extensions = [
{
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
}
{
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
}
{
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
}
{
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
}
{
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
}
{
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
}
{
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
}
];
}

View File

@@ -1,47 +1,46 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) waybarChoice;
in
{
in {
imports = [
./bash
./chromium
./fastfetch
./hyprland
./kitty
./librewolf
./peaclock
./rofi
./scripts
./swaync
./vscodium
waybarChoice
./wlogout
./xdg
./zed
./anki.nix
./bash.nix
./bash-aliases.nix
./bash-functions.nix
./bat.nix
./btop.nix
./cava.nix
./chromium.nix
./emoji.nix
./eza.nix
./fzf.nix
./git.nix
./gtk.nix
./kdeConnect.nix
./kitty.nix
./librewolf.nix
./lutris.nix
./nextcloud.nix
./noctalia.nix
./obs-studio.nix
./onlyoffice.nix
./overview.nix
./qt.nix
./ssh.nix
./starship.nix
./stylix.nix
./swappy.nix
./swaync.nix
./tealdeer.nix
./vesktop.nix
./virtmanager.nix
./xdg.nix
./zoxide.nix
./vscode.nix
./zed.nix
];
}

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
home.file.".config/.emoji".text = ''
😀 grinning face face smile happy joy :D grin
😃 grinning face with big eyes face happy joy haha :D :) smile funny

View File

@@ -1,184 +1,17 @@
{
programs.fastfetch = {
pkgs,
lib,
config,
...
}: {
options.fastfetch.enable = lib.mkEnableOption "FastFetch";
config.programs.fastfetch = lib.mkIf config.fastfetch.enable {
enable = true;
settings = {
display = {
color = {
keys = "35";
output = "90";
};
separator = " ";
};
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"
];
};
package = pkgs.fastfetch;
};
imports = [
./settings
];
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,7 @@
_: {
imports = [
./display.nix
./logo.nix
./modules.nix
];
}

View File

@@ -0,0 +1,9 @@
_: {
programs.fastfetch.settings.display = {
color = {
keys = "35";
output = "90";
};
separator = " ";
};
}

View File

@@ -0,0 +1,12 @@
_: {
programs.fastfetch.settings.logo = {
source = ../garandos.png;
type = "kitty-direct";
height = 15;
width = 30;
padding = {
top = 3;
left = 3;
};
};
}

View File

@@ -0,0 +1,159 @@
_: {
programs.fastfetch.settings.modules = [
"break"
{
type = "custom";
format = "Hardware";
}
{
type = "host";
format = "{5} {1} Type {2}";
key = " PC";
keyColor = "33";
}
{
type = "cpu";
format = "{1} ({3}) @ {7} GHz";
key = " ";
keyColor = "33";
}
{
type = "gpu";
format = "{1} {2} @ {12} GHz";
key = " ";
keyColor = "33";
}
{
type = "memory";
key = " 󰑭 ";
keyColor = "33";
}
{
type = "swap";
key = " ";
keyColor = "33";
}
{
type = "disk";
key = " 󰋊 ";
keyColor = "33";
}
{
type = "monitor";
key = " ";
keyColor = "33";
}
{
type = "custom";
format = "";
}
"break"
{
type = "custom";
format = "Software";
}
{
type = "os";
key = " OS";
keyColor = "31";
}
{
type = "command";
key = " ";
keyColor = "31";
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
}
{
type = "kernel";
key = " ";
keyColor = "31";
}
{
type = "packages";
key = " 󰏖 ";
keyColor = "31";
}
{
type = "shell";
key = " ";
keyColor = "31";
}
{
type = "wm";
key = " WM";
keyColor = "32";
}
{
type = "wmtheme";
key = " 󰉼 ";
keyColor = "32";
}
{
type = "icons";
key = " 󰀻 ";
keyColor = "32";
}
{
type = "cursor";
key = " ";
keyColor = "32";
}
{
type = "terminal";
key = " ";
keyColor = "32";
}
{
type = "terminalfont";
key = " ";
keyColor = "32";
}
{
type = "custom";
format = "";
}
"break"
{
type = "custom";
format = "Age / Uptime";
}
{
type = "command";
key = " IN";
text =
#bash
''
birth_install=$(stat -c %W /)
if [ "$birth_install" -gt 0 ]; then
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
else
echo "Installation date unknown"
fi
'';
}
{
type = "command";
key = " ";
text =
#bash
''
birth_install=$(stat -c %W /)
current=$(date +%s)
delta=$((current - birth_install))
delta_days=$((delta / 86400))
echo $delta_days days
'';
}
{
type = "uptime";
key = " ";
}
{
type = "custom";
format = "";
}
"break"
];
}

View File

@@ -3,13 +3,11 @@
config,
lib,
...
}:
let
}: let
accent = "#" + config.lib.stylix.colors.base0D;
foreground = "#" + config.lib.stylix.colors.base05;
muted = "#" + config.lib.stylix.colors.base03;
in
{
in {
programs.fzf = {
enable = true;
enableBashIntegration = true;

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
in
{
in {
programs.git = {
enable = true;
settings = {

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
gtk = {
iconTheme = {
name = "Papirus-Dark";

View File

@@ -1,23 +1,20 @@
{ ... }:
{
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"
];
};
_: {
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"
];
};
}

View File

@@ -1,26 +1,22 @@
{ ... }:
{
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"
];
};
_: {
# name "Dynamic"
wayland.windowManager.hyprland.settings.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"
];
};
}

View File

@@ -1,38 +1,34 @@
{ ... }:
{
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"
];
};
_: {
# Name: END-4
wayland.windowManager.hyprland.settings.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"
];
};
}

View File

@@ -1,25 +1,21 @@
{ ... }:
{
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"
];
};
_: {
# name "moving"
wayland.windowManager.hyprland.settings.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"
];
};
}

View File

@@ -1,128 +1,140 @@
{ host, username, ... }:
let
{
host,
username,
...
}: let
inherit (import ../../../hosts/${host}/variables.nix) browser terminal;
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
in
{
in {
wayland.windowManager.hyprland.settings = {
bind = [
# =============================================================================
# APLIKACJE - GŁÓWNE
# =============================================================================
"$modifier, A, exec, anki"
"$modifier, C, exec, chromium"
"$modifier, D, exec, vesktop"
"$modifier, I, exec, iotas"
"$modifier, M, exec, plexamp"
"$modifier, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
"$modifier, Return, exec, ${terminal}"
"$modifier, S, exec, steam"
"$modifier, T, exec, thunar"
"$modifier, W, exec, ${browser}"
"$modifier, Z, exec, zeditor"
"SUPER, A, exec, anki"
"SUPER, B, exec, bitwarden"
"SUPER, C, exec, chromium"
"SUPER, D, exec, vesktop"
"SUPER, G, exec, affinity-v3"
"SUPER, I, exec, iotas"
"SUPER, J, exec, Jan"
"SUPER, L, exec, logseq"
"SUPER, M, exec, plexamp"
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
"SUPER, O, exec, obs"
"SUPER, P, exec, plex-desktop"
"SUPER, Return, exec, ${terminal}"
"SUPER, S, exec, steam"
"SUPER, T, exec, thunar"
"SUPER, V, exec, codium"
"SUPER, W, exec, ${browser}"
"SUPER, Z, exec, zeditor"
# =============================================================================
# APLIKACJE - Z SHIFT
# =============================================================================
"$modifier SHIFT, B, exec, blueman-manager"
"$modifier SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop"
"$modifier SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop"
"$modifier SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop"
"$modifier SHIFT, N, exec, nextcloud"
"$modifier SHIFT, O, exec, onlyoffice-desktopeditors"
"$modifier SHIFT, Return, exec, rofi-launcher"
"$modifier SHIFT, T, exec, tutanota-desktop"
"$modifier SHIFT, W, exec, web-search"
"SUPER SHIFT, B, exec, blueman-manager"
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop"
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop"
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop"
"SUPER SHIFT, N, exec, nextcloud"
"SUPER SHIFT, O, exec, onlyoffice-desktopeditors"
# "SUPER SHIFT, Return, exec, rofi-launcher"
"SUPER SHIFT, T, exec, tutanota-desktop"
# "SUPER SHIFT, W, exec, web-search"
# =============================================================================
# APLIKACJE - Z ALT
# =============================================================================
"$modifier ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop"
"$modifier ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
"$modifier ALT, S, exec, slack"
"$modifier ALT, T, exec, gnome-text-editor"
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop"
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
"SUPER ALT, S, exec, slack"
"SUPER ALT, T, exec, gedit"
# =============================================================================
# APLIKACJE - Z CONTROL
# =============================================================================
"$modifier CONTROL, M, exec, mattermost-desktop"
"SUPER CONTROL, G, exec, gimp"
"SUPER CONTROL, M, exec, mattermost-desktop"
"SUPER CONTROL, S, exec, signal-desktop"
# =============================================================================
# NARZĘDZIA SYSTEMOWE
# =============================================================================
"$modifier, E, exec, emopicker9000"
"$modifier, K, exec, galculator"
"$modifier, P, exec, hyprpicker -a"
"$modifier ALT, W, exec, wallsetter"
"$modifier SHIFT, K, exec, list-keybinds"
"$modifier SHIFT, P, exec, pavucontrol"
"$modifier SHIFT, S, exec, screenshootin"
"SUPER, E, exec, emopicker9000"
"SUPER, K, exec, galculator"
"SUPER ALT, W, exec, wallsetter"
"SUPER CONTROL, P, exec, hyprpicker -a"
"SUPER SHIFT, K, exec, list-keybinds"
"SUPER SHIFT, P, exec, pavucontrol"
"SUPER SHIFT, S, exec, screenshootin"
# =============================================================================
# ZARZĄDZANIE OKNAMI
# =============================================================================
"$modifier, Escape, exec, hyprlock"
"$modifier, F, fullscreen,"
"$modifier, Q, killactive,"
"$modifier CONTROL, Escape, exec, wlogout"
"$modifier SHIFT, Escape, exit,"
"$modifier SHIFT, I, togglesplit,"
"SUPER, Escape, exec, hyprlock"
"SUPER, F, fullscreen,"
"SUPER, Q, killactive,"
"SUPER CONTROL, Escape, exec, wlogout"
"SUPER SHIFT, Escape, exit,"
"SUPER SHIFT, I, togglesplit,"
"SUPER SHIFT, F, togglefloating,"
# =============================================================================
# FOKUS OKIEN
# =============================================================================
"$modifier, down, movefocus, d"
"$modifier, left, movefocus, l"
"$modifier, right, movefocus, r"
"$modifier, up, movefocus, u"
"SUPER, down, movefocus, d"
"SUPER, left, movefocus, l"
"SUPER, right, movefocus, r"
"SUPER, up, movefocus, u"
# =============================================================================
# PRZEMIESZCZANIE OKIEN
# =============================================================================
"$modifier SHIFT, down, movewindow, d"
"$modifier SHIFT, left, movewindow, l"
"$modifier SHIFT, right, movewindow, r"
"$modifier SHIFT, up, movewindow, u"
"SUPER SHIFT, down, movewindow, d"
"SUPER SHIFT, left, movewindow, l"
"SUPER SHIFT, right, movewindow, r"
"SUPER SHIFT, up, movewindow, u"
# =============================================================================
# ZAMIANA OKIEN
# =============================================================================
"$modifier ALT, down, swapwindow, d"
"$modifier ALT, left, swapwindow, l"
"$modifier ALT, right, swapwindow, r"
"$modifier ALT, up, swapwindow, u"
"SUPER ALT, down, swapwindow, d"
"SUPER ALT, left, swapwindow, l"
"SUPER ALT, right, swapwindow, r"
"SUPER ALT, up, swapwindow, u"
# =============================================================================
# WORKSPACES - PRZEŁĄCZANIE
# =============================================================================
"$modifier, 0, workspace, 10"
"$modifier, 1, workspace, 1"
"$modifier, 2, workspace, 2"
"$modifier, 3, workspace, 3"
"$modifier, 4, workspace, 4"
"$modifier, 5, workspace, 5"
"$modifier, 6, workspace, 6"
"$modifier, 7, workspace, 7"
"$modifier, 8, workspace, 8"
"$modifier, 9, workspace, 9"
"$modifier CONTROL, left, workspace, e-1"
"$modifier CONTROL, right, workspace, e+1"
"$modifier, mouse_down, workspace, e+1"
"$modifier, mouse_up, workspace, e-1"
"SUPER, 0, workspace, 10"
"SUPER, 1, workspace, 1"
"SUPER, 2, workspace, 2"
"SUPER, 3, workspace, 3"
"SUPER, 4, workspace, 4"
"SUPER, 5, workspace, 5"
"SUPER, 6, workspace, 6"
"SUPER, 7, workspace, 7"
"SUPER, 8, workspace, 8"
"SUPER, 9, workspace, 9"
"SUPER CONTROL, left, workspace, e-1"
"SUPER CONTROL, right, workspace, e+1"
"SUPER, mouse_down, workspace, e+1"
"SUPER, mouse_up, workspace, e-1"
# =============================================================================
# WORKSPACES - PRZENOSZENIE OKIEN
# =============================================================================
"$modifier SHIFT, 0, movetoworkspace, 10"
"$modifier SHIFT, 1, movetoworkspace, 1"
"$modifier SHIFT, 2, movetoworkspace, 2"
"$modifier SHIFT, 3, movetoworkspace, 3"
"$modifier SHIFT, 4, movetoworkspace, 4"
"$modifier SHIFT, 5, movetoworkspace, 5"
"$modifier SHIFT, 6, movetoworkspace, 6"
"$modifier SHIFT, 7, movetoworkspace, 7"
"$modifier SHIFT, 8, movetoworkspace, 8"
"$modifier SHIFT, 9, movetoworkspace, 9"
"SUPER SHIFT, 0, movetoworkspace, 10"
"SUPER SHIFT, 1, movetoworkspace, 1"
"SUPER SHIFT, 2, movetoworkspace, 2"
"SUPER SHIFT, 3, movetoworkspace, 3"
"SUPER SHIFT, 4, movetoworkspace, 4"
"SUPER SHIFT, 5, movetoworkspace, 5"
"SUPER SHIFT, 6, movetoworkspace, 6"
"SUPER SHIFT, 7, movetoworkspace, 7"
"SUPER SHIFT, 8, movetoworkspace, 8"
"SUPER SHIFT, 9, movetoworkspace, 9"
# =============================================================================
# MEDIA I KONTROLKI SYSTEMOWE
@@ -137,28 +149,35 @@ in
",XF86MonBrightnessDown, exec, brightnessctl set 5%-"
",XF86MonBrightnessUp, exec, brightnessctl set +5%"
# =============================================================================
# NOCTALIA SHELL
# =============================================================================
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle"
# "SUPER, M, Noctalia Notifications, exec, noctalia-shell ipc call notifications toggleHistory"
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard"
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle"
"SUPER ALT, L, exec, noctalia-shell ipc call sessionMenu lockAndSuspend"
"SUPER SHIFT, W, exec, noctalia-shell ipc call wallpaper toggle"
"SUPER, X, exec, noctalia-shell ipc call sessionMenu toggle"
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle"
"SUPER CTRL, R, exec, noctalia-shell ipc call screenRecorder toggle"
"SUPER SHIFT, R, exec, restart.noctalia"
# =============================================================================
# NIEUŻYWANE KEYBINDY
# =============================================================================
# "$modifier, B, exec, bitwarden"
# "$modifier, G, exec, affinity-v3"
# "$modifier, L, exec, logseq"
# "$modifier, O, exec, obs"
# "$modifier, V, exec, codium"
# "$modifier SHIFT, N, exec, swaync-client -rs"
# "$modifier, P, pseudo,"
# "$modifier SHIFT,F, togglefloating,"
# "$modifier ALT,F, workspaceopt, allfloat"
# "$modifier SHIFT, SPACE, movetoworkspace, special"
# "$modifier, SPACE, togglespecialworkspace"
# "SUPER SHIFT, N, exec, swaync-client -rs"
# "SUPER, P, pseudo,"
# "SUPER ALT,F, workspaceopt, allfloat"
# "SUPER SHIFT, SPACE, movetoworkspace, special"
# "SUPER, SPACE, togglespecialworkspace"
# "ALT,Tab,cyclenext"
# "ALT,Tab,bringactivetotop"
];
bindm = [
"$modifier, mouse:272, movewindow"
"$modifier, mouse:273, resizewindow"
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
};
}

View File

@@ -1,8 +1,6 @@
{ host, ... }:
let
{host, ...}: let
inherit (import ../../../hosts/${host}/variables.nix) animChoice;
in
{
in {
imports = [
animChoice
./binds.nix

View File

@@ -1,37 +1,32 @@
{ ... }:
{
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"
];
};
};
_: {
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"
];
}

View File

@@ -1,25 +1,28 @@
{ host, ... }:
let
inherit (import ../../../hosts/${host}/variables.nix)
{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"
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"
"qs -c overview" # Start quickshell-overview daemon
"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}"
];
};
# "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}"
"killall -q waybar"
"pkill waybar"
"killall -q swaync"
"pkill swaync"
"noctalia-shell &"
];
}

View File

@@ -1,27 +1,23 @@
{ ... }:
{
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";
}
];
_: {
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";
}
];
};
};
}

View File

@@ -3,11 +3,9 @@
config,
pkgs,
...
}:
let
}: let
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
in
{
in {
systemd.user.targets.hyprland-session.Unit.Wants = [
"xdg-desktop-autostart.target"
];
@@ -26,11 +24,9 @@ in
systemd = {
enable = true;
enableXdgAutostart = true;
variables = [ "--all" ];
};
xwayland = {
enable = true;
variables = ["--all"];
};
xwayland.enable = true;
settings = {
input = {
kb_layout = "${keyboardLayout}";
@@ -62,14 +58,12 @@ in
};
general = {
"$modifier" = "SUPER";
layout = "dwindle";
gaps_in = 6;
gaps_out = 8;
border_size = 2;
resize_on_border = true;
"col.active_border" =
"rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
};
@@ -135,9 +129,7 @@ in
direct_scanout = 0;
};
debug = {
full_cm_proto = true;
};
debug.full_cm_proto = true;
master = {
new_status = "master";
@@ -146,17 +138,13 @@ in
};
# Ensure Xwayland windows render at integer scale; compositor scales them
xwayland = {
force_zero_scaling = true;
};
xwayland.force_zero_scaling = true;
};
extraConfig = "
monitor=,preferred,auto,auto
monitor=Virtual-1,1920x1080@60,auto,1
${
extraMonitorSettings
}
${extraMonitorSettings}
# To enable blur on waybar uncomment the line below
# Thanks to SchotjeChrisman
#layerrule = blur,waybar

View File

@@ -1,5 +1,4 @@
{ username, ... }:
{
{username, ...}: {
programs.hyprlock = {
enable = true;
settings = {

View File

@@ -1,5 +1,4 @@
{ ... }:
{
_: {
home.file.".config/hypr/pyprland.toml".text = ''
[pyprland]
plugins = [

View File

@@ -1,100 +1,97 @@
_: {
wayland.windowManager.hyprland = {
settings = {
windowrule = [
# XWayland specific rules
#"noblur, xwayland:1" # Helps prevent odd borders/shadows for xwayland apps
# downside it can impact other xwayland apps
# This rule is a template for a more targeted approach
"noblur, class:^(\bresolve\b)$, xwayland:1" # Window rule for just resolve
wayland.windowManager.hyprland.settings.windowrule = [
# XWayland specific rules
#"noblur, xwayland:1" # Helps prevent odd borders/shadows for xwayland apps
# downside it can impact other xwayland apps
# This rule is a template for a more targeted approach
"no_blur on, match:class resolve, match:xwayland 1" # Window rule for just resolve
# Application tags
"tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$"
"tag +terminal, class:^(com.mitchellh.ghostty|org.wezfurlong.wezterm|Alacritty|kitty|kitty-dropterm)$"
"tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$"
"tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$"
"tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$"
"tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$"
"tag +projects, class:^(codium|codium-url-handler|VSCodium)$"
"tag +projects, class:^(VSCode|code-url-handler)$"
"tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$"
"tag +im, class:^([Ff]erdium)$"
"tag +im, class:^([Ww]hatsapp-for-linux)$"
"tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$"
"tag +im, class:^(teams-for-linux)$"
"tag +games, class:^(gamescope)$"
"tag +games, class:^(steam_app_\d+)$"
"tag +gamestore, class:^([Ss]team)$"
"tag +gamestore, title:^([Ll]utris)$"
"tag +gamestore, class:^(com.heroicgameslauncher.hgl)$"
"tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$"
"tag +settings, class:^([Rr]ofi)$"
"tag +settings, class:^(file-roller|org.gnome.FileRoller)$"
"tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$"
"tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$"
"tag +settings, class:^(nwg-look|qt5ct|qt6ct|[Yy]ad)$"
"tag +settings, class:(xdg-desktop-portal-gtk)"
"tag +settings, class:(.blueman-manager-wrapped)"
"tag +settings, class:(nwg-displays)"
# Application tags
"tag +file-manager, match:class [Tt]hunar|org\.gnome\.Nautilus|[Pp]cmanfm-qt"
"tag +terminal, match:class com\.mitchellh\.ghostty|org\.wezfurlong\.wezterm|Alacritty|kitty|kitty-dropterm"
"tag +browser, match:class [Ff]irefox|org\.mozilla\.firefox|[Ff]irefox-esr"
"tag +browser, match:class [Ll]ibrewolf|io\.gitlab\.librewolf-community"
"tag +browser, match:class [Gg]oogle-chrome(-beta|-dev|-unstable)?|[Cc]hromium-browser(-beta|-dev|-unstable)?"
"tag +projects, match:class VSCode|code|code-url-handler|codium|codium-url-handler|VSCodium|VSCodium-url-handler"
"tag +projects, match:class dev\.zed\.Zed"
"tag +im, match:class [Dd]iscord|[Ww]ebCord|[Vv]esktop"
"tag +im, match:class [Ff]erdium"
"tag +im, match:class [Ss]ignal"
"tag +im, match:class [Ss]lack"
"tag +im, match:class [Tt]eams-for-linux"
"tag +games, match:class gamescope"
"tag +games, match:class ?:steam_app_\d+"
"tag +games, match:class tf_linux64"
"tag +games, match:class Minecraft\*.*"
"tag +gamestore, match:class [Ss]team"
"tag +gamestore, match:title [Ll]utris"
"tag +gamestore, match:class com\.heroicgameslauncher\.hgl"
"tag +gamestore, match:class org\.prismlauncher\.PrismLauncher"
"tag +settings, match:class gnome-disks|wihotspot(-gui)?"
"tag +settings, match:class [Rr]ofi"
"tag +settings, match:class file-roller|org\.gnome\.FileRoller"
"tag +settings, match:class nm-applet|nm-connection-editor|blueman-manager"
"tag +settings, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
"tag +settings, match:class nwg-look|qt5ct|qt6ct|[Yy]ad"
"tag +settings, match:class xdg-desktop-portal-gtk"
"tag +settings, match:class ?:blueman-manager-wrapped"
"tag +settings, match:class nwg-displays"
# Position and movement rules
"move 72% 7%,title:^(Picture-in-Picture)$"
"center, class:^([Ff]erdium)$"
"center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$"
"center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)"
"center, title:^(Authentication Required)$"
# Position and movement rules
"move 72% 7%, match:title Picture-in-Picture"
"center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
"center on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
"center on, match:title Authentication Required"
# Idle inhibit rules
"idleinhibit fullscreen, class:^(*)$"
"idleinhibit fullscreen, title:^(*)$"
"idleinhibit fullscreen, fullscreen:1"
# Idle inhibit rules
"idle_inhibit fullscreen, match:class .*"
"idle_inhibit fullscreen, match:title .*"
"idle_inhibit fullscreen, match:fullscreen 1"
# Float rules
"float, class:^([Ww]aypaper)$"
"float, tag:settings*"
"float, class:^([Ff]erdium)$"
"float, title:^(Picture-in-Picture)$"
"float, class:^(mpv|com.github.rafostar.Clapper)$"
"float, title:^(Authentication Required)$"
"float, title:^(War in Tunnels)$"
"float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)"
"float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher)"
"float, class:^([Ss]team)$, title:negative:^([Ss]team)$"
"float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)"
"float, class:^(galculator)$"
"float, initialTitle:(Add Folder to Workspace)"
"float, initialTitle:(Open Files)"
"float, initialTitle:(wants to save)"
# Float rules
"float on, match:class [Ww]aypaper"
"float on, match:tag settings*"
"float on, match:title Picture-in-Picture"
"float on, match:title Authentication Required"
"float on, match:title War in Tunnels"
"float on, match:class codium|codium-url-handler|VSCodium, match:title negative:.*(?:codium|VSCodium).*"
"float on, match:class com\.heroicgameslauncher\.hgl, match:title negative Heroic Games Launcher"
"float on, match:class [Ss]team, match:title negative:[Ss]team"
"float on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
"float on, match:class galculator"
"float on, match:initial_title Add Folder to Workspace"
"float on, match:initial_title Open Files"
"float on, match:initial_title wants to save"
# Size rules
"size 70% 60%, initialTitle:(Open Files)"
"size 70% 60%, initialTitle:(Add Folder to Workspace)"
"size 70% 70%, tag:settings*"
"size 60% 70%, class:^([Ff]erdium)$"
# Size rules
"size 70% 60%, match:initial_title Open Files"
"size 70% 60%, match:initial_title Add Folder to Workspace"
"size 70% 70%, match:tag settings*"
# Tile rules
"tile, class:^(affinity.exe)$"
"tile, class:^(dev.zed.Zed)$"
# Tile rules
"tile on, match:class affinity\.exe"
"tile on, match:class dev\.zed\.Zed"
"tile on, match:class mpv"
"tile on, match:class com-cburch-logisim-Main"
# Opacity rules
"opacity 1.0 1.0, tag:browser*"
"opacity 0.9 0.8, tag:projects*"
"opacity 0.94 0.86, tag:im*"
"opacity 0.9 0.8, tag:file-manager*"
"opacity 0.8 0.7, tag:terminal*"
"opacity 0.8 0.7, tag:settings*"
"opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$"
"opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui"
"opacity 0.95 0.75, title:^(Picture-in-Picture)$"
# Opacity rules
"opacity 1.0 1.0, match:tag browser*"
"opacity 0.9 0.8, match:tag projects*"
"opacity 0.94 0.86, match:tag im*"
"opacity 0.85 0.75, match:tag gamestore*"
"opacity 0.9 0.8, match:tag file-manager*"
"opacity 0.8 0.7, match:tag terminal*"
"opacity 0.8 0.7, match:tag settings*"
"opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad"
"opacity 0.9 0.8, match:class seahorse # gnome-keyring gui"
"opacity 0.95 0.75, match:title Picture-in-Picture"
# Picture-in-Picture specific rules
"pin, title:^(Picture-in-Picture)$"
"keepaspectratio, title:^(Picture-in-Picture)$"
# Picture-in-Picture specific rules
"pin on, match:title Picture-in-Picture"
"keep_aspect_ratio on, match:title Picture-in-Picture"
# Games specific rules
"noblur, tag:games*"
"fullscreen, tag:games*"
];
};
};
# Games specific rules
"no_blur on, match:tag games*"
"fullscreen on, match:tag games*"
];
}

View File

@@ -1,6 +1,12 @@
{ pkgs, ... }:
{
services.kdeconnect = {
pkgs,
lib,
config,
...
}: {
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
config.services.kdeconnect = lib.mkIf config.kdeconnect.enable {
enable = true;
indicator = true;
package = pkgs.kdePackages.kdeconnect-kde;

View File

@@ -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
'';
};
}

View File

@@ -0,0 +1,11 @@
{pkgs, ...}: {
programs.kitty = {
enable = true;
package = pkgs.kitty;
};
imports = [
./extra-config.nix
./settings.nix
];
}

Some files were not shown because too many files have changed in this diff Show More