Compare commits

...

26 Commits

Author SHA1 Message Date
38f618f8c7 Update flake.lock
- Bump rev, narHash and lastModified for several locked inputs:
  firefox-addons, home-manager, nixpkgs, noctalia-shell, noctalia-qs
- Rename the "systems" reference to "systems_2" in the input map
- Add a new locked entry for the "systems" repository
2026-03-11 23:42:50 +01:00
7f01bed179 Enable Affinity graphics suite on Garand-Desktop 2026-03-04 00:39:30 +01:00
3e6c55ebcb Update flake.lock dependencies
- Bump revisions and nar hashes for multiple inputs and add the new
  `noctalia-qs` input.
- Change Anki configuration to use a profile‑specific sync username.
- Set Battery widget displayMode to `graphic` instead of `alwaysShow`.
2026-03-03 13:14:16 +01:00
4ef866927d Update flake.lock and disable Slack on all hosts
Refresh locked revisions and hashes for several inputs in flake.lock.
Disable Slack in Garand-Desktop, Garand-Laptop, and default hosts.
2026-02-23 21:55:45 +01:00
7da6280a1e Update flake.lock to latest revisions 2026-02-18 00:00:55 +01:00
60d1363f58 Add Fluxer desktop app package
Expose Fluxer as a system package by adding a new fluxer module and
importing it
in the core packages list.
2026-02-16 22:41:30 +01:00
f2628ed320 Add new Django bash aliases 2026-02-15 20:51:35 +01:00
c3517a0f7f Add ZRAM module and enable it in core defaults 2026-02-14 13:43:14 +01:00
380b774ee3 Update flake.lock revisions and hashes 2026-02-14 01:22:56 +01:00
cfc4e49f16 Disable Python format on save 2026-02-12 23:01:49 +01:00
e5bfd117b4 Increase disk warning and critical thresholds
The warning threshold is now 90% and the critical threshold is 95%,
up from 80% and 90%.
2026-02-12 22:43:07 +01:00
68ed6d035e Add Cerebras PAUG provider and split models
Update default model provider to “Cerebras PAUG”. Reorganize the
Cerebras language‑model configuration into two groups – “Cerebras FREE”
and “Cerebras PAUG” – each with its own model list and adjusted token
limits.
2026-02-12 18:45:10 +01:00
c41e664a6b Switch from Evolution to GNOME Calendar module
- Enable `calendar.enable` instead of `evolution.enable` in all host
  system‑modules files.
- Add `modules/core/calendar.nix` defining the calendar option and
  installing GNOME Calendar and Contacts.
- Remove the deprecated `modules/core/evolution.nix` and update
  `core/default.nix` imports accordingly.
- Include the GNOME package set via `./gnome.nix` in
  `modules/core/packages/default.nix`.
2026-02-11 23:39:20 +01:00
c78292ac67 Remove extraneous spaces from Starship icon definitions 2026-02-11 18:11:38 +01:00
88b161347d Add FiraCode Nerd Font Mono to Zed UI and terminal
Also set buffer font family to the same FiraCode Nerd Font Mono.
2026-02-11 18:01:48 +01:00
a751485bf0 Add ruff LSP and Python tooling to Zed config
Add uv, python314, and ruff to extra packages.

Enable Python format‑on‑save, use ruff as formatter and language server,
and set tab size to 4.

Configure ruff LSP with a bash wrapper and detailed inlay‑hint options.
2026-02-11 16:07:36 +01:00
e2d9522d89 Update flake.lock and disable VirtualBox
Refresh pinned revisions and hashes in flake.lock for several
dependencies and set `virtualbox.enable` to false in the desktop
system configuration.
2026-02-11 13:31:19 +01:00
53f787d6c8 Enable Evolution module and bind shortcut
Add core/evolution.nix with a toggleable option and import it in the
core
defaults. Enable the option on desktop, laptop, and default hosts.
Remove
the duplicated evolution‑data‑server enable flag from services.nix. Add
a
Hyprland keybinding (Super Shift E) to launch Evolution.
2026-02-08 13:10:11 +01:00
45ed10b1ec Update flake lock revisions and package settings
- Pin newer revisions for firefox‑addons, home‑manager, nixpkgs,
  noctalia‑shell and stylix.
- Enable Evolution in programs.
- Use Plex desktop override with QT_QPA_PLATFORM and comment out
  the plain version.
