Files
homelab/pkgs/rishot.nix
darman faaf24ddc0 terra: cosmic portals, jupiter smb mount, tea CLI, launcher/theme polish
- swap gtk portal/apps for cosmic (xdg-desktop-portal-cosmic, cosmic-files,
  cosmic-settings) and drop dolphin/protonplus/bambu-studio (bambu-studio
  moved to flatpak alongside the other comms/gaming flatpaks)
- mount jupiter's samba share at /mnt/jupiter (automount, credentials from
  the same samba_password secret jupiter itself uses)
- add tea (gitea's remote API CLI) for talking to git.mgaction.town from
  terra without SSHing into jupiter
- new dark icon themes (Amy, Azure Glassy, Slot Beauty) vendored from
  gnome-look.org tarballs, packaged since pling download links expire
- rishot: fix Qt5Compat.GraphicalEffects QML import (was missing qt6.qt5compat
  on QML_IMPORT_PATH, so quickshell failed at config-load)
- launcher widgets: stop LauncherConsole/LauncherDock from reserving
  compositor space (ExclusionMode.Ignore, they're overlays not real docks);
  bump LauncherCorner app icon size 28->34
- comms script: launch telegram/discord via flatpak, not native binaries
- nix-ld + boot.binfmt aarch64 emulation (for building/flashing mercury
  from terra)
2026-07-29 21:43:43 +02:00

76 lines
2.2 KiB
Nix

{ lib
, stdenvNoCC
, fetchFromGitHub
, makeWrapper
, quickshell
, wl-clipboard
, imagemagick
, cliphist
, curl
, kdePackages
, libnotify
, qt6
}:
# Wayland screenshot + annotation overlay, driven entirely by quickshell (qs -p
# <dir>) rather than compiled — upstream ships bin/rishot (a shell launcher)
# plus src/*.qml, no nixpkgs package exists. bin/rishot resolves its QML dir at
# $self/../src by default, which breaks once wrapProgram rewrites argv0; setting
# RISHOT_CONFIG_DIR sidesteps that self-lookup entirely (see bin/rishot upstream).
#
# Overlay.qml imports Qt5Compat.GraphicalEffects, which quickshell's own Qt
# runtime doesn't ship — without qt5compat on the QML import path, `qs`
# fails at config-load with "module Qt5Compat.GraphicalEffects is not
# installed" and rishot exits 255 before ever drawing anything.
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rishot";
version = "0-unstable-2026-07-10";
src = fetchFromGitHub {
owner = "Gakuseei";
repo = "rishot";
rev = "a87427a9083981315a080133636c38d8ca565d0e";
hash = "sha256-FR7x4zAuCRKkPjU28r55JrlbbEd59S8wtIA+D/ooEeE=";
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
dontConfigure = true;
installPhase = ''
runHook preInstall
install -Dm755 bin/rishot "$out/bin/rishot"
mkdir -p "$out/share/rishot"
cp -r src "$out/share/rishot/src"
install -Dm644 rishot.desktop "$out/share/applications/rishot.desktop"
install -Dm644 packaging/rishot.svg "$out/share/icons/hicolor/scalable/apps/rishot.svg"
wrapProgram "$out/bin/rishot" \
--set RISHOT_CONFIG_DIR "$out/share/rishot/src" \
--prefix PATH : ${lib.makeBinPath [
quickshell
wl-clipboard
imagemagick
cliphist
curl
kdePackages.kdialog
libnotify
]} \
--prefix QML_IMPORT_PATH : "${qt6.qt5compat}/lib/qt-6/qml" \
--prefix QML2_IMPORT_PATH : "${qt6.qt5compat}/lib/qt-6/qml"
runHook postInstall
'';
meta = {
description = "Wayland screenshot + annotation overlay built on quickshell";
homepage = "https://github.com/Gakuseei/rishot";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
mainProgram = "rishot";
};
})