Update dependencies and add Helium appimage

- Refresh many lock entries in flake.lock with new revisions and hashes.
- Enable the Helium appimage in default, desktop, and laptop host
  configs; add
  comment sections for web browsers and disable Fluxer by default.
- Rename the affinity option description from “Steam” to “Affinity”.
- Refactor appimage handling: introduce a generic mkAppImagePackage
  helper,
  import individual packages, and expose per‑package enable options.
- Update fluxer.nix to use a configurable icon size and adjust install
  paths.
- Bump Helium to version 0.12.3.1, update its hash, and make its icon
  size
  configurable.
- Adjust Hyprland settings: comment out the split‑layout bind, set
  configType = "hyprlang", enable Xwayland early, move vfr to the debug
  section, and comment out dwindle pseudotile.
This commit is contained in:
2026-05-16 22:57:30 +02:00
parent b6915ab988
commit c0d2e8cd47
10 changed files with 89 additions and 50 deletions
Generated
+34 -34
View File
@@ -18,11 +18,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1778226184, "lastModified": 1778820080,
"narHash": "sha256-PV2SjSCv9BLLjNQMDTed51Z6PDfgveGK9bvUNhyJ2a4=", "narHash": "sha256-CWF87Kt4EV8tZG0WqHrb3jYGGW21+I0cwucIwPLnWgY=",
"owner": "mrshmllow", "owner": "mrshmllow",
"repo": "affinity-nix", "repo": "affinity-nix",
"rev": "f76f97513153a753718aa1423e84b4cb8ea4c185", "rev": "656b7d557c219cbd347108c70c64251f3165fb64",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -158,11 +158,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1777969788, "lastModified": 1778662605,
"narHash": "sha256-8sr3w0KyQ0K7TEd8pYwYrxiDk0GZ4A7iIcl1lsxlzVM=", "narHash": "sha256-nGPpWsLZ1dX1Dirf98GsCsFDE/diXkUP0PaAqZlTpkA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "3abc2d5559f4dc30c710ab152abcb4cb60b561ba", "rev": "5c80141c6215ed0a1cdc06ddb68e9bb55e9edfca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -201,11 +201,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1778558563, "lastModified": 1778904158,
"narHash": "sha256-pT6KVIDxQYymtHC9ix6U/NTBUYJhYRX81Ou/9nAUSgc=", "narHash": "sha256-xZ/zdpu9X8OI1jGqd4z6W1hKa+DQh8A9k3TH6w9tNbo=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "f52067bf63247b39b81917d34d74f7c0a9344f05", "rev": "c31bafebd7e30517ead27149ad790802b998e98f",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -265,11 +265,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1777988971, "lastModified": 1778716662,
"narHash": "sha256-qIoWPDs+0/8JecyYgE3gpKQxW/4bLW/gp45vow9ioCQ=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "0678d8986be1661af6bb555f3489f2fdfc31f6ff", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -346,11 +346,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776796298, "lastModified": 1778507602,
"narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -403,11 +403,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778594112, "lastModified": 1778954430,
"narHash": "sha256-VA9z90SZviIvOcA4QyatA48FIyqb8mmsmH/EsXXWAG4=", "narHash": "sha256-oaNyOr05lblaQdtbkbN1wO0b2KLIL2O1LkmwDgdQp4I=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1768d4e49860b86cb7652ee738de0e6b3050dd40", "rev": "26aaab785b0bab4af60a2c42b22760fa906ef22a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -476,11 +476,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1778443072, "lastModified": 1778869304,
"narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", "rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -529,11 +529,11 @@
"noctalia-qs": "noctalia-qs" "noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1778464608, "lastModified": 1778830602,
"narHash": "sha256-tZRvyaKVP0DJ9DSFrr6K/l3X74Orfirk3Jjo7+br4Qs=", "narHash": "sha256-5HKL37GkJNRHsU8GS38UshBY7UyvTOQim2L4quSYGfE=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "761869a561548874fe7e293b157fd7841576b367", "rev": "13964255121d100a7306e76a28010f19e8b33a1a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -608,17 +608,17 @@
"plugin-loader-src": { "plugin-loader-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1775508798, "lastModified": 1776972538,
"narHash": "sha256-cD2G3M83wCEXVMMl9YoHMLxPIvbXeESgQTkXiM+lzns=", "narHash": "sha256-2EvrOYQCB2Z2YXhcPnjR67KoOCvwTVW3TfLcmU3//ak=",
"owner": "noahc3", "owner": "noahc3",
"repo": "AffinityPluginLoader", "repo": "AffinityPluginLoader",
"rev": "bd93bbf9f84735d8ba6538596620bbe8d8b90efd", "rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "noahc3", "owner": "noahc3",
"ref": "v0.3.0",
"repo": "AffinityPluginLoader", "repo": "AffinityPluginLoader",
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
"type": "github" "type": "github"
} }
}, },
@@ -659,11 +659,11 @@
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777924689, "lastModified": 1778611623,
"narHash": "sha256-9Z0puLyCSYvtYhP1IZMxC05DSgwA+5rE99jsv1KErc4=", "narHash": "sha256-oNgaKN3iKM1Cud3bKhEXFHXNRRc+j/JDl05d2jYa2Sg=",
"owner": "rust-lang", "owner": "rust-lang",
"repo": "rust-analyzer", "repo": "rust-analyzer",
"rev": "91c7c2c4ca6a0520cfbf97e369e4fb7bf0b63b7a", "rev": "7c28934677b1e7a1c6ef952422e6ef730540f85f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -710,11 +710,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1778104276, "lastModified": 1778776709,
"narHash": "sha256-/DSSnU0LLmOTG/OCgGwYpxP6+5YvxRx2g/GhI4x6aCU=", "narHash": "sha256-YhnEcpiY6+l3RFA+cPmdTaeODGvNRuqE8B7VBjPVIxo=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "18ed8d270231e067fe2739998479ed5d7c659c2c", "rev": "e8ea85b4f7dddda9603e0f1ac86cd92cee3b2819",
"type": "github" "type": "github"
}, },
"original": { "original": {
+6
View File
@@ -42,6 +42,11 @@ _: {
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = { packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/* /*
Container & Packaging Container & Packaging
*/ */
@@ -76,6 +81,7 @@ _: {
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
ferdium.enable = false; # Ferdium: All your services in one place built by the community ferdium.enable = false; # Ferdium: All your services in one place built by the community
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management
+6
View File
@@ -42,6 +42,11 @@ _: {
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = { packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/* /*
Container & Packaging Container & Packaging
*/ */
@@ -76,6 +81,7 @@ _: {
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
ferdium.enable = false; # Ferdium: All your services in one place built by the community ferdium.enable = false; # Ferdium: All your services in one place built by the community
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management
+6
View File
@@ -42,6 +42,11 @@ _: {
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = { packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/* /*
Container & Packaging Container & Packaging
*/ */
@@ -76,6 +81,7 @@ _: {
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
ferdium.enable = false; # Ferdium: All your services in one place built by the community ferdium.enable = false; # Ferdium: All your services in one place built by the community
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management
+1 -1
View File
@@ -5,7 +5,7 @@
inputs, inputs,
... ...
}: { }: {
options.affinity.enable = lib.mkEnableOption "Steam"; options.affinity.enable = lib.mkEnableOption "Affinity";
config = lib.mkIf config.affinity.enable { config = lib.mkIf config.affinity.enable {
nixpkgs.overlays = [inputs.affinity-nix.overlays.default]; nixpkgs.overlays = [inputs.affinity-nix.overlays.default];
+18 -4
View File
@@ -1,6 +1,20 @@
{pkgs, ...}: let {
fluxer = pkgs.callPackage ./fluxer.nix {}; pkgs,
helium = pkgs.callPackage ./helium.nix {}; lib,
config,
...
}: let
mkAppImagePackage = name: pkg: {
options.packages.appImages.${name}.enable = lib.mkEnableOption name;
config.environment.systemPackages =
lib.mkIf config.packages.appImages.${name}.enable [pkg];
};
appImagePackages = {
fluxer = pkgs.callPackage ./fluxer.nix {};
helium = pkgs.callPackage ./helium.nix {};
};
in { in {
environment.systemPackages = [fluxer helium]; imports = builtins.attrValues (builtins.mapAttrs mkAppImagePackage appImagePackages);
} }
+4 -2
View File
@@ -11,6 +11,8 @@
sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw="; sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
}; };
appimageContents = appimageTools.extract {inherit pname version src;}; appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "512x512";
in in
appimageTools.wrapType2 { appimageTools.wrapType2 {
inherit pname version src; inherit pname version src;
@@ -18,8 +20,8 @@ in
extraInstallCommands = '' extraInstallCommands = ''
# mv $out/bin/${pname}-${version} $out/bin/${pname} # mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/${pname}.png \ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/512x512/apps/${pname}.png $out/share/icons/hicolor/${iconSize}/apps/${pname}.png
substituteInPlace $out/share/applications/${pname}.desktop \ substituteInPlace $out/share/applications/${pname}.desktop \
--replace-fail 'Exec=AppRun' 'Exec=${pname}' --replace-fail 'Exec=AppRun' 'Exec=${pname}'
''; '';
+6 -4
View File
@@ -4,13 +4,15 @@
fetchurl, fetchurl,
}: let }: let
pname = "helium"; pname = "helium";
version = "0.12.1.1"; version = "0.12.3.1";
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-+UE+JqQtxbA5szPvAohapXlES21VBOdNsV6Ej1dRRfs="; sha256 = "sha256-VnOhzhAulvFNBB/0AD1d+K/TzfFL9Zwtk/vcm5vWl+I=";
}; };
appimageContents = appimageTools.extract {inherit pname version src;}; appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "256x256";
in in
appimageTools.wrapType2 { appimageTools.wrapType2 {
inherit pname version src; inherit pname version src;
@@ -18,8 +20,8 @@ in
extraInstallCommands = '' extraInstallCommands = ''
# mv $out/bin/${pname}-${version} $out/bin/${pname} # mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/256x256/apps/${pname}.png \ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/256x256/apps/${pname}.png $out/share/icons/hicolor/${iconSize}/apps/${pname}.png
# substituteInPlace $out/share/applications/${pname}.desktop \ # substituteInPlace $out/share/applications/${pname}.desktop \
# --replace-fail 'Exec=AppRun' 'Exec=${pname}' # --replace-fail 'Exec=AppRun' 'Exec=${pname}'
''; '';
+1 -1
View File
@@ -75,7 +75,7 @@
windowManagementBinds = [ windowManagementBinds = [
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\"" "SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
"SUPER, Q, killactive, #\"Close active window\"" "SUPER, Q, killactive, #\"Close active window\""
"SUPER SHIFT, I, togglesplit, #\"Toggle split layout\"" # "SUPER SHIFT, I, togglesplit, #\"Toggle split layout\""
"SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\"" "SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\""
]; ];
+7 -4
View File
@@ -21,12 +21,13 @@ in {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = pkgs.hyprland; package = pkgs.hyprland;
configType = "hyprlang"; # TODO: hyprlang => lua migration.
xwayland.enable = true;
systemd = { systemd = {
enable = true; enable = true;
enableXdgAutostart = true; enableXdgAutostart = true;
variables = ["--all"]; variables = ["--all"];
}; };
xwayland.enable = true;
settings = { settings = {
input = { input = {
kb_layout = "${keyboardLayout}"; kb_layout = "${keyboardLayout}";
@@ -76,7 +77,6 @@ in {
disable_splash_rendering = true; disable_splash_rendering = true;
enable_swallow = true; enable_swallow = true;
swallow_regex = "^(kitty)$"; swallow_regex = "^(kitty)$";
vfr = true; # Variable Frame Rate
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
# Screen flashing to black momentarily or going black when app is fullscreen # Screen flashing to black momentarily or going black when app is fullscreen
# Try setting vrr to 0 # Try setting vrr to 0
@@ -87,7 +87,7 @@ in {
}; };
dwindle = { dwindle = {
pseudotile = true; # pseudotile = true;
preserve_split = true; preserve_split = true;
force_split = 2; force_split = 2;
}; };
@@ -131,7 +131,10 @@ in {
direct_scanout = 0; direct_scanout = 0;
}; };
debug.full_cm_proto = true; debug = {
vfr = true; # Variable Frame Rate
full_cm_proto = true;
};
master = { master = {
new_status = "master"; new_status = "master";