Merge master into staging-next
This commit is contained in:
@@ -13,39 +13,88 @@ inputs:
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- if: inputs.merged-as-untrusted-at
|
||||
# Would be great to do the checkouts in git worktrees of the existing spare checkout instead,
|
||||
# but Nix is broken with them:
|
||||
# https://github.com/NixOS/nix/issues/6073
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
ref: ${{ inputs.merged-as-untrusted-at }}
|
||||
path: untrusted
|
||||
|
||||
- if: inputs.target-as-trusted-at
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
ref: ${{ inputs.target-as-trusted-at }}
|
||||
path: trusted
|
||||
|
||||
- if: inputs.pinned-from
|
||||
id: pinned
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
MERGED_SHA: ${{ inputs.merged-as-untrusted-at }}
|
||||
PINNED_FROM: ${{ inputs.pinned-from }}
|
||||
TARGET_SHA: ${{ inputs.target-as-trusted-at }}
|
||||
with:
|
||||
script: |
|
||||
const path = require('node:path')
|
||||
const pinned = require(path.resolve(path.join(process.env.PINNED_FROM, 'ci', 'pinned.json')))
|
||||
core.setOutput('pinned-at', pinned.pins.nixpkgs.revision)
|
||||
const { spawn } = require('node:child_process')
|
||||
const { join } = require('node:path')
|
||||
|
||||
- if: steps.pinned.outputs.pinned-at
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
ref: ${{ steps.pinned.outputs.pinned-at }}
|
||||
path: pinned
|
||||
sparse-checkout: |
|
||||
lib
|
||||
maintainers
|
||||
nixos/lib
|
||||
pkgs
|
||||
async function run(cmd, ...args) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const proc = spawn(cmd, args, {
|
||||
stdio: 'inherit'
|
||||
})
|
||||
proc.on('close', (code) => {
|
||||
if (code === 0) resolve()
|
||||
else reject(code)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// These are set automatically by the spare checkout for .github/actions.
|
||||
// Undo them, otherwise git fetch below will not do anything.
|
||||
await run('git', 'config', 'unset', 'remote.origin.promisor')
|
||||
await run('git', 'config', 'unset', 'remote.origin.partialclonefilter')
|
||||
|
||||
// Getting the pinned SHA via API allows us to do one single fetch call for all commits.
|
||||
// Otherwise we would have to fetch merged/target first, read pinned, fetch again.
|
||||
// A single fetch call comes with a lot less overhead. The fetch takes essentially the
|
||||
// same time no matter whether its 1, 2 or 3 commits at once.
|
||||
async function getPinnedSha(ref) {
|
||||
const { content, encoding } = (await github.rest.repos.getContent({
|
||||
...context.repo,
|
||||
path: 'ci/pinned.json',
|
||||
ref,
|
||||
})).data
|
||||
const pinned = JSON.parse(Buffer.from(content, encoding).toString())
|
||||
return pinned.pins.nixpkgs.revision
|
||||
}
|
||||
|
||||
const commits = [
|
||||
{
|
||||
sha: process.env.MERGED_SHA,
|
||||
path: 'untrusted',
|
||||
},
|
||||
{
|
||||
sha: process.env.PINNED_FROM === 'untrusted' && (await getPinnedSha(process.env.MERGED_SHA)),
|
||||
path: 'pinned'
|
||||
},
|
||||
{
|
||||
sha: process.env.TARGET_SHA,
|
||||
path: 'trusted',
|
||||
},
|
||||
{
|
||||
sha: process.env.PINNED_FROM === 'trusted' && (await getPinnedSha(process.env.TARGET_SHA)),
|
||||
path: 'pinned'
|
||||
}
|
||||
].filter(({ sha }) => Boolean(sha))
|
||||
|
||||
console.log('Checking out the following commits:', commits)
|
||||
|
||||
// Fetching all commits at once is much faster than doing multiple checkouts.
|
||||
// This would fail without --refetch, because the we had a partial clone before, but changed it above.
|
||||
await run('git', 'fetch', '--depth=1', '--refetch', 'origin', ...(commits.map(({ sha }) => sha)))
|
||||
|
||||
// Create all worktrees in parallel.
|
||||
await Promise.all(commits.map(async ({ sha, path }) => {
|
||||
// Checking out onto tmpfs takes 1s and is faster by at least factor 10x.
|
||||
await run('mkdir', path)
|
||||
switch (process.env.RUNNER_OS) {
|
||||
case 'macOS':
|
||||
await run('sudo', 'mount_tmpfs', path)
|
||||
// macOS creates this hidden folder to log file system activity.
|
||||
// This trips up git when adding a worktree below, because the target folder is not empty.
|
||||
await run('sudo', 'rm', '-rf', join(path, '.fseventsd'))
|
||||
break
|
||||
case 'Linux':
|
||||
await run('sudo', 'mount', '-t', 'tmpfs', 'tmpfs', path)
|
||||
break
|
||||
}
|
||||
await run('git', 'worktree', 'add', path, sha, '--no-checkout', '--force')
|
||||
await run('git', '-C', path, 'sparse-checkout', 'disable')
|
||||
await run('git', '-C', path, 'checkout', '--progress')
|
||||
}))
|
||||
|
||||
+3
-6
@@ -431,12 +431,9 @@
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- doc/languages-frameworks/qt.section.md
|
||||
- nixos/modules/services/x11/desktop-managers/plasma5.nix
|
||||
- nixos/tests/plasma5.nix
|
||||
- pkgs/applications/kde/**/*
|
||||
- pkgs/desktops/plasma-5/**/*
|
||||
- pkgs/development/libraries/kde-frameworks/**/*
|
||||
- pkgs/development/libraries/qt-5/**/*
|
||||
- nixos/modules/services/desktop-managers/plasma6.nix
|
||||
- nixos/tests/plasma6.nix
|
||||
- pkgs/kde/**/*
|
||||
|
||||
"6.topic: R":
|
||||
- any:
|
||||
|
||||
@@ -217,6 +217,7 @@ jobs:
|
||||
- name: Check out the PR at the target commit
|
||||
uses: ./.github/actions/checkout
|
||||
with:
|
||||
merged-as-untrusted-at: ${{ inputs.mergedSha }}
|
||||
target-as-trusted-at: ${{ inputs.targetSha }}
|
||||
pinned-from: trusted
|
||||
|
||||
@@ -240,7 +241,6 @@ jobs:
|
||||
env:
|
||||
AUTHOR_ID: ${{ github.event.pull_request.user.id }}
|
||||
run: |
|
||||
git -C trusted fetch --depth 1 origin ${{ inputs.mergedSha }}
|
||||
git -C trusted diff --name-only ${{ inputs.mergedSha }} \
|
||||
| jq --raw-input --slurp 'split("\n")[:-1]' > touched-files.json
|
||||
|
||||
@@ -392,7 +392,7 @@ jobs:
|
||||
uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31
|
||||
|
||||
- name: Ensure flake outputs on all systems still evaluate
|
||||
run: nix flake check --all-systems --no-build ./untrusted
|
||||
run: nix flake check --all-systems --no-build './untrusted?shallow=1'
|
||||
|
||||
- name: Query nixpkgs with aliases enabled to check for basic syntax errors
|
||||
run: |
|
||||
|
||||
@@ -264,9 +264,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
||||
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000 @ttuegel
|
||||
/pkgs/development/libraries/qt-6 @K900 @NickCao @SuperSandro2000 @ttuegel
|
||||
|
||||
# KDE / Plasma 5
|
||||
/pkgs/applications/kde @K900 @NickCao @SuperSandro2000 @ttuegel
|
||||
/pkgs/desktops/plasma-5 @K900 @NickCao @SuperSandro2000 @ttuegel
|
||||
# KDE Frameworks 5
|
||||
/pkgs/development/libraries/kde-frameworks @K900 @NickCao @SuperSandro2000 @ttuegel
|
||||
|
||||
# KDE / Plasma 6
|
||||
|
||||
@@ -33,7 +33,7 @@ Here, we include two modules from the same directory, `vpn.nix` and
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.systemPackages = [ pkgs.vim ];
|
||||
}
|
||||
```
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Graphical {#sec-profile-graphical}
|
||||
|
||||
Defines a NixOS configuration with the Plasma 5 desktop. It's used by the
|
||||
Defines a NixOS configuration with the Plasma 6 desktop. It's used by the
|
||||
graphical installation CD.
|
||||
|
||||
It sets [](#opt-services.xserver.enable),
|
||||
[](#opt-services.displayManager.sddm.enable),
|
||||
[](#opt-services.xserver.desktopManager.plasma5.enable),
|
||||
[](#opt-services.desktopManager.plasma6.enable),
|
||||
and [](#opt-services.libinput.enable) to true. It also
|
||||
includes glxinfo and firefox in the system packages list.
|
||||
|
||||
@@ -23,7 +23,7 @@ Thus you should pick one or more of the following lines:
|
||||
|
||||
```nix
|
||||
{
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
services.xserver.desktopManager.xfce.enable = true;
|
||||
services.desktopManager.gnome.enable = true;
|
||||
services.xserver.desktopManager.mate.enable = true;
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
- The NetworkManager module does not ship with a default set of VPN plugins anymore. All required VPN plugins must now be explicitly configured in [`networking.networkmanager.plugins`](#opt-networking.networkmanager.plugins).
|
||||
|
||||
- The Qt 5-based versions of KDE Gear, Plasma, Maui and Deepin have been removed. Users are advised to migrate to Plasma 6 and Gear 25.08, available under `kdePackages`.
|
||||
|
||||
## New Modules {#sec-release-25.11-new-modules}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -53,7 +53,7 @@ in
|
||||
panel = lib.mkOption {
|
||||
type = with lib.types; nullOr path;
|
||||
default = null;
|
||||
example = lib.literalExpression ''"''${pkgs.plasma5Packages.plasma-desktop}/libexec/kimpanel-ibus-panel"'';
|
||||
example = lib.literalExpression ''"''${pkgs.kdePackages.plasma-desktop}/libexec/kimpanel-ibus-panel"'';
|
||||
description = "Replace the IBus panel with another panel.";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
# This module defines a NixOS installation CD that contains X11 and
|
||||
# Plasma 5.
|
||||
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./installation-cd-graphical-calamares.nix ];
|
||||
|
||||
isoImage.edition = lib.mkDefault "plasma5";
|
||||
|
||||
services.xserver.desktopManager.plasma5 = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Automatically login as nixos.
|
||||
services.displayManager = {
|
||||
sddm.enable = true;
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "nixos";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Graphical text editor
|
||||
plasma5Packages.kate
|
||||
];
|
||||
|
||||
system.activationScripts.installerDesktop =
|
||||
let
|
||||
|
||||
# Comes from documentation.nix when xserver and nixos.enable are true.
|
||||
manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
|
||||
|
||||
homeDir = "/home/nixos/";
|
||||
desktopDir = homeDir + "Desktop/";
|
||||
|
||||
in
|
||||
''
|
||||
mkdir -p ${desktopDir}
|
||||
chown nixos ${homeDir} ${desktopDir}
|
||||
|
||||
ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
|
||||
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
|
||||
ln -sfT ${pkgs.plasma5Packages.konsole}/share/applications/org.kde.konsole.desktop ${
|
||||
desktopDir + "org.kde.konsole.desktop"
|
||||
}
|
||||
ln -sfT ${pkgs.calamares-nixos}/share/applications/calamares.desktop ${
|
||||
desktopDir + "calamares.desktop"
|
||||
}
|
||||
'';
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./installation-cd-graphical-plasma5.nix ];
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
# This module defines a NixOS installation CD that contains X11 and
|
||||
# Plasma 5.
|
||||
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./installation-cd-graphical-base.nix ];
|
||||
|
||||
isoImage.edition = lib.mkDefault "plasma5";
|
||||
|
||||
services.xserver.desktopManager.plasma5 = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Automatically login as nixos.
|
||||
services.displayManager = {
|
||||
sddm.enable = true;
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "nixos";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Graphical text editor
|
||||
plasma5Packages.kate
|
||||
];
|
||||
|
||||
system.activationScripts.installerDesktop =
|
||||
let
|
||||
|
||||
# Comes from documentation.nix when xserver and nixos.enable are true.
|
||||
manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
|
||||
|
||||
homeDir = "/home/nixos/";
|
||||
desktopDir = homeDir + "Desktop/";
|
||||
|
||||
in
|
||||
''
|
||||
mkdir -p ${desktopDir}
|
||||
chown nixos ${homeDir} ${desktopDir}
|
||||
|
||||
ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
|
||||
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
|
||||
ln -sfT ${pkgs.plasma5Packages.konsole}/share/applications/org.kde.konsole.desktop ${
|
||||
desktopDir + "org.kde.konsole.desktop"
|
||||
}
|
||||
'';
|
||||
|
||||
}
|
||||
@@ -543,10 +543,6 @@
|
||||
./services/desktops/blueman.nix
|
||||
./services/desktops/bonsaid.nix
|
||||
./services/desktops/cpupower-gui.nix
|
||||
./services/desktops/deepin/app-services.nix
|
||||
./services/desktops/deepin/dde-api.nix
|
||||
./services/desktops/deepin/dde-daemon.nix
|
||||
./services/desktops/deepin/deepin-anything.nix
|
||||
./services/desktops/dleyna.nix
|
||||
./services/desktops/espanso.nix
|
||||
./services/desktops/flatpak.nix
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# This module defines a NixOS configuration with the Plasma 5 desktop.
|
||||
# This module defines a NixOS configuration with the Plasma 6 desktop.
|
||||
# It's used by the graphical installation CD.
|
||||
|
||||
{ pkgs, ... }:
|
||||
@@ -6,7 +6,7 @@
|
||||
{
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.plasma5.enable = true;
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
|
||||
@@ -27,7 +27,7 @@ in
|
||||
enablePlasmaBrowserIntegration = lib.mkEnableOption "Native Messaging Host for Plasma Browser Integration";
|
||||
|
||||
plasmaBrowserIntegrationPackage = lib.mkPackageOption pkgs [
|
||||
"plasma5Packages"
|
||||
"kdePackages"
|
||||
"plasma-browser-integration"
|
||||
] { };
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ in
|
||||
Which pinentry package to use. The path to the mainProgram as defined in
|
||||
the package's meta attributes will be set in /etc/gnupg/gpg-agent.conf.
|
||||
If not set by the user, it'll pick an appropriate flavor depending on the
|
||||
system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce,
|
||||
system configuration (qt flavor for lxqt and plasma, gtk2 for xfce,
|
||||
gnome3 on all other systems with X enabled, curses otherwise).
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
`gnomeExtensions.gsconnect` as an alternative
|
||||
implementation if you use Gnome
|
||||
'';
|
||||
package = lib.mkPackageOption pkgs [ "plasma5Packages" "kdeconnect-kde" ] {
|
||||
package = lib.mkPackageOption pkgs [ "kdePackages" "kdeconnect-kde" ] {
|
||||
example = "gnomeExtensions.gsconnect";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
plasma6XdgDesktopPortalSupport =
|
||||
prev.plasma6XdgDesktopPortalSupport or config.services.desktopManager.plasma6.enable;
|
||||
|
||||
# Support Plasma 5 desktop environment if it's enabled on the system.
|
||||
plasma5XdgDesktopPortalSupport =
|
||||
prev.plasma5XdgDesktopPortalSupport or config.services.xserver.desktopManager.plasma5.enable;
|
||||
|
||||
# Support LXQT desktop environment if it's enabled on the system.
|
||||
# There's also `config.services.xserver.desktopManager.lxqt.enable`
|
||||
lxqtXdgDesktopPortalSupport = prev.lxqtXdgDesktopPortalSupport or config.xdg.portal.lxqt.enable;
|
||||
|
||||
@@ -127,6 +127,10 @@ in
|
||||
"services"
|
||||
"dd-agent"
|
||||
] "dd-agent was removed from nixpkgs in favor of the newer datadog-agent.")
|
||||
(mkRemovedOptionModule [
|
||||
"services"
|
||||
"deepin"
|
||||
] "the Deepin desktop environment has been removed from nixpkgs due to lack of maintenance.")
|
||||
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
|
||||
(mkRemovedOptionModule [ "services" "dnscrypt-wrapper" ] ''
|
||||
The dnscrypt-wrapper module was removed since the project has been effectively unmaintained since 2018;
|
||||
@@ -265,6 +269,18 @@ in
|
||||
LightDM. Please use the services.displayManager.autoLogin options
|
||||
instead, or any other display manager in NixOS as they all support auto-login.
|
||||
'')
|
||||
(mkRemovedOptionModule [
|
||||
"services"
|
||||
"xserver"
|
||||
"desktopManager"
|
||||
"plasma5"
|
||||
] "the Plasma 5 desktop environment has been removed from nixpkgs, as it has reached EOL upstream.")
|
||||
(mkRemovedOptionModule [
|
||||
"services"
|
||||
"xserver"
|
||||
"desktopManager"
|
||||
"deepin"
|
||||
] "the Deepin desktop environment has been removed from nixpkgs due to lack of maintenance.")
|
||||
(mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
|
||||
services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
|
||||
as the underlying package isn't being maintained. Working alternatives are
|
||||
|
||||
@@ -549,8 +549,8 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
package = lib.mkPackageOption pkgs.plasma5Packages "kwallet-pam" {
|
||||
pkgsText = "pkgs.plasma5Packages";
|
||||
package = lib.mkPackageOption pkgs.kdePackages "kwallet-pam" {
|
||||
pkgsText = "pkgs.kdePackages";
|
||||
};
|
||||
|
||||
forceRun = lib.mkEnableOption null // {
|
||||
|
||||
@@ -20,7 +20,9 @@ in
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
systemd.services.display-manager.path = [ cfg.package ];
|
||||
systemd.services.display-manager = lib.mkIf config.services.displayManager.enable {
|
||||
path = [ cfg.package ];
|
||||
};
|
||||
services.speechd.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -68,13 +68,6 @@ in
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.enable -> !config.services.xserver.desktopManager.plasma5.enable;
|
||||
message = "Cannot enable plasma5 and plasma6 at the same time!";
|
||||
}
|
||||
];
|
||||
|
||||
qt.enable = true;
|
||||
programs.xwayland.enable = true;
|
||||
environment.systemPackages =
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.deepin.members;
|
||||
};
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.deepin.app-services = {
|
||||
|
||||
enable = lib.mkEnableOption "service collection of DDE applications, including dconfig-center";
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = lib.mkIf config.services.deepin.app-services.enable {
|
||||
|
||||
users.groups.dde-dconfig-daemon = { };
|
||||
users.users.dde-dconfig-daemon = {
|
||||
description = "Dconfig daemon user";
|
||||
home = "/var/lib/dde-dconfig-daemon";
|
||||
createHome = true;
|
||||
group = "dde-dconfig-daemon";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.deepin.dde-app-services ];
|
||||
systemd.packages = [ pkgs.deepin.dde-app-services ];
|
||||
services.dbus.packages = [ pkgs.deepin.dde-app-services ];
|
||||
|
||||
environment.pathsToLink = [ "/share/dsg" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.deepin.members;
|
||||
};
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.deepin.dde-api = {
|
||||
|
||||
enable = lib.mkEnableOption ''
|
||||
the DDE API, which provides some dbus interfaces that is used for screen zone detecting,
|
||||
thumbnail generating, and sound playing in Deepin Desktop Environment
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = lib.mkIf config.services.deepin.dde-api.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.deepin.dde-api ];
|
||||
|
||||
services.dbus.packages = [ pkgs.deepin.dde-api ];
|
||||
|
||||
systemd.packages = [ pkgs.deepin.dde-api ];
|
||||
|
||||
environment.pathsToLink = [ "/lib/deepin-api" ];
|
||||
|
||||
users.groups.deepin-sound-player = { };
|
||||
users.users.deepin-sound-player = {
|
||||
description = "Deepin sound player";
|
||||
home = "/var/lib/deepin-sound-player";
|
||||
createHome = true;
|
||||
group = "deepin-sound-player";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.deepin.members;
|
||||
};
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.deepin.dde-daemon = {
|
||||
|
||||
enable = lib.mkEnableOption "daemon for handling the deepin session settings";
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = lib.mkIf config.services.deepin.dde-daemon.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
services.dbus.packages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
services.udev.packages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
systemd.packages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
environment.pathsToLink = [ "/lib/deepin-daemon" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.deepin.members;
|
||||
};
|
||||
|
||||
options = {
|
||||
|
||||
services.deepin.deepin-anything = {
|
||||
|
||||
enable = lib.mkEnableOption "deepin anything file search tool";
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = lib.mkIf config.services.deepin.dde-api.enable {
|
||||
environment.systemPackages = [ pkgs.deepin.deepin-anything ];
|
||||
|
||||
services.dbus.packages = [ pkgs.deepin.deepin-anything ];
|
||||
|
||||
users.groups.deepin-anything = { };
|
||||
|
||||
users.users.deepin-anything = {
|
||||
description = "Deepin Anything Server";
|
||||
home = "/var/lib/deepin-anything";
|
||||
createHome = true;
|
||||
group = "deepin-anything";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
boot.extraModulePackages = [ config.boot.kernelPackages.deepin-anything-module ];
|
||||
boot.kernelModules = [ "vfs_monitor" ];
|
||||
};
|
||||
|
||||
}
|
||||
@@ -228,7 +228,7 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkPackageOption pkgs [ "plasma5Packages" "sddm" ] { };
|
||||
package = mkPackageOption pkgs [ "libsForQt5" "sddm" ] { };
|
||||
|
||||
enableHidpi = mkOption {
|
||||
type = types.bool;
|
||||
|
||||
@@ -1,233 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
utils,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.deepin;
|
||||
|
||||
nixos-gsettings-overrides = pkgs.deepin.dde-gsettings-schemas.override {
|
||||
extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages;
|
||||
extraGSettingsOverrides = cfg.extraGSettingsOverrides;
|
||||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
|
||||
services.xserver.desktopManager.deepin = {
|
||||
enable = mkEnableOption "Deepin desktop manager";
|
||||
extraGSettingsOverrides = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = "Additional gsettings overrides.";
|
||||
};
|
||||
extraGSettingsOverridePackages = mkOption {
|
||||
default = [ ];
|
||||
type = types.listOf types.path;
|
||||
description = "List of packages for which gsettings are overridden.";
|
||||
};
|
||||
};
|
||||
|
||||
environment.deepin.excludePackages = mkOption {
|
||||
default = [ ];
|
||||
type = types.listOf types.package;
|
||||
description = "List of default packages to exclude from the configuration";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.displayManager.sessionPackages = [ pkgs.deepin.dde-session ];
|
||||
services.displayManager.defaultSession = mkDefault "dde-x11";
|
||||
|
||||
# Update the DBus activation environment after launching the desktop manager.
|
||||
services.xserver.displayManager.sessionCommands = ''
|
||||
${lib.getBin pkgs.dbus}/bin/dbus-update-activation-environment --systemd --all
|
||||
'';
|
||||
|
||||
hardware.bluetooth.enable = mkDefault true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
services.deepin.dde-daemon.enable = mkForce true;
|
||||
services.deepin.dde-api.enable = mkForce true;
|
||||
services.deepin.app-services.enable = mkForce true;
|
||||
|
||||
services.colord.enable = mkDefault true;
|
||||
services.accounts-daemon.enable = mkDefault true;
|
||||
services.gvfs.enable = mkDefault true;
|
||||
services.gnome.glib-networking.enable = mkDefault true;
|
||||
services.gnome.gnome-keyring.enable = mkDefault true;
|
||||
services.gnome.gcr-ssh-agent.enable = mkDefault true;
|
||||
services.bamf.enable = mkDefault true;
|
||||
|
||||
services.libinput.enable = mkDefault true;
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = mkDefault config.powerManagement.enable;
|
||||
networking.networkmanager.enable = mkDefault true;
|
||||
programs.dconf.enable = mkDefault true;
|
||||
programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
|
||||
|
||||
fonts.packages = with pkgs; [ noto-fonts ];
|
||||
xdg.mime.enable = true;
|
||||
xdg.menus.enable = true;
|
||||
xdg.icons.enable = true;
|
||||
xdg.portal.enable = mkDefault true;
|
||||
xdg.portal.extraPortals = mkDefault [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/pull/247766#issuecomment-1722839259
|
||||
xdg.portal.config.deepin.default = mkDefault [ "gtk" ];
|
||||
|
||||
environment.sessionVariables = {
|
||||
NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
|
||||
DDE_POLKIT_AGENT_PLUGINS_DIRS = [ "${pkgs.deepin.dpa-ext-gnomekeyring}/lib/polkit-1-dde/plugins" ];
|
||||
};
|
||||
|
||||
environment.pathsToLink = [
|
||||
"/lib/dde-dock/plugins"
|
||||
"/lib/dde-control-center"
|
||||
"/lib/dde-session-shell"
|
||||
"/lib/dde-file-manager"
|
||||
"/share/backgrounds"
|
||||
"/share/wallpapers"
|
||||
"/share/dde-daemon"
|
||||
"/share/dsg"
|
||||
"/share/deepin-themes"
|
||||
"/share/deepin"
|
||||
"/share/dde-shell"
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
"deepin-installer.conf".text = ''
|
||||
system_info_vendor_name="Copyright (c) 2003-2024 NixOS contributors"
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/lib/AccountsService 0775 root root - -"
|
||||
"C /var/lib/AccountsService/icons 0775 root root - ${pkgs.deepin.dde-account-faces}/var/lib/AccountsService/icons"
|
||||
];
|
||||
|
||||
security.pam.services.dde-lock.text = ''
|
||||
# original at {dde-session-shell}/etc/pam.d/dde-lock
|
||||
auth substack login
|
||||
account include login
|
||||
password substack login
|
||||
session include login
|
||||
'';
|
||||
|
||||
environment.systemPackages =
|
||||
with pkgs;
|
||||
with deepin;
|
||||
let
|
||||
requiredPackages = [
|
||||
pciutils # for dtkcore/startdde
|
||||
xdotool # for dde-daemon
|
||||
glib # for gsettings program / gdbus
|
||||
gtk3 # for gtk-launch program
|
||||
xdg-user-dirs # Update user dirs
|
||||
util-linux # runuser
|
||||
polkit_gnome
|
||||
librsvg # dde-api use rsvg-convert
|
||||
lshw # for dtkcore
|
||||
libsForQt5.kde-gtk-config # deepin-api/gtk-thumbnailer need
|
||||
libsForQt5.kglobalaccel
|
||||
xsettingsd # lightdm-deepin-greeter
|
||||
dtkcommon
|
||||
dtkcore
|
||||
dtkgui
|
||||
dtkwidget
|
||||
dtkdeclarative
|
||||
qt5platform-plugins
|
||||
qt6platform-plugins
|
||||
qt5integration
|
||||
qt6integration
|
||||
deepin-pw-check
|
||||
|
||||
dde-account-faces
|
||||
deepin-icon-theme
|
||||
deepin-desktop-theme
|
||||
deepin-sound-theme
|
||||
deepin-gtk-theme
|
||||
deepin-wallpapers
|
||||
deepin-desktop-base
|
||||
|
||||
startdde
|
||||
dde-shell
|
||||
dde-launchpad
|
||||
dde-session-ui
|
||||
dde-session-shell
|
||||
dde-file-manager
|
||||
dde-control-center
|
||||
dde-network-core
|
||||
dde-clipboard
|
||||
dde-polkit-agent
|
||||
dpa-ext-gnomekeyring
|
||||
deepin-desktop-schemas
|
||||
deepin-kwin
|
||||
dde-session
|
||||
dde-widgets
|
||||
dde-appearance
|
||||
dde-application-manager
|
||||
deepin-service-manager
|
||||
dde-api-proxy
|
||||
dde-tray-loader
|
||||
];
|
||||
optionalPackages = [
|
||||
dde-calendar
|
||||
dde-grand-search
|
||||
deepin-terminal
|
||||
onboard # dde-dock plugin
|
||||
deepin-calculator
|
||||
deepin-compressor
|
||||
deepin-editor
|
||||
deepin-system-monitor
|
||||
deepin-shortcut-viewer
|
||||
];
|
||||
in
|
||||
requiredPackages
|
||||
++ utils.removePackagesByName optionalPackages config.environment.deepin.excludePackages;
|
||||
|
||||
services.dbus.packages = with pkgs.deepin; [
|
||||
dde-shell
|
||||
dde-launchpad
|
||||
dde-session-ui
|
||||
dde-session-shell
|
||||
dde-file-manager
|
||||
dde-control-center
|
||||
dde-calendar
|
||||
dde-clipboard
|
||||
deepin-kwin
|
||||
deepin-pw-check
|
||||
dde-widgets
|
||||
dde-session
|
||||
dde-appearance
|
||||
dde-application-manager
|
||||
deepin-service-manager
|
||||
dde-grand-search
|
||||
dde-api-proxy
|
||||
];
|
||||
|
||||
systemd.packages = with pkgs.deepin; [
|
||||
dde-shell
|
||||
dde-launchpad
|
||||
dde-file-manager
|
||||
dde-calendar
|
||||
dde-clipboard
|
||||
deepin-kwin
|
||||
dde-appearance
|
||||
dde-widgets
|
||||
dde-session
|
||||
dde-application-manager
|
||||
deepin-service-manager
|
||||
dde-api-proxy
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -26,7 +26,6 @@ in
|
||||
./xterm.nix
|
||||
./phosh.nix
|
||||
./xfce.nix
|
||||
./plasma5.nix
|
||||
../../desktop-managers/plasma6.nix
|
||||
./lumina.nix
|
||||
./lxqt.nix
|
||||
@@ -39,7 +38,6 @@ in
|
||||
./cde.nix
|
||||
./cinnamon.nix
|
||||
./budgie.nix
|
||||
./deepin.nix
|
||||
../../desktop-managers/lomiri.nix
|
||||
../../desktop-managers/cosmic.nix
|
||||
../../desktop-managers/gnome.nix
|
||||
|
||||
@@ -1,635 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
utils,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.plasma5;
|
||||
|
||||
# Use only for **internal** options.
|
||||
# This is not exactly user-friendly.
|
||||
kdeConfigurationType =
|
||||
with types;
|
||||
let
|
||||
valueTypes =
|
||||
(oneOf [
|
||||
bool
|
||||
float
|
||||
int
|
||||
str
|
||||
])
|
||||
// {
|
||||
description = "KDE Configuration value";
|
||||
emptyValue.value = "";
|
||||
};
|
||||
set = (nullOr (lazyAttrsOf valueTypes)) // {
|
||||
description = "KDE Configuration set";
|
||||
emptyValue.value = { };
|
||||
};
|
||||
in
|
||||
(lazyAttrsOf set)
|
||||
// {
|
||||
description = "KDE Configuration file";
|
||||
emptyValue.value = { };
|
||||
};
|
||||
|
||||
inherit (lib)
|
||||
getBin
|
||||
optionalAttrs
|
||||
literalExpression
|
||||
mkRemovedOptionModule
|
||||
mkRenamedOptionModule
|
||||
mkDefault
|
||||
mkIf
|
||||
mkMerge
|
||||
mkOption
|
||||
mkPackageOption
|
||||
types
|
||||
;
|
||||
|
||||
activationScript = ''
|
||||
${set_XDG_CONFIG_HOME}
|
||||
|
||||
# The KDE icon cache is supposed to update itself automatically, but it uses
|
||||
# the timestamp on the icon theme directory as a trigger. This doesn't work
|
||||
# on NixOS because the timestamp never changes. As a workaround, delete the
|
||||
# icon cache at login and session activation.
|
||||
# See also: http://lists-archives.org/kde-devel/26175-what-when-will-icon-cache-refresh.html
|
||||
rm -fv "$HOME"/.cache/icon-cache.kcache
|
||||
|
||||
# xdg-desktop-settings generates this empty file but
|
||||
# it makes kbuildsyscoca5 fail silently. To fix this
|
||||
# remove that menu if it exists.
|
||||
rm -fv "''${XDG_CONFIG_HOME}"/menus/applications-merged/xdg-desktop-menu-dummy.menu
|
||||
|
||||
# Qt writes a weird ‘libraryPath’ line to
|
||||
# ~/.config/Trolltech.conf that causes the KDE plugin
|
||||
# paths of previous KDE invocations to be searched.
|
||||
# Obviously using mismatching KDE libraries is potentially
|
||||
# disastrous, so here we nuke references to the Nix store
|
||||
# in Trolltech.conf. A better solution would be to stop
|
||||
# Qt from doing this wackiness in the first place.
|
||||
trolltech_conf="''${XDG_CONFIG_HOME}/Trolltech.conf"
|
||||
if [ -e "$trolltech_conf" ]; then
|
||||
${getBin pkgs.gnused}/bin/sed -i "$trolltech_conf" -e '/nix\\store\|nix\/store/ d'
|
||||
fi
|
||||
|
||||
# Remove the kbuildsyscoca5 cache. It will be regenerated
|
||||
# immediately after. This is necessary for kbuildsyscoca5 to
|
||||
# recognize that software that has been removed.
|
||||
rm -fv "$HOME"/.cache/ksycoca*
|
||||
|
||||
${pkgs.plasma5Packages.kservice}/bin/kbuildsycoca5
|
||||
'';
|
||||
|
||||
set_XDG_CONFIG_HOME = ''
|
||||
# Set the default XDG_CONFIG_HOME if it is unset.
|
||||
# Per the XDG Base Directory Specification:
|
||||
# https://specifications.freedesktop.org/basedir-spec/latest
|
||||
# 1. Never export this variable! If it is unset, then child processes are
|
||||
# expected to set the default themselves.
|
||||
# 2. Contaminate / if $HOME is unset; do not check if $HOME is set.
|
||||
XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
services.xserver.desktopManager.plasma5 = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable the Plasma 5 (KDE 5) desktop environment.";
|
||||
};
|
||||
|
||||
phononBackend = mkOption {
|
||||
type = types.enum [
|
||||
"gstreamer"
|
||||
"vlc"
|
||||
];
|
||||
default = "vlc";
|
||||
example = "gstreamer";
|
||||
description = "Phonon audio backend to install.";
|
||||
};
|
||||
|
||||
useQtScaling = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable HiDPI scaling in Qt.";
|
||||
};
|
||||
|
||||
runUsingSystemd = mkOption {
|
||||
description = "Use systemd to manage the Plasma session";
|
||||
type = types.bool;
|
||||
default = true;
|
||||
};
|
||||
|
||||
notoPackage = mkPackageOption pkgs "Noto fonts" {
|
||||
default = [ "noto-fonts" ];
|
||||
example = "noto-fonts-lgc-plus";
|
||||
};
|
||||
|
||||
# Internally allows configuring kdeglobals globally
|
||||
kdeglobals = mkOption {
|
||||
internal = true;
|
||||
default = { };
|
||||
type = kdeConfigurationType;
|
||||
};
|
||||
|
||||
# Internally allows configuring kwin globally
|
||||
kwinrc = mkOption {
|
||||
internal = true;
|
||||
default = { };
|
||||
type = kdeConfigurationType;
|
||||
};
|
||||
|
||||
mobile.enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable support for running the Plasma Mobile shell.
|
||||
'';
|
||||
};
|
||||
|
||||
mobile.installRecommendedSoftware = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Installs software recommended for use with Plasma Mobile, but which
|
||||
is not strictly required for Plasma Mobile to run.
|
||||
'';
|
||||
};
|
||||
|
||||
bigscreen.enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable support for running the Plasma Bigscreen session.
|
||||
'';
|
||||
};
|
||||
};
|
||||
environment.plasma5.excludePackages = mkOption {
|
||||
description = "List of default packages to exclude from the configuration";
|
||||
type = types.listOf types.package;
|
||||
default = [ ];
|
||||
example = literalExpression "[ pkgs.plasma5Packages.oxygen ]";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule [
|
||||
"services"
|
||||
"xserver"
|
||||
"desktopManager"
|
||||
"plasma5"
|
||||
"enableQt4Support"
|
||||
] "Phonon no longer supports Qt 4.")
|
||||
(mkRemovedOptionModule [
|
||||
"services"
|
||||
"xserver"
|
||||
"desktopManager"
|
||||
"plasma5"
|
||||
"supportDDC"
|
||||
] "DDC/CI is no longer supported upstream.")
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "xserver" "desktopManager" "kde5" ]
|
||||
[ "services" "xserver" "desktopManager" "plasma5" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "xserver" "desktopManager" "plasma5" "excludePackages" ]
|
||||
[ "environment" "plasma5" "excludePackages" ]
|
||||
)
|
||||
];
|
||||
|
||||
config = mkMerge [
|
||||
# Common Plasma dependencies
|
||||
(mkIf (cfg.enable || cfg.mobile.enable || cfg.bigscreen.enable) {
|
||||
warnings = [
|
||||
"Plasma 5 has been deprecated and will be removed in NixOS 25.11. Please migrate your configuration to Plasma 6."
|
||||
];
|
||||
|
||||
security.wrappers = {
|
||||
kwin_wayland = {
|
||||
owner = "root";
|
||||
group = "root";
|
||||
capabilities = "cap_sys_nice+ep";
|
||||
source = "${getBin pkgs.plasma5Packages.kwin}/bin/kwin_wayland";
|
||||
};
|
||||
}
|
||||
// optionalAttrs (!cfg.runUsingSystemd) {
|
||||
start_kdeinit = {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${getBin pkgs.plasma5Packages.kinit}/libexec/kf5/start_kdeinit";
|
||||
};
|
||||
};
|
||||
|
||||
qt.enable = true;
|
||||
|
||||
environment.systemPackages =
|
||||
with pkgs.plasma5Packages;
|
||||
let
|
||||
requiredPackages = [
|
||||
frameworkintegration
|
||||
kactivities
|
||||
kauth
|
||||
kcmutils
|
||||
kconfig
|
||||
kconfigwidgets
|
||||
kcoreaddons
|
||||
kdoctools
|
||||
kdbusaddons
|
||||
kdeclarative
|
||||
kded
|
||||
kdesu
|
||||
kdnssd
|
||||
kemoticons
|
||||
kfilemetadata
|
||||
kglobalaccel
|
||||
kguiaddons
|
||||
kiconthemes
|
||||
kidletime
|
||||
kimageformats
|
||||
kinit
|
||||
kirigami2 # In system profile for SDDM theme. TODO: wrapper.
|
||||
kio
|
||||
kjobwidgets
|
||||
knewstuff
|
||||
knotifications
|
||||
knotifyconfig
|
||||
kpackage
|
||||
kparts
|
||||
kpeople
|
||||
krunner
|
||||
kservice
|
||||
ktextwidgets
|
||||
kwallet
|
||||
kwallet-pam
|
||||
kwalletmanager
|
||||
kwayland
|
||||
kwayland-integration
|
||||
kwidgetsaddons
|
||||
kxmlgui
|
||||
kxmlrpcclient
|
||||
plasma-framework
|
||||
solid
|
||||
sonnet
|
||||
threadweaver
|
||||
|
||||
breeze-qt5
|
||||
kactivitymanagerd
|
||||
kde-cli-tools
|
||||
kdecoration
|
||||
kdeplasma-addons
|
||||
kgamma5
|
||||
khotkeys
|
||||
kscreen
|
||||
kscreenlocker
|
||||
kwayland
|
||||
kwin
|
||||
kwrited
|
||||
libkscreen
|
||||
libksysguard
|
||||
milou
|
||||
plasma-integration
|
||||
polkit-kde-agent
|
||||
|
||||
qqc2-breeze-style
|
||||
qqc2-desktop-style
|
||||
|
||||
plasma-desktop
|
||||
plasma-workspace
|
||||
plasma-workspace-wallpapers
|
||||
|
||||
oxygen-sounds
|
||||
|
||||
breeze-icons
|
||||
pkgs.hicolor-icon-theme
|
||||
|
||||
kde-gtk-config
|
||||
breeze-gtk
|
||||
|
||||
qtvirtualkeyboard
|
||||
|
||||
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
];
|
||||
optionalPackages = [
|
||||
pkgs.aha # needed by kinfocenter for fwupd support
|
||||
plasma-browser-integration
|
||||
konsole
|
||||
oxygen
|
||||
(lib.getBin qttools) # Expose qdbus in PATH
|
||||
];
|
||||
in
|
||||
requiredPackages
|
||||
++ utils.removePackagesByName optionalPackages config.environment.plasma5.excludePackages
|
||||
|
||||
# Phonon audio backend
|
||||
++ lib.optional (cfg.phononBackend == "gstreamer") pkgs.plasma5Packages.phonon-backend-gstreamer
|
||||
++ lib.optional (cfg.phononBackend == "vlc") pkgs.plasma5Packages.phonon-backend-vlc
|
||||
|
||||
# Optional hardware support features
|
||||
++ lib.optionals config.hardware.bluetooth.enable [
|
||||
bluedevil
|
||||
bluez-qt
|
||||
pkgs.openobex
|
||||
pkgs.obexftp
|
||||
]
|
||||
++ lib.optional config.networking.networkmanager.enable plasma-nm
|
||||
++ lib.optional config.services.pulseaudio.enable plasma-pa
|
||||
++ lib.optional config.services.pipewire.pulse.enable plasma-pa
|
||||
++ lib.optional config.powerManagement.enable powerdevil
|
||||
++ lib.optional config.services.colord.enable pkgs.colord-kde
|
||||
++ lib.optional config.services.hardware.bolt.enable pkgs.plasma5Packages.plasma-thunderbolt
|
||||
++ lib.optional config.services.samba.enable kdenetwork-filesharing
|
||||
++ lib.optional config.services.xserver.wacom.enable pkgs.wacomtablet
|
||||
++ lib.optional config.services.flatpak.enable flatpak-kcm;
|
||||
|
||||
# Extra services for D-Bus activation
|
||||
services.dbus.packages = [
|
||||
pkgs.plasma5Packages.kactivitymanagerd
|
||||
];
|
||||
|
||||
environment.pathsToLink = [
|
||||
# FIXME: modules should link subdirs of `/share` rather than relying on this
|
||||
"/share"
|
||||
];
|
||||
|
||||
environment.etc."X11/xkb".source = xcfg.xkb.dir;
|
||||
|
||||
environment.sessionVariables = {
|
||||
PLASMA_USE_QT_SCALING = mkIf cfg.useQtScaling "1";
|
||||
|
||||
# Needed for things that depend on other store.kde.org packages to install correctly,
|
||||
# notably Plasma look-and-feel packages (a.k.a. Global Themes)
|
||||
#
|
||||
# FIXME: this is annoyingly impure and should really be fixed at source level somehow,
|
||||
# but kpackage is a library so we can't just wrap the one thing invoking it and be done.
|
||||
# This also means things won't work for people not on Plasma, but at least this way it
|
||||
# works for SOME people.
|
||||
KPACKAGE_DEP_RESOLVERS_PATH = "${pkgs.plasma5Packages.frameworkintegration.out}/libexec/kf5/kpackagehandlers";
|
||||
};
|
||||
|
||||
# Enable GTK applications to load SVG icons
|
||||
programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
cfg.notoPackage
|
||||
hack-font
|
||||
];
|
||||
fonts.fontconfig.defaultFonts = {
|
||||
monospace = [
|
||||
"Hack"
|
||||
"Noto Sans Mono"
|
||||
];
|
||||
sansSerif = [ "Noto Sans" ];
|
||||
serif = [ "Noto Serif" ];
|
||||
};
|
||||
|
||||
programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
|
||||
programs.ssh.askPassword = mkDefault "${pkgs.plasma5Packages.ksshaskpass.out}/bin/ksshaskpass";
|
||||
|
||||
# Enable helpful DBus services.
|
||||
services.accounts-daemon.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
# when changing an account picture the accounts-daemon reads a temporary file containing the image which systemsettings5 may place under /tmp
|
||||
systemd.services.accounts-daemon.serviceConfig.PrivateTmp = false;
|
||||
services.power-profiles-daemon.enable = mkDefault true;
|
||||
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
services.libinput.enable = mkDefault true;
|
||||
|
||||
# Extra UDEV rules used by Solid
|
||||
services.udev.packages = [
|
||||
# libmtp has "bin", "dev", "out" outputs. UDEV rules file is in "out".
|
||||
pkgs.libmtp.out
|
||||
pkgs.media-player-info
|
||||
];
|
||||
|
||||
# Enable screen reader by default
|
||||
services.orca.enable = mkDefault true;
|
||||
|
||||
services.displayManager.sddm = {
|
||||
theme = mkDefault "breeze";
|
||||
};
|
||||
|
||||
security.pam.services.kde = {
|
||||
allowNullPassword = true;
|
||||
};
|
||||
|
||||
security.pam.services.login.kwallet.enable = true;
|
||||
|
||||
systemd.user.services = {
|
||||
plasma-early-setup = mkIf cfg.runUsingSystemd {
|
||||
description = "Early Plasma setup";
|
||||
wantedBy = [ "graphical-session-pre.target" ];
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = activationScript;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.icons.enable = true;
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.plasma5Packages.xdg-desktop-portal-kde ];
|
||||
xdg.portal.configPackages = mkDefault [ pkgs.plasma5Packages.xdg-desktop-portal-kde ];
|
||||
# xdg-desktop-portal-kde expects PipeWire to be running.
|
||||
services.pipewire.enable = mkDefault true;
|
||||
|
||||
# Update the start menu for each user that is currently logged in
|
||||
system.userActivationScripts.plasmaSetup = activationScript;
|
||||
|
||||
programs.firefox.nativeMessagingHosts.packages = [
|
||||
pkgs.plasma5Packages.plasma-browser-integration
|
||||
];
|
||||
programs.chromium.enablePlasmaBrowserIntegration = true;
|
||||
})
|
||||
|
||||
(mkIf (cfg.kwinrc != { }) {
|
||||
environment.etc."xdg/kwinrc".text = lib.generators.toINI { } cfg.kwinrc;
|
||||
})
|
||||
|
||||
(mkIf (cfg.kdeglobals != { }) {
|
||||
environment.etc."xdg/kdeglobals".text = lib.generators.toINI { } cfg.kdeglobals;
|
||||
})
|
||||
|
||||
# Plasma Desktop
|
||||
(mkIf cfg.enable {
|
||||
|
||||
# Seed our configuration into nixos-generate-config
|
||||
system.nixos-generate-config.desktopConfiguration = [
|
||||
''
|
||||
# Enable the Plasma 5 Desktop Environment.
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
''
|
||||
];
|
||||
|
||||
services.displayManager.sessionPackages = [ pkgs.plasma5Packages.plasma-workspace ];
|
||||
# Default to be `plasma` (X11) instead of `plasmawayland`, since plasma wayland currently has
|
||||
# many tiny bugs.
|
||||
# See: https://github.com/NixOS/nixpkgs/issues/143272
|
||||
services.displayManager.defaultSession = mkDefault "plasma";
|
||||
|
||||
environment.systemPackages =
|
||||
with pkgs.plasma5Packages;
|
||||
let
|
||||
requiredPackages = [
|
||||
ksystemstats
|
||||
kinfocenter
|
||||
kmenuedit
|
||||
plasma-systemmonitor
|
||||
spectacle
|
||||
systemsettings
|
||||
|
||||
dolphin
|
||||
dolphin-plugins
|
||||
ffmpegthumbs
|
||||
kdegraphics-thumbnailers
|
||||
kde-inotify-survey
|
||||
kio-admin
|
||||
kio-extras
|
||||
];
|
||||
optionalPackages = [
|
||||
ark
|
||||
elisa
|
||||
gwenview
|
||||
okular
|
||||
khelpcenter
|
||||
print-manager
|
||||
];
|
||||
in
|
||||
requiredPackages
|
||||
++ utils.removePackagesByName optionalPackages config.environment.plasma5.excludePackages;
|
||||
|
||||
systemd.user.services = {
|
||||
plasma-run-with-systemd = {
|
||||
description = "Run KDE Plasma via systemd";
|
||||
wantedBy = [ "basic.target" ];
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
${set_XDG_CONFIG_HOME}
|
||||
|
||||
${pkgs.plasma5Packages.kconfig}/bin/kwriteconfig5 \
|
||||
--file startkderc --group General --key systemdBoot ${lib.boolToString cfg.runUsingSystemd}
|
||||
'';
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
# Plasma Mobile
|
||||
(mkIf cfg.mobile.enable {
|
||||
assertions = [
|
||||
{
|
||||
# The user interface breaks without NetworkManager
|
||||
assertion = config.networking.networkmanager.enable;
|
||||
message = "Plasma Mobile requires NetworkManager.";
|
||||
}
|
||||
{
|
||||
# The user interface breaks without bluetooth
|
||||
assertion = config.hardware.bluetooth.enable;
|
||||
message = "Plasma Mobile requires Bluetooth.";
|
||||
}
|
||||
{
|
||||
# The user interface breaks without pulse
|
||||
assertion =
|
||||
config.services.pulseaudio.enable
|
||||
|| (config.services.pipewire.enable && config.services.pipewire.pulse.enable);
|
||||
message = "Plasma Mobile requires a Pulseaudio compatible sound server.";
|
||||
}
|
||||
];
|
||||
|
||||
environment.systemPackages =
|
||||
with pkgs.plasma5Packages;
|
||||
[
|
||||
# Basic packages without which Plasma Mobile fails to work properly.
|
||||
plasma-mobile
|
||||
plasma-nano
|
||||
pkgs.maliit-framework
|
||||
pkgs.maliit-keyboard
|
||||
]
|
||||
++ lib.optionals (cfg.mobile.installRecommendedSoftware) (
|
||||
with pkgs.plasma5Packages.plasmaMobileGear;
|
||||
[
|
||||
# Additional software made for Plasma Mobile.
|
||||
alligator
|
||||
angelfish
|
||||
audiotube
|
||||
calindori
|
||||
kalk
|
||||
kasts
|
||||
kclock
|
||||
keysmith
|
||||
koko
|
||||
krecorder
|
||||
ktrip
|
||||
kweather
|
||||
plasma-dialer
|
||||
plasma-phonebook
|
||||
plasma-settings
|
||||
spacebar
|
||||
]
|
||||
);
|
||||
|
||||
# The following services are needed or the UI is broken.
|
||||
hardware.bluetooth.enable = true;
|
||||
networking.networkmanager.enable = true;
|
||||
# Required for autorotate
|
||||
hardware.sensor.iio.enable = lib.mkDefault true;
|
||||
|
||||
# Recommendations can be found here:
|
||||
# - https://invent.kde.org/plasma-mobile/plasma-phone-settings/-/tree/master/etc/xdg
|
||||
# This configuration is the minimum required for Plasma Mobile to *work*.
|
||||
services.xserver.desktopManager.plasma5 = {
|
||||
kdeglobals = {
|
||||
KDE = {
|
||||
# This forces a numeric PIN for the lockscreen, which is the
|
||||
# recommendation from upstream.
|
||||
LookAndFeelPackage = lib.mkDefault "org.kde.plasma.phone";
|
||||
};
|
||||
};
|
||||
kwinrc = {
|
||||
"Wayland" = {
|
||||
"InputMethod[$e]" = "/run/current-system/sw/share/applications/com.github.maliit.keyboard.desktop";
|
||||
"VirtualKeyboardEnabled" = "true";
|
||||
};
|
||||
"org.kde.kdecoration2" = {
|
||||
# No decorations (title bar)
|
||||
NoPlugin = lib.mkDefault "true";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.displayManager.sessionPackages = [ pkgs.plasma5Packages.plasma-mobile ];
|
||||
})
|
||||
|
||||
# Plasma Bigscreen
|
||||
(mkIf cfg.bigscreen.enable {
|
||||
environment.systemPackages = with pkgs.plasma5Packages; [
|
||||
plasma-nano
|
||||
plasma-settings
|
||||
plasma-bigscreen
|
||||
plasma-remotecontrollers
|
||||
|
||||
aura-browser
|
||||
plank-player
|
||||
|
||||
plasma-pa
|
||||
plasma-nm
|
||||
kdeconnect-kde
|
||||
];
|
||||
|
||||
services.displayManager.sessionPackages = [ pkgs.plasma5Packages.plasma-bigscreen ];
|
||||
|
||||
# required for plasma-remotecontrollers to work correctly
|
||||
hardware.uinput.enable = true;
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -17,13 +17,6 @@ let
|
||||
cfg = config.boot.plymouth;
|
||||
opt = options.boot.plymouth;
|
||||
|
||||
nixosBreezePlymouth = pkgs.plasma5Packages.breeze-plymouth.override {
|
||||
logoFile = cfg.logo;
|
||||
logoName = "nixos";
|
||||
osName = "NixOS";
|
||||
osVersion = config.system.nixos.release;
|
||||
};
|
||||
|
||||
plymouthLogos = pkgs.runCommand "plymouth-logos" { inherit (cfg) logo; } ''
|
||||
mkdir -p $out
|
||||
|
||||
@@ -87,12 +80,7 @@ in
|
||||
};
|
||||
|
||||
themePackages = mkOption {
|
||||
default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth;
|
||||
defaultText = literalMD ''
|
||||
A NixOS branded variant of the breeze theme when
|
||||
`config.${opt.theme} == "breeze"`, otherwise
|
||||
`[ ]`.
|
||||
'';
|
||||
default = [ ];
|
||||
type = types.listOf types.package;
|
||||
description = ''
|
||||
Extra theme packages for plymouth.
|
||||
|
||||
@@ -171,7 +171,7 @@ rec {
|
||||
(onFullSupported "nixos.tests.php.fpm")
|
||||
(onFullSupported "nixos.tests.php.httpd")
|
||||
(onFullSupported "nixos.tests.php.pcre")
|
||||
(onFullSupported "nixos.tests.plasma5")
|
||||
(onFullSupported "nixos.tests.plasma6")
|
||||
(onSystems [ "x86_64-linux" ] "nixos.tests.podman")
|
||||
(onFullSupported "nixos.tests.predictable-interface-names.predictableNetworkd")
|
||||
(onFullSupported "nixos.tests.predictable-interface-names.predictable")
|
||||
|
||||
+1
-10
@@ -594,7 +594,7 @@ rec {
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -623,15 +623,6 @@ rec {
|
||||
}
|
||||
);
|
||||
|
||||
deepin = makeClosure (
|
||||
{ ... }:
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
services.xserver.displayManager.lightdm.enable = true;
|
||||
services.xserver.desktopManager.deepin.enable = true;
|
||||
}
|
||||
);
|
||||
|
||||
# Linux/Apache/PostgreSQL/PHP stack.
|
||||
lapp = makeClosure (
|
||||
{ pkgs, ... }:
|
||||
|
||||
@@ -423,7 +423,6 @@ in
|
||||
dconf = runTest ./dconf.nix;
|
||||
ddns-updater = runTest ./ddns-updater.nix;
|
||||
deconz = runTest ./deconz.nix;
|
||||
deepin = runTest ./deepin.nix;
|
||||
deluge = runTest ./deluge.nix;
|
||||
dendrite = runTest ./matrix/dendrite.nix;
|
||||
dependency-track = runTest ./dependency-track.nix;
|
||||
@@ -1190,9 +1189,7 @@ in
|
||||
pinnwand = runTest ./pinnwand.nix;
|
||||
plantuml-server = runTest ./plantuml-server.nix;
|
||||
plasma-bigscreen = runTest ./plasma-bigscreen.nix;
|
||||
plasma5 = runTest ./plasma5.nix;
|
||||
plasma6 = runTest ./plasma6.nix;
|
||||
plasma5-systemd-start = runTest ./plasma5-systemd-start.nix;
|
||||
plausible = runTest ./plausible.nix;
|
||||
playwright-python = runTest ./playwright-python.nix;
|
||||
please = runTest ./please.nix;
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "deepin";
|
||||
|
||||
meta.maintainers = lib.teams.deepin.members;
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/user-account.nix
|
||||
];
|
||||
|
||||
virtualisation.memorySize = 2048;
|
||||
|
||||
services.xserver.enable = true;
|
||||
|
||||
services.xserver.displayManager = {
|
||||
lightdm.enable = true;
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver.desktopManager.deepin.enable = true;
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
user = nodes.machine.users.users.alice;
|
||||
in
|
||||
''
|
||||
with subtest("Wait for login"):
|
||||
machine.wait_for_x()
|
||||
machine.wait_for_file("${user.home}/.Xauthority")
|
||||
machine.succeed("xauth merge ${user.home}/.Xauthority")
|
||||
|
||||
with subtest("Check that logging in has given the user ownership of devices"):
|
||||
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
|
||||
|
||||
with subtest("Check if Deepin session components actually start"):
|
||||
machine.wait_until_succeeds("pgrep -f dde-session-daemon")
|
||||
machine.wait_for_window("dde-session-daemon")
|
||||
machine.wait_until_succeeds("pgrep -f dde-desktop")
|
||||
machine.wait_for_window("dde-desktop")
|
||||
|
||||
with subtest("Open deepin-terminal"):
|
||||
machine.succeed("su - ${user.name} -c 'DISPLAY=:0 deepin-terminal >&2 &'")
|
||||
machine.wait_for_window("deepin-terminal")
|
||||
machine.sleep(20)
|
||||
machine.screenshot("screen")
|
||||
'';
|
||||
}
|
||||
@@ -31,11 +31,8 @@
|
||||
gui =
|
||||
{ ... }:
|
||||
common {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.plasma5.enable = true;
|
||||
desktopManager.plasma5.runUsingSystemd = true;
|
||||
};
|
||||
services.xserver.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
services.displayManager = {
|
||||
sddm.enable = true;
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
name = "plasma-bigscreen";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [
|
||||
ttuegel
|
||||
k900
|
||||
];
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./common/user-account.nix ];
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.defaultSession = "plasma-bigscreen-x11";
|
||||
services.xserver.desktopManager.plasma5.bigscreen.enable = true;
|
||||
services.displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
|
||||
users.users.alice.extraGroups = [ "uinput" ];
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
with subtest("Wait for login"):
|
||||
start_all()
|
||||
machine.wait_for_file("/tmp/xauth_*")
|
||||
machine.succeed("xauth merge /tmp/xauth_*")
|
||||
|
||||
with subtest("Check plasmashell started"):
|
||||
machine.wait_until_succeeds("pgrep plasmashell")
|
||||
machine.wait_for_window("Plasma Big Screen")
|
||||
'';
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
name = "plasma5-systemd-start";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ oxalica ];
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./common/user-account.nix ];
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.plasma5.enable = true;
|
||||
desktopManager.plasma5.runUsingSystemd = true;
|
||||
};
|
||||
|
||||
services.displayManager = {
|
||||
sddm.enable = true;
|
||||
defaultSession = "plasma";
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
with subtest("Wait for login"):
|
||||
start_all()
|
||||
machine.wait_for_file("/tmp/xauth_*")
|
||||
machine.succeed("xauth merge /tmp/xauth_*")
|
||||
|
||||
with subtest("Check plasmashell started"):
|
||||
machine.wait_until_succeeds("pgrep plasmashell")
|
||||
machine.wait_for_window("^Desktop ")
|
||||
|
||||
status, result = machine.systemctl('--no-pager show plasma-plasmashell.service', user='alice')
|
||||
assert status == 0, 'Service not found'
|
||||
assert 'ActiveState=active' in result.split('\n'), 'Systemd service not active'
|
||||
'';
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
name = "plasma5";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ ttuegel ];
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./common/user-account.nix ];
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.defaultSession = "plasma";
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
environment.plasma5.excludePackages = [ pkgs.plasma5Packages.elisa ];
|
||||
services.displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
user = nodes.machine.users.users.alice;
|
||||
xdo = "${pkgs.xdotool}/bin/xdotool";
|
||||
in
|
||||
''
|
||||
with subtest("Wait for login"):
|
||||
start_all()
|
||||
machine.wait_for_file("/tmp/xauth_*")
|
||||
machine.succeed("xauth merge /tmp/xauth_*")
|
||||
|
||||
with subtest("Check plasmashell started"):
|
||||
machine.wait_until_succeeds("pgrep plasmashell")
|
||||
machine.wait_for_window("^Desktop ")
|
||||
|
||||
with subtest("Check that KDED is running"):
|
||||
machine.succeed("pgrep kded5")
|
||||
|
||||
with subtest("Check that logging in has given the user ownership of devices"):
|
||||
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
|
||||
|
||||
with subtest("Ensure Elisa is not installed"):
|
||||
machine.fail("which elisa")
|
||||
|
||||
machine.succeed("su - ${user.name} -c 'xauth merge /tmp/xauth_*'")
|
||||
|
||||
with subtest("Run Dolphin"):
|
||||
machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 dolphin >&2 &'")
|
||||
machine.wait_for_window(" Dolphin")
|
||||
|
||||
with subtest("Run Konsole"):
|
||||
machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 konsole >&2 &'")
|
||||
machine.wait_for_window("Konsole")
|
||||
|
||||
with subtest("Run systemsettings"):
|
||||
machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 systemsettings5 >&2 &'")
|
||||
machine.wait_for_window("Settings")
|
||||
|
||||
with subtest("Wait to get a screenshot"):
|
||||
machine.execute(
|
||||
"${xdo} key Alt+F1 sleep 10"
|
||||
)
|
||||
machine.screenshot("screen")
|
||||
'';
|
||||
}
|
||||
@@ -36,8 +36,6 @@ let
|
||||
|
||||
darktile.pkg = p: p.darktile;
|
||||
|
||||
deepin-terminal.pkg = p: p.deepin.deepin-terminal;
|
||||
|
||||
eterm.pkg = p: p.eterm;
|
||||
eterm.executable = "Eterm";
|
||||
eterm.pinkValue = "#D40055";
|
||||
@@ -63,7 +61,7 @@ let
|
||||
kitty.pkg = p: p.kitty;
|
||||
kitty.cmd = "kitty $command";
|
||||
|
||||
konsole.pkg = p: p.plasma5Packages.konsole;
|
||||
konsole.pkg = p: p.kdePackages.konsole;
|
||||
|
||||
lxterminal.pkg = p: p.lxterminal;
|
||||
|
||||
|
||||
@@ -1,174 +0,0 @@
|
||||
# currently needs to be installed into an environment and needs a `kbuildsycoca5` run afterwards for plugin discovery
|
||||
{
|
||||
mkDerivation,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
lib,
|
||||
makeWrapper,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
pkg-config,
|
||||
libkcddb,
|
||||
kconfig,
|
||||
kconfigwidgets,
|
||||
ki18n,
|
||||
kdelibs4support,
|
||||
kio,
|
||||
solid,
|
||||
kwidgetsaddons,
|
||||
kxmlgui,
|
||||
qtbase,
|
||||
phonon,
|
||||
taglib_1,
|
||||
# optional backends
|
||||
withCD ? true,
|
||||
cdparanoia,
|
||||
withFlac ? true,
|
||||
flac,
|
||||
withMidi ? true,
|
||||
fluidsynth,
|
||||
timidity,
|
||||
withSpeex ? false,
|
||||
speex,
|
||||
withVorbis ? true,
|
||||
vorbis-tools,
|
||||
vorbisgain,
|
||||
withMp3 ? true,
|
||||
lame,
|
||||
mp3gain,
|
||||
withAac ? true,
|
||||
faad2,
|
||||
aacgain,
|
||||
withUnfreeAac ? false,
|
||||
faac,
|
||||
withFfmpeg ? true,
|
||||
ffmpeg-full,
|
||||
withMplayer ? false,
|
||||
mplayer,
|
||||
withSox ? true,
|
||||
sox,
|
||||
withOpus ? true,
|
||||
opusTools,
|
||||
withTwolame ? false,
|
||||
twolame,
|
||||
withApe ? false,
|
||||
monkeysAudio,
|
||||
withWavpack ? false,
|
||||
wavpack,
|
||||
}:
|
||||
|
||||
assert withAac -> withFfmpeg || withUnfreeAac;
|
||||
assert withUnfreeAac -> withAac;
|
||||
|
||||
let
|
||||
runtimeDeps =
|
||||
[ ]
|
||||
++ lib.optional withCD cdparanoia
|
||||
++ lib.optional withFlac flac
|
||||
++ lib.optional withSpeex speex
|
||||
++ lib.optional withFfmpeg ffmpeg-full
|
||||
++ lib.optional withMplayer mplayer
|
||||
++ lib.optional withSox sox
|
||||
++ lib.optional withOpus opusTools
|
||||
++ lib.optional withTwolame twolame
|
||||
++ lib.optional withApe monkeysAudio
|
||||
++ lib.optional withWavpack wavpack
|
||||
++ lib.optional withUnfreeAac faac
|
||||
++ lib.optionals withMidi [
|
||||
fluidsynth
|
||||
timidity
|
||||
]
|
||||
++ lib.optionals withVorbis [
|
||||
vorbis-tools
|
||||
vorbisgain
|
||||
]
|
||||
++ lib.optionals withMp3 [
|
||||
lame
|
||||
mp3gain
|
||||
]
|
||||
++ lib.optionals withAac [
|
||||
faad2
|
||||
aacgain
|
||||
];
|
||||
|
||||
in
|
||||
mkDerivation rec {
|
||||
pname = "soundkonverter";
|
||||
version = "3.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dfaust";
|
||||
repo = "soundkonverter";
|
||||
rev = "v" + version;
|
||||
sha256 = "1g2khdsjmsi4zzynkq8chd11cbdhjzmi37r9jhpal0b730nq9x7l";
|
||||
};
|
||||
patches = [
|
||||
# already merged into master, so it can go during the next release
|
||||
(fetchpatch {
|
||||
url = "https://patch-diff.githubusercontent.com/raw/dfaust/soundkonverter/pull/87.patch";
|
||||
sha256 = "sha256-XIpD4ZMTZVcu+F27OtpRy51H+uQgpd5l22IZ6XsD64w=";
|
||||
name = "soundkonverter_taglib.patch";
|
||||
stripLen = 1;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
pkg-config
|
||||
kdelibs4support
|
||||
makeWrapper
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
libkcddb
|
||||
kconfig
|
||||
kconfigwidgets
|
||||
ki18n
|
||||
kdelibs4support
|
||||
kio
|
||||
solid
|
||||
kwidgetsaddons
|
||||
kxmlgui
|
||||
qtbase
|
||||
phonon
|
||||
];
|
||||
buildInputs = [ taglib_1 ] ++ runtimeDeps;
|
||||
# encoder plugins go to ${out}/lib so they're found by kbuildsycoca5
|
||||
cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX=$out" ];
|
||||
sourceRoot = "${src.name}/src";
|
||||
# add runt-time deps to PATH
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/soundkonverter --prefix PATH : ${lib.makeBinPath runtimeDeps}
|
||||
'';
|
||||
meta = {
|
||||
homepage = "https://github.com/dfaust/soundkonverter";
|
||||
license = lib.licenses.gpl2;
|
||||
maintainers = [ lib.maintainers.schmittlauch ];
|
||||
description = "Audio file converter, CD ripper and Replay Gain tool";
|
||||
mainProgram = "soundkonverter";
|
||||
longDescription = ''
|
||||
soundKonverter is a frontend to various audio converters.
|
||||
|
||||
The key features are:
|
||||
- Audio file conversion
|
||||
- Replay Gain calculation
|
||||
- CD ripping
|
||||
|
||||
soundKonverter supports reading and writing tags and covers for many formats, so they are preserved when converting files.
|
||||
|
||||
It is extendable by plugins and supports many backends including:
|
||||
|
||||
- Audio file conversion
|
||||
Backends: faac, faad, ffmpeg, flac, lame, mplayer, neroaac, timidity, fluidsynth, vorbistools, opustools, sox, twolame,
|
||||
flake, mac, shorten, wavpack and speex
|
||||
Formats: ogg vorbis, mp3, flac, wma, aac, ac3, opus, alac, mp2, als, amr nb, amr wb, ape, speex, m4a, mp1, musepack shorten,
|
||||
tta, wavpack, ra, midi, mod, 3gp, rm, avi, mkv, ogv, mpeg, mov, mp4, flv, wmv and rv
|
||||
|
||||
- Replay Gain calculation
|
||||
Backends: aacgain, metaflac, mp3gain, vorbisgain, wvgain, mpcgain
|
||||
Formats: aac, mp3, flac, ogg vorbis, wavpack, musepack
|
||||
|
||||
- CD ripping
|
||||
Backends: cdparanoia
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
lib,
|
||||
callPackage,
|
||||
runCommand,
|
||||
layer-shell-qt,
|
||||
layer-shell-qt ? null,
|
||||
qtwayland,
|
||||
wrapQtAppsHook,
|
||||
unwrapped ? callPackage ./unwrapped.nix { },
|
||||
|
||||
@@ -3130,6 +3130,19 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
commasemi-nvim = buildVimPlugin {
|
||||
pname = "commasemi.nvim";
|
||||
version = "2025-03-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "saifulapm";
|
||||
repo = "commasemi.nvim";
|
||||
rev = "cbfa3554e554f0534fcd79de273742a532c0068f";
|
||||
sha256 = "13b334fx6yn1iyijvm7vb6il1zqpzx112rhw6ajp3lvgqanpz23d";
|
||||
};
|
||||
meta.homepage = "https://github.com/saifulapm/commasemi.nvim/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
comment-box-nvim = buildVimPlugin {
|
||||
pname = "comment-box.nvim";
|
||||
version = "2024-02-03";
|
||||
|
||||
@@ -239,6 +239,7 @@ https://github.com/lilydjwg/colorizer/,,
|
||||
https://github.com/Domeee/com.cloudedmountain.ide.neovim/,HEAD,
|
||||
https://github.com/mluders/comfy-line-numbers.nvim/,HEAD,
|
||||
https://github.com/wincent/command-t/,,
|
||||
https://github.com/saifulapm/commasemi.nvim/,HEAD,
|
||||
https://github.com/LudoPinelli/comment-box.nvim/,HEAD,
|
||||
https://github.com/numtostr/comment.nvim/,,
|
||||
https://github.com/rhysd/committia.vim/,,
|
||||
|
||||
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "basedpyright";
|
||||
publisher = "detachhead";
|
||||
version = "1.31.1";
|
||||
hash = "sha256-MlkLoM1415KYCKlwfV67HLLvmF7PRtdyQrPgeNm2nyM=";
|
||||
version = "1.31.3";
|
||||
hash = "sha256-xQ2XvGdQPmls+bkCtfmFYvbr1d4Q1Nhc8mQQyuWPZoQ=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/detachhead/basedpyright/releases";
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
SDL2_ttf,
|
||||
copyDesktopItems,
|
||||
expat,
|
||||
fetchpatch,
|
||||
fetchurl,
|
||||
flac,
|
||||
fontconfig,
|
||||
@@ -117,16 +116,6 @@ stdenv.mkDerivation rec {
|
||||
# that you run MAME changing to install directory, so we add absolute paths
|
||||
# here
|
||||
./001-use-absolute-paths.diff
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# coreaudio_sound.cpp compares __MAC_OS_X_VERSION_MIN_REQUIRED to 1200
|
||||
# instead of 120000, causing it to try to use a constant that isn't
|
||||
# actually defined yet when targeting macOS 11 like Nixpkgs does.
|
||||
# Backport mamedev/mame#13890 until the next time we update MAME.
|
||||
(fetchpatch {
|
||||
url = "https://patch-diff.githubusercontent.com/raw/mamedev/mame/pull/13890.patch";
|
||||
hash = "sha256-Fqpw4fHEMns4tSSIjc1p36ss+J9Tc/O0cnN3HI/ratM=";
|
||||
})
|
||||
];
|
||||
|
||||
# Since the bug described in https://github.com/NixOS/nixpkgs/issues/135438,
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
calendarsupport,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi-calendar-tools";
|
||||
meta = {
|
||||
homepage = "https://github.com/KDE/akonadi-calendar-tools";
|
||||
description = "Console applications and utilities for managing calendars in Akonadi";
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
cc0
|
||||
];
|
||||
maintainers = with lib.maintainers; [ kennyballou ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
akonadi
|
||||
calendarsupport
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
akonadi-contacts,
|
||||
kcalendarcore,
|
||||
kcalutils,
|
||||
kcontacts,
|
||||
kidentitymanagement,
|
||||
kio,
|
||||
kmailtransport,
|
||||
messagelib,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi-calendar";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2
|
||||
lgpl21
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
akonadi
|
||||
akonadi-contacts
|
||||
kcalendarcore
|
||||
kcalutils
|
||||
kcontacts
|
||||
kidentitymanagement
|
||||
kio
|
||||
kmailtransport
|
||||
messagelib
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
qtwebengine,
|
||||
grantlee,
|
||||
grantleetheme,
|
||||
kcmutils,
|
||||
kdbusaddons,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
kio,
|
||||
kitemmodels,
|
||||
ktextwidgets,
|
||||
prison,
|
||||
akonadi,
|
||||
akonadi-mime,
|
||||
kcontacts,
|
||||
kmime,
|
||||
libkleo,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi-contacts";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2
|
||||
lgpl21
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
buildInputs = [
|
||||
qtwebengine
|
||||
grantlee
|
||||
kcmutils
|
||||
kdbusaddons
|
||||
ki18n
|
||||
kiconthemes
|
||||
kio
|
||||
kitemmodels
|
||||
ktextwidgets
|
||||
prison
|
||||
akonadi-mime
|
||||
kcontacts
|
||||
kmime
|
||||
libkleo
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
akonadi
|
||||
grantleetheme
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
karchive,
|
||||
kcontacts,
|
||||
kcrash,
|
||||
kidentitymanagement,
|
||||
kio,
|
||||
kmailtransport,
|
||||
kwallet,
|
||||
mailcommon,
|
||||
mailimporter,
|
||||
messagelib,
|
||||
qtkeychain,
|
||||
libsecret,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi-import-wizard";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
karchive
|
||||
kcontacts
|
||||
kcrash
|
||||
kidentitymanagement
|
||||
kio
|
||||
kmailtransport
|
||||
kwallet
|
||||
mailcommon
|
||||
mailimporter
|
||||
messagelib
|
||||
qtkeychain
|
||||
libsecret
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
shared-mime-info,
|
||||
akonadi,
|
||||
kdbusaddons,
|
||||
ki18n,
|
||||
kio,
|
||||
kitemmodels,
|
||||
kmime,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi-mime";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2
|
||||
lgpl21
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
shared-mime-info
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
kdbusaddons
|
||||
ki18n
|
||||
kio
|
||||
kitemmodels
|
||||
kmime
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
kcompletion,
|
||||
ki18n,
|
||||
kitemmodels,
|
||||
kmime,
|
||||
kxmlgui,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi-notes";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
kcompletion
|
||||
ki18n
|
||||
kitemmodels
|
||||
kmime
|
||||
kxmlgui
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
akonadi-mime,
|
||||
kcalendarcore,
|
||||
kcmutils,
|
||||
kcontacts,
|
||||
kcoreaddons,
|
||||
kmime,
|
||||
krunner,
|
||||
qtbase,
|
||||
xapian,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi-search";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
kcmutils
|
||||
krunner
|
||||
xapian
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
akonadi
|
||||
akonadi-mime
|
||||
kcalendarcore
|
||||
kcontacts
|
||||
kcoreaddons
|
||||
kmime
|
||||
qtbase
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,190 +0,0 @@
|
||||
From ca8ff6e6d527ee968300cce5e8cd148f6a4d256b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@mailbox.org>
|
||||
Date: Sun, 25 Apr 2021 08:00:10 -0500
|
||||
Subject: [PATCH 1/3] akonadi paths
|
||||
|
||||
---
|
||||
src/akonadicontrol/agentmanager.cpp | 4 ++--
|
||||
src/akonadicontrol/agentprocessinstance.cpp | 2 +-
|
||||
src/server/storage/dbconfigmysql.cpp | 26 ++++-----------------
|
||||
src/server/storage/dbconfigpostgresql.cpp | 19 +++------------
|
||||
4 files changed, 11 insertions(+), 40 deletions(-)
|
||||
|
||||
diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
|
||||
index 44ceec5..eb5fa50 100644
|
||||
--- a/src/akonadicontrol/agentmanager.cpp
|
||||
+++ b/src/akonadicontrol/agentmanager.cpp
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
|
||||
QCoreApplication::instance()->exit(255);
|
||||
});
|
||||
- start(QStringLiteral("akonadiserver"), args, RestartOnCrash);
|
||||
+ start(QStringLiteral(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
|
||||
}
|
||||
|
||||
~StorageProcessControl() override
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
|
||||
qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
|
||||
});
|
||||
- start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash);
|
||||
+ start(QStringLiteral(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
|
||||
}
|
||||
|
||||
~AgentServerProcessControl() override
|
||||
diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
|
||||
index 8e92e08..f98dfd8 100644
|
||||
--- a/src/akonadicontrol/agentprocessinstance.cpp
|
||||
+++ b/src/akonadicontrol/agentprocessinstance.cpp
|
||||
@@ -47,7 +47,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
|
||||
} else {
|
||||
Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
|
||||
const QStringList arguments = QStringList() << executable << identifier();
|
||||
- const QString agentLauncherExec = Akonadi::StandardDirs::findExecutable(QStringLiteral("akonadi_agent_launcher"));
|
||||
+ const QString agentLauncherExec = QLatin1String(NIX_OUT "/bin/akonadi_agent_launcher");
|
||||
mController->start(agentLauncherExec, arguments);
|
||||
}
|
||||
return true;
|
||||
diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
|
||||
index 1a437ac..3550f9d 100644
|
||||
--- a/src/server/storage/dbconfigmysql.cpp
|
||||
+++ b/src/server/storage/dbconfigmysql.cpp
|
||||
@@ -72,7 +72,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
|
||||
// determine default settings depending on the driver
|
||||
QString defaultHostName;
|
||||
QString defaultOptions;
|
||||
- QString defaultServerPath;
|
||||
QString defaultCleanShutdownCommand;
|
||||
|
||||
#ifndef Q_OS_WIN
|
||||
@@ -80,16 +79,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
|
||||
#endif
|
||||
|
||||
const bool defaultInternalServer = true;
|
||||
-#ifdef MYSQLD_EXECUTABLE
|
||||
- if (QFile::exists(QStringLiteral(MYSQLD_EXECUTABLE))) {
|
||||
- defaultServerPath = QStringLiteral(MYSQLD_EXECUTABLE);
|
||||
- }
|
||||
-#endif
|
||||
- if (defaultServerPath.isEmpty()) {
|
||||
- defaultServerPath = findExecutable(QStringLiteral("mysqld"));
|
||||
- }
|
||||
-
|
||||
- const QString mysqladminPath = findExecutable(QStringLiteral("mysqladmin"));
|
||||
+ const QString mysqladminPath = QLatin1String(NIXPKGS_MYSQL_MYSQLADMIN);
|
||||
if (!mysqladminPath.isEmpty()) {
|
||||
#ifndef Q_OS_WIN
|
||||
defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
|
||||
@@ -99,10 +89,10 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
|
||||
#endif
|
||||
}
|
||||
|
||||
- mMysqlInstallDbPath = findExecutable(QStringLiteral("mysql_install_db"));
|
||||
+ mMysqlInstallDbPath = QLatin1String(NIXPKGS_MYSQL_MYSQL_INSTALL_DB);
|
||||
qCDebug(AKONADISERVER_LOG) << "Found mysql_install_db: " << mMysqlInstallDbPath;
|
||||
|
||||
- mMysqlCheckPath = findExecutable(QStringLiteral("mysqlcheck"));
|
||||
+ mMysqlCheckPath = QLatin1String(NIXPKGS_MYSQL_MYSQLCHECK);
|
||||
qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
|
||||
|
||||
mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
|
||||
@@ -119,7 +109,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
|
||||
mUserName = settings.value(QStringLiteral("User")).toString();
|
||||
mPassword = settings.value(QStringLiteral("Password")).toString();
|
||||
mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
|
||||
- mMysqldPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
|
||||
+ mMysqldPath = QLatin1String(NIXPKGS_MYSQL_MYSQLD);
|
||||
mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
|
||||
settings.endGroup();
|
||||
|
||||
@@ -129,9 +119,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
|
||||
// intentionally not namespaced as we are the only one in this db instance when using internal mode
|
||||
mDatabaseName = QStringLiteral("akonadi");
|
||||
}
|
||||
- if (mInternalServer && (mMysqldPath.isEmpty() || !QFile::exists(mMysqldPath))) {
|
||||
- mMysqldPath = defaultServerPath;
|
||||
- }
|
||||
|
||||
qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
|
||||
|
||||
@@ -141,9 +128,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
|
||||
settings.setValue(QStringLiteral("Name"), mDatabaseName);
|
||||
settings.setValue(QStringLiteral("Host"), mHostName);
|
||||
settings.setValue(QStringLiteral("Options"), mConnectionOptions);
|
||||
- if (!mMysqldPath.isEmpty()) {
|
||||
- settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
|
||||
- }
|
||||
settings.setValue(QStringLiteral("StartServer"), mInternalServer);
|
||||
settings.endGroup();
|
||||
settings.sync();
|
||||
@@ -215,7 +199,7 @@ bool DbConfigMysql::startInternalServer()
|
||||
#endif
|
||||
|
||||
// generate config file
|
||||
- const QString globalConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-global.conf"));
|
||||
+ const QString globalConfig = QLatin1String(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf");
|
||||
const QString localConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
|
||||
const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
|
||||
if (globalConfig.isEmpty()) {
|
||||
diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
|
||||
index 4df61da..e3469c4 100644
|
||||
--- a/src/server/storage/dbconfigpostgresql.cpp
|
||||
+++ b/src/server/storage/dbconfigpostgresql.cpp
|
||||
@@ -125,9 +125,7 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
|
||||
// determine default settings depending on the driver
|
||||
QString defaultHostName;
|
||||
QString defaultOptions;
|
||||
- QString defaultServerPath;
|
||||
QString defaultInitDbPath;
|
||||
- QString defaultPgUpgradePath;
|
||||
QString defaultPgData;
|
||||
|
||||
#ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
|
||||
@@ -138,12 +136,8 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
|
||||
|
||||
mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
|
||||
if (mInternalServer) {
|
||||
- const auto paths = postgresSearchPaths(QStringLiteral("/usr/lib/postgresql"));
|
||||
-
|
||||
- defaultServerPath = QStandardPaths::findExecutable(QStringLiteral("pg_ctl"), paths);
|
||||
- defaultInitDbPath = QStandardPaths::findExecutable(QStringLiteral("initdb"), paths);
|
||||
+ defaultInitDbPath = QLatin1String(NIXPKGS_POSTGRES_INITDB);
|
||||
defaultHostName = Utils::preferredSocketDirectory(StandardDirs::saveDir("data", QStringLiteral("db_misc")));
|
||||
- defaultPgUpgradePath = QStandardPaths::findExecutable(QStringLiteral("pg_upgrade"), paths);
|
||||
defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
|
||||
}
|
||||
|
||||
@@ -162,20 +156,14 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
|
||||
mUserName = settings.value(QStringLiteral("User")).toString();
|
||||
mPassword = settings.value(QStringLiteral("Password")).toString();
|
||||
mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
|
||||
- mServerPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
|
||||
- if (mInternalServer && mServerPath.isEmpty()) {
|
||||
- mServerPath = defaultServerPath;
|
||||
- }
|
||||
+ mServerPath = QLatin1String(NIXPKGS_POSTGRES_PG_CTL);
|
||||
qCDebug(AKONADISERVER_LOG) << "Found pg_ctl:" << mServerPath;
|
||||
mInitDbPath = settings.value(QStringLiteral("InitDbPath"), defaultInitDbPath).toString();
|
||||
if (mInternalServer && mInitDbPath.isEmpty()) {
|
||||
mInitDbPath = defaultInitDbPath;
|
||||
}
|
||||
qCDebug(AKONADISERVER_LOG) << "Found initdb:" << mServerPath;
|
||||
- mPgUpgradePath = settings.value(QStringLiteral("UpgradePath"), defaultPgUpgradePath).toString();
|
||||
- if (mInternalServer && mPgUpgradePath.isEmpty()) {
|
||||
- mPgUpgradePath = defaultPgUpgradePath;
|
||||
- }
|
||||
+ mPgUpgradePath = QLatin1String(NIXPKGS_POSTGRES_PG_UPGRADE);
|
||||
qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
|
||||
mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
|
||||
if (mPgData.isEmpty()) {
|
||||
@@ -192,7 +180,6 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
|
||||
settings.setValue(QStringLiteral("Port"), mHostPort);
|
||||
}
|
||||
settings.setValue(QStringLiteral("Options"), mConnectionOptions);
|
||||
- settings.setValue(QStringLiteral("ServerPath"), mServerPath);
|
||||
settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
|
||||
settings.setValue(QStringLiteral("StartServer"), mInternalServer);
|
||||
settings.endGroup();
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From f6c446cf6fab2edbd2606b4c6100903e9437362a Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@mailbox.org>
|
||||
Date: Sun, 25 Apr 2021 08:01:02 -0500
|
||||
Subject: [PATCH 2/3] akonadi timestamps
|
||||
|
||||
---
|
||||
src/server/storage/dbconfigmysql.cpp | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
|
||||
index 3550f9d..e9e8887 100644
|
||||
--- a/src/server/storage/dbconfigmysql.cpp
|
||||
+++ b/src/server/storage/dbconfigmysql.cpp
|
||||
@@ -241,8 +241,7 @@ bool DbConfigMysql::startInternalServer()
|
||||
bool confUpdate = false;
|
||||
QFile actualFile(actualConfig);
|
||||
// update conf only if either global (or local) is newer than actual
|
||||
- if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified())
|
||||
- || (QFileInfo(localConfig).lastModified() > QFileInfo(actualFile).lastModified())) {
|
||||
+ if (true) {
|
||||
QFile globalFile(globalConfig);
|
||||
QFile localFile(localConfig);
|
||||
if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
From 4b90a0bd4411a66bbe6ecf85ce89a60a58bee969 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@mailbox.org>
|
||||
Date: Sun, 25 Apr 2021 08:01:21 -0500
|
||||
Subject: [PATCH 3/3] akonadi revert make relocatable
|
||||
|
||||
---
|
||||
CMakeLists.txt | 3 ---
|
||||
KPimAkonadiConfig.cmake.in | 6 +++---
|
||||
2 files changed, 3 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 4e8cc81..63161b7 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -368,9 +368,6 @@ configure_package_config_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/KPimAkonadiConfig.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/KPimAkonadiConfig.cmake"
|
||||
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
|
||||
- PATH_VARS AKONADI_DBUS_INTERFACES_INSTALL_DIR
|
||||
- AKONADI_INCLUDE_DIR
|
||||
- KF5Akonadi_DATA_DIR
|
||||
)
|
||||
|
||||
install(FILES
|
||||
diff --git a/KPimAkonadiConfig.cmake.in b/KPimAkonadiConfig.cmake.in
|
||||
index bcf7320..1574319 100644
|
||||
--- a/KPimAkonadiConfig.cmake.in
|
||||
+++ b/KPimAkonadiConfig.cmake.in
|
||||
@@ -1,10 +1,10 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
-set_and_check(AKONADI_DBUS_INTERFACES_DIR "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
|
||||
-set_and_check(AKONADI_INCLUDE_DIR "@PACKAGE_AKONADI_INCLUDE_DIR@")
|
||||
+set_and_check(AKONADI_DBUS_INTERFACES_DIR "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
|
||||
+set_and_check(AKONADI_INCLUDE_DIR "@AKONADI_INCLUDE_DIR@")
|
||||
|
||||
# The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
|
||||
-set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@")
|
||||
+set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@")
|
||||
|
||||
# set the directories
|
||||
if(NOT AKONADI_INSTALL_DIR)
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
shared-mime-info,
|
||||
accounts-qt,
|
||||
boost,
|
||||
kaccounts-integration,
|
||||
kcompletion,
|
||||
kconfigwidgets,
|
||||
kcrash,
|
||||
kdbusaddons,
|
||||
kdesignerplugin,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
kio,
|
||||
kitemmodels,
|
||||
kwindowsystem,
|
||||
mariadb,
|
||||
postgresql,
|
||||
qttools,
|
||||
signond,
|
||||
xz,
|
||||
|
||||
mysqlSupport ? true,
|
||||
postgresSupport ? false,
|
||||
defaultDriver ? if mysqlSupport then "MYSQL" else "POSTGRES",
|
||||
}:
|
||||
|
||||
assert mysqlSupport || postgresSupport;
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadi";
|
||||
meta = {
|
||||
license = [ lib.licenses.lgpl21 ];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
patches = [
|
||||
./0001-akonadi-paths.patch
|
||||
./0002-akonadi-timestamps.patch
|
||||
./0003-akonadi-revert-make-relocatable.patch
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
shared-mime-info
|
||||
];
|
||||
buildInputs = [
|
||||
kaccounts-integration
|
||||
kcompletion
|
||||
kconfigwidgets
|
||||
kcrash
|
||||
kdbusaddons
|
||||
kdesignerplugin
|
||||
ki18n
|
||||
kiconthemes
|
||||
kio
|
||||
kwindowsystem
|
||||
xz
|
||||
accounts-qt
|
||||
qttools
|
||||
signond
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
boost
|
||||
kitemmodels
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
CXXFLAGS = [
|
||||
''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqld"}\"''
|
||||
''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqladmin"}\"''
|
||||
''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysql_install_db"}\"''
|
||||
''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqlcheck"}\"''
|
||||
''-DNIXPKGS_POSTGRES_PG_CTL=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/pg_ctl"}\"''
|
||||
''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/pg_upgrade"}\"''
|
||||
''-DNIXPKGS_POSTGRES_INITDB=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/initdb"}\"''
|
||||
''-DNIX_OUT=\"${placeholder "out"}\"''
|
||||
''-I${lib.getDev kio}/include/KF5'' # Fixes: kio_version.h: No such file or directory
|
||||
];
|
||||
|
||||
cmakeFlags = lib.optional (defaultDriver != "MYSQL") "-DDATABASE_BACKEND=${defaultDriver}";
|
||||
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
akonadi-contacts,
|
||||
calendarsupport,
|
||||
kcalendarcore,
|
||||
kcompletion,
|
||||
kconfigwidgets,
|
||||
kcontacts,
|
||||
kdbusaddons,
|
||||
kitemmodels,
|
||||
kpimtextedit,
|
||||
libkdepim,
|
||||
ktextwidgets,
|
||||
kxmlgui,
|
||||
messagelib,
|
||||
qtbase,
|
||||
akonadi-search,
|
||||
xapian,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akonadiconsole";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
akonadi-contacts
|
||||
calendarsupport
|
||||
kcalendarcore
|
||||
kcompletion
|
||||
kconfigwidgets
|
||||
kcontacts
|
||||
kdbusaddons
|
||||
kitemmodels
|
||||
kpimtextedit
|
||||
ktextwidgets
|
||||
kxmlgui
|
||||
messagelib
|
||||
qtbase
|
||||
libkdepim
|
||||
akonadi-search
|
||||
xapian
|
||||
];
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
qtwebengine,
|
||||
grantlee,
|
||||
kcmutils,
|
||||
kcrash,
|
||||
kiconthemes,
|
||||
knotifyconfig,
|
||||
kparts,
|
||||
ktexteditor,
|
||||
kuserfeedback,
|
||||
kwindowsystem,
|
||||
akonadi,
|
||||
akonadi-mime,
|
||||
grantleetheme,
|
||||
kontactinterface,
|
||||
libkdepim,
|
||||
libkleo,
|
||||
messagelib,
|
||||
syndication,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "akregator";
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/akregator/";
|
||||
description = "KDE feed reader";
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
qtwebengine
|
||||
|
||||
grantlee
|
||||
|
||||
kcmutils
|
||||
kcrash
|
||||
kiconthemes
|
||||
knotifyconfig
|
||||
kparts
|
||||
ktexteditor
|
||||
kuserfeedback
|
||||
kwindowsystem
|
||||
|
||||
akonadi
|
||||
akonadi-mime
|
||||
grantleetheme
|
||||
kontactinterface
|
||||
libkdepim
|
||||
libkleo
|
||||
messagelib
|
||||
syndication
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
ki18n,
|
||||
kirigami-addons,
|
||||
kirigami2,
|
||||
qtquickcontrols2,
|
||||
syndication,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "alligator";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kconfig
|
||||
kcoreaddons
|
||||
ki18n
|
||||
kirigami-addons
|
||||
kirigami2
|
||||
qtquickcontrols2
|
||||
syndication
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "RSS reader made with kirigami";
|
||||
mainProgram = "alligator";
|
||||
homepage = "https://invent.kde.org/plasma-mobile/alligator";
|
||||
# https://invent.kde.org/plasma-mobile/alligator/-/commit/db30f159c4700244532b17a260deb95551045b7a
|
||||
# * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
license = with licenses; [
|
||||
gpl2Only
|
||||
gpl3Only
|
||||
];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
qtbase,
|
||||
qtsvg,
|
||||
eigen,
|
||||
kdoctools,
|
||||
qttools,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "analitza";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
eigen
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
qttools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
qtsvg
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Front end to powerful mathematics and statistics packages";
|
||||
homepage = "https://cantor.kde.org/";
|
||||
license = with licenses; [
|
||||
gpl2Only
|
||||
lgpl2Only
|
||||
fdl12Only
|
||||
];
|
||||
maintainers = with maintainers; [ hqurve ];
|
||||
};
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
cargo,
|
||||
cmake,
|
||||
corrosion,
|
||||
extra-cmake-modules,
|
||||
fetchpatch2,
|
||||
futuresql,
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
kdbusaddons,
|
||||
ki18n,
|
||||
kirigami-addons,
|
||||
kirigami2,
|
||||
knotifications,
|
||||
kpurpose,
|
||||
kwindowsystem,
|
||||
qcoro,
|
||||
qtfeedback,
|
||||
qtquickcontrols2,
|
||||
qqc2-desktop-style,
|
||||
qtwebengine,
|
||||
rustPlatform,
|
||||
rustc,
|
||||
srcs,
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "angelfish";
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
name = "fix-build-with-corrosion-0.5.patch";
|
||||
url = "https://invent.kde.org/network/angelfish/-/commit/b04928e3b62a11b647622b81fb67b7c0db656ac8.patch";
|
||||
hash = "sha256-9rpkMKQKrvGJFIQDwSIeeZyk4/vd348r660mBOKzM2E=";
|
||||
})
|
||||
];
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
# include version in the name so we invalidate the FOD
|
||||
name = "${pname}-${srcs.angelfish.version}";
|
||||
inherit (srcs.angelfish) src;
|
||||
hash = "sha256-M3CtP7eWqOxMvnak6K3QvB/diu4jAfMmlsa6ySFIHCU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
corrosion
|
||||
extra-cmake-modules
|
||||
rustPlatform.cargoSetupHook
|
||||
cargo
|
||||
rustc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
futuresql
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kdbusaddons
|
||||
ki18n
|
||||
kirigami-addons
|
||||
kirigami2
|
||||
knotifications
|
||||
kpurpose
|
||||
kwindowsystem
|
||||
qcoro
|
||||
qtfeedback
|
||||
qtquickcontrols2
|
||||
qqc2-desktop-style
|
||||
qtwebengine
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Web browser for Plasma Mobile";
|
||||
homepage = "https://invent.kde.org/plasma-mobile/angelfish";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
qtquickcontrols2,
|
||||
qtwebchannel,
|
||||
qtwebengine,
|
||||
qtwebsockets,
|
||||
baloo,
|
||||
karchive,
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
kdbusaddons,
|
||||
kfilemetadata,
|
||||
ki18n,
|
||||
kirigami-addons,
|
||||
kitemmodels,
|
||||
kquickcharts,
|
||||
kwindowsystem,
|
||||
qqc2-desktop-style,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "arianna";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
qtdeclarative
|
||||
qtquickcontrols2
|
||||
qtwebchannel
|
||||
qtwebengine
|
||||
qtwebsockets
|
||||
baloo
|
||||
karchive
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kdbusaddons
|
||||
kfilemetadata
|
||||
ki18n
|
||||
kirigami-addons
|
||||
kitemmodels
|
||||
kquickcharts
|
||||
kwindowsystem
|
||||
qqc2-desktop-style
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Epub Reader for Plasma and Plasma Mobile";
|
||||
mainProgram = "arianna";
|
||||
homepage = "https://invent.kde.org/graphics/arianna";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ Thra11 ];
|
||||
};
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
breeze-icons,
|
||||
karchive,
|
||||
kconfig,
|
||||
kcrash,
|
||||
kdbusaddons,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
kitemmodels,
|
||||
khtml,
|
||||
kio,
|
||||
kparts,
|
||||
kpty,
|
||||
kservice,
|
||||
kwidgetsaddons,
|
||||
libarchive,
|
||||
libzip,
|
||||
# Archive tools
|
||||
p7zip,
|
||||
lrzip,
|
||||
unar,
|
||||
# Unfree tools
|
||||
unfreeEnableUnrar ? false,
|
||||
unrar,
|
||||
}:
|
||||
|
||||
let
|
||||
extraTools = [
|
||||
p7zip
|
||||
lrzip
|
||||
unar
|
||||
]
|
||||
++ lib.optional unfreeEnableUnrar unrar;
|
||||
in
|
||||
|
||||
mkDerivation {
|
||||
pname = "ark";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libarchive
|
||||
libzip
|
||||
]
|
||||
++ extraTools;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
breeze-icons
|
||||
karchive
|
||||
kconfig
|
||||
kcrash
|
||||
kdbusaddons
|
||||
khtml
|
||||
ki18n
|
||||
kiconthemes
|
||||
kio
|
||||
kitemmodels
|
||||
kparts
|
||||
kpty
|
||||
kservice
|
||||
kwidgetsaddons
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--prefix"
|
||||
"PATH"
|
||||
":"
|
||||
(lib.makeBinPath extraTools)
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://apps.kde.org/ark/";
|
||||
description = "Graphical file compression/decompression utility";
|
||||
mainProgram = "ark";
|
||||
license =
|
||||
with licenses;
|
||||
[
|
||||
gpl2
|
||||
lgpl3
|
||||
]
|
||||
++ optional unfreeEnableUnrar unfree;
|
||||
maintainers = [ maintainers.ttuegel ];
|
||||
};
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
|
||||
extra-cmake-modules,
|
||||
wrapGAppsHook3,
|
||||
|
||||
futuresql,
|
||||
gst_all_1,
|
||||
kcoreaddons,
|
||||
kcrash,
|
||||
ki18n,
|
||||
kirigami2,
|
||||
kirigami-addons,
|
||||
kpurpose,
|
||||
qcoro,
|
||||
qtimageformats,
|
||||
qtmultimedia,
|
||||
qtquickcontrols2,
|
||||
python3Packages,
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "audiotube";
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
wrapGAppsHook3
|
||||
python3Packages.wrapPython
|
||||
python3Packages.pybind11
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
futuresql
|
||||
kcoreaddons
|
||||
kcrash
|
||||
ki18n
|
||||
kirigami2
|
||||
kirigami-addons
|
||||
kpurpose
|
||||
qcoro
|
||||
qtimageformats
|
||||
qtmultimedia
|
||||
qtquickcontrols2
|
||||
]
|
||||
++ (with gst_all_1; [
|
||||
gst-plugins-bad
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gstreamer
|
||||
])
|
||||
++ pythonPath;
|
||||
|
||||
pythonPath = with python3Packages; [
|
||||
yt-dlp
|
||||
ytmusicapi
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
buildPythonPath "$pythonPath"
|
||||
qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
dontWrapGApps = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Client for YouTube Music";
|
||||
mainProgram = "audiotube";
|
||||
homepage = "https://invent.kde.org/plasma-mobile/audiotube";
|
||||
# https://invent.kde.org/plasma-mobile/audiotube/-/tree/c503d0607a3386112beaa9cf990ab85fe33ef115/LICENSES
|
||||
license = with licenses; [
|
||||
bsd2
|
||||
cc0
|
||||
gpl2Only
|
||||
gpl3Only
|
||||
];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
baloo,
|
||||
kconfig,
|
||||
kfilemetadata,
|
||||
ki18n,
|
||||
kio,
|
||||
kservice,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "baloo-widgets";
|
||||
meta = {
|
||||
license = [ lib.licenses.lgpl21 ];
|
||||
maintainers = [ lib.maintainers.ttuegel ];
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
baloo
|
||||
kconfig
|
||||
kfilemetadata
|
||||
ki18n
|
||||
kio
|
||||
kservice
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
libkdegames,
|
||||
extra-cmake-modules,
|
||||
kdeclarative,
|
||||
knewstuff,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "bomber";
|
||||
meta = with lib; {
|
||||
homepage = "https://apps.kde.org/bomber/";
|
||||
description = "Single player arcade game";
|
||||
mainProgram = "bomber";
|
||||
longDescription = ''
|
||||
Bomber is a single player arcade game. The player is invading various
|
||||
cities in a plane that is decreasing in height.
|
||||
|
||||
The goal of the game is to destroy all the buildings and advance to the next level.
|
||||
Each level gets a bit harder by increasing the speed of the plane and the height of the buildings.
|
||||
'';
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
];
|
||||
buildInputs = [
|
||||
kdeclarative
|
||||
knewstuff
|
||||
libkdegames
|
||||
];
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
libkdegames,
|
||||
extra-cmake-modules,
|
||||
kdeclarative,
|
||||
knewstuff,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "bovo";
|
||||
meta = with lib; {
|
||||
homepage = "https://apps.kde.org/bovo/";
|
||||
description = "Five in a row application";
|
||||
mainProgram = "bovo";
|
||||
longDescription = ''
|
||||
Bovo is a Gomoku (from Japanese 五目並べ - lit. "five points") like game for two players,
|
||||
where the opponents alternate in placing their respective pictogram on the game board.
|
||||
(Also known as: Connect Five, Five in a row, X and O, Naughts and Crosses)
|
||||
'';
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
];
|
||||
buildInputs = [
|
||||
kdeclarative
|
||||
knewstuff
|
||||
libkdegames
|
||||
];
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
akonadi-calendar,
|
||||
akonadi-mime,
|
||||
akonadi-notes,
|
||||
kcalutils,
|
||||
kholidays,
|
||||
kidentitymanagement,
|
||||
kmime,
|
||||
pimcommon,
|
||||
qttools,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "calendarsupport";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
akonadi-mime
|
||||
akonadi-notes
|
||||
kcalutils
|
||||
kholidays
|
||||
pimcommon
|
||||
qttools
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
akonadi-calendar
|
||||
kidentitymanagement
|
||||
kmime
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
|
||||
kcalendarcore,
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
kdbusaddons,
|
||||
ki18n,
|
||||
kirigami2,
|
||||
knotifications,
|
||||
kpeople,
|
||||
kservice,
|
||||
qtquickcontrols2,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "calindori";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kcalendarcore
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kdbusaddons
|
||||
ki18n
|
||||
kirigami2
|
||||
knotifications
|
||||
kpeople
|
||||
kservice
|
||||
qtquickcontrols2
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Calendar for Plasma Mobile";
|
||||
homepage = "https://invent.kde.org/plasma-mobile/calindori";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,131 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
makeWrapper,
|
||||
shared-mime-info,
|
||||
|
||||
fetchpatch,
|
||||
qtbase,
|
||||
qtsvg,
|
||||
qttools,
|
||||
qtwebengine,
|
||||
qtxmlpatterns,
|
||||
|
||||
poppler,
|
||||
|
||||
karchive,
|
||||
kcompletion,
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
kcrash,
|
||||
kdoctools,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
kio,
|
||||
knewstuff,
|
||||
kparts,
|
||||
kpty,
|
||||
ktexteditor,
|
||||
ktextwidgets,
|
||||
kxmlgui,
|
||||
syntax-highlighting,
|
||||
|
||||
libspectre,
|
||||
|
||||
# Backends. Set to null if you want to omit from the build
|
||||
withAnalitza ? true,
|
||||
analitza,
|
||||
wtihJulia ? true,
|
||||
julia,
|
||||
withQalculate ? true,
|
||||
libqalculate,
|
||||
withLua ? true,
|
||||
luajit,
|
||||
withPython ? true,
|
||||
python3,
|
||||
withR ? true,
|
||||
R,
|
||||
withSage ? true,
|
||||
sage,
|
||||
sage-with-env ? sage.with-env,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "cantor";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
makeWrapper
|
||||
shared-mime-info
|
||||
qttools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
qtsvg
|
||||
qtwebengine
|
||||
qtxmlpatterns
|
||||
|
||||
poppler
|
||||
|
||||
karchive
|
||||
kcompletion
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kcrash
|
||||
kdoctools
|
||||
ki18n
|
||||
kiconthemes
|
||||
kio
|
||||
knewstuff
|
||||
kparts
|
||||
kpty
|
||||
ktexteditor
|
||||
ktextwidgets
|
||||
kxmlgui
|
||||
syntax-highlighting
|
||||
|
||||
libspectre
|
||||
]
|
||||
# backends
|
||||
++ lib.optional withAnalitza analitza
|
||||
++ lib.optional wtihJulia julia
|
||||
++ lib.optional withQalculate libqalculate
|
||||
++ lib.optional withLua luajit
|
||||
++ lib.optional withPython python3
|
||||
++ lib.optional withR R
|
||||
++ lib.optional withSage sage-with-env;
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--prefix PATH : ${placeholder "out"}/bin"
|
||||
]
|
||||
++ lib.optional withSage "--prefix PATH : ${sage-with-env}/bin";
|
||||
|
||||
# Causes failures on Hydra and ofborg from some reason
|
||||
enableParallelBuilding = false;
|
||||
|
||||
patches = [
|
||||
# fix build for julia 1.1 from upstream
|
||||
(fetchpatch {
|
||||
url = "https://github.com/KDE/cantor/commit/ed9525ec7895c2251668d11218f16f186db48a59.patch?full_index=1";
|
||||
hash = "sha256-paq0e7Tl2aiUjBf1bDHLLUpShwdCQLICNTPNsXSoe5M=";
|
||||
})
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Front end to powerful mathematics and statistics packages";
|
||||
homepage = "https://cantor.kde.org/";
|
||||
license = with lib.licenses; [
|
||||
bsd3
|
||||
cc0
|
||||
gpl2Only
|
||||
gpl2Plus
|
||||
gpl3Only
|
||||
];
|
||||
maintainers = with lib.maintainers; [ hqurve ];
|
||||
};
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
ki18n,
|
||||
kconfig,
|
||||
kconfigwidgets,
|
||||
kcoreaddons,
|
||||
kdbusaddons,
|
||||
kiconthemes,
|
||||
kirigami-addons,
|
||||
kcmutils,
|
||||
kio,
|
||||
knotifications,
|
||||
plasma-framework,
|
||||
kwidgetsaddons,
|
||||
kwindowsystem,
|
||||
kitemmodels,
|
||||
kitemviews,
|
||||
lcms2,
|
||||
libXrandr,
|
||||
qtx11extras,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "colord-kde";
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
|
||||
buildInputs = [
|
||||
kconfig
|
||||
kconfigwidgets
|
||||
kcoreaddons
|
||||
kdbusaddons
|
||||
kiconthemes
|
||||
kirigami-addons
|
||||
kcmutils
|
||||
ki18n
|
||||
kio
|
||||
knotifications
|
||||
plasma-framework
|
||||
kwidgetsaddons
|
||||
kwindowsystem
|
||||
kitemmodels
|
||||
kitemviews
|
||||
lcms2
|
||||
libXrandr
|
||||
qtx11extras
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://projects.kde.org/projects/playground/graphics/colord-kde";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ ttuegel ];
|
||||
};
|
||||
}
|
||||
@@ -1,284 +0,0 @@
|
||||
/*
|
||||
# New packages
|
||||
|
||||
READ THIS FIRST
|
||||
|
||||
This module is for official packages in the KDE Gear. All available
|
||||
packages are listed in `./srcs.nix`, although some are not yet
|
||||
packaged in Nixpkgs (see below).
|
||||
|
||||
IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE.
|
||||
|
||||
Many of the packages released upstream are not yet built in Nixpkgs due to lack
|
||||
of demand. To add a Nixpkgs build for an upstream package, copy one of the
|
||||
existing packages here and modify it as necessary. A simple example package that
|
||||
still shows most of the available features is in `./gwenview`.
|
||||
|
||||
# Updates
|
||||
|
||||
1. Update the URL in `./fetch.sh`.
|
||||
2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde`
|
||||
from the top of the Nixpkgs tree.
|
||||
3. Use `nox-review wip` to check that everything builds.
|
||||
4. Commit the changes and open a pull request.
|
||||
*/
|
||||
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
libsForQt5,
|
||||
fetchurl,
|
||||
}:
|
||||
|
||||
let
|
||||
mirror = "mirror://kde";
|
||||
srcs = import ./srcs.nix { inherit fetchurl mirror; };
|
||||
|
||||
mkDerivation =
|
||||
args:
|
||||
let
|
||||
inherit (args) pname;
|
||||
inherit (srcs.${pname}) src version;
|
||||
mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) { };
|
||||
in
|
||||
mkDerivation (
|
||||
args
|
||||
// {
|
||||
inherit pname version src;
|
||||
|
||||
outputs = args.outputs or [ "out" ];
|
||||
|
||||
meta =
|
||||
let
|
||||
meta = args.meta or { };
|
||||
in
|
||||
meta
|
||||
// {
|
||||
homepage = meta.homepage or "http://www.kde.org";
|
||||
platforms = meta.platforms or lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
packages =
|
||||
self:
|
||||
with self;
|
||||
let
|
||||
callPackage = self.newScope {
|
||||
inherit mkDerivation;
|
||||
|
||||
# Team of maintainers assigned to the KDE PIM suite
|
||||
kdepimTeam = with lib.maintainers; [
|
||||
ttuegel
|
||||
vandenoever
|
||||
nyanloutre
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
akonadi = callPackage ./akonadi { };
|
||||
akonadi-calendar = callPackage ./akonadi-calendar.nix { };
|
||||
akonadi-calendar-tools = callPackage ./akonadi-calendar-tools.nix { };
|
||||
akonadi-contacts = callPackage ./akonadi-contacts.nix { };
|
||||
akonadi-import-wizard = callPackage ./akonadi-import-wizard.nix { };
|
||||
akonadi-mime = callPackage ./akonadi-mime.nix { };
|
||||
akonadi-notes = callPackage ./akonadi-notes.nix { };
|
||||
akonadi-search = callPackage ./akonadi-search.nix { };
|
||||
akonadiconsole = callPackage ./akonadiconsole.nix { };
|
||||
akregator = callPackage ./akregator.nix { };
|
||||
analitza = callPackage ./analitza.nix { };
|
||||
arianna = callPackage ./arianna.nix { };
|
||||
ark = callPackage ./ark { };
|
||||
baloo-widgets = callPackage ./baloo-widgets.nix { };
|
||||
bomber = callPackage ./bomber.nix { };
|
||||
bovo = callPackage ./bovo.nix { };
|
||||
calendarsupport = callPackage ./calendarsupport.nix { };
|
||||
colord-kde = callPackage ./colord-kde.nix { };
|
||||
cantor = callPackage ./cantor.nix { };
|
||||
dolphin = callPackage ./dolphin.nix { };
|
||||
dolphin-plugins = callPackage ./dolphin-plugins.nix { };
|
||||
dragon = callPackage ./dragon.nix { };
|
||||
elisa = callPackage ./elisa.nix { };
|
||||
eventviews = callPackage ./eventviews.nix { };
|
||||
falkon = callPackage ./falkon.nix { };
|
||||
ffmpegthumbs = callPackage ./ffmpegthumbs.nix { };
|
||||
filelight = callPackage ./filelight.nix { };
|
||||
ghostwriter = callPackage ./ghostwriter.nix { };
|
||||
granatier = callPackage ./granatier.nix { };
|
||||
grantleetheme = callPackage ./grantleetheme { };
|
||||
gwenview = callPackage ./gwenview { };
|
||||
incidenceeditor = callPackage ./incidenceeditor.nix { };
|
||||
juk = callPackage ./juk.nix { };
|
||||
kaccounts-integration = callPackage ./kaccounts-integration.nix { };
|
||||
kaccounts-providers = callPackage ./kaccounts-providers.nix { };
|
||||
kaddressbook = callPackage ./kaddressbook.nix { };
|
||||
kalarm = callPackage ./kalarm.nix { };
|
||||
kalgebra = callPackage ./kalgebra.nix { };
|
||||
merkuro = callPackage ./merkuro.nix { };
|
||||
kalzium = callPackage ./kalzium.nix { };
|
||||
kamoso = callPackage ./kamoso.nix { };
|
||||
kapman = callPackage ./kapman.nix { };
|
||||
kapptemplate = callPackage ./kapptemplate.nix { };
|
||||
kate = callPackage ./kate.nix { };
|
||||
katomic = callPackage ./katomic.nix { };
|
||||
kblackbox = callPackage ./kblackbox.nix { };
|
||||
kblocks = callPackage ./kblocks.nix { };
|
||||
kbounce = callPackage ./kbounce.nix { };
|
||||
kbreakout = callPackage ./kbreakout.nix { };
|
||||
kcachegrind = callPackage ./kcachegrind.nix { };
|
||||
kcalc = callPackage ./kcalc.nix { };
|
||||
kcalutils = callPackage ./kcalutils.nix { };
|
||||
kcharselect = callPackage ./kcharselect.nix { };
|
||||
kcolorchooser = callPackage ./kcolorchooser.nix { };
|
||||
kde-inotify-survey = callPackage ./kde-inotify-survey.nix { };
|
||||
kdebugsettings = callPackage ./kdebugsettings.nix { };
|
||||
kdeconnect-kde = callPackage ./kdeconnect-kde.nix { };
|
||||
kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix { };
|
||||
kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers { };
|
||||
kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix { };
|
||||
kdenlive = callPackage ./kdenlive { };
|
||||
kdepim-addons = callPackage ./kdepim-addons.nix { };
|
||||
kdepim-runtime = callPackage ./kdepim-runtime { };
|
||||
kdev-php = callPackage ./kdevelop/kdev-php.nix { };
|
||||
kdev-python = callPackage ./kdevelop/kdev-python.nix { };
|
||||
kdevelop = callPackage ./kdevelop/wrapper.nix { };
|
||||
kdevelop-pg-qt = callPackage ./kdevelop/kdevelop-pg-qt.nix { };
|
||||
kdevelop-unwrapped = callPackage ./kdevelop/kdevelop.nix { };
|
||||
kdf = callPackage ./kdf.nix { };
|
||||
kdialog = callPackage ./kdialog.nix { };
|
||||
kdiamond = callPackage ./kdiamond.nix { };
|
||||
keditbookmarks = callPackage ./keditbookmarks.nix { };
|
||||
kfind = callPackage ./kfind.nix { };
|
||||
kgeography = callPackage ./kgeography.nix { };
|
||||
kget = callPackage ./kget.nix { };
|
||||
kgpg = callPackage ./kgpg.nix { };
|
||||
khelpcenter = callPackage ./khelpcenter.nix { };
|
||||
kidentitymanagement = callPackage ./kidentitymanagement.nix { };
|
||||
kig = callPackage ./kig.nix { };
|
||||
kigo = callPackage ./kigo.nix { };
|
||||
killbots = callPackage ./killbots.nix { };
|
||||
kimap = callPackage ./kimap.nix { };
|
||||
kio-admin = callPackage ./kio-admin.nix { };
|
||||
kio-extras = callPackage ./kio-extras.nix { };
|
||||
kio-gdrive = callPackage ./kio-gdrive.nix { };
|
||||
kipi-plugins = callPackage ./kipi-plugins.nix { };
|
||||
kirigami-gallery = callPackage ./kirigami-gallery.nix { };
|
||||
kitinerary = callPackage ./kitinerary.nix { };
|
||||
kldap = callPackage ./kldap.nix { };
|
||||
kleopatra = callPackage ./kleopatra.nix { };
|
||||
klettres = callPackage ./klettres.nix { };
|
||||
klines = callPackage ./klines.nix { };
|
||||
kmag = callPackage ./kmag.nix { };
|
||||
kmahjongg = callPackage ./kmahjongg.nix { };
|
||||
kmail = callPackage ./kmail.nix { };
|
||||
kmail-account-wizard = callPackage ./kmail-account-wizard.nix { };
|
||||
kmailtransport = callPackage ./kmailtransport.nix { };
|
||||
kmbox = callPackage ./kmbox.nix { };
|
||||
kmime = callPackage ./kmime.nix { };
|
||||
kmines = callPackage ./kmines.nix { };
|
||||
kmix = callPackage ./kmix.nix { };
|
||||
kmousetool = callPackage ./kmousetool.nix { };
|
||||
kmplot = callPackage ./kmplot.nix { };
|
||||
knavalbattle = callPackage ./knavalbattle.nix { };
|
||||
knetwalk = callPackage ./knetwalk.nix { };
|
||||
knights = callPackage ./knights.nix { };
|
||||
knotes = callPackage ./knotes.nix { };
|
||||
kolf = callPackage ./kolf.nix { };
|
||||
kollision = callPackage ./kollision.nix { };
|
||||
kolourpaint = callPackage ./kolourpaint.nix { };
|
||||
kompare = callPackage ./kompare.nix { };
|
||||
konqueror = callPackage ./konqueror.nix { };
|
||||
konquest = callPackage ./konquest.nix { };
|
||||
konsole = callPackage ./konsole.nix { };
|
||||
kontact = callPackage ./kontact.nix { };
|
||||
konversation = callPackage ./konversation.nix { };
|
||||
kontactinterface = callPackage ./kontactinterface.nix { };
|
||||
kopeninghours = callPackage ./kopeninghours.nix { };
|
||||
korganizer = callPackage ./korganizer.nix { };
|
||||
kosmindoormap = callPackage ./kosmindoormap.nix { };
|
||||
kpat = callPackage ./kpat.nix { };
|
||||
kpimtextedit = callPackage ./kpimtextedit.nix { };
|
||||
kpkpass = callPackage ./kpkpass.nix { };
|
||||
kpmcore = callPackage ./kpmcore { };
|
||||
kpublictransport = callPackage ./kpublictransport.nix { };
|
||||
kqtquickcharts = callPackage ./kqtquickcharts.nix { };
|
||||
krdc = callPackage ./krdc.nix { };
|
||||
kreversi = callPackage ./kreversi.nix { };
|
||||
krfb = callPackage ./krfb.nix { };
|
||||
kruler = callPackage ./kruler.nix { };
|
||||
ksanecore = callPackage ./ksanecore.nix { };
|
||||
kshisen = callPackage ./kshisen.nix { };
|
||||
ksmtp = callPackage ./ksmtp { };
|
||||
kspaceduel = callPackage ./kspaceduel.nix { };
|
||||
ksquares = callPackage ./ksquares.nix { };
|
||||
ksudoku = callPackage ./ksudoku.nix { };
|
||||
ksystemlog = callPackage ./ksystemlog.nix { };
|
||||
kteatime = callPackage ./kteatime.nix { };
|
||||
ktimer = callPackage ./ktimer.nix { };
|
||||
ktnef = callPackage ./ktnef.nix { };
|
||||
ktorrent = callPackage ./ktorrent.nix { };
|
||||
kturtle = callPackage ./kturtle.nix { };
|
||||
kwalletmanager = callPackage ./kwalletmanager.nix { };
|
||||
kwave = callPackage ./kwave.nix { };
|
||||
libgravatar = callPackage ./libgravatar.nix { };
|
||||
libkcddb = callPackage ./libkcddb.nix { };
|
||||
libkdcraw = callPackage ./libkdcraw.nix { };
|
||||
libkdegames = callPackage ./libkdegames.nix { };
|
||||
libkdepim = callPackage ./libkdepim.nix { };
|
||||
libkexiv2 = callPackage ./libkexiv2.nix { };
|
||||
libkgapi = callPackage ./libkgapi.nix { };
|
||||
libkipi = callPackage ./libkipi.nix { };
|
||||
libkleo = callPackage ./libkleo.nix { };
|
||||
libkmahjongg = callPackage ./libkmahjongg.nix { };
|
||||
libkomparediff2 = callPackage ./libkomparediff2.nix { };
|
||||
libksane = callPackage ./libksane.nix { };
|
||||
libksieve = callPackage ./libksieve.nix { };
|
||||
libktorrent = callPackage ./libktorrent.nix { };
|
||||
mailcommon = callPackage ./mailcommon.nix { };
|
||||
mailimporter = callPackage ./mailimporter.nix { };
|
||||
marble = callPackage ./marble.nix { };
|
||||
mbox-importer = callPackage ./mbox-importer.nix { };
|
||||
messagelib = callPackage ./messagelib.nix { };
|
||||
minuet = callPackage ./minuet.nix { };
|
||||
okular = callPackage ./okular.nix { };
|
||||
palapeli = callPackage ./palapeli.nix { };
|
||||
partitionmanager = callPackage ./partitionmanager { };
|
||||
picmi = callPackage ./picmi.nix { };
|
||||
pim-data-exporter = callPackage ./pim-data-exporter.nix { };
|
||||
pim-sieve-editor = callPackage ./pim-sieve-editor.nix { };
|
||||
pimcommon = callPackage ./pimcommon.nix { };
|
||||
print-manager = callPackage ./print-manager.nix { };
|
||||
rocs = callPackage ./rocs.nix { };
|
||||
skanlite = callPackage ./skanlite.nix { };
|
||||
skanpage = callPackage ./skanpage.nix { };
|
||||
spectacle = callPackage ./spectacle.nix { };
|
||||
umbrello = callPackage ./umbrello.nix { };
|
||||
yakuake = callPackage ./yakuake.nix { };
|
||||
zanshin = callPackage ./zanshin.nix { };
|
||||
|
||||
# Plasma Mobile Gear
|
||||
alligator = callPackage ./alligator.nix { };
|
||||
angelfish = callPackage ./angelfish.nix { inherit srcs; };
|
||||
audiotube = callPackage ./audiotube.nix { };
|
||||
calindori = callPackage ./calindori.nix { };
|
||||
kalk = callPackage ./kalk.nix { };
|
||||
kasts = callPackage ./kasts.nix { };
|
||||
kclock = callPackage ./kclock.nix { };
|
||||
keysmith = callPackage ./keysmith.nix { };
|
||||
koko = callPackage ./koko.nix { };
|
||||
kongress = callPackage ./kongress.nix { };
|
||||
krecorder = callPackage ./krecorder.nix { };
|
||||
ktrip = callPackage ./ktrip.nix { };
|
||||
kweather = callPackage ./kweather.nix { };
|
||||
plasmatube = callPackage ./plasmatube { };
|
||||
qmlkonsole = callPackage ./qmlkonsole.nix { };
|
||||
telly-skout = callPackage ./telly-skout.nix { };
|
||||
tokodon = callPackage ./tokodon.nix { };
|
||||
}
|
||||
// lib.optionalAttrs config.allowAliases {
|
||||
k3b = throw "libsForQt5.k3b has been dropped in favor of kdePackages.k3b";
|
||||
ktouch = throw "ktouch has been dropped due keyboard layout issues";
|
||||
};
|
||||
|
||||
in
|
||||
lib.makeScope libsForQt5.newScope packages
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
dolphin,
|
||||
ki18n,
|
||||
kio,
|
||||
kxmlgui,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "dolphin-plugins";
|
||||
meta = {
|
||||
license = [ lib.licenses.gpl2 ];
|
||||
maintainers = [ lib.maintainers.ttuegel ];
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
dolphin
|
||||
ki18n
|
||||
kio
|
||||
kxmlgui
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
baloo,
|
||||
baloo-widgets,
|
||||
kactivities,
|
||||
kbookmarks,
|
||||
kcmutils,
|
||||
kcompletion,
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
kdbusaddons,
|
||||
kfilemetadata,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
kinit,
|
||||
kio,
|
||||
knewstuff,
|
||||
knotifications,
|
||||
kparts,
|
||||
ktexteditor,
|
||||
kwindowsystem,
|
||||
phonon,
|
||||
solid,
|
||||
kuserfeedback,
|
||||
wayland,
|
||||
qtwayland,
|
||||
qtx11extras,
|
||||
qtimageformats,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "dolphin";
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/dolphin/";
|
||||
description = "KDE file manager";
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = [ lib.maintainers.ttuegel ];
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
propagatedUserEnvPkgs = [ baloo ];
|
||||
propagatedBuildInputs = [
|
||||
baloo
|
||||
baloo-widgets
|
||||
kactivities
|
||||
kbookmarks
|
||||
kcmutils
|
||||
kcompletion
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kdbusaddons
|
||||
kfilemetadata
|
||||
ki18n
|
||||
kiconthemes
|
||||
kinit
|
||||
kio
|
||||
knewstuff
|
||||
knotifications
|
||||
kparts
|
||||
ktexteditor
|
||||
kwindowsystem
|
||||
phonon
|
||||
solid
|
||||
kuserfeedback
|
||||
wayland
|
||||
qtwayland
|
||||
qtx11extras
|
||||
qtimageformats
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
baloo,
|
||||
baloo-widgets,
|
||||
kactivities,
|
||||
kbookmarks,
|
||||
kcmutils,
|
||||
kcompletion,
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
kdbusaddons,
|
||||
kfilemetadata,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
kinit,
|
||||
kio,
|
||||
knewstuff,
|
||||
knotifications,
|
||||
kparts,
|
||||
ktexteditor,
|
||||
kwindowsystem,
|
||||
phonon,
|
||||
solid,
|
||||
phonon-backend-gstreamer,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "dragon";
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/dragonplayer/";
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
fdl12Plus
|
||||
];
|
||||
description = "Simple media player for KDE";
|
||||
mainProgram = "dragon";
|
||||
maintainers = [ lib.maintainers.jonathanreeve ];
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
baloo
|
||||
baloo-widgets
|
||||
kactivities
|
||||
kbookmarks
|
||||
kcmutils
|
||||
kcompletion
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kdbusaddons
|
||||
kfilemetadata
|
||||
ki18n
|
||||
kiconthemes
|
||||
kinit
|
||||
kio
|
||||
knewstuff
|
||||
knotifications
|
||||
kparts
|
||||
ktexteditor
|
||||
kwindowsystem
|
||||
phonon
|
||||
solid
|
||||
phonon-backend-gstreamer
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
qtmultimedia,
|
||||
qtquickcontrols2,
|
||||
qtwebsockets,
|
||||
kconfig,
|
||||
kcmutils,
|
||||
kcrash,
|
||||
kdeclarative,
|
||||
kfilemetadata,
|
||||
kinit,
|
||||
kirigami2,
|
||||
baloo,
|
||||
libvlc,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "elisa";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
buildInputs = [ libvlc ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
baloo
|
||||
kcmutils
|
||||
kconfig
|
||||
kcrash
|
||||
kdeclarative
|
||||
kfilemetadata
|
||||
kinit
|
||||
kirigami2
|
||||
qtmultimedia
|
||||
qtquickcontrols2
|
||||
qtwebsockets
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://apps.kde.org/elisa/";
|
||||
description = "Simple media player for KDE";
|
||||
mainProgram = "elisa";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
};
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
calendarsupport,
|
||||
kcalutils,
|
||||
kdiagram,
|
||||
libkdepim,
|
||||
qtbase,
|
||||
qttools,
|
||||
kholidays,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "eventviews";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
calendarsupport
|
||||
kcalutils
|
||||
kdiagram
|
||||
libkdepim
|
||||
qtbase
|
||||
qttools
|
||||
kholidays
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
{
|
||||
stdenv,
|
||||
mkDerivation,
|
||||
lib,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
pkg-config,
|
||||
libpthreadstubs,
|
||||
libxcb,
|
||||
libXdmcp,
|
||||
qtsvg,
|
||||
qttools,
|
||||
qtwebengine,
|
||||
qtx11extras,
|
||||
qtwayland,
|
||||
wrapQtAppsHook,
|
||||
kwallet,
|
||||
kpurpose,
|
||||
karchive,
|
||||
kio,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "falkon";
|
||||
|
||||
preConfigure = ''
|
||||
export NONBLOCK_JS_DIALOGS=true
|
||||
export KDE_INTEGRATION=true
|
||||
export GNOME_INTEGRATION=false
|
||||
export FALKON_PREFIX=$out
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
libpthreadstubs
|
||||
libxcb
|
||||
libXdmcp
|
||||
qtsvg
|
||||
qttools
|
||||
qtwebengine
|
||||
qtx11extras
|
||||
kwallet
|
||||
kpurpose
|
||||
karchive
|
||||
kio
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
pkg-config
|
||||
qttools
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "QtWebEngine based cross-platform web browser";
|
||||
mainProgram = "falkon";
|
||||
homepage = "https://www.falkon.org";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
WGET_ARGS=( https://download.kde.org/stable/release-service/23.08.5/src -A '*.tar.xz' )
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
ffmpeg,
|
||||
kio,
|
||||
taglib,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "ffmpegthumbs";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2
|
||||
bsd3
|
||||
];
|
||||
maintainers = [ lib.maintainers.ttuegel ];
|
||||
};
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
buildInputs = [
|
||||
ffmpeg
|
||||
kio
|
||||
taglib
|
||||
];
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
kio,
|
||||
kparts,
|
||||
kxmlgui,
|
||||
qtscript,
|
||||
solid,
|
||||
qtquickcontrols2,
|
||||
kdeclarative,
|
||||
kirigami2,
|
||||
kquickcharts,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "filelight";
|
||||
meta = {
|
||||
description = "Disk usage statistics";
|
||||
mainProgram = "filelight";
|
||||
homepage = "https://apps.kde.org/filelight/";
|
||||
license = with lib.licenses; [ gpl2 ];
|
||||
maintainers = with lib.maintainers; [ vcunat ];
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
kio
|
||||
kparts
|
||||
kxmlgui
|
||||
qtscript
|
||||
solid
|
||||
qtquickcontrols2
|
||||
kdeclarative
|
||||
kirigami2
|
||||
kquickcharts
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
extra-cmake-modules,
|
||||
qttools,
|
||||
qtwebengine,
|
||||
kcoreaddons,
|
||||
kconfigwidgets,
|
||||
sonnet,
|
||||
kxmlgui,
|
||||
hunspell,
|
||||
cmark,
|
||||
multimarkdown,
|
||||
pandoc,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "ghostwriter";
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
qttools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtwebengine
|
||||
hunspell
|
||||
kcoreaddons
|
||||
kconfigwidgets
|
||||
sonnet
|
||||
kxmlgui
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--prefix"
|
||||
"PATH"
|
||||
":"
|
||||
(lib.makeBinPath [
|
||||
cmark
|
||||
multimarkdown
|
||||
pandoc
|
||||
])
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cross-platform, aesthetic, distraction-free Markdown editor";
|
||||
mainProgram = "ghostwriter";
|
||||
homepage = "https://ghostwriter.kde.org/";
|
||||
changelog = "https://invent.kde.org/office/ghostwriter/-/blob/master/CHANGELOG.md";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [
|
||||
dotlambda
|
||||
erictapen
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
libkdegames,
|
||||
extra-cmake-modules,
|
||||
kdeclarative,
|
||||
knewstuff,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "granatier";
|
||||
meta = with lib; {
|
||||
homepage = "https://kde.org/applications/en/games/org.kde.granatier";
|
||||
description = "Clone of the classic Bomberman game";
|
||||
mainProgram = "granatier";
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
];
|
||||
buildInputs = [
|
||||
kdeclarative
|
||||
knewstuff
|
||||
libkdegames
|
||||
];
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
grantlee,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
knewstuff,
|
||||
kservice,
|
||||
kxmlgui,
|
||||
qtbase,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "grantleetheme";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
grantlee
|
||||
ki18n
|
||||
kiconthemes
|
||||
knewstuff
|
||||
kservice
|
||||
kxmlgui
|
||||
qtbase
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
grantlee
|
||||
kiconthemes
|
||||
knewstuff
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
|
||||
# This is a really disgusting hack, no idea how search paths work for kde,
|
||||
# but apparently kde is looking in $out/$out rather than $out for this library.
|
||||
# Having this symlink fixes kmail finding it and makes my html work (Yay!).
|
||||
mkdir -p $out/$out/lib/grantlee/
|
||||
libpath=$(echo $out/lib/grantlee/*)
|
||||
ln -s $libpath $out/$out/lib/grantlee/$(basename $libpath)
|
||||
'';
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
exiv2,
|
||||
lcms2,
|
||||
cfitsio,
|
||||
baloo,
|
||||
kactivities,
|
||||
kio,
|
||||
kipi-plugins,
|
||||
kitemmodels,
|
||||
kparts,
|
||||
libkdcraw,
|
||||
libkipi,
|
||||
phonon,
|
||||
qtimageformats,
|
||||
qtsvg,
|
||||
qtx11extras,
|
||||
kinit,
|
||||
kpurpose,
|
||||
kcolorpicker,
|
||||
kimageannotator,
|
||||
wayland,
|
||||
wayland-protocols,
|
||||
wayland-scanner,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "gwenview";
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/gwenview/";
|
||||
description = "KDE image viewer";
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = [ lib.maintainers.ttuegel ];
|
||||
mainProgram = "gwenview";
|
||||
};
|
||||
|
||||
# Fix build with versioned kImageAnnotator
|
||||
patches = [ ./kimageannotator.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
wayland-scanner
|
||||
];
|
||||
buildInputs = [
|
||||
baloo
|
||||
kactivities
|
||||
kio
|
||||
kitemmodels
|
||||
kparts
|
||||
libkdcraw
|
||||
libkipi
|
||||
phonon
|
||||
exiv2
|
||||
lcms2
|
||||
cfitsio
|
||||
qtimageformats
|
||||
qtsvg
|
||||
qtx11extras
|
||||
kpurpose
|
||||
kcolorpicker
|
||||
kimageannotator
|
||||
wayland
|
||||
wayland-protocols
|
||||
];
|
||||
propagatedUserEnvPkgs = [
|
||||
kipi-plugins
|
||||
libkipi
|
||||
(lib.getBin kinit)
|
||||
];
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 01db0fb1..06319c54 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -166,12 +166,12 @@ if(NOT WITHOUT_X11)
|
||||
endif()
|
||||
|
||||
if (QT_MAJOR_VERSION STREQUAL "5")
|
||||
- find_package(kImageAnnotator)
|
||||
- set_package_properties(kImageAnnotator PROPERTIES URL "https://github.com/ksnip/kImageAnnotator" DESCRIPTION "The kImageAnnotator library provides tools to annotate" TYPE REQUIRED)
|
||||
- if(kImageAnnotator_FOUND)
|
||||
+ find_package(kImageAnnotator-Qt5)
|
||||
+ set_package_properties(kImageAnnotator-Qt5 PROPERTIES URL "https://github.com/ksnip/kImageAnnotator" DESCRIPTION "The kImageAnnotator library provides tools to annotate" TYPE REQUIRED)
|
||||
+ if(kImageAnnotator-Qt5_FOUND)
|
||||
set(KIMAGEANNOTATOR_FOUND 1)
|
||||
- find_package(kColorPicker REQUIRED)
|
||||
- if(NOT kImageAnnotator_VERSION VERSION_LESS 0.5.0)
|
||||
+ find_package(kColorPicker-Qt5 REQUIRED)
|
||||
+ if(NOT kImageAnnotator-Qt5_VERSION VERSION_LESS 0.5.0)
|
||||
set(KIMAGEANNOTATOR_CAN_LOAD_TRANSLATIONS 1)
|
||||
endif()
|
||||
endif()
|
||||
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
|
||||
index 8c136835..ef4cff74 100644
|
||||
--- a/app/CMakeLists.txt
|
||||
+++ b/app/CMakeLists.txt
|
||||
@@ -157,6 +157,6 @@ target_link_libraries(slideshowfileitemaction
|
||||
KF${QT_MAJOR_VERSION}::KIOWidgets
|
||||
KF${QT_MAJOR_VERSION}::Notifications)
|
||||
|
||||
-if(kImageAnnotator_FOUND)
|
||||
+if(kImageAnnotator-Qt5_FOUND)
|
||||
target_link_libraries(gwenview kImageAnnotator::kImageAnnotator)
|
||||
endif()
|
||||
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
|
||||
index 05a2ea67..4167a1bb 100644
|
||||
--- a/lib/CMakeLists.txt
|
||||
+++ b/lib/CMakeLists.txt
|
||||
@@ -157,7 +157,7 @@ set(gwenviewlib_SRCS
|
||||
touch/touch_helper.cpp
|
||||
${GV_JPEG_DIR}/transupp.c
|
||||
)
|
||||
-if (kImageAnnotator_FOUND)
|
||||
+if (kImageAnnotator-Qt5_FOUND)
|
||||
set(gwenviewlib_SRCS ${gwenviewlib_SRCS}
|
||||
annotate/annotatedialog.cpp
|
||||
annotate/annotateoperation.cpp
|
||||
@@ -338,7 +338,7 @@ if (GWENVIEW_SEMANTICINFO_BACKEND_BALOO)
|
||||
)
|
||||
endif()
|
||||
|
||||
-if(kImageAnnotator_FOUND)
|
||||
+if(kImageAnnotator-Qt5_FOUND)
|
||||
target_link_libraries(gwenviewlib kImageAnnotator::kImageAnnotator)
|
||||
endif()
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
akonadi-mime,
|
||||
calendarsupport,
|
||||
eventviews,
|
||||
kdiagram,
|
||||
kldap,
|
||||
kmime,
|
||||
pimcommon,
|
||||
qtbase,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "incidenceeditor";
|
||||
meta = {
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
akonadi-mime
|
||||
calendarsupport
|
||||
eventviews
|
||||
kdiagram
|
||||
kldap
|
||||
kmime
|
||||
pimcommon
|
||||
qtbase
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$dev/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
extra-cmake-modules,
|
||||
wrapQtAppsHook,
|
||||
kdoctools,
|
||||
kcoreaddons,
|
||||
kxmlgui,
|
||||
kio,
|
||||
phonon,
|
||||
taglib,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "juk";
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
wrapQtAppsHook
|
||||
kdoctools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kcoreaddons
|
||||
kxmlgui
|
||||
kio
|
||||
phonon
|
||||
taglib
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://invent.kde.org/multimedia/juk";
|
||||
description = "Audio jukebox app, supporting collections of MP3, Ogg Vorbis and FLAC audio files";
|
||||
mainProgram = "juk";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ zendo ];
|
||||
};
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
kcmutils,
|
||||
kcoreaddons,
|
||||
kwallet,
|
||||
accounts-qt,
|
||||
signond,
|
||||
qcoro,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kaccounts-integration";
|
||||
meta = with lib; {
|
||||
homepage = "https://community.kde.org/KTp/Setting_up_KAccounts";
|
||||
description = "Online accounts integration";
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
];
|
||||
buildInputs = [
|
||||
kcmutils
|
||||
kcoreaddons
|
||||
kdoctools
|
||||
kwallet
|
||||
accounts-qt
|
||||
signond
|
||||
qcoro
|
||||
];
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
accounts-qt,
|
||||
extra-cmake-modules,
|
||||
intltool,
|
||||
kaccounts-integration,
|
||||
kcmutils,
|
||||
kcoreaddons,
|
||||
kdeclarative,
|
||||
kdoctools,
|
||||
kio,
|
||||
kpackage,
|
||||
kwallet,
|
||||
qtwebengine,
|
||||
signond,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kaccounts-providers";
|
||||
meta = with lib; {
|
||||
homepage = "https://community.kde.org/KTp/Setting_up_KAccounts";
|
||||
description = "Online account providers";
|
||||
maintainers = with maintainers; [ kennyballou ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
intltool
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
accounts-qt
|
||||
kaccounts-integration
|
||||
kcmutils
|
||||
kcoreaddons
|
||||
kdeclarative
|
||||
kio
|
||||
kpackage
|
||||
kwallet
|
||||
qtwebengine
|
||||
signond
|
||||
];
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
kdepimTeam,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
akonadi,
|
||||
akonadi-search,
|
||||
grantlee,
|
||||
grantleetheme,
|
||||
kcmutils,
|
||||
kcompletion,
|
||||
kcrash,
|
||||
kdbusaddons,
|
||||
ki18n,
|
||||
kontactinterface,
|
||||
kparts,
|
||||
kpimtextedit,
|
||||
kuserfeedback,
|
||||
kxmlgui,
|
||||
libkdepim,
|
||||
libkleo,
|
||||
mailcommon,
|
||||
pimcommon,
|
||||
prison,
|
||||
qgpgme,
|
||||
qtbase,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kaddressbook";
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/kaddressbook/";
|
||||
description = "KDE contact manager";
|
||||
mainProgram = "kaddressbook";
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
fdl12Plus
|
||||
];
|
||||
maintainers = kdepimTeam;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
akonadi
|
||||
akonadi-search
|
||||
grantlee
|
||||
grantleetheme
|
||||
kcmutils
|
||||
kcompletion
|
||||
kcrash
|
||||
kdbusaddons
|
||||
ki18n
|
||||
kontactinterface
|
||||
kparts
|
||||
kpimtextedit
|
||||
kuserfeedback
|
||||
kxmlgui
|
||||
libkdepim
|
||||
libkleo
|
||||
mailcommon
|
||||
pimcommon
|
||||
prison
|
||||
qgpgme
|
||||
qtbase
|
||||
];
|
||||
postInstall = ''
|
||||
# added as an include directory by cmake files and fails to compile if it's missing
|
||||
mkdir -p "$out/include/KF5"
|
||||
'';
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
|
||||
kauth,
|
||||
kcodecs,
|
||||
kcompletion,
|
||||
kconfig,
|
||||
kconfigwidgets,
|
||||
kdbusaddons,
|
||||
kdoctools,
|
||||
kguiaddons,
|
||||
ki18n,
|
||||
kiconthemes,
|
||||
kidletime,
|
||||
kjobwidgets,
|
||||
kcmutils,
|
||||
kio,
|
||||
knotifications,
|
||||
knotifyconfig,
|
||||
kservice,
|
||||
kwidgetsaddons,
|
||||
kwindowsystem,
|
||||
kxmlgui,
|
||||
phonon,
|
||||
|
||||
kimap,
|
||||
akonadi,
|
||||
akonadi-contacts,
|
||||
akonadi-mime,
|
||||
kcalendarcore,
|
||||
kcalutils,
|
||||
kholidays,
|
||||
kidentitymanagement,
|
||||
libkdepim,
|
||||
mailcommon,
|
||||
kmailtransport,
|
||||
kmime,
|
||||
pimcommon,
|
||||
kpimtextedit,
|
||||
messagelib,
|
||||
|
||||
qtx11extras,
|
||||
|
||||
kdepim-runtime,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kalarm";
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/kalarm/";
|
||||
description = "Personal alarm scheduler";
|
||||
license = with lib.licenses; [ gpl2 ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
buildInputs = [
|
||||
kauth
|
||||
kcodecs
|
||||
kcompletion
|
||||
kconfig
|
||||
kconfigwidgets
|
||||
kdbusaddons
|
||||
kdoctools
|
||||
kguiaddons
|
||||
ki18n
|
||||
kiconthemes
|
||||
kidletime
|
||||
kjobwidgets
|
||||
kcmutils
|
||||
kio
|
||||
knotifications
|
||||
knotifyconfig
|
||||
kservice
|
||||
kwidgetsaddons
|
||||
kwindowsystem
|
||||
kxmlgui
|
||||
phonon
|
||||
|
||||
kimap
|
||||
akonadi
|
||||
akonadi-contacts
|
||||
akonadi-mime
|
||||
kcalendarcore
|
||||
kcalutils
|
||||
kholidays
|
||||
kidentitymanagement
|
||||
libkdepim
|
||||
mailcommon
|
||||
kmailtransport
|
||||
kmime
|
||||
pimcommon
|
||||
kpimtextedit
|
||||
messagelib
|
||||
|
||||
qtx11extras
|
||||
];
|
||||
propagatedUserEnvPkgs = [ kdepim-runtime ];
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
analitza,
|
||||
ki18n,
|
||||
kinit,
|
||||
kirigami2,
|
||||
kconfigwidgets,
|
||||
kwidgetsaddons,
|
||||
kio,
|
||||
kxmlgui,
|
||||
qtwebengine,
|
||||
plasma-framework,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kalgebra";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ki18n
|
||||
analitza
|
||||
kinit
|
||||
kirigami2
|
||||
kconfigwidgets
|
||||
kwidgetsaddons
|
||||
kio
|
||||
kxmlgui
|
||||
qtwebengine
|
||||
plasma-framework
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/kalgebra/";
|
||||
description = "2D and 3D Graph Calculator";
|
||||
license = with lib.licenses; [ gpl2Plus ];
|
||||
maintainers = with lib.maintainers; [ ninjafb ];
|
||||
};
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
bison,
|
||||
flex,
|
||||
|
||||
gmp,
|
||||
mpfr,
|
||||
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
ki18n,
|
||||
kirigami2,
|
||||
kunitconversion,
|
||||
qtfeedback,
|
||||
qtquickcontrols2,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kalk";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
bison
|
||||
flex
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gmp
|
||||
mpfr
|
||||
|
||||
kconfig
|
||||
kcoreaddons
|
||||
ki18n
|
||||
kirigami2
|
||||
kunitconversion
|
||||
qtfeedback
|
||||
qtquickcontrols2
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Calculator built with kirigami";
|
||||
mainProgram = "kalk";
|
||||
homepage = "https://invent.kde.org/plasma-mobile/kalk";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
ki18n,
|
||||
kio,
|
||||
openbabel,
|
||||
qtscript,
|
||||
kparts,
|
||||
kplotting,
|
||||
kunitconversion,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kalzium";
|
||||
meta = with lib; {
|
||||
homepage = "https://edu.kde.org/kalzium/";
|
||||
description = "Program that shows you the Periodic Table of Elements";
|
||||
mainProgram = "kalzium";
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
];
|
||||
buildInputs = [
|
||||
qtscript
|
||||
#avogadro
|
||||
kdoctools
|
||||
ki18n
|
||||
kio
|
||||
openbabel
|
||||
kparts
|
||||
kplotting
|
||||
kunitconversion
|
||||
];
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
wrapQtAppsHook,
|
||||
qtdeclarative,
|
||||
qtgraphicaleffects,
|
||||
qtquickcontrols2,
|
||||
kirigami2,
|
||||
kpurpose,
|
||||
gst_all_1,
|
||||
pcre,
|
||||
}:
|
||||
|
||||
let
|
||||
gst = with gst_all_1; [
|
||||
gstreamer
|
||||
gst-libav
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
];
|
||||
|
||||
in
|
||||
mkDerivation {
|
||||
pname = "kamoso";
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
wrapQtAppsHook
|
||||
];
|
||||
buildInputs = [ pcre ] ++ gst;
|
||||
propagatedBuildInputs = [
|
||||
qtdeclarative
|
||||
qtgraphicaleffects
|
||||
qtquickcontrols2
|
||||
kirigami2
|
||||
kpurpose
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DOpenGL_GL_PREFERENCE=GLVND"
|
||||
"-DGSTREAMER_VIDEO_INCLUDE_DIR=${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--prefix GST_PLUGIN_PATH : ${lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" gst}"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://apps.kde.org/kamoso/";
|
||||
description = "Simple and friendly program to use your camera";
|
||||
mainProgram = "kamoso";
|
||||
license = with lib.licenses; [
|
||||
lgpl21Only
|
||||
gpl3Only
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
ki18n,
|
||||
kio,
|
||||
libkdegames,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kapman";
|
||||
meta = with lib; {
|
||||
homepage = "https://kde.org/applications/en/games/org.kde.kapman";
|
||||
description = "Clone of the well known game Pac-Man";
|
||||
mainProgram = "kapman";
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
];
|
||||
buildInputs = [
|
||||
libkdegames
|
||||
kdoctools
|
||||
ki18n
|
||||
kio
|
||||
];
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
qtbase,
|
||||
kactivities,
|
||||
}:
|
||||
mkDerivation {
|
||||
|
||||
pname = "kapptemplate";
|
||||
|
||||
nativeBuildInputs = [
|
||||
extra-cmake-modules
|
||||
cmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kactivities
|
||||
qtbase
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "KDE App Code Template Generator";
|
||||
mainProgram = "kapptemplate";
|
||||
license = licenses.gpl2;
|
||||
homepage = "https://kde.org/applications/en/development/org.kde.kapptemplate";
|
||||
maintainers = [ maintainers.shamilton ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
wrapGAppsHook3,
|
||||
|
||||
gst_all_1,
|
||||
kconfig,
|
||||
kcoreaddons,
|
||||
ki18n,
|
||||
kirigami-addons,
|
||||
kirigami2,
|
||||
networkmanager-qt,
|
||||
qtkeychain,
|
||||
qtmultimedia,
|
||||
qtquickcontrols2,
|
||||
syndication,
|
||||
taglib,
|
||||
threadweaver,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (gst_all_1)
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
;
|
||||
in
|
||||
mkDerivation {
|
||||
pname = "kasts";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gst-plugins-bad
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gstreamer
|
||||
|
||||
kconfig
|
||||
kcoreaddons
|
||||
ki18n
|
||||
kirigami-addons
|
||||
kirigami2
|
||||
networkmanager-qt
|
||||
qtkeychain
|
||||
qtmultimedia
|
||||
qtquickcontrols2
|
||||
syndication
|
||||
taglib
|
||||
threadweaver
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
dontWrapGApps = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Mobile podcast application";
|
||||
mainProgram = "kasts";
|
||||
homepage = "https://apps.kde.org/kasts/";
|
||||
# https://invent.kde.org/plasma-mobile/kasts/-/tree/master/LICENSES
|
||||
license = with licenses; [
|
||||
bsd2
|
||||
cc-by-sa-40
|
||||
cc0
|
||||
gpl2Only
|
||||
gpl2Plus
|
||||
gpl3Only
|
||||
gpl3Plus
|
||||
lgpl3Plus
|
||||
];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user