16 Commits

Author SHA1 Message Date
GarandPLG 0ed84d8068 Add Obsidian support and update Helium to 0.13.4.1
Introduce a new home module for Obsidian with enable option and BoM
vault.
Expose Obsidian configuration in host‑specific home‑modules files.
Add Stylix theming support for Obsidian (colors, fonts, polarity,
vaults).
Upgrade Helium AppImage to version 0.13.4.1 and update its hash.
2026-06-18 20:28:34 +02:00
GarandPLG 4eba766188 Add MangoHud module and enable it on hosts
Introduce a new `mangohud.nix` module with sensible defaults, import it
in
`modules/home/default.nix`, and add a `mangohud.enable` flag to the host
configurations (enabled for desktop and laptop, disabled for the default
host).

Comment out the default Gamescope arguments in `modules/core/steam.nix`
and
add a reference command line that includes the MangoHud flag.
2026-06-14 16:53:27 +02:00
GarandPLG b4f1d2381a Update flake.lock to newer revisions 2026-06-13 14:38:26 +02:00
GarandPLG 3f38b0b474 Update helium to 0.13.3.1 and refresh hash 2026-06-13 13:38:12 +02:00
GarandPLG 8c5c071897 Add Logseq AppImage package, keep it disabled
Introduce a new Nix expression for Logseq AppImage and comment out its
enable flag and package entries so it is not enabled by default.
2026-06-11 21:02:25 +02:00
GarandPLG 823302f7e5 Update dependencies and improve configuration 2026-06-08 12:54:39 +02:00
GarandPLG f5b429f704 Update flake.lock and refine module settings
Bump revisions, hashes and timestamps in flake.lock for several inputs.

Simplify greetd configuration by using a direct default_session
assignment.
Restructure core stylix targets, adding a kmscon placeholder and
reorganizing limine options.
Remove empty GTK4 theme block, keeping only the dark‑theme flag in extra
config.
Extend home stylix: enable librewolf with extra options and add a GTK
target with colors, fonts, and flatpak support.
2026-06-04 13:56:14 +02:00
GarandPLG 965a0a714b Add deputy package and LSP configuration for Zed 2026-06-04 00:08:36 +02:00
GarandPLG 870b3941c0 Pin Helium to version 0.12.4.1 2026-06-02 19:04:24 +02:00
GarandPLG 717ade35db Enable Exec substitution in losslesscut .desktop 2026-06-02 18:11:08 +02:00
GarandPLG 1d41bf6bf1 Add Tailscale plugin and enable on desktop/laptop
- Enable Tailscale plugin in home modules for Garand-Desktop and
  Garand-Laptop; keep it disabled in the default host.
- Introduce `tailscale.enable` option in noctalia plugins and add
  it to the noctalia-shell configuration with source URL handling.
- Provide default Tailscale settings (refresh interval, UI options,
  Taildrop configuration, login server, etc.).
- Add Tailscale widget to the right side of the bar widget list.
- Bump Helium AppImage to version 0.12.5.1 and update its sha256.
2026-06-02 18:10:19 +02:00
GarandPLG 01e84a3561 Add Noctalia plugins config and disable defaults
Introduce `nooctalia-plugins` options to control nightly‑shell plugins
and make
their activation conditional.  Update host home‑modules to enable a
subset
of plugins (keybind‑cheatsheet, kde‑connect, screenshot, ntfy) on
desktop and
laptop configurations.  Disable numerous default applications and system
services (e.g., Zed, browsers, Docker, Flatpak, calendar, GameMode,
Steam,
media tools, communication apps) in the default host configuration.
2026-05-27 13:51:04 +02:00
GarandPLG 2c13658e89 Add Losslesscut AppImage and update host configs
Enable the Losslesscut AppImage on the Garand‑Desktop host
while keeping it disabled on the laptop and default hosts.

Add opencode to the laptop home configuration
and explicitly disable ollama.

Add a new losslesscut AppImage package definition
and register it in the AppImage collection.

