diff --git a/configuration.nix b/configuration.nix index 297d6cd..edccc3c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -189,7 +189,7 @@ tmux ffmpeg signal-desktop - krita + # krita is installed per-host via home-manager (wrapped on s, bare on x) direnv rustup starship diff --git a/hosts/s-home.nix b/hosts/s-home.nix index 9382977..23b9ca9 100644 --- a/hosts/s-home.nix +++ b/hosts/s-home.nix @@ -1,7 +1,23 @@ { lib, pkgs, ... }: { - home.packages = [ pkgs.nvtopPackages.nvidia ]; + home.packages = [ + pkgs.nvtopPackages.nvidia + # Wrap krita so Qt's GTK3 platform theme can find the GSettings schemas + # it needs. Without this, opening any file dialog on GNOME crashes: + # qgtk3 -> g_settings_new("org.gtk.Settings.FileChooser") -> glib abort + # because the gtk3 schema dir isn't in XDG_DATA_DIRS for this process. + (pkgs.symlinkJoin { + name = "krita"; + paths = [ pkgs.krita ]; + nativeBuildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/krita \ + --prefix XDG_DATA_DIRS : "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}" \ + --prefix XDG_DATA_DIRS : "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}" + ''; + }) + ]; dconf.settings = { "org/gnome/desktop/input-sources" = { diff --git a/hosts/x-home.nix b/hosts/x-home.nix index e473de5..95be6a1 100644 --- a/hosts/x-home.nix +++ b/hosts/x-home.nix @@ -57,6 +57,7 @@ in pkgs.playerctl pkgs.iio-sensor-proxy # provides monitor-sensor pkgs.wlogout + pkgs.krita recordToggle ]; diff --git a/packages.txt b/packages.txt index 0de1ebe..8deee8a 100644 --- a/packages.txt +++ b/packages.txt @@ -55,6 +55,7 @@ tig tmux-xpanes topgrade tuc +unzip upterm viddy xclip @@ -71,6 +72,7 @@ ffmpegthumbnailer gifsicle mpv transmission_4 +losslesscut-bin # Networking caddy @@ -126,7 +128,7 @@ losslesscut-bin crosspipe # Creative -krita +# krita is installed per-host (wrapped on s, bare on x) — see hosts/s-home.nix and hosts/x-home.nix blender pinta