boxy: replace Kodi with Plasma Bigscreen
Add plasma-bigscreen role with package built from upstream master (not yet in nixpkgs, tracking NixOS/nixpkgs#428077). Changes: - New role: roles/plasma-bigscreen/ (module + package derivation) - boxy configuration: swap roles.kodi for roles.plasma-bigscreen - Keeps all existing functionality: Jellyfin, Stremio, Firefox, KDE Connect, app-launcher-server, AVR volume control (kodi user) - Autologins to plasma-bigscreen-wayland session instead of plasma NOTE: First build will fail with a hash mismatch on the source fetch — copy the correct sha256 from the error into package.nix. Some dep attribute names may also need adjustment on first build.
This commit is contained in:
117
roles/plasma-bigscreen/package.nix
Normal file
117
roles/plasma-bigscreen/package.nix
Normal file
@@ -0,0 +1,117 @@
|
||||
# Plasma Bigscreen — TV interface for Plasma 6
|
||||
# Not yet released or packaged in nixpkgs; built from upstream master.
|
||||
# Upstream: https://invent.kde.org/plasma/plasma-bigscreen
|
||||
# Tracking: https://github.com/NixOS/nixpkgs/issues/428077
|
||||
# Based on: https://github.com/NixOS/nixpkgs/pull/428353
|
||||
{
|
||||
mkKdeDerivation,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
pkg-config,
|
||||
# KDE Frameworks 6
|
||||
ki18n,
|
||||
kdeclarative,
|
||||
kcmutils,
|
||||
knotifications,
|
||||
kio,
|
||||
kwayland,
|
||||
kwindowsystem,
|
||||
ksvg,
|
||||
kiconthemes,
|
||||
kglobalaccel,
|
||||
kdbusaddons,
|
||||
# KDE Plasma 6
|
||||
plasma-workspace,
|
||||
plasma-nano,
|
||||
plasma-nm,
|
||||
plasma-activities,
|
||||
plasma-activities-stats,
|
||||
milou,
|
||||
libkscreen,
|
||||
kdeconnect-kde,
|
||||
# Qt 6
|
||||
qtmultimedia,
|
||||
qtwebengine,
|
||||
# Other
|
||||
bluez-qt,
|
||||
qcoro,
|
||||
plasma-wayland-protocols,
|
||||
wayland,
|
||||
sdl3,
|
||||
}:
|
||||
|
||||
mkKdeDerivation {
|
||||
pname = "plasma-bigscreen";
|
||||
version = "unstable-2026-03-07";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "plasma";
|
||||
repo = "plasma-bigscreen";
|
||||
rev = "bd143fea7e386bac1652b8150a3ed3d5ef7cf93c";
|
||||
# Build will fail with hash mismatch — copy the correct hash from the error
|
||||
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
|
||||
};
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
extraBuildInputs = [
|
||||
# KDE Frameworks
|
||||
ki18n
|
||||
kdeclarative
|
||||
kcmutils
|
||||
knotifications
|
||||
kio
|
||||
kwayland
|
||||
kwindowsystem
|
||||
ksvg
|
||||
kiconthemes
|
||||
kglobalaccel
|
||||
kdbusaddons
|
||||
# Plasma
|
||||
plasma-workspace
|
||||
plasma-nano
|
||||
plasma-nm
|
||||
plasma-activities
|
||||
plasma-activities-stats
|
||||
milou
|
||||
libkscreen
|
||||
kdeconnect-kde
|
||||
# Qt
|
||||
qtmultimedia
|
||||
qtwebengine
|
||||
# Other
|
||||
bluez-qt
|
||||
qcoro
|
||||
plasma-wayland-protocols
|
||||
wayland
|
||||
sdl3
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace bin/plasma-bigscreen-wayland.in \
|
||||
--replace @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec"
|
||||
|
||||
# Plasma version numbers must match; we're building an unreleased package
|
||||
# against a stable Plasma release.
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail 'set(PROJECT_VERSION "6.5.80")' 'set(PROJECT_VERSION "${plasma-workspace.version}")'
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
wrapQtApp $out/bin/plasma-bigscreen-wayland
|
||||
'';
|
||||
|
||||
passthru.providedSessions = [
|
||||
"plasma-bigscreen-wayland"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Plasma shell for TVs (Plasma Bigscreen)";
|
||||
homepage = "https://plasma-bigscreen.org";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user