Extend the substituter list with noctalia.cachix.org
and add its trusted public key.
2026-05-27 01:13:23 +02:00
GarandPLG 551e9b2cb4 Add Opencode and Ollama modules; update configs
Enable Opencode and Ollama in home modules and import their Nix files.
Disable the deprecated system‑module opencode entries and remove it from
the
core packages list.
Add a new GitHub CLI module and a convenient `upf-gh` alias for flake
updates using a GitHub token.
Update the `stylix` configuration to include Opencode styling.
Refresh several flake.lock entries with newer revisions and hashes.
2026-05-26 00:06:07 +02:00
GarandPLG 8f9b707c2d Switch to Headscale and disable Ungoogled Chromium
Disable ungoogled‑chromium and rename all tailscale aliases to
headscale,
updating the SSH host entry and its IP address.
2026-05-25 13:25:36 +02:00
GarandPLG 83aa051d92 Make program integrations conditional on shell 2026-05-24 16:54:02 +02:00
46 changed files with 683 additions and 202 deletions
Generated
+59 -59
View File
@@ -17,11 +17,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1779522232, "lastModified": 1781331278,
"narHash": "sha256-43PUS3kPWEWVArFV9h1m4mrWIdHeeVXv7kdteYhobOs=", "narHash": "sha256-8IM7jJnnkhbKDbq39q4BS+DbE5CrsT4UhFtmcUDvVjE=",
"owner": "mrshmllow", "owner": "mrshmllow",
"repo": "affinity-nix", "repo": "affinity-nix",
"rev": "328f8f66e375c64255dc3cb3453271aab4d4c273", "rev": "f112cdef13bbd13e1067e72804c18c7622357547",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -116,11 +116,11 @@
}, },
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1779130139, "lastModified": 1780532242,
"narHash": "sha256-BLrtr42azquO7MdGFU5a7KiMl3YpFlTeIXqy1fT5GlQ=", "narHash": "sha256-D+BsdpxmtUwtqGoY0IXPhHgTlmqgcZKCEo1oMyn7ep0=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "edb38893982a3338972bb4a2ec7ce7c29ba10fd9", "rev": "59a82a1222dd3b2080b5cc52a1a2e8d5f1b77f37",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -138,11 +138,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1779270500, "lastModified": 1781086641,
"narHash": "sha256-r60KTphdevmdIDz1iJ529HvcpOq082ZZ1OnN3jDnrqk=", "narHash": "sha256-2oBncBeL671Tf6TnYqk36ebkfPHNYPKwz5at8NcrpvI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "848395a91def85c11694587636151d89555f1ddb", "rev": "640606300f74b4891bfa1a51f5756450f9fdc7f1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -181,11 +181,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1779508957, "lastModified": 1781323358,
"narHash": "sha256-gNwsa7Hwp+pUNe9pvv2aFphcFnm8BoCUUQRm0HXJHD0=", "narHash": "sha256-W8SFmaIEW4tP4jQ48EJSSVnO8s4gZ1j1D4K22tW9pd8=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "3bd76938b820b6f7cf537fffa206bb6a73094b4f", "rev": "89503b569dd29491d5c58bf41c244253fcd3d2b3",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -198,11 +198,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1776136500, "lastModified": 1779670703,
"narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=", "narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "0f8ba203d475587f477e7ae12661bd8459e225b7", "rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -265,11 +265,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775087534, "lastModified": 1778716662,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -383,11 +383,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779507042, "lastModified": 1781305496,
"narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=", "narHash": "sha256-g8Vv4Qfc7n+lgov97REu3X6BeJtvYY0hlSUZR1GrGQQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34", "rev": "c87a39aa979acc4848016d2220c6238390d84779",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -456,11 +456,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1779508470, "lastModified": 1781074563,
"narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "29916453413845e54a65b8a1cf996842300cd299", "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -509,11 +509,11 @@
"noctalia-qs": "noctalia-qs" "noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1779504029, "lastModified": 1780889763,
"narHash": "sha256-f8u9DV9Qk8KJh7DVvk4UgUFTN0NDJeFxgrffTSwPkpA=", "narHash": "sha256-18kh968u0hhtDyECo0FBnlEnJLDxs0uB5H5QbWA9P3I=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "b99b7a7f06ff749df9ac43181ff7889ff90c5599", "rev": "57be32b0a81471ef6c5dceff6faad23b534ec7f8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -532,11 +532,11 @@
"treefmt-nix": "treefmt-nix_2" "treefmt-nix": "treefmt-nix_2"
}, },
"locked": { "locked": {
"lastModified": 1778983195, "lastModified": 1780799499,
"narHash": "sha256-hE3EFK5GoSdbO5WHZ8bZDUVYkofbDLQN/KK25z7IOOI=", "narHash": "sha256-YloRtLqJabzYUWvdLyh67zH4DZrR3kQj+dlQJwLPmPM=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-qs", "repo": "noctalia-qs",
"rev": "4116b41cdc89e186be7cb8b24a9b6022af95d742", "rev": "f308426239665e3bc3d624014e9295b2ae2f58ff",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -556,11 +556,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777598946, "lastModified": 1780281641,
"narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=", "narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "5d55af01c0f86be583931fe99207fc56c14134b3", "rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -639,11 +639,11 @@
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1779221047, "lastModified": 1781005730,
"narHash": "sha256-HkOWI9C4kxA6xkS9GXhe4hAAme7ekOWje3b1U7rLSIo=", "narHash": "sha256-3Bn47a+Vs2/ltQfTU2ApWqy5kYNmF+RaTEJs0A/H2pA=",
"owner": "rust-lang", "owner": "rust-lang",
"repo": "rust-analyzer", "repo": "rust-analyzer",
"rev": "f4bd646a7867c7814770168e0d4b9bd3418c1066", "rev": "587ce15e272b94d4f0a69d695e3718a02c24667e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -690,11 +690,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1779378391, "lastModified": 1781018772,
"narHash": "sha256-IsDb9erotvx9npI94UDosvMeYQK17p7/vmU2v9batrY=", "narHash": "sha256-C+cGIUaC6dqfwTbI+BwCd572PbESGA3WYxR1sLTqxkY=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "c1456cc4ba3c9485e7b4158c909eeca5a752cd59", "rev": "a378e4c09031fb15a4d65da88aa628f71fc52f6b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -720,16 +720,16 @@
}, },
"systems_2": { "systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1689347949,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"type": "github" "type": "github"
} }
}, },
@@ -752,11 +752,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777041405, "lastModified": 1777806186,
"narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=", "narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "5f868b3a338b6904c47f3833b9c411be641983a8", "rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -768,11 +768,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777169200, "lastModified": 1778379944,
"narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=", "narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac", "rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -784,11 +784,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777463218, "lastModified": 1778378178,
"narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=", "narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "5768d08ed2e7944a26a958868cdb073cb8856dae", "rev": "9cd816033ff969415b190722cddf134e78a5665f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -804,11 +804,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775636079, "lastModified": 1780220602,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", "narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", "rev": "db947814a175b7ca6ded66e21383d938df01c227",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -826,11 +826,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775636079, "lastModified": 1780220602,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", "narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", "rev": "db947814a175b7ca6ded66e21383d938df01c227",
"type": "github" "type": "github"
}, },
"original": { "original": {
+28 -1
View File
@@ -7,12 +7,14 @@ _: {
enable = true; # Zed Editor: a modern, highperformance code editor enable = true; # Zed Editor: a modern, highperformance code editor
remote-server.enable = false; # Remote Server: enable remote editing capabilities remote-server.enable = false; # Remote Server: enable remote editing capabilities
}; };
opencode.enable = false; # OpenCode: terminal coding agent
ollama.enable = false; # Ollama: Local Llms
/* /*
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
@@ -33,6 +35,7 @@ _: {
Gaming Gaming
*/ */
lutris.enable = false; # Lutris: an open gaming platform lutris.enable = false; # Lutris: an open gaming platform
mangohud.enable = true; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
/* /*
Media recording and streaming Media recording and streaming
@@ -49,6 +52,16 @@ _: {
*/ */
anki.enable = true; # Anki: spacedrepetition flashcard program anki.enable = true; # Anki: spacedrepetition flashcard program
/*
Productivity / Knowledge Management
*/
obsidian = {
enable = true; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
vaults = {
"BoM".enable = true; # Blood of Mages: ttrpg session
};
};
/* /*
XDG desktop entries (PWA) XDG desktop entries (PWA)
*/ */
@@ -64,4 +77,18 @@ _: {
jellyfinClient.enable = true; # Jellyfin: My Jellyfin jellyfinClient.enable = true; # Jellyfin: My Jellyfin
}; };
}; };
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
screen-recorder.enable = true; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
};
} }
+3 -3
View File
@@ -68,7 +68,6 @@ _: {
*/ */
exercism.enable = false; # 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
jan.enable = true; # Jan: AI chat UI jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
@@ -89,7 +88,7 @@ _: {
*/ */
bitwarden.enable = false; # Bitwarden: password manager (desktop) bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner # appImages.logseq.enable = false; # Logseq: knowledge base and outliner
/* /*
Media & Graphics Media & Graphics
@@ -100,8 +99,9 @@ _: {
gimp.enable = false; # GIMP: GNU Image Manipulation Program gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = true; # 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 = false; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player jellyfin.enable = true; # Jellyfin: foss media player
appImages.losslesscut.enable = true; # Losslesscut: Swiss army knife of lossless video/audio editing
/* /*
Utilities / Misc Utilities / Misc
+27
View File
@@ -7,6 +7,8 @@ _: {
enable = true; # Zed Editor: a modern, highperformance code editor enable = true; # Zed Editor: a modern, highperformance code editor
remote-server.enable = false; # Remote Server: enable remote editing capabilities remote-server.enable = false; # Remote Server: enable remote editing capabilities
}; };
opencode.enable = false; # OpenCode: terminal coding agent
ollama.enable = false; # Ollama: Local Llms
/* /*
Web browsers Web browsers
@@ -33,6 +35,7 @@ _: {
Gaming Gaming
*/ */
lutris.enable = false; # Lutris: an open gaming platform lutris.enable = false; # Lutris: an open gaming platform
mangohud.enable = true; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
/* /*
Media recording and streaming Media recording and streaming
@@ -49,6 +52,16 @@ _: {
*/ */
anki.enable = true; # Anki: spacedrepetition flashcard program anki.enable = true; # Anki: spacedrepetition flashcard program
/*
Productivity / Knowledge Management
*/
obsidian = {
enable = true; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
vaults = {
"BoM".enable = true; # Blood of Mages: ttrpg session
};
};
/* /*
XDG desktop entries (PWA) XDG desktop entries (PWA)
*/ */
@@ -64,4 +77,18 @@ _: {
jellyfinClient.enable = true; # Jellyfin: My Jellyfin jellyfinClient.enable = true; # Jellyfin: My Jellyfin
}; };
}; };
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
};
} }
+3 -3
View File
@@ -68,7 +68,6 @@ _: {
*/ */
exercism.enable = false; # 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
jan.enable = true; # Jan: AI chat UI jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
@@ -89,7 +88,7 @@ _: {
*/ */
bitwarden.enable = false; # Bitwarden: password manager (desktop) bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner # appImages.logseq.enable = false; # Logseq: knowledge base and outliner
/* /*
Media & Graphics Media & Graphics
@@ -100,8 +99,9 @@ _: {
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 = 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 = false; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player jellyfin.enable = true; # Jellyfin: foss media player
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
/* /*
Utilities / Misc Utilities / Misc
+44 -17
View File
@@ -4,21 +4,23 @@ _: {
*/ */
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 = false; # 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
}; };
opencode.enable = false; # OpenCode: terminal coding agent
ollama.enable = false; # Ollama: Local Llms
/* /*
Web browsers Web browsers
*/ */
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork librewolf.enable = false; # 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 easyeffects.enable = false; # 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
@@ -26,13 +28,14 @@ _: {
Communication and synchronization Communication and synchronization
*/ */
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server nextcloud-client.enable = false; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = true; # Vesktop: a communitydriven Discord client vesktop.enable = false; # Vesktop: a communitydriven Discord client
/* /*
Gaming Gaming
*/ */
lutris.enable = false; # Lutris: an open gaming platform lutris.enable = false; # Lutris: an open gaming platform
mangohud.enable = false; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
/* /*
Media recording and streaming Media recording and streaming
@@ -42,26 +45,50 @@ _: {
/* /*
Office suite Office suite
*/ */
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats onlyoffice.enable = false; # OnlyOffice: an office suite compatible with Microsoft formats
/* /*
Learning tools Learning tools
*/ */
anki.enable = true; # Anki: spacedrepetition flashcard program anki.enable = false; # Anki: spacedrepetition flashcard program
/*
Productivity / Knowledge Management
*/
obsidian = {
enable = false; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
vaults = {
"BoM".enable = false; # Blood of Mages: ttrpg session
};
};
/* /*
XDG desktop entries (PWA) XDG desktop entries (PWA)
*/ */
xdgDesktopEntries = { xdgDesktopEntries = {
enable = true; # Enable XDG desktop entries enable = false; # Enable XDG desktop entries
entries = { entries = {
messenger.enable = true; # Messenger: Facebook Messenger messenger.enable = false; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network mastodon.enable = false; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance garandcloud.enable = false; # 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 = false; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard glance.enable = false; # Glance: my home server dashboard
jellyfinClient.enable = true; # Jellyfin: My Jellyfin jellyfinClient.enable = false; # Jellyfin: My Jellyfin
}; };
}; };
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = false; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
kde-connect.enable = false; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
screenshot.enable = false; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
ntfy-notifications.enable = false; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
tailscale.enable = false; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
};
} }
+23 -23
View File
@@ -2,14 +2,14 @@ _: {
/* /*
Container & Packaging Container & Packaging
*/ */
docker.enable = true; # Docker: container runtime and management docker.enable = false; # Docker: container runtime and management
virtualbox.enable = false; # VirtualBox: PC emulator virtualbox.enable = false; # VirtualBox: PC emulator
flatpak = { flatpak = {
enable = true; # Flatpak: universal packaging system for Linux enable = false; # 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 = false; # Flatpak manager
flatseal.enable = true; # Flatpak permissions manager flatseal.enable = false; # Flatpak permissions manager
upscaler.enable = false; # Upscaler: Upscale and enhance images upscaler.enable = false; # Upscaler: Upscale and enhance images
}; };
}; };
@@ -22,14 +22,14 @@ _: {
/* /*
Calendar & Contacts Calendar & Contacts
*/ */
calendar.enable = true; # GNOME Calendar: calendar and contacts application calendar.enable = false; # GNOME Calendar: calendar and contacts application
/* /*
Gaming Gaming
*/ */
gamemode.enable = true; # GameMode: optimizes system performance for gaming gamemode.enable = false; # GameMode: optimizes system performance for gaming
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 = false; # Steam: platform for buying and playing games
/* /*
Media & Graphics Media & Graphics
@@ -59,27 +59,26 @@ _: {
Gaming Gaming
*/ */
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game spaceCadetPinball.enable = false; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game ttySolitaire.enable = false; # 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
/* /*
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 jan.enable = false; # Jan: AI chat UI
jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
/* /*
Communication & Collaboration Communication & Collaboration
*/ */
mattermost.enable = true; # Mattermost: opensource Slack alternative mattermost.enable = false; # Mattermost: opensource Slack alternative
slack.enable = false; # Slack: team communication and collaboration tool slack.enable = false; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client tutanota.enable = false; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app signal.enable = false; # Signal: secure messaging app
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux teams.enable = false; # 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 notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative appImages.fluxer.enable = false; # Fluxer: Discord alternative
@@ -88,26 +87,27 @@ _: {
Productivity / Knowledge Management Productivity / Knowledge Management
*/ */
bitwarden.enable = false; # Bitwarden: password manager (desktop) bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager iotas.enable = false; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner # appImages.logseq.enable = false; # Logseq: knowledge base and outliner
/* /*
Media & Graphics Media & Graphics
*/ */
eyeOfGnome.enable = true; # Eye of GNOME: image viewer eyeOfGnome.enable = false; # Eye of GNOME: image viewer
switcheroo.enable = false; # Switcheroo: file conversion tool 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 = false; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player jellyfin.enable = false; # Jellyfin: foss media player
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
/* /*
Utilities / Misc Utilities / Misc
*/ */
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client eddieAirVPN.enable = false; # Eddie AirVPN: VPN client
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator gnomeCalculator.enable = false; # gnomeCalculator: simple calculator
gedit.enable = false; # Gedit: GNOME text editor gedit.enable = false; # 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
+3 -5
View File
@@ -6,11 +6,9 @@
services.greetd = { services.greetd = {
enable = true; enable = true;
#vt = 3; #vt = 3;
settings = { settings.default_session = {
default_session = { user = username;
user = username; command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # start Hyprland with a TUI login manager
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # start Hyprland with a TUI login manager
};
}; };
}; };
} }
@@ -14,6 +14,8 @@
appImagePackages = { appImagePackages = {
fluxer = pkgs.callPackage ./fluxer.nix {}; fluxer = pkgs.callPackage ./fluxer.nix {};
helium = pkgs.callPackage ./helium.nix {}; helium = pkgs.callPackage ./helium.nix {};
# logseq = pkgs.callPackage ./logseq.nix {};
losslesscut = pkgs.callPackage ./losslesscut.nix {};
}; };
in { in {
imports = builtins.attrValues (builtins.mapAttrs mkAppImagePackage appImagePackages); imports = builtins.attrValues (builtins.mapAttrs mkAppImagePackage appImagePackages);
+2 -1
View File
@@ -5,10 +5,11 @@
}: let }: let
pname = "fluxer"; pname = "fluxer";
version = "canary"; version = "canary";
hash = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
src = fetchurl { src = fetchurl {
url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage"; url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage";
sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw="; sha256 = hash;
}; };
appimageContents = appimageTools.extract {inherit pname version src;}; appimageContents = appimageTools.extract {inherit pname version src;};
+3 -2
View File
@@ -4,11 +4,12 @@
fetchurl, fetchurl,
}: let }: let
pname = "helium"; pname = "helium";
version = "0.12.4.1"; version = "0.13.4.1";
hash = "sha256-z23up+T6bj6F+cQslmI92bEksIAw1OQHRIrmQSaaxY8=";
src = fetchurl { src = fetchurl {
url = "https://github.com/imputnet/helium-linux/releases/download/${version}/helium-${version}-x86_64.AppImage"; url = "https://github.com/imputnet/helium-linux/releases/download/${version}/helium-${version}-x86_64.AppImage";
sha256 = "sha256-OgS8HkLBseFrEhNFJxMwp1bg0gzPdfY1VaySAAp7vq0="; sha256 = hash;
}; };
appimageContents = appimageTools.extract {inherit pname version src;}; appimageContents = appimageTools.extract {inherit pname version src;};
@@ -0,0 +1,40 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "logseq";
version = "0.10.15";
hash = "sha256-i5EQUvSW1ix+8NT8nCs6mGH2B9xF7G4mB7vBhDJ7JdE=";
src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/Logseq-linux-x64-${version}.AppImage";
sha256 = hash;
};
appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "512x512";
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 = "Logseq";
homepage = "https://github.com/logseq/logseq";
license = licenses.gpl3;
platforms = ["x86_64-linux"];
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
maintainers = with lib.maintainers; [garand_plg];
};
}
# https://github.com/logseq/logseq/releases/download/0.10.15/Logseq-linux-x64-0.10.15.AppImage
@@ -0,0 +1,40 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "losslesscut";
version = "3.69.0";
hash = "sha256-F56q4nv/viWmVJpKcUR0EmtXwojO/DBwRvycYxOhJnY=";
src = fetchurl {
url = "https://github.com/mifi/lossless-cut/releases/download/v${version}/LosslessCut-linux-x86_64.AppImage";
sha256 = hash;
};
appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "512x512";
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 = "Lossless cut";
homepage = "https://github.com/mifi/lossless-cut";
license = licenses.gpl2Only;
platforms = ["x86_64-linux"];
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
maintainers = with lib.maintainers; [garand_plg];
};
}
# https://github.com/mifi/lossless-cut/releases/download/v3.68.0/LosslessCut-linux-x86_64.AppImage
+11 -10
View File
@@ -19,12 +19,11 @@
gnomeCalculator = gnome-calculator; gnomeCalculator = gnome-calculator;
gedit = gedit; gedit = gedit;
iotas = iotas; iotas = iotas;
logseq = logseq; # logseq = logseq;
mattermost = mattermost-desktop; mattermost = mattermost-desktop;
slack = slack; slack = slack;
tutanota = tutanota-desktop; tutanota = tutanota-desktop;
exercism = exercism; exercism = exercism;
opencode = opencode;
jan = jan; jan = jan;
lazygit = lazygit; lazygit = lazygit;
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default; prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
@@ -32,14 +31,16 @@
ttySolitaire = tty-solitaire; ttySolitaire = tty-solitaire;
gimp = gimp; gimp = gimp;
eyeOfGnome = eog; eyeOfGnome = eog;
kdenlive = kdePackages.kdenlive.overrideAttrs (old: { kdenlive =
postInstall = kdePackages.kdenlive.overrideAttrs
(old.postInstall or "") (old: {
+ '' postInstall =
wrapProgram $out/bin/kdenlive \ (old.postInstall or "")
--set QT_SCALE_FACTOR 0.8 + ''
''; wrapProgram $out/bin/kdenlive \
}); --set QT_SCALE_FACTOR 0.8
'';
});
plex = [ plex = [
( (
plex-desktop.override { plex-desktop.override {
+13 -2
View File
@@ -1,19 +1,30 @@
_: { {shell, ...}: {
programs = { programs = {
nano.enable = true; nano.enable = true;
hyprland = { hyprland = {
enable = true; enable = true;
withUWSM = false; withUWSM = false;
}; };
fish.enable = true;
fish.enable =
if shell == "fish"
then true
else false;
dconf.enable = true; dconf.enable = true;
seahorse.enable = true; seahorse.enable = true;
fuse.userAllowOther = true; fuse.userAllowOther = true;
mtr.enable = true; mtr.enable = true;
gnupg.agent = { gnupg.agent = {
enable = true; enable = true;
enableSSHSupport = true; enableSSHSupport = true;
}; };
nix-ld = { nix-ld = {
enable = true; enable = true;
# libraries = with pkgs; [ # libraries = with pkgs; [
+10 -8
View File
@@ -18,10 +18,10 @@
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
gamescopeSession = lib.mkIf config.gamescope.enable { gamescopeSession = lib.mkIf config.gamescope.enable {
enable = true; enable = true;
args = [ # args = [
"--rt" # "--rt"
"--expose-wayland" # "--expose-wayland"
]; # ];
}; };
extraCompatPackages = [pkgs.proton-ge-bin]; extraCompatPackages = [pkgs.proton-ge-bin];
}; };
@@ -29,10 +29,10 @@
gamescope = lib.mkIf config.gamescope.enable { gamescope = lib.mkIf config.gamescope.enable {
enable = true; enable = true;
capSysNice = true; capSysNice = true;
args = [ # args = [
"--rt" # # "--rt"
"--expose-wayland" # # "--expose-wayland"
]; # ];
}; };
gamemode = lib.mkIf config.gamemode.enable { gamemode = lib.mkIf config.gamemode.enable {
@@ -41,3 +41,5 @@
}; };
}; };
} }
# gamescope -W 1920 -H 1080 -r 144 --force-grab-cursor -f --mangoapp --rt --expose-wayland --
+13 -6
View File
@@ -34,13 +34,20 @@
popups = 12; popups = 12;
}; };
}; };
targets.limine = { targets = {
enable = true; limine = {
colors.enable = true;
image.enable = true;
imageScalingMode = {
enable = true; enable = true;
override = "tile"; colors.enable = true;
image.enable = true;
imageScalingMode = {
enable = true;
override = "tile";
};
};
kmscon = {
enable = false;
colors.enable = true;
fonts.enable = true;
}; };
}; };
}; };
+8 -2
View File
@@ -12,8 +12,14 @@
"nix-command" "nix-command"
"flakes" "flakes"
]; ];
substituters = ["https://hyprland.cachix.org"]; substituters = [
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; "https://hyprland.cachix.org"
"https://noctalia.cachix.org"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
];
}; };
}; };
time.timeZone = "Europe/Warsaw"; time.timeZone = "Europe/Warsaw";
+4 -1
View File
@@ -43,7 +43,10 @@
username = "${username}"; username = "${username}";
homeDirectory = "/home/${username}"; homeDirectory = "/home/${username}";
stateVersion = "25.11"; stateVersion = "25.11";
shell.enableFishIntegration = true; shell.enableFishIntegration =
if shell == "fish"
then true
else false;
}; };
}; };
}; };
+8 -1
View File
@@ -12,6 +12,13 @@
package = pkgs.anki; package = pkgs.anki;
language = "pl_PL"; language = "pl_PL";
style = "native"; style = "native";
profiles."${username}".sync.username = username; profiles."${username}" = {
default = true;
sync = {
username = username;
url = "https://ass.garandplg.com/";
autoSync = true;
};
};
}; };
} }
+3 -2
View File
@@ -9,6 +9,7 @@
upd = "nh os switch -H ${host} -d always"; upd = "nh os switch -H ${host} -d always";
upg = "nh os switch -H ${host} --update -d always"; 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-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --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 -H ${host} -d always"; upd-bt = "nh os boot -H ${host} -d always";
upd-ts = "nh os test -H ${host} -d always"; upd-ts = "nh os test -H ${host} -d always";
@@ -140,8 +141,8 @@
# Network aliases # Network aliases
kssh-server = "kssh hp-t640-homeserver"; kssh-server = "kssh hp-t640-homeserver";
kssh-server-ts = "kssh hp-t640-homeserver-tailscale"; kssh-server-hs = "kssh hp-t640-homeserver-headscale";
ssh-server = "ssh hp-t640-homeserver"; ssh-server = "ssh hp-t640-homeserver";
ssh-server-ts = "ssh hp-t640-homeserver-tailscale"; ssh-server-hs = "ssh hp-t640-homeserver-headscale";
}; };
} }
+5
View File
@@ -8,6 +8,7 @@ _: {
./kitty ./kitty
./librewolf ./librewolf
./noctalia ./noctalia
./obsidian
./scripts ./scripts
./vscodium ./vscodium
./xdg ./xdg
@@ -19,13 +20,17 @@ _: {
./easyeffects.nix ./easyeffects.nix
./eza.nix ./eza.nix
./fzf.nix ./fzf.nix
./gh.nix
./git.nix ./git.nix
./gtk.nix ./gtk.nix
./kdeConnect.nix ./kdeConnect.nix
./lutris.nix ./lutris.nix
./mangohud.nix
./nextcloud.nix ./nextcloud.nix
./obs-studio.nix ./obs-studio.nix
./ollama.nix
./onlyoffice.nix ./onlyoffice.nix
./opencode.nix
./qt.nix ./qt.nix
./ssh.nix ./ssh.nix
./starship.nix ./starship.nix
+9 -4
View File
@@ -1,10 +1,15 @@
# Eza is a ls replacement {shell, ...}: {
{
programs.eza = { programs.eza = {
enable = true; enable = true;
icons = "auto"; icons = "auto";
enableFishIntegration = true; enableFishIntegration =
enableBashIntegration = true; if shell == "fish"
then true
else false;
enableBashIntegration =
if shell == "bash"
then true
else false;
git = true; git = true;
extraOptions = [ extraOptions = [
+15 -19
View File
@@ -122,29 +122,25 @@ _: {
{ {
type = "command"; type = "command";
key = " IN"; key = " IN";
text = text = ''
#bash birth_install=$(stat -c %W /)
'' if [ "$birth_install" -gt 0 ]; then
birth_install=$(stat -c %W /) echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
if [ "$birth_install" -gt 0 ]; then else
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")" echo "Installation date unknown"
else fi
echo "Installation date unknown" '';
fi
'';
} }
{ {
type = "command"; type = "command";
key = " "; key = " ";
text = text = ''
#bash birth_install=$(stat -c %W /)
'' current=$(date +%s)
birth_install=$(stat -c %W /) delta=$((current - birth_install))
current=$(date +%s) delta_days=$((delta / 86400))
delta=$((current - birth_install)) echo $delta_days days
delta_days=$((delta / 86400)) '';
echo $delta_days days
'';
} }
{ {
type = "uptime"; type = "uptime";
+3 -2
View File
@@ -9,6 +9,7 @@
upd = "nh os switch -H ${host} -d always"; upd = "nh os switch -H ${host} -d always";
upg = "nh os switch -H ${host} --update -d always"; 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-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --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 -H ${host} -d always"; upd-bt = "nh os boot -H ${host} -d always";
upd-ts = "nh os test -H ${host} -d always"; upd-ts = "nh os test -H ${host} -d always";
@@ -133,8 +134,8 @@
# Network aliases # Network aliases
kssh-server = "kssh hp-t640-homeserver"; kssh-server = "kssh hp-t640-homeserver";
kssh-server-ts = "kssh hp-t640-homeserver-tailscale"; kssh-server-hs = "kssh hp-t640-homeserver-headscale";
ssh-server = "ssh hp-t640-homeserver"; ssh-server = "ssh hp-t640-homeserver";
ssh-server-ts = "ssh hp-t640-homeserver-tailscale"; ssh-server-hs = "ssh hp-t640-homeserver-headscale";
}; };
} }
+4 -1
View File
@@ -20,7 +20,10 @@
nix-your-shell = { nix-your-shell = {
enable = true; enable = true;
package = pkgs.nix-your-shell; package = pkgs.nix-your-shell;
enableFishIntegration = true; enableFishIntegration =
if shell == "fish"
then true
else false;
nix-output-monitor = { nix-output-monitor = {
enable = true; enable = true;
package = pkgs.nix-output-monitor; package = pkgs.nix-output-monitor;
+9 -3
View File
@@ -1,8 +1,14 @@
_: { {shell, ...}: {
programs.fzf = { programs.fzf = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration =
enableBashIntegration = true; if shell == "fish"
then true
else false;
enableBashIntegration =
if shell == "bash"
then true
else false;
defaultOptions = [ defaultOptions = [
"--margin=1" "--margin=1"
"--layout=reverse" "--layout=reverse"
+21
View File
@@ -0,0 +1,21 @@
{
pkgs,
gitUsername,
...
}: {
programs.gh = {
enable = true;
package = pkgs.gh;
hosts."github.com" = {
git_protocol = "https";
users = [
"${gitUsername}"
];
user = "${gitUsername}";
};
settings = {
git_protocol = "https";
version = "1";
};
};
}
+1 -6
View File
@@ -5,11 +5,6 @@
package = pkgs.papirus-icon-theme; package = pkgs.papirus-icon-theme;
}; };
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk4 = { gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
theme = null;
extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
}; };
} }
+9 -2
View File
@@ -1,8 +1,15 @@
{pkgs, ...}: { {
pkgs,
shell,
...
}: {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
package = pkgs.kitty; package = pkgs.kitty;
shellIntegration.enableFishIntegration = true; shellIntegration.enableFishIntegration =
if shell == "fish"
then true
else false;
}; };
imports = [ imports = [
+72
View File
@@ -0,0 +1,72 @@
{
pkgs,
lib,
config,
...
}: {
options.mangohud.enable = lib.mkEnableOption "MangoHud";
config = lib.mkIf config.mangohud.enable {
programs.mangohud = {
enable = true;
package = pkgs.mangohud;
settings = lib.mkForce {
position = "top-right";
background_alpha = 0.4;
font_size = 18;
round_corners = 8;
no_display = 0;
gpu_color = "2e9ef4";
cpu_color = "39d353";
vram_color = "ad3aff";
ram_color = "c0c0c0";
engine_color = "eb5454";
frametime_color = "e8c446";
text_color = "ffffff";
background_color = "020202";
media_player_color = "ffffff";
fps_color_change = 1;
fps_color = "39d353,e8c446,eb5454";
fps_value = "60,30";
fps = 1;
fps_only = 0;
gpu_stats = 1;
gpu_load_change = 1;
gpu_load_value = "60,90";
gpu_load_color = "39d353,e8c446,eb5454";
gpu_temp = 1;
gpu_core_clock = 1;
gpu_mem_clock = 0;
gpu_power = 1;
gpu_name = 1;
vram = 1;
cpu_stats = 1;
cpu_load_change = 1;
cpu_load_value = "60,90";
cpu_load_color = "39d353,e8c446,eb5454";
cpu_temp = 1;
cpu_mhz = 1;
core_load = 0;
ram = 1;
frametime = 1;
frame_timing = 1;
histogram = 0;
engine_version = 1;
vulkan_driver = 1;
arch = 0;
fps_limit = 0;
toggle_hud = "Shift_R+F12";
toggle_fps_limit = "Shift_L+F1";
};
};
};
}
+45 -9
View File
@@ -1,7 +1,22 @@
{lib, ...}: let {
lib,
config,
...
}: let
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins"; sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
in { in {
programs.noctalia-shell = lib.mkForce { options.nooctalia-plugins = {
mini-docker.enable = lib.mkEnableOption "Mini docker plugin";
timer.enable = lib.mkEnableOption "Timer plugin";
keybind-cheatsheet.enable = lib.mkEnableOption "Keybind cheatsheet plugin";
kde-connect.enable = lib.mkEnableOption "KDE Connect plugin";
screen-recorder.enable = lib.mkEnableOption "Screen-recorder plugin";
screenshot.enable = lib.mkEnableOption "Screenshot plugin";
ntfy-notifications.enable = lib.mkEnableOption "ntfy notifications plugin";
tailscale.enable = lib.mkEnableOption "Tailscale plugin";
};
config.programs.noctalia-shell = lib.mkForce {
plugins = { plugins = {
sources = [ sources = [
{ {
@@ -11,31 +26,35 @@ in {
} }
]; ];
states = { states = {
mini-docker = { mini-docker = lib.mkIf config.nooctalia-plugins.mini-docker.enable {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
timer = { timer = lib.mkIf config.nooctalia-plugins.timer.enable {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
keybind-cheatsheet = { keybind-cheatsheet = lib.mkIf config.nooctalia-plugins.keybind-cheatsheet.enable {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
kde-connect = { kde-connect = lib.mkIf config.nooctalia-plugins.kde-connect.enable {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
screen-recorder = { screen-recorder = lib.mkIf config.nooctalia-plugins.screen-recorder.enable {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
screenshot = { screenshot = lib.mkIf config.nooctalia-plugins.screenshot.enable {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
ntfy-notifications = { ntfy-notifications = lib.mkIf config.nooctalia-plugins.ntfy-notifications.enable {
enabled = true;
sourceUrl = sourceUrl;
};
tailscale = lib.mkIf config.nooctalia-plugins.tailscale.enable {
enabled = true; enabled = true;
sourceUrl = sourceUrl; sourceUrl = sourceUrl;
}; };
@@ -92,6 +111,23 @@ in {
# maxMessages = 100; # maxMessages = 100;
# readMessageIds = []; # readMessageIds = [];
# }; # };
tailscale = {
refreshInterval = 5000;
compactMode = true;
showIpAddress = false;
showPeerCount = false;
hideDisconnected = false;
hideMullvadExitNodes = true;
showSearchBar = false;
terminalCommand = "kitty";
sshUsername = "";
pingCount = 5;
defaultPeerAction = "copy-ip";
taildropEnabled = true;
taildropDownloadDir = "~/Downloads";
taildropReceiveMode = "operator";
loginServer = "https://hs.garandplg.com";
};
}; };
}; };
} }
@@ -11,6 +11,9 @@
hidePassive = false; hidePassive = false;
pinned = []; pinned = [];
} }
{
id = "plugin:tailscale";
}
{ {
id = "plugin:keybind-cheatsheet"; id = "plugin:keybind-cheatsheet";
} }
@@ -0,0 +1 @@
_: {}
+19
View File
@@ -0,0 +1,19 @@
{
pkgs,
lib,
config,
...
}: {
options.obsidian.enable = lib.mkEnableOption "Obsidian";
config.programs.obsidian = lib.mkIf config.obsidian.enable {
enable = true;
package = pkgs.obsidian;
cli.enable = true;
};
imports = [
# ./default-settings
./vaults
];
}
+12
View File
@@ -0,0 +1,12 @@
{
lib,
config,
...
}: {
options.obsidian.vaults."BoM".enable = lib.mkEnableOption "Obsidian BoM vault";
config.programs.obsidian.vaults."BoM" = lib.mkIf config.obsidian.vaults."BoM".enable {
enable = true;
target = "Obsidian/BoM";
};
}
+5
View File
@@ -0,0 +1,5 @@
_: {
imports = [
./BoM.nix
];
}
+20
View File
@@ -0,0 +1,20 @@
{
pkgs,
lib,
config,
profile,
...
}: {
options.ollama.enable = lib.mkEnableOption "Ollama";
config.services.ollama = lib.mkIf config.ollama.enable {
enable = true;
package = pkgs.ollama;
acceleration =
if profile == "nvidia"
then "cuda"
else if profile == "amd"
then "rocm"
else null;
};
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
lib,
config,
...
}: {
options.opencode.enable = lib.mkEnableOption "Opencode";
config.programs.opencode = lib.mkIf config.opencode.enable {
enable = true;
package = pkgs.opencode;
};
}
+2 -2
View File
@@ -9,8 +9,8 @@
port = 22; port = 22;
identityFile = "~/.ssh/hp-t640-homeserver"; identityFile = "~/.ssh/hp-t640-homeserver";
}; };
"hp-t640-homeserver-tailscale" = { "hp-t640-homeserver-headscale" = {
hostname = "100.106.225.106"; hostname = "100.64.0.2";
user = "${username}"; user = "${username}";
port = 22; port = 22;
identityFile = "~/.ssh/hp-t640-homeserver"; identityFile = "~/.ssh/hp-t640-homeserver";
+9 -2
View File
@@ -1,7 +1,14 @@
{lib, ...}: { {
lib,
shell,
...
}: {
programs.starship = { programs.starship = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration =
if shell == "fish"
then true
else false;
settings = { settings = {
add_newline = true; add_newline = true;
format = lib.concatStrings [ format = lib.concatStrings [
+38 -3
View File
@@ -1,6 +1,16 @@
{host, ...}: { {
host,
shell,
...
}: {
stylix.targets = { stylix.targets = {
librewolf.profileNames = ["${host}"]; librewolf = {
profileNames = ["${host}"];
enable = true;
firefoxGnomeTheme.enable = true;
fonts.enable = true;
inputs.enable = true;
};
hyprland = { hyprland = {
enable = true; enable = true;
@@ -21,13 +31,23 @@
noctalia-shell.enable = true; noctalia-shell.enable = true;
gtk = {
enable = true;
colors.enable = true;
flatpakSupport.enable = true;
fonts.enable = true;
};
qt = { qt = {
enable = true; enable = true;
platform = "qtct"; platform = "qtct";
}; };
fish = { fish = {
enable = true; enable =
if shell == "fish"
then true
else false;
colors.enable = true; colors.enable = true;
inputs.enable = true; inputs.enable = true;
}; };
@@ -66,5 +86,20 @@
opacity.enable = true; opacity.enable = true;
variant256Colors = true; variant256Colors = true;
}; };
opencode = {
enable = true;
colors.enable = true;
};
obsidian = {
enable = true;
colors.enable = true;
fonts.enable = true;
polarity.enable = true;
vaultNames = [
"BoM"
];
};
}; };
} }
+1
View File
@@ -20,5 +20,6 @@ _: {
"biome" "biome"
"opencode" "opencode"
"fish" "fish"
"tera"
]; ];
} }
+1
View File
@@ -8,5 +8,6 @@
uv uv
python314 python314
ruff ruff
deputy
]; ];
} }
+10
View File
@@ -15,6 +15,16 @@
# ]; # ];
# }; # };
# }; # };
deputy = {
binary = {
path = lib.getExe pkgs.deputy;
arguments = [
"serve"
"--github-token"
"$(gh auth token)"
];
};
};
rust-analyzer = { rust-analyzer = {
binary = { binary = {
path = lib.getExe pkgs.bash; path = lib.getExe pkgs.bash;
+9 -3
View File
@@ -1,8 +1,14 @@
_: { {shell, ...}: {
programs.zoxide = { programs.zoxide = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration =
enableBashIntegration = true; if shell == "fish"
then true
else false;
enableBashIntegration =
if shell == "bash"
then true
else false;
options = [ options = [
"--cmd cd" "--cmd cd"
]; ];