- Comment out settings.settingsVersion in noctalia config.
- Reduce plugin window width to 1100 and add columnCount = 2.
2026-02-08 12:52:53 +01:00
041be371e5 Update flake.lock and simplify plex package
Remove the QT_QPA_PLATFORM override for plex-desktop, using the default
package configuration.
2026-02-04 13:38:05 +01:00
e32b7ce0a5 fix 2026-02-04 10:17:43 +01:00
62160ebcf0 fix 2026-02-03 06:38:57 +01:00
276d64816b fix 2026-02-03 06:31:00 +01:00
743bec0bae fix 2026-02-03 06:02:52 +01:00
881faf7aac fix 2026-02-02 21:37:34 +01:00
cb8eacf322 minor fixes 2026-02-02 21:32:46 +01:00
29 changed files with 435 additions and 125 deletions

114
flake.lock generated
View File

@@ -15,11 +15,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1767916874, "lastModified": 1772265981,
"narHash": "sha256-IcvLwoF1CIOd7yELc0Xwqskilw2FxHHRm5ZnmNdBuKc=", "narHash": "sha256-JoXciqQCwHdIvENurNwgc6jH1e/d5xcjn9ybYNe+YQI=",
"owner": "mrshmllow", "owner": "mrshmllow",
"repo": "affinity-nix", "repo": "affinity-nix",
"rev": "0c110a15fb5605490f7de451073db1c775745fee", "rev": "cd7bed5b72ceeb50b862c550cc16c6f1b11a2d84",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -145,11 +145,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1769918637, "lastModified": 1773201798,
"narHash": "sha256-3XyGk89S0UFvKRZiKpFL4ImP5qP/2AOJUaYC7ogXnJo=", "narHash": "sha256-TZQwHvIBz9hr/fci/G/AIjPSKCMtxQm/xFm3MNJ/mVg=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "5659e4c18d1350d1b511fcdce885fdd879effa22", "rev": "016edd132727d8ac364454a6b443ef46c2d1c7e4",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -209,11 +209,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1767609335, "lastModified": 1769996383,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca", "rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -290,11 +290,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767281941, "lastModified": 1769939035,
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", "narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", "rev": "a8ca480175326551d6c4121498316261cbb5b260",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -349,11 +349,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769952507, "lastModified": 1773264496,
"narHash": "sha256-eNTfxT3v8b7s1dqswgposi5Y1CUMoOUhQKiy29QY25U=", "narHash": "sha256-uwFY0+UfaGEo6205ixeBjplZxHWr56UQef+MtmJ0PW0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b59376563943ce163b2553aeb63d0c170967d74e", "rev": "32f78141a98098efed490842923b25ecb93b9b9f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -422,11 +422,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1769789167, "lastModified": 1772963539,
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=", "narHash": "sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "62c8382960464ceb98ea593cb8321a2cf8f9e3e5", "rev": "9dcb002ca1690658be4a04645215baea8b95f31d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -438,11 +438,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1765674936, "lastModified": 1769909678,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", "rev": "72716169fe93074c333e8d0173151350670b824c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -471,14 +471,15 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ],
"noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1769983098, "lastModified": 1773252517,
"narHash": "sha256-PKej3N1BxAoKzusrdWuS9gT8bXW0U/Zk8RkedsP3qYc=", "narHash": "sha256-t4K/LBLj2UTVpUhdNbpdzexP/sJeCJB1R6nii8QDt28=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "2a98d04b2f5e251935ba296c0d7dc374bdc5e32d", "rev": "dbb2e156838e740629e60b1d9f7969aff5868fde",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -487,6 +488,28 @@
"type": "github" "type": "github"
} }
}, },
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1773175685,
"narHash": "sha256-YOkWzVq7opym1ovJvSCvqpG6OCDGJwPo/EPeRxcGay4=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "6b9eceefde3d47ca83c544b54bcdd358be4cbd2f",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": [ "flake-parts": [
@@ -514,11 +537,11 @@
"on-linux": { "on-linux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1766544016, "lastModified": 1769366983,
"narHash": "sha256-3X1426N7n6bwM7GAQOvpCq2OVdlQevCzbpak0l9B6BU=", "narHash": "sha256-uBLHcm0WP8n4ms7eV05wt4mc9uvUo9OVMM/41lW+u8Q=",
"owner": "seapear", "owner": "seapear",
"repo": "AffinityOnLinux", "repo": "AffinityOnLinux",
"rev": "da601564dfefe2ae3ec10e3f177db81578847b7b", "rev": "c3909c9e265f8091b9b0b26d8f51815a0a19e547",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -547,11 +570,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768437816, "lastModified": 1771797779,
"narHash": "sha256-GG+V2g5NfVrypTs8qbtGnUWTXTMkGtohy/uIDa5duI0=", "narHash": "sha256-VjN8CBG3KLaqP7yFYWvLQuCwivh4RBjzWkWlMlxYjdI=",
"owner": "Diegiwg", "owner": "Diegiwg",
"repo": "PrismLauncher-Cracked", "repo": "PrismLauncher-Cracked",
"rev": "e8418b74059bdbe4fcc97522b25dc17373b0cc21", "rev": "356e6d7edc4a1b8b28d1a9a04057a2a3ea8655e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -603,7 +626,7 @@
"nixpkgs" "nixpkgs"
], ],
"nur": "nur", "nur": "nur",
"systems": "systems", "systems": "systems_2",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@@ -611,11 +634,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1769888473, "lastModified": 1772296853,
"narHash": "sha256-4KWbaJwaYnZ60bFyTudZYAKskjr7Sa17R3/yh+oXS7w=", "narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "ae5c0239ae4f82a8c7e33ad8a456535d5a9ba813", "rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -625,6 +648,21 @@
} }
}, },
"systems": { "systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -727,11 +765,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767801790, "lastModified": 1769691507,
"narHash": "sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2+gM5tf8=", "narHash": "sha256-8aAYwyVzSSwIhP2glDhw/G0i5+wOrren3v6WmxkVonM=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "778a1d691f1ef45dd68c661715c5bf8cbf131c80", "rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -3,7 +3,7 @@ _: {
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 = {
@@ -18,6 +18,11 @@ _: {
*/ */
tailscale.enable = true; # Tailscale: secure network for remote access tailscale.enable = true; # Tailscale: secure network for remote access
/*
Calendar & Contacts
*/
calendar.enable = true; # GNOME Calendar: calendar and contacts application
/* /*
Gaming Gaming
*/ */
@@ -54,7 +59,7 @@ _: {
Communication & Collaboration Communication & Collaboration
*/ */
mattermost.enable = true; # Mattermost: opensource Slack alternative mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool slack.enable = false; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client tutanota.enable = true; # Tutanota: secure email client
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
@@ -70,7 +75,7 @@ _: {
/* /*
Media & Graphics Media & Graphics
*/ */
affinity.enable = false; # Affinity: professional graphics suite affinity.enable = true; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer eyeOfGnome.enable = true; # Eye of GNOME: image viewer
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
@@ -82,7 +87,7 @@ _: {
Utilities / Misc Utilities / Misc
*/ */
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = false; # Galculator: 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 = true; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools adb.enable = false; # ADB: Android SDK platform tools

View File

@@ -18,6 +18,11 @@ _: {
*/ */
tailscale.enable = true; # Tailscale: secure network for remote access tailscale.enable = true; # Tailscale: secure network for remote access
/*
Calendar & Contacts
*/
calendar.enable = true; # GNOME Calendar: calendar and contacts application
/* /*
Gaming Gaming
*/ */
@@ -54,7 +59,7 @@ _: {
Communication & Collaboration Communication & Collaboration
*/ */
mattermost.enable = true; # Mattermost: opensource Slack alternative mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool slack.enable = false; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client tutanota.enable = true; # Tutanota: secure email client
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
@@ -82,7 +87,7 @@ _: {
Utilities / Misc Utilities / Misc
*/ */
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = false; # Galculator: simple calculator gnomeCalculator.enable = true; # 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

View File

@@ -18,6 +18,11 @@ _: {
*/ */
tailscale.enable = false; # Tailscale: secure network for remote access tailscale.enable = false; # Tailscale: secure network for remote access
/*
Calendar & Contacts
*/
calendar.enable = true; # GNOME Calendar: calendar and contacts application
/* /*
Gaming Gaming
*/ */
@@ -54,7 +59,7 @@ _: {
Communication & Collaboration Communication & Collaboration
*/ */
mattermost.enable = true; # Mattermost: opensource Slack alternative mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool slack.enable = false; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client tutanota.enable = true; # Tutanota: secure email client
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
@@ -82,7 +87,7 @@ _: {
Utilities / Misc Utilities / Misc
*/ */
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = false; # Galculator: simple calculator gnomeCalculator.enable = true; # 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

16
modules/core/calendar.nix Normal file
View File

@@ -0,0 +1,16 @@
{
pkgs,
lib,
config,
...
}: {
options.calendar.enable = lib.mkEnableOption "Enable GNOME Calendar";
config = {
services.gnome.evolution-data-server.enable = lib.mkIf config.calendar.enable true;
environment.systemPackages = lib.mkIf config.calendar.enable (with pkgs; [
gnome-calendar
gnome-contacts
]);
};
}

View File

@@ -2,6 +2,7 @@
imports = [ imports = [
./packages ./packages
./boot.nix ./boot.nix
./calendar.nix
./docker.nix ./docker.nix
./flatpak.nix ./flatpak.nix
./fonts.nix ./fonts.nix
@@ -25,6 +26,7 @@
./virtualbox.nix ./virtualbox.nix
./xdg.nix ./xdg.nix
./xserver.nix ./xserver.nix
./zram.nix
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
]; ];
} }

View File

@@ -1,6 +1,7 @@
_: { _: {
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
imports = [ imports = [
./fluxer
./essentials.nix ./essentials.nix
./packages.nix ./packages.nix
./programs.nix ./programs.nix

View File

@@ -0,0 +1,6 @@
{pkgs, ...}: let
fluxer =
pkgs.callPackage ./fluxer-package.nix {};
in {
environment.systemPackages = [fluxer];
}

View File

@@ -0,0 +1,35 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "fluxer";
version = "canary";
src = fetchurl {
url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage";
sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
};
appimageContents = appimageTools.extract {inherit pname version src;};
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/512x512/apps/${pname}.png \
$out/share/icons/hicolor/512x512/apps/${pname}.png
substituteInPlace $out/share/applications/${pname}.desktop \
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "Fluxer desktop app";
homepage = "https://github.com/fluxerapp/fluxer";
license = licenses.agpl3Only;
platforms = ["x86_64-linux"];
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
maintainers = with lib.maintainers; [garand_plg];
};
}

View File

@@ -16,7 +16,7 @@
packages = with pkgs; { packages = with pkgs; {
bitwarden = bitwarden-desktop; bitwarden = bitwarden-desktop;
eddieAirVPN = eddie; eddieAirVPN = eddie;
galculator = galculator; gnomeCalculator = gnome-calculator;
gedit = gedit; gedit = gedit;
iotas = iotas; iotas = iotas;
logseq = logseq; logseq = logseq;
@@ -36,6 +36,7 @@
kdenlive = kdePackages.kdenlive; kdenlive = kdePackages.kdenlive;
plex = [ plex = [
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};}) (plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
# plex-desktop
plexamp plexamp
]; ];
freetube = freetube; freetube = freetube;

View File

@@ -18,10 +18,7 @@
ports = [22]; ports = [22];
}; };
tumbler.enable = true; # Image/video preview tumbler.enable = true; # Image/video preview
gnome = { gnome.gnome-keyring.enable = true;
gnome-keyring.enable = true;
evolution-data-server.enable = true;
};
smartd = { smartd = {
enable = enable =
if profile == "vm" if profile == "vm"

32
modules/core/zram.nix Normal file
View File

@@ -0,0 +1,32 @@
{pkgs, ...}: {
zramSwap = {
enable = true;
priority = 5;
memoryMax = 16 * 1024 * 1024 * 1024;
algorithm = "zstd";
swapDevices = 1;
memoryPercent = 50;
};
boot = {
kernelParams = [
"zswap.enabled=1" # enables zswap
"zswap.compressor=zstd" # compression algorithm
"zswap.max_pool_percent=20" # maximum percentage of RAM that zswap is allowed to use
"zswap.shrinker_enabled=1" # whether to shrink the pool proactively on high memory pressure
];
tmp = {
useZram = true;
zramSettings = {
compression-algorithm = "zstd";
zram-size = "ram * 0.5";
fs-type = "ext4";
options = "X-mount.mode=1777,discard";
};
};
};
services.zram-generator = {
enable = true;
package = pkgs.zram-generator;
settings = {};
};
}

View File

@@ -12,6 +12,6 @@
package = pkgs.anki; package = pkgs.anki;
language = "pl_PL"; language = "pl_PL";
style = "native"; style = "native";
sync.username = username; profiles."${username}".sync.username = username;
}; };
} }

View File

@@ -17,11 +17,19 @@
ncg = "nh clean all"; ncg = "nh clean all";
# Development aliases # Development aliases
## Django
srvenv = "source .venv/bin/activate"; srvenv = "source .venv/bin/activate";
"..srvenv" = "source ../.venv/bin/activate"; "..srvenv" = "source ../.venv/bin/activate";
uv-add = "uv add -r requirements.txt";
pm = "uv run manage.py"; pm = "uv run manage.py";
pm-rs = "uv run manage.py runserver";
pm-mg = "uv run manage.py migrate";
pm-mm = "uv run manage.py makemigrations";
pm-sq = "uv run manage.py sqlmigrate";
f8 = "uv run flake8 ."; f8 = "uv run flake8 .";
## JavaScript/TypeScript
bbr = "bun --bun run"; bbr = "bun --bun run";
## Git
"ga." = "git add ."; "ga." = "git add .";
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt"; mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";

View File

@@ -15,7 +15,7 @@
"SUPER, G, exec, affinity-v3 #\"Graphics editor\"" "SUPER, G, exec, affinity-v3 #\"Graphics editor\""
"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, galculator #\"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, plexamp #\"Music player for Plex\""
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\"" "SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
@@ -31,6 +31,8 @@
shiftBinds = [ shiftBinds = [
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\"" "SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\""
"SUPER SHIFT, E, exec, evolution #\"Personal information management application\""
"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, 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, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""

View File

@@ -5,11 +5,5 @@ _: {
"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"
# "killall -q waybar"
# "pkill waybar"
# "killall -q swaync"
# "pkill swaync"
"noctalia-shell &"
]; ];
} }

View File

@@ -41,6 +41,7 @@ _: {
"center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol" "center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
"center on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*" "center on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
"center on, match:title Authentication Required" "center on, match:title Authentication Required"
"center on, match:class org\.gnome\.Calculator"
# Idle inhibit rules # Idle inhibit rules
"idle_inhibit fullscreen, match:class .*" "idle_inhibit fullscreen, match:class .*"
@@ -61,11 +62,13 @@ _: {
"float on, match:initial_title Add Folder to Workspace" "float on, match:initial_title Add Folder to Workspace"
"float on, match:initial_title Open Files" "float on, match:initial_title Open Files"
"float on, match:initial_title wants to save" "float on, match:initial_title wants to save"
"float on, match:class org\.gnome\.Calculator"
# Size rules # Size rules
"size 70% 60%, match:initial_title Open Files" "size 70% 60%, match:initial_title Open Files"
"size 70% 60%, match:initial_title Add Folder to Workspace" "size 70% 60%, match:initial_title Add Folder to Workspace"
"size 70% 70%, match:tag settings*" "size 70% 70%, match:tag settings*"
"size 360 616, match:class org\.gnome\.Calculator"
# Tile rules # Tile rules
"tile on, match:class affinity\.exe" "tile on, match:class affinity\.exe"
@@ -84,6 +87,7 @@ _: {
"opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad" "opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad"
"opacity 0.9 0.8, match:class seahorse # gnome-keyring gui" "opacity 0.9 0.8, match:class seahorse # gnome-keyring gui"
"opacity 0.95 0.75, match:title Picture-in-Picture" "opacity 0.95 0.75, match:title Picture-in-Picture"
"opacity 0.9 0.8, match:class org\.gnome\.Calculator"
# Picture-in-Picture specific rules # Picture-in-Picture specific rules
"pin on, match:title Picture-in-Picture" "pin on, match:title Picture-in-Picture"

View File

@@ -10,7 +10,7 @@
calendarSupport = true; calendarSupport = true;
}; };
systemd.enable = true; systemd.enable = true;
settings.settingsVersion = lib.mkForce 46; # settings.settingsVersion = lib.mkForce 46;
}; };
imports = [ imports = [

View File

@@ -32,7 +32,8 @@
hyprlandConfigPath = "~/.config/hypr/hyprland.conf"; hyprlandConfigPath = "~/.config/hypr/hyprland.conf";
modKeyVariable = "SUPER"; modKeyVariable = "SUPER";
windowHeight = 850; windowHeight = 850;
windowWidth = 700; windowWidth = 1100;
columnCount = 2;
autoHeight = true; autoHeight = true;
}; };
}; };

View File

@@ -16,7 +16,7 @@ _: {
} }
{ {
id = "SystemMonitor"; id = "SystemMonitor";
compactMode = true; compactMode = false;
diskPath = "/home"; diskPath = "/home";
showCpuFreq = false; showCpuFreq = false;
showCpuTemp = false; showCpuTemp = false;
@@ -25,7 +25,7 @@ _: {
showDiskUsage = true; showDiskUsage = true;
showGpuTemp = false; showGpuTemp = false;
showLoadAverage = false; showLoadAverage = false;
showMemoryAsPercent = false; showMemoryAsPercent = true;
showMemoryUsage = true; showMemoryUsage = true;
showNetworkStats = true; showNetworkStats = true;
showSwapUsage = false; showSwapUsage = false;

View File

@@ -2,7 +2,9 @@
right = [ right = [
{ {
id = "Tray"; id = "Tray";
blacklist = []; blacklist = [
"nm-applet"
];
colorizeIcons = false; colorizeIcons = false;
drawerEnabled = false; drawerEnabled = false;
hidePassive = false; hidePassive = false;
@@ -32,11 +34,11 @@
{ {
id = "Battery"; id = "Battery";
deviceNativePath = "__default__"; deviceNativePath = "__default__";
displayMode = "onhover"; displayMode = "graphic";
hideIfIdle = false; hideIfIdle = false;
hideIfNotDetected = true; hideIfNotDetected = true;
showNoctaliaPerformance = false; showNoctaliaPerformance = true;
showPowerProfiles = false; showPowerProfiles = true;
warningThreshold = 30; warningThreshold = 30;
} }
{ {
@@ -44,10 +46,10 @@
displayMode = "alwaysShow"; displayMode = "alwaysShow";
middleClickCommand = "pwvucontrol || pavucontrol"; middleClickCommand = "pwvucontrol || pavucontrol";
} }
# { {
# "id" = "Brightness"; id = "Network";
# "displayMode" = "onhover"; displayMode = "onhover";
# } }
{ {
id = "ControlCenter"; id = "ControlCenter";
colorizeDistroLogo = false; colorizeDistroLogo = false;

View File

@@ -16,8 +16,8 @@ in {
memCriticalThreshold = 90; memCriticalThreshold = 90;
swapWarningThreshold = 80; swapWarningThreshold = 80;
swapCriticalThreshold = 90; swapCriticalThreshold = 90;
diskWarningThreshold = 80; diskWarningThreshold = 90;
diskCriticalThreshold = 90; diskCriticalThreshold = 95;
cpuPollingInterval = 3000; cpuPollingInterval = 3000;
tempPollingInterval = 3000; tempPollingInterval = 3000;
gpuPollingInterval = 3000; gpuPollingInterval = 3000;

View File

@@ -5,5 +5,8 @@
nixd nixd
alejandra alejandra
opencode opencode
uv
python314
ruff
]; ];
} }

View File

@@ -3,7 +3,7 @@ _: {
always_allow_tool_actions = true; always_allow_tool_actions = true;
default_profile = "ask"; default_profile = "ask";
default_model = { default_model = {
provider = "Cerebras"; provider = "Cerebras PAUG";
model = "gpt-oss-120b"; model = "gpt-oss-120b";
}; };
}; };

View File

@@ -5,8 +5,14 @@ _: {
metrics = false; metrics = false;
}; };
icon_theme = "VSCode Icons for Zed (Dark)"; icon_theme = "VSCode Icons for Zed (Dark)";
ui_font_family = "FiraCode Nerd Font Mono";
ui_font_size = 16; ui_font_size = 16;
buffer_font_family = "FiraCode Nerd Font Mono";
buffer_font_size = 15; buffer_font_size = 15;
terminal = {
font_family = "FiraCode Nerd Font Mono";
font_size = 14;
};
theme = { theme = {
mode = "dark"; mode = "dark";
light = "One Light"; light = "One Light";

View File

@@ -1,10 +1,11 @@
_: { _: {
programs.zed-editor.userSettings.language_models.openai_compatible."Cerebras" = { programs.zed-editor.userSettings.language_models.openai_compatible = {
"Cerebras FREE" = {
api_url = "https://api.cerebras.ai/v1"; api_url = "https://api.cerebras.ai/v1";
available_models = [ available_models = [
{ {
name = "qwen-3-235b-a22b-instruct-2507"; name = "gpt-oss-120b";
display_name = "Qwen 3 235B Instruct"; display_name = "OpenAI GPT OSS";
max_tokens = 65000; max_tokens = 65000;
max_output_tokens = 32000; max_output_tokens = 32000;
capabilities = { capabilities = {
@@ -14,6 +15,30 @@ _: {
prompt_cache_key = false; prompt_cache_key = false;
}; };
} }
{
name = "zai-glm-4.7";
display_name = "Z.ai GLM 4.7";
max_tokens = 64000;
max_output_tokens = 40000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = true;
prompt_cache_key = true;
};
}
{
name = "llama3.1-8b";
display_name = "Llama 3.1 8B";
max_tokens = 8000;
max_output_tokens = 8000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = true;
prompt_cache_key = true;
};
}
{ {
name = "llama-3.3-70b"; name = "llama-3.3-70b";
display_name = "Llama 3.3 70B"; display_name = "Llama 3.3 70B";
@@ -27,10 +52,39 @@ _: {
}; };
} }
{ {
name = "gpt-oss-120b"; name = "qwen-3-32b";
display_name = "OpenAI GPT OSS"; display_name = "Qwen 3 32B";
max_tokens = 65000;
max_output_tokens = 8000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = false;
prompt_cache_key = true;
};
}
{
name = "qwen-3-235b-a22b-instruct-2507";
display_name = "Qwen 3 235B Instruct";
max_tokens = 65000; max_tokens = 65000;
max_output_tokens = 32000; max_output_tokens = 32000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = false;
prompt_cache_key = true;
};
}
];
};
"Cerebras PAUG" = {
api_url = "https://api.cerebras.ai/v1";
available_models = [
{
name = "gpt-oss-120b";
display_name = "OpenAI GPT OSS";
max_tokens = 131000;
max_output_tokens = 40000;
capabilities = { capabilities = {
tools = true; tools = true;
images = true; images = true;
@@ -38,6 +92,67 @@ _: {
prompt_cache_key = false; prompt_cache_key = false;
}; };
} }
]; {
name = "zai-glm-4.7";
display_name = "Z.ai GLM 4.7";
max_tokens = 131000;
max_output_tokens = 40000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = true;
prompt_cache_key = true;
};
}
{
name = "llama3.1-8b";
display_name = "Llama 3.1 8B";
max_tokens = 32000;
max_output_tokens = 8000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = true;
prompt_cache_key = true;
};
}
{
name = "llama-3.3-70b";
display_name = "Llama 3.3 70B";
max_tokens = 128000;
max_output_tokens = 65000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = true;
prompt_cache_key = true;
};
}
{
name = "qwen-3-32b";
display_name = "Qwen 3 32B";
max_tokens = 131000;
max_output_tokens = 8000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = false;
prompt_cache_key = true;
};
}
{
name = "qwen-3-235b-a22b-instruct-2507";
display_name = "Qwen 3 235B Instruct";
max_tokens = 131000;
max_output_tokens = 40000;
capabilities = {
tools = true;
images = true;
parallel_tool_calls = false;
prompt_cache_key = true;
};
}
];
};
}; };
} }

View File

@@ -4,7 +4,17 @@ _: {
"nixd" "nixd"
"!nil" "!nil"
]; ];
Python.language_servers = ["!basedpyright"]; Python = {
format_on_save = "off";
formatter.language_server.name = "ruff";
code_actions_on_format."source.organizeImports.ruff" = true;
language_servers = [
"ruff"
"!ty"
"!basedpyright"
];
tab_size = 4;
};
YAML.tab_size = 2; YAML.tab_size = 2;
JavaScript = { JavaScript = {
formatter.language_server.name = "biome"; formatter.language_server.name = "biome";

View File

@@ -72,5 +72,27 @@
}; };
}; };
}; };
ruff = {
binary = {
path = lib.getExe pkgs.bash;
arguments = [
"-c"
"if [ -e flake.nix ]; then nix develop --command ruff server; else ruff server; fi"
];
};
initialization_options = {
check.command = "ruff check .";
inlayHints = {
maxLength = null;
lifetimeElisionHints = {
enable = "skip_trivial";
useParameterNames = true;
};
closureReturnTypeHints = {
enable = "always";
};
};
};
};
}; };
} }