30 Commits

Author SHA1 Message Date
GarandPLG 2eb24167e5 Update flake.lock and add Kdenlive & recorder binds
- Remove stale `elemental-wine-source` entry from flake.lock.
- Refresh hashes, revisions, and timestamps for several inputs.
- Add "SUPER ALT K" binding to launch Kdenlive.
- Add "SUPER CONTROL R" binding to toggle screen recorder.
2026-05-24 02:03:19 +02:00
GarandPLG ce94f3e813 Add boxes and switcheroo modules; enable kdenlive
Register GNOME Boxes and Switcheroo in core packages and enable flags
Turn on kdenlive for Garand‑Desktop and adjust its wrapper for QT
scaling
Extend Docker module with host‑specific profile support and conditional
Nvidia integration
Reformat package definitions (plex, distrobox, winboat) and tidy
nvidia‑driver list
2026-05-23 20:47:49 +02:00
GarandPLG 0a3cff7b74 Update flake.lock, bump helium, and fix SSH config
Refresh locked revisions in flake.lock to newer commits, update the
helium
AppImage to version 0.12.4.1, and replace the SSH module's matchBlocks
attribute with the new settings attribute.
2026-05-23 15:39:38 +02:00
GarandPLG c0d2e8cd47 Update dependencies and add Helium appimage
- Refresh many lock entries in flake.lock with new revisions and hashes.
- Enable the Helium appimage in default, desktop, and laptop host
  configs; add
  comment sections for web browsers and disable Fluxer by default.
- Rename the affinity option description from “Steam” to “Affinity”.
- Refactor appimage handling: introduce a generic mkAppImagePackage
  helper,
  import individual packages, and expose per‑package enable options.
- Update fluxer.nix to use a configurable icon size and adjust install
  paths.
- Bump Helium to version 0.12.3.1, update its hash, and make its icon
  size
  configurable.
- Adjust Hyprland settings: comment out the split‑layout bind, set
  configType = "hyprlang", enable Xwayland early, move vfr to the debug
  section, and comment out dwindle pseudotile.
2026-05-16 22:57:30 +02:00
GarandPLG b6915ab988 Set default wallpaper to Attack-on-Titan-2
- Updated host variables files to select Attack-on-Titan-2.jpg and added
  rating comments.
- Simplified boot.nix by removing host‑specific imports and configuring
  limine via package, resolution, and branding color.
- Added limine target support in stylix with color, image, and tile
  scaling options.
- Removed the unused noctalia colors module and its import.
- Adjusted noctalia wallpaper settings to use config.stylix.image
  instead of a host import.
2026-05-14 19:15:41 +02:00
GarandPLG e4b359c5ca Add screenshot and ntfy plugins; update keybinds
Disable the notify-client module on all hosts. Install hyprshot, enable
screenshot and ntfy‑notifications plugins, set screenshot mode to
region,
and add keybindings for these features. Introduce a restart‑noctalia
script and include it in the home scripts.
2026-05-14 18:14:05 +02:00
GarandPLG b9b932e990 Add Ventoy support and refactor wallpaper handling
Introduce a `ventoy.enable` option (default false) and import the new
`modules/core/ventoy.nix` in the core module list. All host
`system-modules.nix` files now disable Ventoy explicitly.

Make the boot wallpaper configurable by importing `stylixImage` from the
host’s `variables.nix` and using it in `modules/core/boot.nix`.

Update each host’s `variables.nix` to set a default wallpaper and keep
many alternatives commented out.

Remove the obsolete `restart.noctalia` and `screenshootin` scripts,
their Nix wrappers, and the related Hyprland keybinding.

Add a collection of new wallpaper files and delete the old, unused
images.
2026-05-14 01:57:29 +02:00
GarandPLG 616adf696b Refresh wallpapers and update configs
- Set default stylix wallpaper to “The‑Southern‑Raiders.jpg” and comment
  out the old image.
- Bump helium AppImage to version 0.12.1.1 with updated URL and
  checksum.
- Switch NVIDIA driver package from beta to stable.
- Change “kys” alias to use systemctl poweroff and add “jezus” alias for
  reboot.
2026-05-13 00:27:50 +02:00
GarandPLG 092e6cfd88 Update lockfile, adjust modules, add utilities
Refresh flake.lock with latest revisions for several dependencies.
Disable Prism Launcher on both desktop and laptop configurations.
Enable the Upscaler tool on the laptop system module.
Add smartmontools to the core essentials package list.
Enhance the “ncg” alias to run `nh clean all --optimise`.
2026-05-12 23:01:13 +02:00
GarandPLG 2c2d54a4a7 Add host printer configs and refactor printing
Add printers.nix for Garand‑Desktop, Garand‑Laptop, and default hosts
with
printer definitions and a printEnable flag. Disable NFS by default in
the
host variables. Rewrite modules/core/printing.nix to import printer
settings, enable services only when printing is enabled, and add more
CUPS/Avahi options plus hardware.printers configuration. Add the lpadmin
group to the main user. Update the Messenger desktop entry URL to the
Facebook Messages page.
2026-05-07 15:05:11 +02:00
GarandPLG 79769e4dc5 Update flake.lock revisions and fix Jellyfin bind
- Refresh locked versions for affinity-nix, nur-expressions,
  home-manager,
  nixpkgs, and noctalia-shell.
- Change Jellyfin keybind to launch via `dex` instead of direct
  execution.
2026-05-06 15:34:14 +02:00
GarandPLG 12b69102d9 Add Helium AppImage and replace Chromium webapps
- Add Helium browser as an AppImage and include it in system packages.
- Rename fluxer package into the appimages module and update imports.
- Add `SUPER+H` keybinding to launch Helium and `SUPER+CONTROL+T` for
  tsukimi.
- Change web‑app desktop entries to use Helium instead of Chromium.
- Disable ungoogled‑chromium and ChatGPT modules on the laptop host.
- Fix a minor typo in a comment within hardware.nix.
2026-05-06 10:40:20 +02:00
GarandPLG eb2c93805a Update flake.lock, disable affinity, add SSH host
Refresh flake.lock with newer revisions for several packages, turn off
the
Affinity suite in the desktop configuration, and add a new SSH host
entry
for gitssh.garandplg.com with its own identity and port settings.
2026-05-05 21:42:28 +02:00
GarandPLG b82c18145e Enable Jellyfin client and update its package
- Enable `jellyfinClient` in home modules for Garand‑Desktop,
  Garand‑Laptop, and the default host
- Add a desktop entry for the Jellyfin client
- Replace `jellyfin-desktop` with `tsukimi` in the core packages list
- Disable the Affinity graphics suite on Garand‑Laptop
2026-05-01 20:28:03 +02:00
GarandPLG cf2227a8c5 Switch Jellyfin client from delfin to jellyfin-desktop 2026-04-30 00:22:41 +02:00
GarandPLG 1ec541004a Update flake.lock revs and tweak Hyprland binds
Refresh several Nix package revisions (firefox-addons, home-manager,
nixpkgs, noctalia-shell, noctalia-qs) with new narHash values.
Comment out the quickshell module in core defaults.
Fix delfin/finamp keybindings.
2026-04-29 22:54:43 +02:00
GarandPLG 79ff636fa4 Add Upscaler flatpak and host config options 2026-04-29 19:55:59 +02:00
GarandPLG d0986a97f3 dodanie jellyfin 2026-04-29 19:53:12 +02:00
GarandPLG 6644a6aff7 Add EasyEffects module and enable it across hosts
Add new home module for EasyEffects and include it in the default home
modules
list. Enable EasyEffects in Desktop, Laptop, and default host
configurations.
Update flake.lock entries to newer revisions. Adjust Garand‑Laptop
hardware.nix to nest hardware settings.
2026-04-26 19:42:28 +02:00
GarandPLG 44488a7959 Add screen-recorder plugin; refactor Affinity
Introduce a new screen‑recorder plugin with default settings, key
bindings,
and a bar widget entry. Add a dedicated Affinity module, import it in
the
core defaults, and remove the previous package entry. Enable Affinity on
the Garand‑Desktop and Garand‑Laptop hosts while keeping it disabled on
the
default host. Update flake.lock to newer revisions and reorder the
hyprland exec‑once commands.
2026-04-24 14:30:51 +02:00
GarandPLG b31142964c Add ffmpeg to core essentials package list 2026-04-21 02:51:06 +02:00
GarandPLG 5ddc8f7686 Adjust enabled modules and add ffmpeg_dl
Disable Zed remote server, VirtualBox and Exercism modules.
Enable Pixieditor and Gedit editors.
Add ffmpeg_dl Bash function to download streams via ffmpeg.
2026-04-21 01:19:59 +02:00
GarandPLG f912025218 Refresh flake.lock and disable unused services
Add new inputs `crane` and `fenix` to the flake and update lock hashes
for many
dependencies. Disable remote‑server for Zed, ChatGPT, VirtualBox,
Exercism, and Logisim‑Evolution in host configurations. Add
`noctalia-shell`
to Hyprland exec‑once and remove systemd enable in the noctalia module.
2026-04-21 01:02:38 +02:00
GarandPLG ef63afecbe Update flake.lock dependencies and bash aliases
Add corefonts as a new input and lock entry.
Rename plugin-loader to plugin-loader-src.
Switch from a file URL to a GitHub source for the loader.
Update revisions, narHashes and timestamps for multiple dependencies.
Adjust bash aliases (nb, nr, nbr) to use nix build . and nix run .
2026-04-17 13:38:53 +02:00
GarandPLG 312c6321ed Update flake.lock revisions and hashes 2026-04-09 23:11:45 +02:00
GarandPLG 6755410f74 Switch DNS over HTTPS provider to Quad9 2026-04-08 23:41:41 +02:00
GarandPLG db7a9afae7 Enable notify client and replace swww with awww
- Add `notify.enable = true` to Garand-Desktop, Garand-Laptop, and
  default hosts
