feat: Compile Plasma Bigscreen against the development repo as of February 13, 2026
This commit is contained in:
@@ -66,6 +66,6 @@ in
|
||||
|
||||
# ========== Software Profile ==========
|
||||
athenix.sw.enable = lib.mkDefault true;
|
||||
athenix.sw.desktop.enable = lib.mkDefault true;
|
||||
athenix.sw.bigscreen.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
|
||||
24
pkgs/default.nix
Normal file
24
pkgs/default.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
plasma-bigscreen = pkgs.callPackage ./plasma-bigscreen.nix {
|
||||
inherit (pkgs.kdePackages)
|
||||
kcmutils
|
||||
kdeclarative
|
||||
ki18n
|
||||
kio
|
||||
knotifications
|
||||
kwayland
|
||||
kwindowsystem
|
||||
mkKdeDerivation
|
||||
qtmultimedia
|
||||
plasma-workspace
|
||||
bluez-qt
|
||||
qtwebengine
|
||||
plasma-nano
|
||||
plasma-nm
|
||||
milou
|
||||
kscreen
|
||||
kdeconnect-kde
|
||||
;
|
||||
};
|
||||
}
|
||||
112
pkgs/plasma-bigscreen.nix
Normal file
112
pkgs/plasma-bigscreen.nix
Normal file
@@ -0,0 +1,112 @@
|
||||
# NOTE: from https://github.com/NixOS/nixpkgs/pull/428353#issuecomment-3498917203
|
||||
# more info in tv.nix nixos config
|
||||
{
|
||||
mkKdeDerivation,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
pkg-config,
|
||||
ki18n,
|
||||
kdeclarative,
|
||||
kcmutils,
|
||||
knotifications,
|
||||
kio,
|
||||
kwayland,
|
||||
kwindowsystem,
|
||||
plasma-workspace,
|
||||
qtmultimedia,
|
||||
bluez-qt,
|
||||
qtwebengine,
|
||||
plasma-nano,
|
||||
plasma-nm,
|
||||
milou,
|
||||
kscreen,
|
||||
kdeconnect-kde,
|
||||
sdl3,
|
||||
libcec ? null
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "plasma-bigscreen";
|
||||
version = "unstable-2026-02-13";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "plasma";
|
||||
repo = "plasma-bigscreen";
|
||||
rev = "1db19cdfc2ac1653cb129f403702addec2caf4c7";
|
||||
hash = "sha256-dfsR20dY1jtLmEpGRxvp9xwOHJFn3mVw+1RUGBJRLpQ=";
|
||||
};
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ki18n
|
||||
kdeclarative
|
||||
kcmutils
|
||||
knotifications
|
||||
kio
|
||||
kwayland
|
||||
kwindowsystem
|
||||
plasma-workspace
|
||||
qtmultimedia
|
||||
bluez-qt
|
||||
qtwebengine
|
||||
plasma-nano
|
||||
plasma-nm
|
||||
milou
|
||||
kscreen
|
||||
kdeconnect-kde
|
||||
sdl3
|
||||
] ++ lib.optionals (libcec != null) [ libcec ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace bin/plasma-bigscreen-wayland.in \
|
||||
--replace-fail @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec"
|
||||
|
||||
# Plasma version numbers are required to match, but we are 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}")'
|
||||
|
||||
# Fix for Qt 6.10+ which requires explicit find_package of private targets
|
||||
# Reference: https://github.com/NixOS/nixpkgs/pull/461599/changes
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail \
|
||||
'find_package(Qt6 ''${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
|
||||
Quick
|
||||
Core
|
||||
Qml
|
||||
DBus
|
||||
Network
|
||||
Multimedia
|
||||
WebEngineCore
|
||||
WebEngineQuick
|
||||
WaylandClient
|
||||
)' \
|
||||
'find_package(Qt6 ''${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
|
||||
Quick
|
||||
Core
|
||||
Qml
|
||||
QmlPrivate
|
||||
DBus
|
||||
Network
|
||||
Multimedia
|
||||
WebEngineCore
|
||||
WebEngineQuick
|
||||
WaylandClient
|
||||
)'
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
wrapQtApp $out/bin/plasma-bigscreen-wayland
|
||||
'';
|
||||
|
||||
passthru.providedSessions = [
|
||||
"plasma-bigscreen-wayland"
|
||||
];
|
||||
|
||||
meta = {
|
||||
license = lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
63
sw/bigscreen/default.nix
Normal file
63
sw/bigscreen/default.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
# ============================================================================
|
||||
# Bigscreen Software Configuration
|
||||
# ============================================================================
|
||||
# Imports desktop-specific programs and services (KDE Plasma, CUPS, etc.)
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.athenix.sw.bigscreen;
|
||||
in
|
||||
{
|
||||
options.athenix.sw.bigscreen = mkOption {
|
||||
type = lib.types.submodule {
|
||||
options = {
|
||||
enable = mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable full desktop environment with KDE Plasma 6 Bigscreen.
|
||||
|
||||
Includes:
|
||||
- KDE Plasma 6 desktop with SDDM display manager
|
||||
- Printing and scanning support (CUPS)
|
||||
- Virtualization (libvirt, virt-manager)
|
||||
- Bluetooth and audio (PipeWire)
|
||||
|
||||
Recommended for: home theater PCs, media centers, and large-screen desktops.
|
||||
'';
|
||||
example = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
description = "Desktop environment configuration (KDE Plasma 6).";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
(import ./programs.nix {
|
||||
inherit
|
||||
config
|
||||
lib
|
||||
pkgs
|
||||
inputs
|
||||
;
|
||||
})
|
||||
(import ./services.nix {
|
||||
inherit
|
||||
config
|
||||
lib
|
||||
pkgs
|
||||
inputs
|
||||
;
|
||||
})
|
||||
]);
|
||||
}
|
||||
31
sw/bigscreen/programs.nix
Normal file
31
sw/bigscreen/programs.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.athenix.sw;
|
||||
basePackages = with pkgs; [
|
||||
tmux
|
||||
man
|
||||
(chromium.override {
|
||||
commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
|
||||
})
|
||||
lm_sensors
|
||||
];
|
||||
in
|
||||
{
|
||||
environment.systemPackages = subtractLists cfg.excludePackages (basePackages ++ cfg.extraPackages);
|
||||
|
||||
programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
}
|
||||
74
sw/bigscreen/services.nix
Normal file
74
sw/bigscreen/services.nix
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
xelpkgs = pkgs: import ../../pkgs pkgs;
|
||||
bigscreenpkgs = xelpkgs pkgs;
|
||||
in
|
||||
|
||||
{
|
||||
athenix.sw.python.enable = lib.mkDefault true;
|
||||
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
theme = "breeze";
|
||||
wayland.enable = true;
|
||||
enableHidpi = true;
|
||||
settings = {
|
||||
Autologin = {
|
||||
Session = "plasma-bigscreen-wayland";
|
||||
User = "engr-ugaif";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
services.displayManager.sessionPackages = with bigscreenpkgs; [
|
||||
plasma-bigscreen
|
||||
];
|
||||
|
||||
services.printing.enable = true;
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.fira-code
|
||||
corefonts
|
||||
noto-fonts
|
||||
];
|
||||
fonts.fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts.monospace = [ "FiraCode Nerd Font Mono" ];
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
|
||||
networking.firewall.enable = true;
|
||||
|
||||
services.flatpak.enable = true;
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ];
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
services.thermald.enable = true;
|
||||
|
||||
services.fwupd.enable = true;
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PermitRootLogin = "no";
|
||||
};
|
||||
}
|
||||
@@ -32,6 +32,7 @@ in
|
||||
./builders
|
||||
./tablet-kiosk
|
||||
./stateless-kiosk
|
||||
./bigscreen
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.agenix.nixosModules.default
|
||||
inputs.disko.nixosModules.disko
|
||||
|
||||
Reference in New Issue
Block a user