From 12b69102d9deedf7c7d7d3f5427fb64a3a669eb6 Mon Sep 17 00:00:00 2001 From: GarandPLG Date: Wed, 6 May 2026 10:40:20 +0200 Subject: [PATCH] Add Helium AppImage and replace Chromium webapps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Helium browser as an AppImage and include it in system packages. - Rename fluxer package into the appimages module and update imports. - Add `SUPER+H` keybinding to launch Helium and `SUPER+CONTROL+T` for tsukimi. - Change web‑app desktop entries to use Helium instead of Chromium. - Disable ungoogled‑chromium and ChatGPT modules on the laptop host. - Fix a minor typo in a comment within hardware.nix. --- hosts/Garand-Desktop/hardware.nix | 2 +- hosts/Garand-Laptop/home-modules.nix | 4 +- modules/core/packages/appimages/default.nix | 6 +++ .../fluxer.nix} | 0 modules/core/packages/appimages/helium.nix | 37 +++++++++++++++++++ modules/core/packages/default.nix | 2 +- modules/core/packages/fluxer/default.nix | 6 --- modules/home/hyprland/binds.nix | 4 +- modules/home/xdg/desktop-entries.nix | 2 +- 9 files changed, 51 insertions(+), 12 deletions(-) create mode 100644 modules/core/packages/appimages/default.nix rename modules/core/packages/{fluxer/fluxer-package.nix => appimages/fluxer.nix} (100%) create mode 100644 modules/core/packages/appimages/helium.nix delete mode 100644 modules/core/packages/fluxer/default.nix diff --git a/hosts/Garand-Desktop/hardware.nix b/hosts/Garand-Desktop/hardware.nix index e78b266..3eff2dd 100644 --- a/hosts/Garand-Desktop/hardware.nix +++ b/hosts/Garand-Desktop/hardware.nix @@ -58,7 +58,7 @@ } ]; - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # Enables DHCP on each ethernet and wireless inter.. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's # still possible to use this option, but it's recommended to use it in conjunction # with explicit per-interface declarations with `networking.interfaces..useDHCP`. diff --git a/hosts/Garand-Laptop/home-modules.nix b/hosts/Garand-Laptop/home-modules.nix index d7d3d8a..b5b0449 100644 --- a/hosts/Garand-Laptop/home-modules.nix +++ b/hosts/Garand-Laptop/home-modules.nix @@ -12,7 +12,7 @@ _: { Web browsers */ 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 @@ -58,7 +58,7 @@ _: { messenger.enable = true; # Messenger: Facebook Messenger mastodon.enable = true; # Mastodon: a decentralized social network garandcloud.enable = true; # GarandCloud: my Nextcloud instance - chatgpt.enable = true; # ChatGPT: a large language model + chatgpt.enable = false; # ChatGPT: a large language model claude.enable = true; # Claude: a large language model glance.enable = true; # Glance: my home server dashboard jellyfinClient.enable = true; # Jellyfin: My Jellyfin diff --git a/modules/core/packages/appimages/default.nix b/modules/core/packages/appimages/default.nix new file mode 100644 index 0000000..99ed971 --- /dev/null +++ b/modules/core/packages/appimages/default.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: let + fluxer = pkgs.callPackage ./fluxer.nix {}; + helium = pkgs.callPackage ./helium.nix {}; +in { + environment.systemPackages = [fluxer helium]; +} diff --git a/modules/core/packages/fluxer/fluxer-package.nix b/modules/core/packages/appimages/fluxer.nix similarity index 100% rename from modules/core/packages/fluxer/fluxer-package.nix rename to modules/core/packages/appimages/fluxer.nix diff --git a/modules/core/packages/appimages/helium.nix b/modules/core/packages/appimages/helium.nix new file mode 100644 index 0000000..2b1e24d --- /dev/null +++ b/modules/core/packages/appimages/helium.nix @@ -0,0 +1,37 @@ +{ + lib, + appimageTools, + fetchurl, +}: let + pname = "helium"; + version = "0.11.7.1"; + + src = fetchurl { + url = "https://github.com/imputnet/helium-linux/releases/download/0.11.7.1/helium-0.11.7.1-x86_64.AppImage"; + sha256 = "sha256-qzc135IP5F2btxtOMUGMz+0azJhYL9KI0lcPG2KjcxU="; + }; + 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/256x256/apps/${pname}.png \ + $out/share/icons/hicolor/256x256/apps/${pname}.png + # substituteInPlace $out/share/applications/${pname}.desktop \ + # --replace-fail 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "Helium browser"; + homepage = "https://github.com/imputnet/helium"; + license = licenses.agpl3Plus; + platforms = ["x86_64-linux"]; + sourceProvenance = with lib.sourceTypes; [binaryNativeCode]; + maintainers = with lib.maintainers; [garand_plg]; + }; + } +# https://github.com/imputnet/helium-linux/releases/download/0.11.7.1/helium-0.11.7.1-x86_64.AppImage + diff --git a/modules/core/packages/default.nix b/modules/core/packages/default.nix index 0cd8a0e..4fc8cce 100644 --- a/modules/core/packages/default.nix +++ b/modules/core/packages/default.nix @@ -1,7 +1,7 @@ _: { nixpkgs.config.allowUnfree = true; imports = [ - ./fluxer + ./appimages ./essentials.nix ./packages.nix ./programs.nix diff --git a/modules/core/packages/fluxer/default.nix b/modules/core/packages/fluxer/default.nix deleted file mode 100644 index af44324..0000000 --- a/modules/core/packages/fluxer/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{pkgs, ...}: let - fluxer = - pkgs.callPackage ./fluxer-package.nix {}; -in { - environment.systemPackages = [fluxer]; -} diff --git a/modules/home/hyprland/binds.nix b/modules/home/hyprland/binds.nix index 2d77fac..fe92672 100644 --- a/modules/home/hyprland/binds.nix +++ b/modules/home/hyprland/binds.nix @@ -13,6 +13,7 @@ "SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\"" "SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\"" "SUPER, G, exec, affinity-v3 #\"Graphics editor\"" + "SUPER, H, exec, helium #\"Helium web browser\"" "SUPER, I, exec, iotas #\"Note-taking app\"" "SUPER, J, exec, Jan #\"Local AI chat interface\"" "SUPER, K, exec, gnome-calculator #\"Scientific calculator\"" @@ -32,10 +33,10 @@ shiftBinds = [ "SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\"" - "SUPER SHIFT, D, exec, jellyfin-desktop #\"Jellyfin media client\"" "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, J, exec, ${desktopEntriesPath}/jellyfinClient.desktop #\"Jellyfin PWA\"" "SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\"" "SUPER SHIFT, M, exec, plexamp #\"Music player for Plex\"" "SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\"" @@ -65,6 +66,7 @@ "SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\"" "SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\"" "SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\"" + "SUPER CONTROL, T, exec, tsukimi #\"A simple Emby/Jellyfin Client\"" "SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\"" ]; diff --git a/modules/home/xdg/desktop-entries.nix b/modules/home/xdg/desktop-entries.nix index 1139464..b4be5c0 100644 --- a/modules/home/xdg/desktop-entries.nix +++ b/modules/home/xdg/desktop-entries.nix @@ -12,7 +12,7 @@ makeEntry = app: { name = app.displayName; genericName = app.genericName or app.displayName; - exec = "chromium --profile-directory=Default --app=${app.url}"; + exec = "helium --profile-directory=Default --app=${app.url}"; icon = "${fetchIcon app.iconUrl app.iconSha}"; terminal = false; type = "Application";