What’s the recommended way? In particular I’d like Desktop Icons.
I installed gnome3.gnome-tweaks and I see that already installs gnome3.gnome-shell-extensions, but there’s desktop-icons there.
Is there something like node2nix but for gnome extensions on extensions.gnome.org , or from git repos?
2 Likes
Installing the Chrome Gnome Shell Integration extension from Chrome webstore and then installing Desktop Icons from extensions.gnome.org was too easy.
It’d be neat to manage all extensions in my configuration.nix though.
You can install extensions with environment.systemPackages = with pkgs; [ gnomeExtensions.FOO ], but they won’t be enabled . You’d either have to enable them in GNOME Tweaks, or play with dconf. (I think home-manager has a dconf module that can make the setup declarative, but I haven’t tested it.)
Also, relevant (stale) nixpkgs PR: [WIP] nixos: add environment.gnome3.enableExtensions by bjornfor · Pull Request #46433 · NixOS/nixpkgs · GitHub .
7 Likes
auipga
July 17, 2026, 4:47pm
4
to enable it add dconf.settings.“org/gnome/shell”.enabled-extensions = [ “some-extension-identifier-not-the-pkg-name” ];
example:
# home-manager/modules/gnome/shell-extensions/quick-settings-tweaks.nix
{ pkgs, … }:
{
home.packages = with pkgs.gnomeExtensions; [ quick-settings-tweaker ];
dconf.settings.“org/gnome/shell”.enabled-extensions = [ “quick-settings-tweaks@qwreey” ];
dconf.settings.“org/gnome/shell/extensions/quick-settings-tweaks” = {
list-buttons = builtins.toJSON [
{ name = “SystemItem”; title = null; visible = true; }
# …
];
};
}
As I wanted to find the answer here, but didn’t: I found it myself and post it for the next reader. Please skip teaching necro bumping.
1 Like
Tip: extension derivations in nixpkgs have a .extensionUuid attribute, which makes things more DRY:
{
dconf.settings.“org/gnome/shell”.enabled-extensions = [
pkgs.gnomeExtensions.hide-cursor.extensionUuid
];
}
Sure, but if you’re already using Home Manager, just add them to programs.gnome-shell.extensions instead of going through dconf.settings.