lumina: init at 1.1.0-p1

This commit is contained in:
romildo 2016-11-01 17:06:39 -02:00
parent fa4167c0a1
commit a25e6bc8db
6 changed files with 162 additions and 1 deletions

View file

@ -19,7 +19,8 @@ in
# E.g., if KDE is enabled, it supersedes xterm.
imports = [
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./kde5.nix
./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix
./lumina.nix ./lxqt.nix ./enlightenment.nix ./gnome3.nix
./kodi.nix
];
options = {

View file

@ -0,0 +1,52 @@
{ config, lib, pkgs, ... }:
with lib;
let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.lumina;
in
{
options = {
services.xserver.desktopManager.lumina.enable = mkOption {
type = types.bool;
default = false;
description = "Enable the Lumina desktop manager";
};
};
config = mkIf (xcfg.enable && cfg.enable) {
services.xserver.desktopManager.session = singleton {
name = "lumina";
start = ''
exec ${pkgs.lumina}/bin/start-lumina-desktop
'';
};
environment.systemPackages = [
pkgs.fluxbox
pkgs.kde5.kwindowsystem
pkgs.kde5.oxygen-icons5
pkgs.lumina
pkgs.numlockx
pkgs.qt5.qtsvg
pkgs.xscreensaver
];
# Link some extra directories in /run/current-system/software/share
environment.pathsToLink = [
"/share/desktop-directories"
"/share/icons"
"/share/lumina"
"/share"
];
};
}

View file

@ -0,0 +1,26 @@
diff --git a/src-qt5/core/libLumina/LuminaOS-NixOS.cpp b/src-qt5/core/libLumina/LuminaOS-NixOS.cpp
index b92d1b0..441b1bf 100644
--- a/src-qt5/core/libLumina/LuminaOS-NixOS.cpp
+++ b/src-qt5/core/libLumina/LuminaOS-NixOS.cpp
@@ -13,17 +13,17 @@
//can't read xbrightness settings - assume invalid until set
static int screenbrightness = -1;
-QString LOS::OSName(){ return "Gentoo Linux"; }
+QString LOS::OSName(){ return "NixOS"; }
//OS-specific prefix(s)
// NOTE: PREFIX, L_ETCDIR, L_SHAREDIR are defined in the OS-detect.pri project file and passed in
QString LOS::LuminaShare(){ return (L_SHAREDIR+"/lumina-desktop/"); } //Install dir for Lumina share files
-QString LOS::AppPrefix(){ return "/usr/"; } //Prefix for applications
-QString LOS::SysPrefix(){ return "/"; } //Prefix for system
+QString LOS::AppPrefix(){ return PREFIX+"/usr"; } //Prefix for applications
+QString LOS::SysPrefix(){ return PREFIX; } //Prefix for system
//OS-specific application shortcuts (*.desktop files)
QString LOS::ControlPanelShortcut(){ return ""; } //system control panel
-QString LOS::AppStoreShortcut(){ return LOS::AppPrefix() + "/share/applications/porthole.desktop"; } //graphical app/pkg manager
+QString LOS::AppStoreShortcut(){ return ""; } //graphical app/pkg manager
//OS-specific RSS feeds (Format: QStringList[ <name>::::<url> ]; )
QStringList LOS::RSSFeeds(){ return QStringList(); }

View file

@ -0,0 +1,11 @@
diff -Naur lumina-1.0.0-Release-p1-OLD/src-qt5/OS-detect.pri lumina-1.0.0-Release-p1-PATCH/src-qt5/OS-detect.pri
--- lumina-1.0.0-Release-p1-OLD/src-qt5/OS-detect.pri 2016-08-09 12:04:30.000000000 -0300
+++ lumina-1.0.0-Release-p1-PATCH/src-qt5/OS-detect.pri 2016-08-13 17:32:18.272137900 -0300
@@ -55,7 +55,6 @@
#Use the defaults for everything else
}else : linux-*{
- L_SESSDIR=/usr/share/xsessions
OS=Linux
LIBS += -L/usr/local/lib -L/usr/lib -L/lib

View file

@ -0,0 +1,69 @@
{ stdenv, fetchFromGitHub, fluxbox, xscreensaver, desktop_file_utils,
numlockx, xorg, qt5, kde5
}:
stdenv.mkDerivation rec {
name = "lumina-${version}";
version = "1.1.0-p1";
src = fetchFromGitHub {
owner = "trueos";
repo = "lumina";
rev = "v${version}";
sha256 = "1kkb6v6p6w5mx1qdmcrq3r674k9ahpc6wlsb9pi2lq8qk9yaid0m";
};
nativeBuildInputs = [
qt5.qmakeHook
qt5.qttools
];
buildInputs = [
xorg.libxcb
xorg.xcbutilwm
xorg.xcbutilimage
qt5.qtbase
qt5.qtsvg
qt5.qtmultimedia
qt5.qtx11extras
kde5.oxygen-icons5
fluxbox
xscreensaver
desktop_file_utils
numlockx
];
patches = [
./avoid-absolute-path-on-sessdir.patch
./LuminaOS-NixOS.cpp.patch
];
prePatch = ''
# Copy Gentoo setup as NixOS setup and then patch it
# TODO: write a complete NixOS setup?
cp -a src-qt5/core/libLumina/LuminaOS-Gentoo.cpp src-qt5/core/libLumina/LuminaOS-NixOS.cpp
'';
postPatch = ''
# Fix location of fluxbox styles
substituteInPlace src-qt5/core-utils/lumina-config/pages/page_fluxbox_settings.cpp \
--replace 'LOS::AppPrefix()+"share/fluxbox' "\"${fluxbox}/share/fluxbox"
'';
qmakeFlags = [ "LINUX_DISTRO=NixOS" ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "A lightweight, portable desktop environment";
longDescription = ''
The Lumina Desktop Environment is a lightweight system interface
that is designed for use on any Unix-like operating system. It
is based on QT5.
'';
homepage = https://lumina-desktop.org;
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View file

@ -16206,6 +16206,8 @@ in
in makeOverridable makePackages extra;
lumina = callPackage ../desktops/lumina { };
lxqt = recurseIntoAttrs (callPackage ../desktops/lxqt { });
mate = recurseIntoAttrs (callPackage ../desktops/mate {