marci
January 25, 2026, 7:15pm
1
Hi I want to use copyous gnome extension but unfortunately I can not use all its features. It depends on libgda and gsound. My config is as follows:
environment = {
systemPackages = (with pkgs; [
gnome-tweaks
dconf-editor
adw-gtk3
libgda6 # needed for copyous
gsound # needed for copyous
]) ++ (with pkgs.gnomeExtensions; [
copyous
]);
};
home-manager.users.${user} =
dconf.settings = {
"org/gnome/shell" = {
enabled-extensions = [
"copyous@boerdereinar.dev"
];
};
};
};
Unfortunately copyous is not able to see that I actually have the packages installed and is complaining about missing the dependencies. Someone has a clue on how I can let copyous know where the two packages are?
Looks like NixOS/nixpkgs#469919 has a solution.
jmir
January 29, 2026, 1:49pm
3
I haven’t gotten around to writing an extension override, so right now I’m just using a custom package definition.
{
lib,
stdenv,
fetchzip,
glib,
libgda6,
gsound,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-shell-extension-copyous";
version = "1.2.0";
src = fetchzip {
url = "https://github.com/boerdereinar/copyous/releases/download/v${finalAttrs.version}/copyous@boerdereinar.dev.zip";
hash = "sha256-3yE0+F/E1/qrGGO6loaMoCzf5gtT1j964/HdytU0ePM=";
stripRoot = false;
};
nativeBuildInputs = [ glib ];
buildPhase = ''
runHook preBuild
glib-compile-schemas --strict schemas
runHook postBuild
'';
preInstall = ''
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${libgda6}/lib/girepository-1.0');\nGIRepository.Repository.dup_default().prepend_search_path('${gsound}/lib/girepository-1.0');\n" lib/preferences/dependencies/dependencies.js
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${libgda6}/lib/girepository-1.0');\n" lib/misc/db.js
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${gsound}/lib/girepository-1.0');\n" lib/common/sound.js
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${gsound}/lib/girepository-1.0');\n" lib/preferences/general/feedbackSettings.js
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/gnome-shell/extensions
cp -r -T . $out/share/gnome-shell/extensions/copyous@boerdereinar.dev
runHook postInstall
'';
passthru = {
extensionPortalSlug = "copyous";
extensionUuid = "copyous@boerdereinar.dev";
};
meta = with lib; {
description = "Modern Clipboard Manager for GNOME";
homepage = "https://github.com/boerdereinar/copyous";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jmir ];
platforms = platforms.linux;
};
})
jmir
January 29, 2026, 2:10pm
4
environment = {
systemPackages = (with pkgs; [
gnome-tweaks
dconf-editor
adw-gtk3
libgda6 # needed for copyous
gsound # needed for copyous
]) ++ (with pkgs.gnomeExtensions; [
(copyous.overrideAttrs(oldAttrs: {
buildInputs = [
pkgs.libgda6
pkgs.gsound
];
preInstall = ''
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${pkgs.libgda6}/lib/girepository-1.0');\nGIRepository.Repository.dup_default().prepend_search_path('${pkgs.gsound}/lib/girepository-1.0');\n" lib/preferences/dependencies/dependencies.js
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${pkgs.libgda6}/lib/girepository-1.0');\n" lib/misc/db.js
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${pkgs.gsound}/lib/girepository-1.0');\n" lib/common/sound.js
sed -i "1i import GIRepository from 'gi://GIRepository';\nGIRepository.Repository.dup_default().prepend_search_path('${pkgs.gsound}/lib/girepository-1.0');\n" lib/preferences/general/feedbackSettings.js
'';
}))
]);
};
home-manager.users.${user} =
dconf.settings = {
"org/gnome/shell" = {
enabled-extensions = [
"copyous@boerdereinar.dev"
];
};
};
};
This might work for you, @marci
Don’t think you need gda and gsound in your system packages in this case