mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-07-06 16:12:33 +02:00
d233ae904f
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
143 lines
4.8 KiB
Nix
143 lines
4.8 KiB
Nix
{
|
|
inputs,
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: let
|
|
c = config.lib.stylix.colors;
|
|
rgb = base: map lib.strings.toInt [c."${base}-rgb-r" c."${base}-rgb-g" c."${base}-rgb-b"];
|
|
|
|
themeId = "abcadngacjlikcpkhleafekcdjmddegk";
|
|
themeKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6t46VoE3mdV1QNMgybpmQLi5PtYHejnNrSj4DkBZyiTzMzs7Yyvg64f78w3QubZA5cTXSQ7FVhVHvv30I8ym/jNzsSN6reh1t4PtKsFjFRugAty8bfKJGD404HZLOFN2z3G9UPVLBBgzDH3DWbb/kcOq60Mlo/QDCIjsieZg0G3EYMl4efoThzYPWoyv0UEoiliwrE/AChxbgipQetUZ48bFhTCsmnYzCze7clssfTobzWtJJG0qFx76LauHKymRS5OTFfgsovKqHUSFJ202Q53vFdUPP/j8PjSPr1kZeg1NYc7Ba3MoA49EwtJf5ol9oYu05EEnSQ5+1AoYVmdE8QIDAQAB";
|
|
|
|
themeManifest = builtins.toJSON {
|
|
manifest_version = 2;
|
|
name = "Stylix Theme";
|
|
version = "1.0";
|
|
key = themeKey;
|
|
theme.colors = {
|
|
frame = rgb "base00";
|
|
frame_inactive = rgb "base00";
|
|
frame_incognito = rgb "base00";
|
|
frame_incognito_inactive = rgb "base00";
|
|
toolbar = rgb "base00";
|
|
toolbar_button_icon = rgb "base05";
|
|
control_background = rgb "base00";
|
|
tab_text = rgb "base0D";
|
|
background_tab = rgb "base00";
|
|
tab_background_text = rgb "base04";
|
|
tab_background_text_inactive = rgb "base04";
|
|
ntp_background = rgb "base00";
|
|
ntp_text = rgb "base05";
|
|
};
|
|
};
|
|
|
|
heliumFlags = [
|
|
"--enable-features=UseOzonePlatform"
|
|
"--ozone-platform=wayland"
|
|
"--enable-accelerated-video-decode"
|
|
"--enable-gpu-rasterization"
|
|
"--enable-zero-copy"
|
|
"--ignore-gpu-blocklist"
|
|
"--enable-features=VaapiVideoDecoder"
|
|
"--enable-features=VaapiVideoEncoder"
|
|
"--enable-features=CanvasOopRasterization"
|
|
"--disable-features=UseChromeOSDirectVideoDecoder"
|
|
"--no-default-browser-check"
|
|
"--show-avatar-button=never"
|
|
"--disable-features=WaylandWpColorManagerV1"
|
|
];
|
|
|
|
originalPkg = (inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.helium).override {
|
|
flags = heliumFlags;
|
|
};
|
|
|
|
patchScript = pkgs.writeShellScript "helium-patch-prefs" ''
|
|
PROFILE="$HOME/.config/net.imput.helium/Default"
|
|
THEME_DIR="$PROFILE/Extensions/${themeId}/1.0_0"
|
|
PREFS="$PROFILE/Preferences"
|
|
|
|
mkdir -p "$THEME_DIR"
|
|
rm -f "$THEME_DIR/Cached Theme.pak"
|
|
printf '%s' '${themeManifest}' > "$THEME_DIR/manifest.json"
|
|
|
|
if [ -f "$PREFS" ]; then
|
|
tmp=$(mktemp)
|
|
${lib.getExe pkgs.jq} \
|
|
--arg id "${themeId}" \
|
|
--slurpfile manifest "$THEME_DIR/manifest.json" \
|
|
'
|
|
.helium.browser.layout = 3 |
|
|
.helium.browser.minimal_location_bar = true |
|
|
.helium.browser.show_dynamic_new_tab_button = false |
|
|
.bookmark_bar.show_tab_groups = false |
|
|
.extensions.settings[$id] = {
|
|
"active_permissions": {"api": [], "explicit_host": [], "manifest_permissions": [], "scriptable_host": []},
|
|
"creation_flags": 0,
|
|
"from_webstore": false,
|
|
"install_time": "13300000000000000",
|
|
"location": 1,
|
|
"manifest": $manifest[0],
|
|
"path": ($id + "/1.0_0"),
|
|
"state": 1,
|
|
"was_installed_by_default": false,
|
|
"was_installed_by_oem": false
|
|
} |
|
|
.extensions.theme = {"id": $id, "use_system": false}
|
|
' "$PREFS" > "$tmp" && mv "$tmp" "$PREFS"
|
|
fi
|
|
'';
|
|
|
|
baseWrapped = pkgs.symlinkJoin {
|
|
name = "helium-wrapped";
|
|
paths = [originalPkg];
|
|
nativeBuildInputs = [pkgs.makeWrapper];
|
|
postBuild = ''
|
|
wrapProgram $out/bin/helium \
|
|
--run ${lib.escapeShellArg (toString patchScript)}
|
|
'';
|
|
};
|
|
|
|
wrappedPkg = baseWrapped // {override = _: baseWrapped;};
|
|
in {
|
|
imports = [
|
|
inputs.helium-browser.homeModules.default
|
|
./bookmarks
|
|
];
|
|
|
|
programs.helium = {
|
|
enable = true;
|
|
package = lib.mkForce wrappedPkg;
|
|
};
|
|
|
|
home.sessionVariables.BROWSER = "${config.programs.helium.package}/bin/helium";
|
|
|
|
xdg.desktopEntries.helium = {
|
|
name = "Helium";
|
|
genericName = "Navigateur Web";
|
|
exec = "${config.programs.helium.package}/bin/helium %U";
|
|
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
|
|
terminal = false;
|
|
categories = ["Network" "WebBrowser"];
|
|
mimeType = [
|
|
"text/html"
|
|
"text/xml"
|
|
"application/xhtml+xml"
|
|
"x-scheme-handler/http"
|
|
"x-scheme-handler/https"
|
|
"x-scheme-handler/ftp"
|
|
];
|
|
};
|
|
|
|
xdg.desktopEntries.helium-private = {
|
|
name = "Helium (Private window)";
|
|
genericName = "Navigateur Web";
|
|
exec = "${config.programs.helium.package}/bin/helium --incognito %U";
|
|
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
|
|
terminal = false;
|
|
categories = ["Network" "WebBrowser"];
|
|
mimeType = ["text/html" "text/xml" "application/xhtml+xml"];
|
|
};
|
|
}
|