Add nixGL for firefox, digikam

This commit is contained in:
Leonora Tindall 2024-02-05 11:03:00 -06:00
parent cb4bc91db3
commit 5c2120616f
2 changed files with 38 additions and 0 deletions

34
nixGL.nix Normal file
View File

@ -0,0 +1,34 @@
# Call once on import to load global context
{ pkgs, config }:
let nixGL = import <nixgl> {}; in
# Wrap a single package
pkg:
# Wrap the package's binaries with nixGL, while preserving the rest of
# the outputs and derivation attributes.
(pkg.overrideAttrs (old: {
name = "nixGL-${pkg.name}";
buildCommand = ''
set -eo pipefail
${
# Heavily inspired by https://stackoverflow.com/a/68523368/6259505
pkgs.lib.concatStringsSep "\n" (map (outputName: ''
echo "Copying output ${outputName}"
set -x
cp -rs --no-preserve=mode "${pkg.${outputName}}" "''$${outputName}"
set +x
'') (old.outputs or [ "out" ]))}
rm -rf $out/bin/*
shopt -s nullglob # Prevent loop from running if no files
for file in ${pkg.out}/bin/*; do
echo "#!${pkgs.bash}/bin/bash" > "$out/bin/$(basename $file)"
echo "exec -a \"\$0\" ${nixGL.auto.nixGLDefault}/bin/nixGL $file \"\$@\"" >> "$out/bin/$(basename $file)"
chmod +x "$out/bin/$(basename $file)"
done
shopt -u nullglob # Revert nullglob back to its normal default state
'';
}))

View File

@ -1,4 +1,6 @@
{ config, pkgs, ... }:
let nixGL = import ./nixGL.nix { inherit pkgs config; };
in
{
home.packages = with pkgs; [
mullvad-vpn
@ -7,6 +9,7 @@
htop
ollama
wget
(nixGL firefox)
ripgrep
bat
monolith
@ -18,6 +21,7 @@
obsidian
dfc
anki
(nixGL digikam)
deno
nodejs_21
];