- Replace `swww` with `awww` in `essentials.nix`
- Expose `notify-client` in the core packages mapping
2026-04-04 23:30:57 +02:00
GarandPLG 34d4d0f707 Update flake.lock dependencies, remove tinted-foot
Bump revisions, narHash values and timestamps for several dependencies,
switch gnome-shell source from GitLab to GitHub, and drop the
tinted-foot
entry from the lock file.
2026-04-04 17:16:42 +02:00
GarandPLG 86a677095a update 2026-03-31 00:20:56 +02:00
GarandPLG 33213e6507 Refresh flake.lock and toggle system options
Upgrade several flake inputs to newer commits and hashes, remove the
unused
`nixpkgs_2` entry, and adjust its dependent inputs. Enable VirtualBox
support
while disabling the Winboat remote‑desktop module. Update `nh` command
aliases
to use the short `-H` flag and always‑run the dry‑run mode.
2026-03-26 20:25:35 +01:00
82 changed files with 781 additions and 417 deletions
Generated
+155 -129
View File
@@ -2,7 +2,9 @@
"nodes": { "nodes": {
"affinity-nix": { "affinity-nix": {
"inputs": { "inputs": {
"elemental-wine-source": "elemental-wine-source", "corefonts": "corefonts",
"crane": "crane",
"fenix": "fenix",
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
@@ -11,15 +13,15 @@
], ],
"nixpkgs-wine": "nixpkgs-wine", "nixpkgs-wine": "nixpkgs-wine",
"on-linux": "on-linux", "on-linux": "on-linux",
"plugin-loader": "plugin-loader", "plugin-loader-src": "plugin-loader-src",
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1773962509, "lastModified": 1779522232,
"narHash": "sha256-DAHcc8ghdDEX+xHPjuKf7qXSL/5G9NqP3mrq5jAKFi0=", "narHash": "sha256-43PUS3kPWEWVArFV9h1m4mrWIdHeeVXv7kdteYhobOs=",
"owner": "mrshmllow", "owner": "mrshmllow",
"repo": "affinity-nix", "repo": "affinity-nix",
"rev": "494090443b8086f14ce851ecba8463800176c1c1", "rev": "328f8f66e375c64255dc3cb3453271aab4d4c273",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +68,11 @@
"base16-helix": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760703920, "lastModified": 1776754714,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", "narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-helix", "repo": "base16-helix",
"rev": "d646af9b7d14bff08824538164af99d0c521b185", "rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -96,33 +98,67 @@
"type": "github" "type": "github"
} }
}, },
"elemental-wine-source": { "corefonts": {
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.winehq.org", "lastModified": 1431183738,
"lastModified": 1722747031, "narHash": "sha256-610Km9GCtYWxi2SH5jH/XYPXc5f58q5lB05/5XxO/qM=",
"narHash": "sha256-XVhz9p2kgFBoJ376vg8OaFXxcMEjAe9AK1hk0I1rb1Q=", "owner": "pushcx",
"owner": "ElementalWarrior", "repo": "corefonts",
"repo": "wine", "rev": "8f8627b0004b5f1b952c09cf6390e4ae46475e59",
"rev": "a7c9b19e1a26cf49c63a7c19189a3e2bbe2c6ac2", "type": "github"
"type": "gitlab"
}, },
"original": { "original": {
"host": "gitlab.winehq.org", "owner": "pushcx",
"owner": "ElementalWarrior", "repo": "corefonts",
"ref": "affinity-photo3-wine9.13-part3", "type": "github"
"repo": "wine", }
"type": "gitlab" },
"crane": {
"locked": {
"lastModified": 1779130139,
"narHash": "sha256-BLrtr42azquO7MdGFU5a7KiMl3YpFlTeIXqy1fT5GlQ=",
"owner": "ipetkov",
"repo": "crane",
"rev": "edb38893982a3338972bb4a2ec7ce7c29ba10fd9",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
} }
}, },
"fenix": { "fenix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"garandos-tui", "affinity-nix",
"nixpkgs" "nixpkgs"
], ],
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": {
"lastModified": 1779270500,
"narHash": "sha256-r60KTphdevmdIDz1iJ529HvcpOq082ZZ1OnN3jDnrqk=",
"owner": "nix-community",
"repo": "fenix",
"rev": "848395a91def85c11694587636151d89555f1ddb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"fenix_2": {
"inputs": {
"nixpkgs": [
"garandos-tui",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src_2"
},
"locked": { "locked": {
"lastModified": 1762929886, "lastModified": 1762929886,
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=", "narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
@@ -145,11 +181,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1774152686, "lastModified": 1779508957,
"narHash": "sha256-RlEgsdHr9IQm79SsXKNT8iU+ZjjIOPTJXcatMqgSfwk=", "narHash": "sha256-gNwsa7Hwp+pUNe9pvv2aFphcFnm8BoCUUQRm0HXJHD0=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "4c83dbe717272428562a33db817f492195e227ae", "rev": "3bd76938b820b6f7cf537fffa206bb6a73094b4f",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -162,11 +198,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764873433, "lastModified": 1776136500,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", "narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", "rev": "0f8ba203d475587f477e7ae12661bd8459e225b7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -209,11 +245,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1769996383, "lastModified": 1778716662,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -229,11 +265,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767609335, "lastModified": 1775087534,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca", "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -260,7 +296,7 @@
}, },
"garandos-tui": { "garandos-tui": {
"inputs": { "inputs": {
"fenix": "fenix", "fenix": "fenix_2",
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
@@ -290,11 +326,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769939035, "lastModified": 1778507602,
"narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=", "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "a8ca480175326551d6c4121498316261cbb5b260", "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -326,20 +362,18 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.gnome.org",
"lastModified": 1767737596, "lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49", "rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab" "type": "github"
}, },
"original": { "original": {
"host": "gitlab.gnome.org",
"owner": "GNOME", "owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "gitlab" "rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
} }
}, },
"home-manager": { "home-manager": {
@@ -349,11 +383,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774201162, "lastModified": 1779507042,
"narHash": "sha256-th4i3X3P3yikPk3qu1A5DQ40tIztZKvAKPaa9hjXF+U=", "narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "932ca46013acabbedd13c27dc278e3d043707e46", "rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -366,11 +400,11 @@
"libnbtplusplus": { "libnbtplusplus": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1744811532, "lastModified": 1772016279,
"narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=", "narHash": "sha256-7itkptyjoRcXfGLwg1/jxajetZ3a4mDc66+w4X6yW8s=",
"owner": "PrismLauncher", "owner": "PrismLauncher",
"repo": "libnbtplusplus", "repo": "libnbtplusplus",
"rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78", "rev": "687e43031df0dc641984b4256bcca50d5b3f7de3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -422,11 +456,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1773821835, "lastModified": 1779508470,
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", "narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", "rev": "29916453413845e54a65b8a1cf996842300cd299",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -438,11 +472,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1769909678, "lastModified": 1777168982,
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", "narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "72716169fe93074c333e8d0173151350670b824c", "rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -467,22 +501,6 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": {
"locked": {
"lastModified": 1770107345,
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"noctalia": { "noctalia": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -491,11 +509,11 @@
"noctalia-qs": "noctalia-qs" "noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1774202729, "lastModified": 1779504029,
"narHash": "sha256-rSyMyO1xwqOUwYYQz8R89VKygYMNhvpiqOXp9Fp0mEA=", "narHash": "sha256-f8u9DV9Qk8KJh7DVvk4UgUFTN0NDJeFxgrffTSwPkpA=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "56c0904dc6f1c1b2fbfc06756252eda5c8828a60", "rev": "b99b7a7f06ff749df9ac43181ff7889ff90c5599",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -514,11 +532,11 @@
"treefmt-nix": "treefmt-nix_2" "treefmt-nix": "treefmt-nix_2"
}, },
"locked": { "locked": {
"lastModified": 1774059741, "lastModified": 1778983195,
"narHash": "sha256-ObYsrf7XLJDqWVbJ+GWH5JYV/EUc7SVdhGx5r5wWKno=", "narHash": "sha256-hE3EFK5GoSdbO5WHZ8bZDUVYkofbDLQN/KK25z7IOOI=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-qs", "repo": "noctalia-qs",
"rev": "c9beee5c634ec784af128b8e7c56db14012ab17f", "rev": "4116b41cdc89e186be7cb8b24a9b6022af95d742",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -538,11 +556,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767810917, "lastModified": 1777598946,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=", "narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4", "rev": "5d55af01c0f86be583931fe99207fc56c14134b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -554,11 +572,11 @@
"on-linux": { "on-linux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1769366983, "lastModified": 1772699425,
"narHash": "sha256-uBLHcm0WP8n4ms7eV05wt4mc9uvUo9OVMM/41lW+u8Q=", "narHash": "sha256-xhqkN2I5r+Ty2k8HEsLg5e8Eaazb0Qyioqjs87BQOnY=",
"owner": "seapear", "owner": "seapear",
"repo": "AffinityOnLinux", "repo": "AffinityOnLinux",
"rev": "c3909c9e265f8091b9b0b26d8f51815a0a19e547", "rev": "a0c4421946709c24c3f371fcbf15a45b814f188c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -567,16 +585,21 @@
"type": "github" "type": "github"
} }
}, },
"plugin-loader": { "plugin-loader-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"narHash": "sha256-mixBa/xIfSIrSS3+bGqznXxSE6h8s7e2xoJM2g4eXhg=", "lastModified": 1776972538,
"type": "file", "narHash": "sha256-2EvrOYQCB2Z2YXhcPnjR67KoOCvwTVW3TfLcmU3//ak=",
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz" "owner": "noahc3",
"repo": "AffinityPluginLoader",
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
"type": "github"
}, },
"original": { "original": {
"type": "file", "owner": "noahc3",
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz" "repo": "AffinityPluginLoader",
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
"type": "github"
} }
}, },
"prismlauncher-cracked": { "prismlauncher-cracked": {
@@ -587,11 +610,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771797779, "lastModified": 1776795718,
"narHash": "sha256-VjN8CBG3KLaqP7yFYWvLQuCwivh4RBjzWkWlMlxYjdI=", "narHash": "sha256-YrqHeE9ZEnmxJiXE+IBAxbmNRFPE7mn9KbxZ3Mpu388=",
"owner": "Diegiwg", "owner": "Diegiwg",
"repo": "PrismLauncher-Cracked", "repo": "PrismLauncher-Cracked",
"rev": "356e6d7edc4a1b8b28d1a9a04057a2a3ea8655e4", "rev": "0c20d448a3c89cbff85ef5dc7420bf60dc1e65ff",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -614,6 +637,23 @@
} }
}, },
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1779221047,
"narHash": "sha256-HkOWI9C4kxA6xkS9GXhe4hAAme7ekOWje3b1U7rLSIo=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "f4bd646a7867c7814770168e0d4b9bd3418c1066",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"rust-analyzer-src_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1762860488, "lastModified": 1762860488,
@@ -644,18 +684,17 @@
], ],
"nur": "nur", "nur": "nur",
"systems": "systems_2", "systems": "systems_2",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux", "tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1774124764, "lastModified": 1779378391,
"narHash": "sha256-Poz9WTjiRlqZIf197CrMMJfTifZhrZpbHFv0eU1Nhtg=", "narHash": "sha256-IsDb9erotvx9npI94UDosvMeYQK17p7/vmU2v9batrY=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "e31c79f571c5595a155f84b9d77ce53a84745494", "rev": "c1456cc4ba3c9485e7b4158c909eeca5a752cd59",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -694,23 +733,6 @@
"type": "github" "type": "github"
} }
}, },
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -730,11 +752,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767710407, "lastModified": 1777041405,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=", "narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2", "rev": "5f868b3a338b6904c47f3833b9c411be641983a8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -746,11 +768,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767489635, "lastModified": 1777169200,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", "narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", "rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -762,11 +784,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767488740, "lastModified": 1777463218,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", "narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", "rev": "5768d08ed2e7944a26a958868cdb073cb8856dae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -782,11 +804,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769691507, "lastModified": 1775636079,
"narHash": "sha256-8aAYwyVzSSwIhP2glDhw/G0i5+wOrren3v6WmxkVonM=", "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b", "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -797,14 +819,18 @@
}, },
"treefmt-nix_2": { "treefmt-nix_2": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2" "nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1772660329, "lastModified": 1775636079,
"narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=", "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "3710e0e1218041bbad640352a0440114b1e10428", "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
+1 -1
View File
@@ -58,7 +58,7 @@
} }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless inter.. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+4 -2
View File
@@ -5,7 +5,7 @@ _: {
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = { zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor enable = true; # Zed Editor: a modern, highperformance code editor
remote-server.enable = true; # Remote Server: enable remote editing capabilities remote-server.enable = false; # Remote Server: enable remote editing capabilities
}; };
/* /*
@@ -18,6 +18,7 @@ _: {
System utilities System utilities
*/ */
btop.enable = true; # Btop: a resource monitor for the terminal btop.enable = true; # Btop: a resource monitor for the terminal
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
cava.enable = false; # Cava: terminal audio visualizer cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool fastfetch.enable = true; # Fastfetch: a fast system information tool
@@ -57,9 +58,10 @@ _: {
messenger.enable = true; # Messenger: Facebook Messenger messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model chatgpt.enable = false; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard glance.enable = true; # Glance: my home server dashboard
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
}; };
}; };
} }
+14
View File
@@ -0,0 +1,14 @@
{
printEnable = true;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
+26 -6
View File
@@ -10,6 +10,7 @@ _: {
sober.enable = false; # Roblox client sober.enable = false; # Roblox client
warehouse.enable = true; # Flatpak manager warehouse.enable = true; # Flatpak manager
flatseal.enable = true; # Flatpak permissions manager flatseal.enable = true; # Flatpak permissions manager
upscaler.enable = true; # Upscaler: Upscale and enhance images
}; };
}; };
@@ -30,18 +31,34 @@ _: {
gamescope.enable = false; # Gamescope: microcompositor for games gamescope.enable = false; # Gamescope: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games steam.enable = true; # Steam: platform for buying and playing games
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
/*
Utilities / Misc
*/
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = { packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/* /*
Container & Packaging Container & Packaging
*/ */
distrobox.enable = false; # Distrobox: containerized development environments distrobox.enable = false; # Distrobox: containerized development environments
lazydocker.enable = false; # Lazydocker: simple TUI for Docker lazydocker.enable = false; # Lazydocker: simple TUI for Docker
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
boxes.enable = false; # Gnome-Boxes: virtual machine manager
/* /*
Gaming Gaming
*/ */
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
@@ -49,11 +66,11 @@ _: {
/* /*
Development Tools Development Tools
*/ */
exercism.enable = true; # Exercism: coding practice platform exercism.enable = false; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git lazygit.enable = false; # Lazygit: simple TUI for Git
opencode.enable = false; # OpenCode: tools for coding and development opencode.enable = false; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = true; # Logisim-Evolution: Digital logic designer and simulator logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
/* /*
Communication & Collaboration Communication & Collaboration
@@ -64,6 +81,8 @@ _: {
signal.enable = true; # Signal: secure messaging app signal.enable = true; # Signal: secure messaging app
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux 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 ferdium.enable = false; # Ferdium: All your services in one place built by the community
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management
@@ -75,13 +94,14 @@ _: {
/* /*
Media & Graphics Media & Graphics
*/ */
affinity.enable = true; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer eyeOfGnome.enable = true; # Eye of GNOME: image viewer
switcheroo.enable = false; # Switcheroo: file conversion tool
freetube.enable = false; # FreeTube: privacyfriendly YouTube client freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: GNU Image Manipulation Program gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = false; # Kdenlive: video editing software kdenlive.enable = true; # Kdenlive: video editing software
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
plex.enable = true; # Plex: media player and server client plex.enable = true; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player
/* /*
Utilities / Misc Utilities / Misc
@@ -89,7 +109,7 @@ _: {
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
gedit.enable = true; # Gedit: GNOME text editor gedit.enable = true; # Gedit: GNOME text editor
winboat.enable = true; # Winboat: Windows remote desktop via RDP winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools adb.enable = false; # ADB: Android SDK platform tools
}; };
} }
+16 -14
View File
@@ -33,7 +33,7 @@
nvidiaID = "PCI:0:2:0"; nvidiaID = "PCI:0:2:0";
# Enable NFS # Enable NFS
enableNFS = true; enableNFS = false;
# Enable Printing Support # Enable Printing Support
printEnable = true; printEnable = true;
@@ -42,19 +42,21 @@
# This will set your color palette # This will set your color palette
# Default background # Default background
# Add new images to ~/garandos/wallpapers # Add new images to ~/garandos/wallpapers
stylixImage = "attack-on-titan-mikasa-ackerman.jpg"; # stylixImage = "Attack-on-Titan-1.jpg"; # og/10
#stylixImage = "DW_Pacts.jpg"; stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
#stylixImage = "edward-elric-fullmetal-alchemist.jpg"; # stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
#stylixImage = "fire-nation.jpg"; # stylixImage = "Avatar-1.jpg"; # 5/10
#stylixImage = "four-elements.jpg"; # stylixImage = "Avatar-2.jpg"; # 4/10
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png"; # stylixImage = "Avatar-3.jpg"; # 2/10
#stylixImage = "Grounded_Wallpaper_4K.jpg"; # stylixImage = "Avatar-4.jpg"; # 3/10
#stylixImage = "jablon.jpg"; # stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
#stylixImage = "rammstein-log-two.jpg"; # stylixImage = "Friren-1.jpg"; # 6.5/10
#stylixImage = "rammstein-logo-one.jpg"; # stylixImage = "Friren-2.jpg"; # 2/10
#stylixImage = "rammstein-logo-three.jpg"; # stylixImage = "Friren-3.jpg"; # 4/10
#stylixImage = "rammstein-one.jpg"; # stylixImage = "Jablon.png"; # 1/10
#stylixImage = "1346530.jpeg"; # stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
# Set network hostId if required (needed for zfs) # Set network hostId if required (needed for zfs)
# Otherwise leave as-is # Otherwise leave as-is
+4 -1
View File
@@ -61,5 +61,8 @@
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware = {
amdgpu.opencl.enable = true;
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
} }
+5 -3
View File
@@ -5,19 +5,20 @@ _: {
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = { zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor enable = true; # Zed Editor: a modern, highperformance code editor
remote-server.enable = true; # Remote Server: enable remote editing capabilities remote-server.enable = false; # Remote Server: enable remote editing capabilities
}; };
/* /*
Web browsers Web browsers
*/ */
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
/* /*
System utilities System utilities
*/ */
btop.enable = true; # Btop: a resource monitor for the terminal btop.enable = true; # Btop: a resource monitor for the terminal
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
cava.enable = false; # Cava: terminal audio visualizer cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool fastfetch.enable = true; # Fastfetch: a fast system information tool
@@ -57,9 +58,10 @@ _: {
messenger.enable = true; # Messenger: Facebook Messenger messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model chatgpt.enable = false; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard glance.enable = true; # Glance: my home server dashboard
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
}; };
}; };
} }
+14
View File
@@ -0,0 +1,14 @@
{
printEnable = true;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
+26 -6
View File
@@ -3,13 +3,14 @@ _: {
Container & Packaging Container & Packaging
*/ */
docker.enable = true; # Docker: container runtime and management docker.enable = true; # Docker: container runtime and management
virtualbox.enable = true; # VirtualBox: PC emulator virtualbox.enable = false; # VirtualBox: PC emulator
flatpak = { flatpak = {
enable = true; # Flatpak: universal packaging system for Linux enable = true; # Flatpak: universal packaging system for Linux
packages = { packages = {
sober.enable = false; # Roblox client sober.enable = false; # Roblox client
warehouse.enable = true; # Flatpak manager warehouse.enable = true; # Flatpak manager
flatseal.enable = true; # Flatpak permissions manager flatseal.enable = true; # Flatpak permissions manager
upscaler.enable = true; # Upscaler: Upscale and enhance images
}; };
}; };
@@ -30,18 +31,34 @@ _: {
gamescope.enable = false; # Gamescope: microcompositor for games gamescope.enable = false; # Gamescope: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games steam.enable = true; # Steam: platform for buying and playing games
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
/*
Utilities / Misc
*/
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = { packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/* /*
Container & Packaging Container & Packaging
*/ */
distrobox.enable = false; # Distrobox: containerized development environments distrobox.enable = false; # Distrobox: containerized development environments
lazydocker.enable = false; # Lazydocker: simple TUI for Docker lazydocker.enable = false; # Lazydocker: simple TUI for Docker
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
boxes.enable = false; # Gnome-Boxes: virtual machine manager
/* /*
Gaming Gaming
*/ */
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
@@ -49,7 +66,7 @@ _: {
/* /*
Development Tools Development Tools
*/ */
exercism.enable = true; # Exercism: coding practice platform exercism.enable = false; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git lazygit.enable = false; # Lazygit: simple TUI for Git
opencode.enable = false; # OpenCode: tools for coding and development opencode.enable = false; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI jan.enable = true; # Jan: AI chat UI
@@ -64,6 +81,8 @@ _: {
signal.enable = true; # Signal: secure messaging app signal.enable = true; # Signal: secure messaging app
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux 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 ferdium.enable = false; # Ferdium: All your services in one place built by the community
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management
@@ -75,20 +94,21 @@ _: {
/* /*
Media & Graphics Media & Graphics
*/ */
affinity.enable = true; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer eyeOfGnome.enable = true; # Eye of GNOME: image viewer
switcheroo.enable = false; # Switcheroo: file conversion tool
freetube.enable = false; # FreeTube: privacyfriendly YouTube client freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: GNU Image Manipulation Program gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = false; # Kdenlive: video editing software kdenlive.enable = false; # Kdenlive: video editing software
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
plex.enable = true; # Plex: media player and server client plex.enable = true; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player
/* /*
Utilities / Misc Utilities / Misc
*/ */
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
gedit.enable = false; # Gedit: GNOME text editor gedit.enable = true; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools adb.enable = false; # ADB: Android SDK platform tools
}; };
+16 -17
View File
@@ -33,28 +33,27 @@
nvidiaID = "PCI:0:2:0"; nvidiaID = "PCI:0:2:0";
# Enable NFS # Enable NFS
enableNFS = true; enableNFS = false;
# Enable Printing Support
printEnable = false;
# Set Stylix Image # Set Stylix Image
# This will set your color palette # This will set your color palette
# Default background # Default background
# Add new images to ~/garandos/wallpapers # Add new images to ~/garandos/wallpapers
stylixImage = "attack-on-titan-mikasa-ackerman.jpg"; # stylixImage = "Attack-on-Titan-1.jpg"; # og/10
#stylixImage = "DW_Pacts.jpg"; stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
#stylixImage = "edward-elric-fullmetal-alchemist.jpg"; # stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
#stylixImage = "fire-nation.jpg"; # stylixImage = "Avatar-1.jpg"; # 5/10
#stylixImage = "four-elements.jpg"; # stylixImage = "Avatar-2.jpg"; # 4/10
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png"; # stylixImage = "Avatar-3.jpg"; # 2/10
#stylixImage = "Grounded_Wallpaper_4K.jpg"; # stylixImage = "Avatar-4.jpg"; # 3/10
#stylixImage = "jablon.jpg"; # stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
#stylixImage = "rammstein-log-two.jpg"; # stylixImage = "Friren-1.jpg"; # 6.5/10
#stylixImage = "rammstein-logo-one.jpg"; # stylixImage = "Friren-2.jpg"; # 2/10
#stylixImage = "rammstein-logo-three.jpg"; # stylixImage = "Friren-3.jpg"; # 4/10
#stylixImage = "rammstein-one.jpg"; # stylixImage = "Jablon.png"; # 1/10
#stylixImage = "1346530.jpeg"; # stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
# Set network hostId if required (needed for zfs) # Set network hostId if required (needed for zfs)
# Otherwise leave as-is # Otherwise leave as-is
+2
View File
@@ -18,6 +18,7 @@ _: {
System utilities System utilities
*/ */
btop.enable = true; # Btop: a resource monitor for the terminal btop.enable = true; # Btop: a resource monitor for the terminal
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
cava.enable = false; # Cava: terminal audio visualizer cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool fastfetch.enable = true; # Fastfetch: a fast system information tool
@@ -60,6 +61,7 @@ _: {
chatgpt.enable = true; # ChatGPT: a large language model chatgpt.enable = true; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard glance.enable = true; # Glance: my home server dashboard
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
}; };
}; };
} }
+21
View File
@@ -0,0 +1,21 @@
{
# Whether printing services should be enabled.
printEnable = false;
# Name of the default printer.
ensureDefaultPrinter = "[name]";
# List of printers to ensure are configured.
ensurePrinters = [
{
# URI of the printer device.
deviceUri = "ipp://[IPv4]/ipp";
# Physical location description of the printer.
location = "[location]";
# Humanreadable printer name.
name = "[name]";
# Printer model; "everywhere" uses generic driver.
model = "everywhere";
}
];
}
+21 -1
View File
@@ -10,6 +10,7 @@ _: {
sober.enable = false; # Roblox client sober.enable = false; # Roblox client
warehouse.enable = true; # Flatpak manager warehouse.enable = true; # Flatpak manager
flatseal.enable = true; # Flatpak permissions manager flatseal.enable = true; # Flatpak permissions manager
upscaler.enable = false; # Upscaler: Upscale and enhance images
}; };
}; };
@@ -30,13 +31,29 @@ _: {
gamescope.enable = false; # Gamescope: microcompositor for games gamescope.enable = false; # Gamescope: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games steam.enable = true; # Steam: platform for buying and playing games
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
/*
Utilities / Misc
*/
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = { packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/* /*
Container & Packaging Container & Packaging
*/ */
distrobox.enable = false; # Distrobox: containerized development environments distrobox.enable = false; # Distrobox: containerized development environments
lazydocker.enable = false; # Lazydocker: simple TUI for Docker lazydocker.enable = false; # Lazydocker: simple TUI for Docker
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
boxes.enable = false; # Gnome-Boxes: virtual machine manager
/* /*
Gaming Gaming
@@ -64,6 +81,8 @@ _: {
signal.enable = true; # Signal: secure messaging app signal.enable = true; # Signal: secure messaging app
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux 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 ferdium.enable = false; # Ferdium: All your services in one place built by the community
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management
@@ -75,13 +94,14 @@ _: {
/* /*
Media & Graphics Media & Graphics
*/ */
affinity.enable = false; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer eyeOfGnome.enable = true; # Eye of GNOME: image viewer
switcheroo.enable = false; # Switcheroo: file conversion tool
freetube.enable = false; # FreeTube: privacyfriendly YouTube client freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: GNU Image Manipulation Program gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = false; # Kdenlive: video editing software kdenlive.enable = false; # Kdenlive: video editing software
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
plex.enable = true; # Plex: media player and server client plex.enable = true; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player
/* /*
Utilities / Misc Utilities / Misc
+16 -14
View File
@@ -35,7 +35,7 @@
nvidiaID = "PCI:0:2:0"; nvidiaID = "PCI:0:2:0";
# Enable NFS # Enable NFS
enableNFS = true; enableNFS = false;
# Enable Printing Support # Enable Printing Support
printEnable = false; printEnable = false;
@@ -48,19 +48,21 @@
# This will set your color palette # This will set your color palette
# Default background # Default background
# Add new images to ~/garandos/wallpapers # Add new images to ~/garandos/wallpapers
stylixImage = "attack-on-titan-mikasa-ackerman.jpg"; # stylixImage = "Attack-on-Titan-1.jpg"; # og/10
#stylixImage = "DW_Pacts.jpg"; stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
#stylixImage = "edward-elric-fullmetal-alchemist.jpg"; # stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
#stylixImage = "fire-nation.jpg"; # stylixImage = "Avatar-1.jpg"; # 5/10
#stylixImage = "four-elements.jpg"; # stylixImage = "Avatar-2.jpg"; # 4/10
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png"; # stylixImage = "Avatar-3.jpg"; # 2/10
#stylixImage = "Grounded_Wallpaper_4K.jpg"; # stylixImage = "Avatar-4.jpg"; # 3/10
#stylixImage = "jablon.jpg"; # stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
#stylixImage = "rammstein-log-two.jpg"; # stylixImage = "Friren-1.jpg"; # 6.5/10
#stylixImage = "rammstein-logo-one.jpg"; # stylixImage = "Friren-2.jpg"; # 2/10
#stylixImage = "rammstein-logo-three.jpg"; # stylixImage = "Friren-3.jpg"; # 4/10
#stylixImage = "rammstein-one.jpg"; # stylixImage = "Jablon.png"; # 1/10
#stylixImage = "1346530.jpeg"; # stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
# Set network hostId if required (needed for zfs) # Set network hostId if required (needed for zfs)
# Otherwise leave as-is # Otherwise leave as-is
+14
View File
@@ -0,0 +1,14 @@
{
pkgs,
lib,
config,
inputs,
...
}: {
options.affinity.enable = lib.mkEnableOption "Affinity";
config = lib.mkIf config.affinity.enable {
nixpkgs.overlays = [inputs.affinity-nix.overlays.default];
environment.systemPackages = with pkgs; [affinity-v3];
};
}
+5 -11
View File
@@ -1,7 +1,6 @@
{ {
pkgs, pkgs,
config, config,
lib,
... ...
}: { }: {
boot = { boot = {
@@ -15,16 +14,11 @@
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
limine = { limine = {
enable = true; enable = true;
style = { package = pkgs.limine;
wallpapers = [ resolution = "1920x1080";
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg style.interface = {
]; branding = "GarandOS Bootloader";
wallpaperStyle = lib.mkForce "centered"; brandingColor = "${config.stylix.base16Scheme.base01}";
backdrop = "${config.stylix.base16Scheme.base00}";
interface = {
branding = "GarandOS Bootloader";
resolution = "1920x1080";
};
}; };
}; };
}; };
+2 -1
View File
@@ -1,6 +1,7 @@
{inputs, ...}: { {inputs, ...}: {
imports = [ imports = [
./packages ./packages
./affinity.nix
./boot.nix ./boot.nix
./calendar.nix ./calendar.nix
./docker.nix ./docker.nix
@@ -12,7 +13,6 @@
./nfs.nix ./nfs.nix
./nh.nix ./nh.nix
./printing.nix ./printing.nix
./quickshell.nix
./greetd.nix ./greetd.nix
./security.nix ./security.nix
./services.nix ./services.nix
@@ -23,6 +23,7 @@
./tailscale.nix ./tailscale.nix
./thunar.nix ./thunar.nix
./user.nix ./user.nix
./ventoy.nix
./virtualbox.nix ./virtualbox.nix
./xdg.nix ./xdg.nix
./xserver.nix ./xserver.nix
+8 -1
View File
@@ -2,12 +2,19 @@
pkgs, pkgs,
lib, lib,
config, config,
host,
... ...
}: { }: let
inherit (import ../../hosts/${host}/variables.nix) profile;
in {
options.docker.enable = lib.mkEnableOption "Docker"; options.docker.enable = lib.mkEnableOption "Docker";
config.virtualisation.docker = lib.mkIf config.docker.enable { config.virtualisation.docker = lib.mkIf config.docker.enable {
enable = true; enable = true;
enableNvidia =
if profile == "nvidia"
then true
else false;
package = pkgs.docker; package = pkgs.docker;
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"]; daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
}; };
+1
View File
@@ -14,6 +14,7 @@
sober = "org.vinegarhq.Sober"; sober = "org.vinegarhq.Sober";
warehouse = "io.github.flattool.Warehouse"; warehouse = "io.github.flattool.Warehouse";
flatseal = "com.github.tchx84.Flatseal"; flatseal = "com.github.tchx84.Flatseal";
upscaler = "io.gitlab.theevilskeleton.Upscaler";
}; };
in { in {
options.flatpak.enable = lib.mkEnableOption "Flatpak"; options.flatpak.enable = lib.mkEnableOption "Flatpak";
@@ -0,0 +1,20 @@
{
pkgs,
lib,
config,
...
}: let
mkAppImagePackage = name: pkg: {
options.packages.appImages.${name}.enable = lib.mkEnableOption name;
config.environment.systemPackages =
lib.mkIf config.packages.appImages.${name}.enable [pkg];
};
appImagePackages = {
fluxer = pkgs.callPackage ./fluxer.nix {};
helium = pkgs.callPackage ./helium.nix {};
};
in {
imports = builtins.attrValues (builtins.mapAttrs mkAppImagePackage appImagePackages);
}
@@ -11,6 +11,8 @@
sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw="; sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
}; };
appimageContents = appimageTools.extract {inherit pname version src;}; appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "512x512";
in in
appimageTools.wrapType2 { appimageTools.wrapType2 {
inherit pname version src; inherit pname version src;
@@ -18,8 +20,8 @@ in
extraInstallCommands = '' extraInstallCommands = ''
# mv $out/bin/${pname}-${version} $out/bin/${pname} # mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/${pname}.png \ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/512x512/apps/${pname}.png $out/share/icons/hicolor/${iconSize}/apps/${pname}.png
substituteInPlace $out/share/applications/${pname}.desktop \ substituteInPlace $out/share/applications/${pname}.desktop \
--replace-fail 'Exec=AppRun' 'Exec=${pname}' --replace-fail 'Exec=AppRun' 'Exec=${pname}'
''; '';
@@ -0,0 +1,39 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "helium";
version = "0.12.4.1";
src = fetchurl {
url = "https://github.com/imputnet/helium-linux/releases/download/${version}/helium-${version}-x86_64.AppImage";
sha256 = "sha256-OgS8HkLBseFrEhNFJxMwp1bg0gzPdfY1VaySAAp7vq0=";
};
appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "256x256";
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
# mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/${iconSize}/apps/${pname}.png
# substituteInPlace $out/share/applications/${pname}.desktop \
# --replace-fail 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "Helium browser";
homepage = "https://github.com/imputnet/helium";
license = licenses.agpl3Plus;
platforms = ["x86_64-linux"];
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
maintainers = with lib.maintainers; [garand_plg];
};
}
# https://github.com/imputnet/helium-linux/releases/download/0.11.7.1/helium-0.11.7.1-x86_64.AppImage
+1 -1
View File
@@ -1,7 +1,7 @@
_: { _: {
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
imports = [ imports = [
./fluxer ./appimages
./essentials.nix ./essentials.nix
./packages.nix ./packages.nix
./programs.nix ./programs.nix
+4 -1
View File
@@ -27,6 +27,7 @@
duf duf
dysk dysk
ncdu ncdu
smartmontools
# Network & system utilities # Network & system utilities
ripgrep ripgrep
wget wget
@@ -35,6 +36,7 @@
brightnessctl brightnessctl
killall killall
dex dex
ffmpeg
# Desktop environment # Desktop environment
networkmanagerapplet networkmanagerapplet
tuigreet tuigreet
@@ -42,6 +44,7 @@
waypaper waypaper
uwsm uwsm
hyprpicker hyprpicker
hyprshot
cliphist cliphist
# Development utilities # Development utilities
pkg-config pkg-config
@@ -58,7 +61,7 @@
app2unit app2unit
gpu-screen-recorder gpu-screen-recorder
# hyprland # hyprland
swww awww
grim grim
slurp slurp
wl-clipboard wl-clipboard
-6
View File
@@ -1,6 +0,0 @@
{pkgs, ...}: let
fluxer =
pkgs.callPackage ./fluxer-package.nix {};
in {
environment.systemPackages = [fluxer];
}
+30 -6
View File
@@ -31,18 +31,39 @@
spaceCadetPinball = space-cadet-pinball; spaceCadetPinball = space-cadet-pinball;
ttySolitaire = tty-solitaire; ttySolitaire = tty-solitaire;
gimp = gimp; gimp = gimp;
affinity = inputs.affinity-nix.packages.${system}.v3;
eyeOfGnome = eog; eyeOfGnome = eog;
kdenlive = kdePackages.kdenlive; kdenlive = kdePackages.kdenlive.overrideAttrs (old: {
postInstall =
(old.postInstall or "")
+ ''
wrapProgram $out/bin/kdenlive \
--set QT_SCALE_FACTOR 0.8
'';
});
plex = [ plex = [
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};}) (
# plex-desktop plex-desktop.override {
extraEnv = {
QT_QPA_PLATFORM = "xcb";
};
}
)
plexamp plexamp
]; ];
jellyfin = [
tsukimi
finamp
];
freetube = freetube; freetube = freetube;
lazydocker = lazydocker; lazydocker = lazydocker;
distrobox = [distrobox pkgs.boxbuddy]; distrobox = [
winboat = [winboat freerdp]; distrobox
pkgs.boxbuddy
];
winboat = [
winboat
freerdp
];
signal = signal-desktop; signal = signal-desktop;
pixieditor = pixieditor; pixieditor = pixieditor;
bottles = bottles; bottles = bottles;
@@ -51,6 +72,9 @@
teams = teams-for-linux; teams = teams-for-linux;
ferdium = ferdium; ferdium = ferdium;
logisim-evolution = logisim-evolution; logisim-evolution = logisim-evolution;
notify = notify-client;
boxes = gnome-boxes;
switcheroo = switcheroo;
}; };
in { in {
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages); imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
+31 -11
View File
@@ -1,18 +1,38 @@
{host, ...}: let {
inherit (import ../../hosts/${host}/variables.nix) printEnable; pkgs,
lib,
host,
...
}: let
inherit (import ../../hosts/${host}/printers.nix) printEnable ensureDefaultPrinter ensurePrinters;
in { in {
services = { services = lib.mkIf printEnable {
printing = { printing = {
enable = printEnable; enable = true;
drivers = [ drivers = with pkgs; [
# pkgs.hplipWithPlugin cups-filters
cups-browsed
]; ];
}; listenAddresses = ["*:631"];
avahi = { allowFrom = ["all"];
enable = printEnable; browsing = true;
nssmdns4 = true; defaultShared = true;
openFirewall = true; openFirewall = true;
}; };
ipp-usb.enable = printEnable; avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
publish = {
enable = true;
userServices = true;
};
};
ipp-usb.enable = true;
};
hardware.printers = lib.mkIf printEnable {
ensureDefaultPrinter = ensureDefaultPrinter;
ensurePrinters = ensurePrinters;
}; };
} }
-30
View File
@@ -1,30 +0,0 @@
{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";
};
};
}
+9
View File
@@ -36,5 +36,14 @@ in {
popups = 12; popups = 12;
}; };
}; };
targets.limine = {
enable = true;
colors.enable = true;
image.enable = true;
imageScalingMode = {
enable = true;
override = "tile";
};
};
}; };
} }
+1
View File
@@ -51,6 +51,7 @@ in {
"wheel" # sudo access "wheel" # sudo access
"vboxusers" # Virtual Box "vboxusers" # Virtual Box
"gamemode" "gamemode"
"lpadmin"
]; ];
shell = pkgs.bash; shell = pkgs.bash;
ignoreShellProgramCheck = true; ignoreShellProgramCheck = true;
+15
View File
@@ -0,0 +1,15 @@
{
pkgs,
lib,
config,
...
}: {
options.ventoy.enable = lib.mkEnableOption "Enable Ventoy";
config = lib.mkIf config.ventoy.enable {
environment.systemPackages = with pkgs; [ventoy-full-gtk];
nixpkgs.config.permittedInsecurePackages = [
"ventoy-gtk3-1.1.12"
];
};
}
+4 -2
View File
@@ -13,7 +13,9 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
environment.systemPackages = with pkgs; [nvidia-docker]; environment.systemPackages = with pkgs; [
nvidia-docker
];
hardware = { hardware = {
nvidia-container-toolkit.enable = true; nvidia-container-toolkit.enable = true;
nvidia = { nvidia = {
@@ -36,7 +38,7 @@ in {
# accessible via `nvidia-settings`. # accessible via `nvidia-settings`.
nvidiaSettings = true; nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU. # Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.beta; package = config.boot.kernelPackages.nvidiaPackages.stable;
}; };
}; };
}; };
+11 -10
View File
@@ -6,15 +6,15 @@
programs.bash.shellAliases = { programs.bash.shellAliases = {
# GarandOS aliases # GarandOS aliases
pullos = "git -C /home/${username}/garandos pull"; pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch --hostname ${host}"; upd = "nh os switch -H ${host} -d always";
upg = "nh os switch --hostname ${host} --update"; upg = "nh os switch -H ${host} --update -d always";
upf = "sudo nix flake update --flake /home/${username}/garandos"; upf = "sudo nix flake update --flake /home/${username}/garandos";
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock"; upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
upd-bt = "nh os boot --hostname ${host}"; upd-bt = "nh os boot -H ${host} -d always";
upd-ts = "nh os test --hostname ${host}"; upd-ts = "nh os test -H ${host} -d always";
upd-bd = "nh os build --hostname ${host}"; upd-bd = "nh os build -H ${host} -d always";
tui = "garandos-tui"; tui = "garandos-tui";
ncg = "nh clean all"; ncg = "nh clean all --optimise";
# Development aliases # Development aliases
## Django ## Django
@@ -35,9 +35,9 @@
# Development aliases for nix flake # Development aliases for nix flake
nd = "nix develop"; nd = "nix develop";
nb = "nix build"; nb = "nix build .";
nr = "nix run"; nr = "nix run .";
nbr = "nix build && nix run"; nbr = "nix build . && nix run .";
nbd = "nix build .#develop"; nbd = "nix build .#develop";
nrd = "nix run .#develop"; nrd = "nix run .#develop";
nbrd = "nix build .#develop && nix run .#develop"; nbrd = "nix build .#develop && nix run .#develop";
@@ -50,7 +50,8 @@
# System aliases # System aliases
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData"; # flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
kys = "shutdown now"; kys = "systemctl poweroff";
jezus = "systemctl reboot";
ookla = "speedtest"; ookla = "speedtest";
hypr-cli = "hyprctl clients"; hypr-cli = "hyprctl clients";
+17
View File
@@ -140,5 +140,22 @@ _: {
pwdtail() { pwdtail() {
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}' pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
} }
ffmpeg_dl() {
if [ "$#" -ne 3 ]; then
echo "Usage: ffmpeg_dl <url> <name> <fs_path>"
return 1
fi
local url="$1"
local name="$2"
local fs_path="$3"
mkdir -p "$fs_path"
local output="${"$"}{fs_path}/${"$"}{name}.mp4"
ffmpeg -i "$url" -c copy "$output"
}
''; '';
} }
+1
View File
@@ -15,6 +15,7 @@ _: {
./bat.nix ./bat.nix
./btop.nix ./btop.nix
./cava.nix ./cava.nix
./easyeffects.nix
./emoji.nix ./emoji.nix
./eza.nix ./eza.nix
./fzf.nix ./fzf.nix
+95
View File
@@ -0,0 +1,95 @@
{
pkgs,
lib,
config,
...
}: {
options.easyeffects.enable = lib.mkEnableOption "Easy Effects";
config.services.easyeffects = lib.mkIf config.easyeffects.enable {
enable = true;
package = pkgs.easyeffects;
preset = "Default";
extraPresets."Default".input = {
blocklist = [];
"deepfilternet#0" = {
attenuation-limit = 100.0;
bypass = false;
input-gain = 0.0;
max-df-processing-threshol = 20.0;
max-erb-processing-threshold = 30.0;
min-processing-buffer = 0;
min-processing-threshold = -10.0;
output-gain = 0.0;
post-filter-beta = 0.019999999552965164;
};
"exciter#0" = {
amount = 0.0;
blend = 0.0;
bypass = false;
ceil = 16000.0;
ceil-active = false;
harmonics = 8.5;
input-gain = 0.0;
output-gain = 0.0;
scope = 7500.0;
};
plugins_order = [
"rnnoise#0"
"deepfilternet#0"
"speex#0"
"exciter#0"
"stereo_tools#0"
];
"rnnoise#0" = {
bypass = false;
enable-vad = true;
input-gain = 5.0;
model-name = "\"\"";
output-gain = -5.0;
release = 20.0;
use-standard-model = true;
vad-thres = 50.0;
wet = 0.0;
};
"speex#0" = {
bypass = true;
enable-agc = true;
enable-denoise = true;
enable-dereverb = true;
input-gain = 0.0;
noise-suppression = -70;
output-gain = 0.0;
vad = {
enable = true;
probability-continue = 90;
probability-start = 95;
};
};
"stereo_tools#0" = {
balance-in = 0.0;
balance-out = 0.0;
bypass = false;
delay = 0.0;
dry = -100.0;
input-gain = 0.0;
middle-level = 0.0;
middle-panorama = 0.0;
mode = "LR > L+R (Mono Sum L+R)";
mutel = false;
muter = false;
output-gain = 0.0;
phasel = false;
phaser = false;
sc-level = 1.0;
side-balance = 0.0;
side-level = 0.0;
softclip = true;
stereo-base = 0.0;
stereo-phase = 0.0;
wet = 0.0;
};
};
};
}
+15 -5
View File
@@ -13,14 +13,16 @@
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\"" "SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\"" "SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
"SUPER, G, exec, affinity-v3 #\"Graphics editor\"" "SUPER, G, exec, affinity-v3 #\"Graphics editor\""
"SUPER, H, exec, helium #\"Helium web browser\""
"SUPER, I, exec, iotas #\"Note-taking app\"" "SUPER, I, exec, iotas #\"Note-taking app\""
"SUPER, J, exec, Jan #\"Local AI chat interface\"" "SUPER, J, exec, Jan #\"Local AI chat interface\""
"SUPER, K, exec, gnome-calculator #\"Scientific calculator\"" "SUPER, K, exec, gnome-calculator #\"Scientific calculator\""
"SUPER, L, exec, logseq #\"Knowledge management tool\"" "SUPER, L, exec, logseq #\"Knowledge management tool\""
"SUPER, M, exec, plexamp #\"Music player for Plex\"" "SUPER, M, exec, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\"" "SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\"" "SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
"SUPER, P, exec, plex-desktop #\"Plex media player\"" "SUPER, P, exec, plex-desktop #\"Plex media player\""
"SUPER, R, exec, noctalia-shell ipc call plugin:screen-recorder saveReplay #\"Save Replay\""
"SUPER, Return, exec, kitty #\"Kitty terminal\"" "SUPER, Return, exec, kitty #\"Kitty terminal\""
"SUPER, S, exec, steam #\"Steam Game launcher\"" "SUPER, S, exec, steam #\"Steam Game launcher\""
"SUPER, T, exec, thunar #\"File manager\"" "SUPER, T, exec, thunar #\"File manager\""
@@ -34,23 +36,28 @@
"SUPER SHIFT, E, exec, evolution #\"Personal information management application\"" "SUPER SHIFT, E, exec, evolution #\"Personal information management application\""
"SUPER SHIFT, Escape, exec, noctalia-shell ipc call sessionMenu toggle #\"Open Session Menu\"" "SUPER SHIFT, Escape, exec, noctalia-shell ipc call sessionMenu toggle #\"Open Session Menu\""
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop #\"ChatGPT AI chat\"" "SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop #\"ChatGPT AI chat\""
"SUPER SHIFT, J, exec, dex ${desktopEntriesPath}/jellyfinClient.desktop #\"Jellyfin PWA\""
"SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\"" "SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\"" "SUPER SHIFT, M, exec, plexamp #\"Music player for Plex\""
"SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\"" "SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\""
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\"" "SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\"" "SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
"SUPER SHIFT, R, exec, restart.noctalia #\"Restart Noctalia shell\"" "SUPER SHIFT, R, exec, restart-noctalia #\"Restart Noctalia shell\""
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\"" "SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\"" "SUPER SHIFT, S, exec, noctalia-shell ipc call plugin:screenshot takeScreenshot region #\"Take screenshot\""
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\"" "SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\"" "SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
]; ];
altBinds = [ altBinds = [
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\"" "SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\""
"SUPER ALT, F, exec, finamp #\"Jellyfin music client\""
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\"" "SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\""
"SUPER ALT, K, exec, kdenlive #\"Video editing software\""
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\"" "SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\""
"SUPER ALT, N, exec, noctalia-shell ipc call plugin:ntfy-notifications toggle #\"Open ntfy panel\""
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\"" "SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\""
"SUPER ALT, R, exec, noctalia-shell ipc call plugin:screen-recorder toggleReplay #\"Toggle Replay\""
"SUPER ALT, S, exec, slack #\"Slack team communication tool\"" "SUPER ALT, S, exec, slack #\"Slack team communication tool\""
"SUPER ALT, T, exec, gedit #\"GNOME text editor\"" "SUPER ALT, T, exec, gedit #\"GNOME text editor\""
"SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\"" "SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\""
@@ -60,14 +67,17 @@
"SUPER CONTROL, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\"" "SUPER CONTROL, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\""
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\"" "SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
"SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\"" "SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\""
"SUPER CONTROL, N, exec, noctalia-shell ipc call plugin:ntfy-notifications refresh #\"Refresh ntfy\""
"SUPER CONTROL, R, exec, noctalia-shell ipc call plugin:screen-recorder toggle #\"Toogle screen recording\""
"SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\"" "SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\""
"SUPER CONTROL, T, exec, tsukimi #\"A simple Emby/Jellyfin Client\""
"SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\"" "SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\""
]; ];
windowManagementBinds = [ windowManagementBinds = [
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\"" "SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
"SUPER, Q, killactive, #\"Close active window\"" "SUPER, Q, killactive, #\"Close active window\""
"SUPER SHIFT, I, togglesplit, #\"Toggle split layout\"" # "SUPER SHIFT, I, togglesplit, #\"Toggle split layout\""
"SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\"" "SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\""
]; ];
+3 -2
View File
@@ -1,9 +1,10 @@
_: { _: {
wayland.windowManager.hyprland.settings.exec-once = [ 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" "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user start hyprpolkitagent" "systemctl --user start hyprpolkitagent"
"noctalia-shell"
"wl-paste --type text --watch cliphist store" # Saves text
"wl-paste --type image --watch cliphist store" # Saves images
]; ];
} }
+7 -4
View File
@@ -21,12 +21,13 @@ in {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = pkgs.hyprland; package = pkgs.hyprland;
configType = "hyprlang"; # TODO: hyprlang => lua migration.
xwayland.enable = true;
systemd = { systemd = {
enable = true; enable = true;
enableXdgAutostart = true; enableXdgAutostart = true;
variables = ["--all"]; variables = ["--all"];
}; };
xwayland.enable = true;
settings = { settings = {
input = { input = {
kb_layout = "${keyboardLayout}"; kb_layout = "${keyboardLayout}";
@@ -76,7 +77,6 @@ in {
disable_splash_rendering = true; disable_splash_rendering = true;
enable_swallow = true; enable_swallow = true;
swallow_regex = "^(kitty)$"; swallow_regex = "^(kitty)$";
vfr = true; # Variable Frame Rate
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
# Screen flashing to black momentarily or going black when app is fullscreen # Screen flashing to black momentarily or going black when app is fullscreen
# Try setting vrr to 0 # Try setting vrr to 0
@@ -87,7 +87,7 @@ in {
}; };
dwindle = { dwindle = {
pseudotile = true; # pseudotile = true;
preserve_split = true; preserve_split = true;
force_split = 2; force_split = 2;
}; };
@@ -131,7 +131,10 @@ in {
direct_scanout = 0; direct_scanout = 0;
}; };
debug.full_cm_proto = true; debug = {
vfr = true; # Variable Frame Rate
full_cm_proto = true;
};
master = { master = {
new_status = "master"; new_status = "master";
+1 -1
View File
@@ -37,6 +37,6 @@
"privacy.clearOnShutdown.history" = true; "privacy.clearOnShutdown.history" = true;
"network.trr.mode" = 3; "network.trr.mode" = 3;
"network.trr.uri" = "https://dns.mullvad.net/dns-query"; "network.trr.uri" = "https://dns.quad9.net/dns-query";
}; };
} }
-33
View File
@@ -1,33 +0,0 @@
{
config,
lib,
...
}: let
stylix = config.stylix.base16Scheme;
in {
programs.noctalia-shell.colors = lib.mkForce {
mPrimary = "#${stylix.base04}";
mOnPrimary = "#${stylix.base00}";
mSecondary = "#${stylix.base05}";
mOnSecondary = "#${stylix.base00}";
mTertiary = "#${stylix.base03}";
mOnTertiary = "#${stylix.base00}";
mError = "#${stylix.base02}";
mOnError = "#${stylix.base00}";
mSurface = "#${stylix.base01}";
mOnSurface = "#${stylix.base0E}";
mSurfaceVariant = "#${stylix.base00}";
mOnSurfaceVariant = "#${stylix.base0A}";
mOutline = "#${stylix.base08}";
mShadow = "#${stylix.base00}";
mOnHover = "#${stylix.base0B}";
mHover = "#${stylix.base00}";
};
}
+1 -3
View File
@@ -1,5 +1,5 @@
{ {
lib, # lib,
inputs, inputs,
system, system,
... ...
@@ -9,13 +9,11 @@
package = inputs.noctalia.packages.${system}.default.override { package = inputs.noctalia.packages.${system}.default.override {
calendarSupport = true; calendarSupport = true;
}; };
systemd.enable = true;
# settings.settingsVersion = lib.mkForce 46; # settings.settingsVersion = lib.mkForce 46;
}; };
imports = [ imports = [
./settings ./settings
./colors.nix
./plugins.nix ./plugins.nix
]; ];
} }
+47
View File
@@ -27,6 +27,18 @@ in {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
screen-recorder = {
enabled = true;
sourceUrl = sourceUrl;
};
screenshot = {
enabled = true;
sourceUrl = sourceUrl;
};
ntfy-notifications = {
enabled = true;
sourceUrl = sourceUrl;
};
}; };
version = 2; version = 2;
}; };
@@ -45,6 +57,41 @@ in {
kde-connect = { kde-connect = {
hideIfNoDeviceConnected = true; hideIfNoDeviceConnected = true;
}; };
screen-recorder = {
hideInactive = true;
iconColor = "none";
directory = "";
filenamePattern = "recording_yyyyMMdd_HHmmss";
frameRate = 60;
audioCodec = "aac";
videoCodec = "hevc";
quality = "ultra";
colorRange = "full";
showCursor = true;
copyToClipboard = false;
audioSource = "both";
videoSource = "portal";
resolution = "1920x1080";
replayEnabled = true;
replayDuration = 60;
customReplayDuration = 30;
replayStorage = "disk";
restorePortalSession = true;
customFrameRate = 6;
};
screenshot.mode = "region";
# ntfy-notifications = {
# serverUrl = "https://ntfy.garandplg.com";
# topics = "beszel,dockhand,jellyfin,nixos-unstable,radarr,rss-feeds,seerr,sonarr";
# authMethod = "basic";
# authToken = "";
# authUsername = ''$(cat ${config.sops.secrets."credentials/ntfy/username".path})'';
# authPassword = ''$(cat ${config.sops.secrets."credentials/ntfy/password".path})'';
# pollInterval = 30;
# enableToasts = true;
# maxMessages = 100;
# readMessageIds = [];
# };
}; };
}; };
} }
@@ -4,6 +4,7 @@
id = "Tray"; id = "Tray";
blacklist = [ blacklist = [
"nm-applet" "nm-applet"
"Easy Effects"
]; ];
colorizeIcons = false; colorizeIcons = false;
drawerEnabled = false; drawerEnabled = false;
@@ -44,6 +45,31 @@
showPowerProfiles = true; showPowerProfiles = true;
warningThreshold = 30; warningThreshold = 30;
} }
{
id = "plugin:screen-recorder";
defaultSettings = {
hideInactive = true;
iconColor = "none";
directory = "";
filenamePattern = "recording_yyyyMMdd_HHmmss";
frameRate = 60;
audioCodec = "aac";
videoCodec = "hevc";
quality = "ultra";
colorRange = "full";
showCursor = true;
copyToClipboard = false;
audioSource = "both";
videoSource = "portal";
resolution = "1920x1080";
replayEnabled = true;
replayDuration = 60;
customReplayDuration = 30;
replayStorage = "disk";
restorePortalSession = true;
customFrameRate = 6;
};
}
{ {
id = "Volume"; id = "Volume";
displayMode = "alwaysShow"; displayMode = "alwaysShow";
@@ -1,11 +1,9 @@
{ {
lib, lib,
host, config,
username, username,
... ...
}: let }: {
inherit (import ../../../../hosts/${host}/variables.nix) stylixImage;
in {
programs.noctalia-shell.settings.wallpaper = lib.mkForce { programs.noctalia-shell.settings.wallpaper = lib.mkForce {
enabled = true; enabled = true;
overviewEnabled = false; overviewEnabled = false;
@@ -42,6 +40,6 @@ in {
}; };
home.file.".cache/noctalia/wallpapers.json".text = lib.mkForce (builtins.toJSON { home.file.".cache/noctalia/wallpapers.json".text = lib.mkForce (builtins.toJSON {
defaultWallpaper = ../../../../wallpapers/${stylixImage}; defaultWallpaper = config.stylix.image;
}); });
} }
+1 -2
View File
@@ -1,7 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = [ home.packages = [
(import ./nvidia-offload.nix {inherit pkgs;}) (import ./nvidia-offload.nix {inherit pkgs;})
(import ./restart.noctalia.nix {inherit pkgs;}) (import ./restart-noctalia.nix {inherit pkgs;})
(import ./screenshootin.nix {inherit pkgs;})
]; ];
} }
@@ -0,0 +1,6 @@
{pkgs}:
pkgs.writeShellScriptBin "restart-noctalia" ''
noctalia-shell kill
sleep 1.5
noctalia-shell -d
''
-54
View File
@@ -1,54 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
# Restart the Noctalia QuickShell session by terminating only the noctalia-shell
# processes, avoiding any signals to unrelated process groups (e.g. Hyprland).
log() { printf "[restart.noctalia] %s\n" "$*"; }
list_target_pids() {
# Collect only PIDs whose command explicitly runs noctalia-shell
# - direct wrapper: ".../noctalia-shell"
# - quickshell/qs with "-c noctalia-shell"
ps -eo pid=,cmd= \
| ${GREP:-grep} -E "(^|/)(noctalia-shell)( |$)|(^| )((qs|quickshell))( | ).*-c( |=)?noctalia-shell( |$)" \
| awk '{print $1}'
}
terminate_targets() {
local pids left tries
mapfile -t pids < <(list_target_pids || true)
if ((${#pids[@]} > 0)); then
kill -TERM "${pids[@]}" 2>/dev/null || true
fi
# Wait up to ~3s for clean exit
for tries in {1..15}; do
mapfile -t left < <(list_target_pids || true)
((${#left[@]} == 0)) && break
sleep 0.2
done
# Force kill leftovers only (do not touch anything else)
if ((${#left[@]} > 0)); then
kill -KILL "${left[@]}" 2>/dev/null || true
fi
}
start_noctalia() {
# Prefer the noctalia-shell wrapper to ensure proper env and runtime flags
if command -v noctalia-shell >/dev/null 2>&1; then
nohup setsid noctalia-shell >/dev/null 2>&1 &
elif command -v quickshell >/dev/null 2>&1; then
nohup setsid quickshell -c noctalia-shell >/dev/null 2>&1 &
elif command -v qs >/dev/null 2>&1; then
nohup setsid qs -c noctalia-shell >/dev/null 2>&1 &
else
echo "Error: noctalia-shell/quickshell/qs not found in PATH" >&2
exit 1
fi
}
terminate_targets
start_noctalia
-24
View File
@@ -1,24 +0,0 @@
{pkgs, ...}: let
binPath = pkgs.lib.makeBinPath [
pkgs.coreutils
pkgs.procps
pkgs.psmisc
pkgs.gnugrep
pkgs.findutils
pkgs.util-linux
pkgs.bash
];
script = builtins.readFile ./restart.noctalia;
in
pkgs.writeShellScriptBin "restart.noctalia" ''
set -euo pipefail
export PATH=${binPath}:$PATH
tmp_script=$(mktemp)
trap 'rm -f "$tmp_script"' EXIT
cat > "$tmp_script" <<'BASH_EOF'
${script}
BASH_EOF
chmod +x "$tmp_script"
exec ${pkgs.bash}/bin/bash "$tmp_script" "$@"
''
-4
View File
@@ -1,4 +0,0 @@
{pkgs}:
pkgs.writeShellScriptBin "screenshootin" ''
grim -g "$(slurp)" - | swappy -f -
''
+8 -1
View File
@@ -2,7 +2,7 @@
programs.ssh = { programs.ssh = {
enable = true; enable = true;
enableDefaultConfig = false; enableDefaultConfig = false;
matchBlocks = { settings = {
"hp-t640-homeserver" = { "hp-t640-homeserver" = {
hostname = "192.168.1.156"; hostname = "192.168.1.156";
user = "${username}"; user = "${username}";
@@ -15,6 +15,13 @@
port = 22; port = 22;
identityFile = "~/.ssh/hp-t640-homeserver"; identityFile = "~/.ssh/hp-t640-homeserver";
}; };
"gitssh.garandplg.com" = {
hostname = "gitssh.garandplg.com";
user = "git";
port = 222;
identityFile = "~/.ssh/id_ed25519_gitea";
identitiesOnly = true;
};
}; };
}; };
} }
+1 -1
View File
@@ -5,10 +5,10 @@
vscode.enable = false; vscode.enable = false;
zed.enable = false; zed.enable = false;
vesktop.enable = false; vesktop.enable = false;
noctalia-shell.enable = true;
qt = { qt = {
enable = true; enable = true;
platform = "qtct"; platform = "qtct";
}; };
noctalia-shell.enable = true;
}; };
} }
+9 -2
View File
@@ -12,7 +12,7 @@
makeEntry = app: { makeEntry = app: {
name = app.displayName; name = app.displayName;
genericName = app.genericName or app.displayName; genericName = app.genericName or app.displayName;
exec = "chromium --profile-directory=Default --app=${app.url}"; exec = "helium --profile-directory=Default --app=${app.url}";
icon = "${fetchIcon app.iconUrl app.iconSha}"; icon = "${fetchIcon app.iconUrl app.iconSha}";
terminal = false; terminal = false;
type = "Application"; type = "Application";
@@ -22,7 +22,7 @@
{ {
name = "messenger"; name = "messenger";
displayName = "Messenger"; displayName = "Messenger";
url = "https://www.messenger.com/"; url = "https://www.facebook.com/messages/";
iconUrl = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png"; iconUrl = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png";
iconSha = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc="; iconSha = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc=";
} }
@@ -62,6 +62,13 @@
iconUrl = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/glance.png"; iconUrl = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/glance.png";
iconSha = "sha256-xyFlmPpt+DABoGX5oBqj/aQVdxtmNflat9Jb2BE7SOY="; iconSha = "sha256-xyFlmPpt+DABoGX5oBqj/aQVdxtmNflat9Jb2BE7SOY=";
} }
{
name = "jellyfinClient";
displayName = "Jellyfin Client";
url = "https://jellyfin.garandplg.com";
iconUrl = "https://jellyfin.org/images/logo.svg";
iconSha = "sha256-sRSB2rxThd4+vMmdpRTz+bEKgdrmF5NG4I74I6kfCyY=";
}
]; ];
in { in {
options.xdgDesktopEntries = { options.xdgDesktopEntries = {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 868 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 809 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 KiB