pantheon: init a 5.0

gstqt5
worldofpeace 2018-08-20 16:31:18 -04:00
parent 2530372351
commit 78da8d668b
129 changed files with 5013 additions and 91 deletions

View File

@ -241,6 +241,8 @@
./services/desktops/bamf.nix
./services/desktops/dleyna-renderer.nix
./services/desktops/dleyna-server.nix
./services/desktops/pantheon/contractor.nix
./services/desktops/pantheon/files.nix
./services/desktops/flatpak.nix
./services/desktops/geoclue2.nix
./services/desktops/gsignond.nix
@ -266,6 +268,7 @@
./services/desktops/gnome3/tracker-miners.nix
./services/desktops/profile-sync-daemon.nix
./services/desktops/telepathy.nix
./services/desktops/tumbler.nix
./services/desktops/zeitgeist.nix
./services/development/bloop.nix
./services/development/hoogle.nix

View File

@ -0,0 +1,39 @@
# Contractor
{ config, pkgs, lib, ... }:
with lib;
{
###### interface
options = {
services.pantheon.contractor = {
enable = mkEnableOption "contractor, a desktop-wide extension service used by pantheon";
};
};
###### implementation
config = mkIf config.services.pantheon.contractor.enable {
environment.systemPackages = with pkgs.pantheon; [
contractor
extra-elementary-contracts
];
services.dbus.packages = [ pkgs.pantheon.contractor ];
environment.pathsToLink = [
"/share/contractor"
];
};
}

View File

@ -0,0 +1,36 @@
# pantheon files daemon.
{ config, pkgs, lib, ... }:
with lib;
{
###### interface
options = {
services.pantheon.files = {
enable = mkEnableOption "pantheon files daemon";
};
};
###### implementation
config = mkIf config.services.pantheon.files.enable {
environment.systemPackages = [
pkgs.pantheon.elementary-files
];
services.dbus.packages = [
pkgs.pantheon.elementary-files
];
};
}

View File

@ -0,0 +1,50 @@
# Tumbler
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.tumbler;
tumbler = cfg.package;
in
{
###### interface
options = {
services.tumbler = {
enable = mkEnableOption "Tumbler, A D-Bus thumbnailer service";
package = mkOption {
type = types.package;
default = pkgs.xfce4-13.tumbler;
description = "Which tumbler package to use";
example = pkgs.xfce4-12.tumbler;
};
};
};
###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [
tumbler
];
services.dbus.packages = [
tumbler
];
};
}

View File

@ -20,7 +20,7 @@ in
imports = [
./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix
./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix
./mate.nix
./mate.nix ./pantheon.nix
];
options = {

View File

@ -0,0 +1,195 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.desktopManager.pantheon;
nixos-gsettings-desktop-schemas = pkgs.pantheon.elementary-gsettings-schemas.override {
extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages;
extraGSettingsOverrides = cfg.extraGSettingsOverrides;
};
in
{
options = {
services.xserver.desktopManager.pantheon = {
enable = mkOption {
type = types.bool;
default = false;
description = "Enable the pantheon desktop manager";
};
sessionPath = mkOption {
default = [];
example = literalExample "[ pkgs.gnome3.gpaste ]";
description = ''
Additional list of packages to be added to the session search path.
Useful for GSettings-conditional autostart.
Note that this should be a last resort; patching the package is preferred (see GPaste).
'';
apply = list: list ++
[
pkgs.pantheon.pantheon-agent-geoclue2
];
};
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.";
};
debug = mkEnableOption "gnome-session debug messages";
};
environment.pantheon.excludePackages = mkOption {
default = [];
example = literalExample "[ pkgs.pantheon.elementary-camera ]";
type = types.listOf types.package;
description = "Which packages pantheon should exclude from the default environment";
};
};
config = mkIf cfg.enable {
services.xserver.displayManager.extraSessionFilePackages = [ pkgs.pantheon.elementary-session-settings ];
# Ensure lightdm is used when Pantheon is enabled
# Without it screen locking will be nonfunctional because of the use of lightlocker
services.xserver.displayManager.lightdm.enable = mkDefault true;
services.xserver.displayManager.lightdm.greeters.pantheon.enable = mkDefault true;
# If not set manually Pantheon session cannot be started
# Known issue of https://github.com/NixOS/nixpkgs/pull/43992
services.xserver.desktopManager.default = mkForce "pantheon";
services.xserver.displayManager.sessionCommands = ''
if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then
${concatMapStrings (p: ''
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
fi
if [ -d "${p}/lib/girepository-1.0" ]; then
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
fi
'') cfg.sessionPath}
# Makes qt applications look less alien
export QT_QPA_PLATFORMTHEME=gtk3
export QT_STYLE_OVERRIDE=adwaita
fi
'';
hardware.bluetooth.enable = mkDefault true;
hardware.pulseaudio.enable = mkDefault true;
security.polkit.enable = true;
services.accounts-daemon.enable = true;
services.bamf.enable = true;
services.colord.enable = mkDefault true;
services.pantheon.files.enable = mkDefault true;
services.tumbler.enable = mkDefault true;
services.dbus.packages = mkMerge [
([ pkgs.pantheon.switchboard-plug-power ])
(mkIf config.services.printing.enable ([pkgs.system-config-printer]) )
];
services.pantheon.contractor.enable = true;
services.geoclue2.enable = mkDefault true;
# pantheon has pantheon-agent-geoclue2
services.geoclue2.enableDemoAgent = false;
services.gnome3.at-spi2-core.enable = true;
services.gnome3.evolution-data-server.enable = true;
# TODO: gnome-keyring's xdg autostarts will still be in the environment (from elementary-session-settings) if disabled forcefully
services.gnome3.gnome-keyring.enable = true;
services.gnome3.gvfs.enable = true;
services.gnome3.rygel.enable = true;
services.gsignond.enable = true;
services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ];
services.udev.packages = [ pkgs.pantheon.elementary-settings-daemon ];
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true;
services.zeitgeist.enable = true;
networking.networkmanager.enable = mkDefault true;
networking.networkmanager.basePackages =
{ inherit (pkgs) networkmanager modemmanager wpa_supplicant;
inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc
networkmanager-openconnect networkmanager-fortisslvpn
networkmanager-iodine networkmanager-l2tp; };
# Override GSettings schemas
environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1";
environment.variables.GIO_EXTRA_MODULES = [
"${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules"
"${pkgs.gnome3.glib-networking.out}/lib/gio/modules"
"${pkgs.gnome3.gvfs}/lib/gio/modules"
];
environment.pathsToLink = [
# FIXME: modules should link subdirs of `/share` rather than relying on this
"/share"
];
environment.systemPackages = pkgs.pantheon.artwork ++ pkgs.pantheon.desktop ++ pkgs.pantheon.services ++ cfg.sessionPath
++ (pkgs.gnome3.removePackagesByName pkgs.pantheon.apps config.environment.pantheon.excludePackages)
++ (with pkgs.gnome3;
[
adwaita-icon-theme
dconf
epiphany
evince
file-roller
geary
gnome-bluetooth
gnome-font-viewer
gnome-power-manager
])
++ (with pkgs;
[
adwaita-qt
desktop-file-utils
glib
glib-networking
gnome-menus
gtk3.out
hicolor-icon-theme
lightlocker
plank
qgnomeplatform
shared-mime-info
sound-theme-freedesktop
xdg-user-dirs
]);
fonts.fonts = with pkgs; [
opensans-ttf
roboto-mono
];
fonts.fontconfig.defaultFonts = {
monospace = [ "Roboto Mono" ];
sansSerif = [ "Open Sans" ];
};
};
}

View File

@ -0,0 +1,47 @@
{ config, lib, pkgs, ... }:
with lib;
let
dmcfg = config.services.xserver.displayManager;
ldmcfg = dmcfg.lightdm;
cfg = ldmcfg.greeters.pantheon;
xgreeters = pkgs.linkFarm "pantheon-greeter-xgreeters" [{
path = "${pkgs.pantheon.elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop";
name = "io.elementary.greeter.desktop";
}];
in
{
options = {
services.xserver.displayManager.lightdm.greeters.pantheon = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable elementary-greeter as the lightdm greeter.
'';
};
};
};
config = mkIf (ldmcfg.enable && cfg.enable) {
services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
services.xserver.displayManager.lightdm.greeter = mkDefault {
package = xgreeters;
name = "io.elementary.greeter";
};
environment.etc."lightdm/io.elementary.greeter.conf".source = "${pkgs.pantheon.elementary-greeter}/etc/lightdm/io.elementary.greeter.conf";
environment.etc."wingpanel.d/io.elementary.greeter.whitelist".source = "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.whitelist";
};
}

View File

@ -81,6 +81,7 @@ in
./lightdm-greeters/gtk.nix
./lightdm-greeters/mini.nix
./lightdm-greeters/enso-os.nix
./lightdm-greeters/pantheon.nix
];
options = {

View File

@ -68,6 +68,7 @@ in rec {
(all nixos.tests.firefox)
(all nixos.tests.firewall)
(except ["aarch64-linux"] nixos.tests.gnome3)
(except ["aarch64-linux"] nixos.tests.pantheon)
nixos.tests.installer.zfsroot.x86_64-linux or [] # ZFS is 64bit only
(except ["aarch64-linux"] nixos.tests.installer.lvm)
(except ["aarch64-linux"] nixos.tests.installer.luksroot)

55
nixos/tests/pantheon.nix Normal file
View File

@ -0,0 +1,55 @@
import ./make-test.nix ({ pkgs, ...} :
{
name = "pantheon";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ worldofpeace ];
};
machine = { ... }:
{
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.desktopManager.pantheon.enable = true;
virtualisation.memorySize = 1024;
};
enableOCR = true;
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
in ''
startAll;
# Wait for display manager to start
$machine->waitForText(qr/${user.description}/);
$machine->screenshot("lightdm");
# Log in
$machine->sendChars("${user.password}\n");
$machine->waitForFile("/home/alice/.Xauthority");
$machine->succeed("xauth merge ~alice/.Xauthority");
# Check if "pantheon-shell" components actually start
$machine->waitUntilSucceeds("pgrep gala");
$machine->waitForWindow(qr/gala/);
$machine->waitUntilSucceeds("pgrep wingpanel");
$machine->waitForWindow("wingpanel");
$machine->waitUntilSucceeds("pgrep plank");
$machine->waitForWindow(qr/plank/);
# Check that logging in has given the user ownership of devices.
$machine->succeed("getfacl /dev/snd/timer | grep -q alice");
# Open elementary terminal
$machine->execute("su - alice -c 'DISPLAY=:0.0 io.elementary.terminal &'");
$machine->waitForWindow(qr/io.elementary.terminal/);
# Take a screenshot of the desktop
$machine->sleep(20);
$machine->screenshot("screen");
'';
})

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, vala_0_40, gtk3, libxml2, granite, webkitgtk, clutter-gtk
{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, pantheon, gtk3, libxml2, webkitgtk, clutter-gtk
, clutter-gst, libunity, libnotify, sqlite, gst_all_1, libsoup, json-glib, gnome3, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
@ -20,16 +20,16 @@ stdenv.mkDerivation rec {
libxml2
ninja
pkgconfig
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
pantheon.vala
wrapGAppsHook
];
buildInputs = with gst_all_1; [
clutter-gst
clutter-gtk
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
pantheon.elementary-icon-theme
gnome3.libgee
granite
pantheon.granite
gst-plugins-base
gst-plugins-good
gstreamer

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3
, granite, gtk3, desktop-file-utils, gnome3, gtksourceview, webkitgtk, gtkspell3
, discount, gobject-introspection, wrapGAppsHook }:
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, meson, ninja, python3
, gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon
, gnome3, discount, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "quilter";
@ -22,15 +22,15 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
python3
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
pantheon.vala
wrapGAppsHook
];
buildInputs = [
discount
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
pantheon.elementary-icon-theme
pantheon.granite
gnome3.libgee
granite
gtk3
gtksourceview
gtkspell3

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, vala_0_40, pkgconfig, meson, ninja, python3, granite
, gtk3, gnome3, gtksourceview, json-glib, gobject-introspection, wrapGAppsHook }:
{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, pantheon
, gtk3, gtksourceview, json-glib, gnome3, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "notejot";
@ -20,14 +20,14 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
python3
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
pantheon.vala
wrapGAppsHook
];
buildInputs = [
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
pantheon.elementary-icon-theme
pantheon.granite
gnome3.libgee
granite
gtk3
gtksourceview
json-glib

View File

@ -4,14 +4,13 @@
, libxml2
, pkgconfig
, glib
, granite
, gtk3
, gnome3
, meson
, ninja
, gobject-introspection
, gsettings-desktop-schemas
, vala_0_40
, pantheon
, wrapGAppsHook }:
stdenv.mkDerivation rec {
@ -26,22 +25,23 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
pkgconfig
meson
ninja
pantheon.vala
gettext
gobject-introspection
libxml2
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
meson
ninja
pkgconfig
wrapGAppsHook
];
buildInputs = [
pantheon.elementary-icon-theme
pantheon.granite
glib
granite
gtk3
gnome3.defaultIconTheme
gnome3.libgee
gsettings-desktop-schemas
gtk3
];
postInstall = ''

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub
, meson, ninja, pkgconfig, vala, gobject-introspection, gettext, wrapGAppsHook, python3, desktop-file-utils
, gtk3, glib, granite, libgee, libgda, gtksourceview, libxml2, libsecret, libfixposix, libssh2 }:
, meson, ninja, pkgconfig, pantheon, gobject-introspection, gettext, wrapGAppsHook, python3, desktop-file-utils
, gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libfixposix, libssh2 }:
let
@ -20,9 +20,9 @@ in stdenv.mkDerivation rec {
sha256 = "0sxmky27pl0aqnh857xb54rnfg1kbr2smdzyrzw67cbv00f6d30p";
};
nativeBuildInputs = [ meson ninja pkgconfig vala gobject-introspection gettext wrapGAppsHook python3 desktop-file-utils ];
nativeBuildInputs = [ meson ninja pkgconfig pantheon.vala gobject-introspection gettext wrapGAppsHook python3 desktop-file-utils ];
buildInputs = [ gtk3 glib granite libgee sqlGda gtksourceview libxml2 libsecret libfixposix libssh2 ];
buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libfixposix libssh2 ];
postPatch = ''
chmod +x build-aux/meson_post_install.py

View File

@ -1,8 +1,7 @@
{ stdenv, fetchFromGitHub
, meson, ninja, pkgconfig, python3
, gnome3, vala_0_40, gobject-introspection, wrapGAppsHook
, gtk3, granite
, json-glib, glib, glib-networking, hicolor-icon-theme
, gnome3, pantheon, gobject-introspection, wrapGAppsHook
, gtk3, json-glib, glib, glib-networking, hicolor-icon-theme
}:
let
@ -24,11 +23,11 @@ in stdenv.mkDerivation rec {
ninja
pkgconfig
python3
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
pantheon.vala
wrapGAppsHook
];
buildInputs = [
gtk3 granite json-glib glib glib-networking hicolor-icon-theme
gtk3 pantheon.granite json-glib glib glib-networking hicolor-icon-theme
gnome3.libgee gnome3.libsoup gnome3.gsettings-desktop-schemas
];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, granite
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3
, gtk3, gnome3, libsoup, libsecret, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
@ -15,18 +15,18 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
pantheon.vala
gobject-introspection
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
pantheon.granite
gnome3.libgee
granite
gtk3
libsecret
libsoup

View File

@ -3,9 +3,9 @@
, meson
, ninja
, pkgconfig
, granite
, vala_0_40
, gtk3
, python3
, pantheon
, gnome3
, libxml2
, gettext
@ -31,24 +31,22 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [
appstream-glib
desktop-file-utils
pantheon.vala
gettext
gobject-introspection # For setup hook
libxml2
meson
ninja
pkgconfig
vala_0_40
python3
wrapGAppsHook
];
buildInputs = with gnome3; [
defaultIconTheme # If I omit this there's no icons in KDE
glib
granite
gsettings-desktop-schemas
buildInputs = [
pantheon.elementary-icon-theme
gnome3.libgee
pantheon.granite
gtk3
libgee
magic-wormhole
];
@ -59,8 +57,8 @@ in stdenv.mkDerivation rec {
'';
postPatch = ''
chmod +x ./meson/post_install.py
patchShebangs ./meson/post_install.py
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, granite, gtk3
{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3
, gnome3, json-glib, libsoup, clutter, clutter-gtk, libchamplain, webkitgtk
, libappindicator, desktop-file-utils, appstream, gobject-introspection, wrapGAppsHook }:

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3, granite, gtk3
{ stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, ninja, python3, gtk3
, gnome3, desktop-file-utils, json-glib, libsoup, poppler, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
@ -21,14 +21,14 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
python3
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
pantheon.vala
wrapGAppsHook
];
buildInputs = [
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
pantheon.elementary-icon-theme
gnome3.libgee
granite
pantheon.granite
gtk3
json-glib
libsoup

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, granite, gnome3
{ stdenv, fetchFromGitHub, fetchpatch, pantheon, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk
, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }:
stdenv.mkDerivation rec {
@ -20,17 +20,17 @@ stdenv.mkDerivation rec {
ninja
pkgconfig
python3
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
pantheon.vala
wrapGAppsHook
];
buildInputs = with gnome3; [
buildInputs = [
pantheon.elementary-icon-theme
pantheon.granite
glib
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
granite
gnome3.libgee
gtk3
html2text
libgee
poppler
python2
sqlite

View File

@ -4,7 +4,6 @@
, libxml2
, pkgconfig
, gtk3
, granite
, gnome3
, gobject-introspection
, json-glib
@ -13,7 +12,7 @@
, libgudev
, libevdev
, libsoup
, vala_0_40
, pantheon
, wrapGAppsHook }:
stdenv.mkDerivation rec {
@ -30,19 +29,19 @@ stdenv.mkDerivation rec {
USER = "nix-build-user";
nativeBuildInputs = [
pkgconfig
wrapGAppsHook
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
cmake
ninja
gettext
libxml2
gobject-introspection # For setup hook
libxml2
ninja
pkgconfig
pantheon.vala
wrapGAppsHook
];
buildInputs = [
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
pantheon.elementary-icon-theme
pantheon.granite
gnome3.libgee
granite
gtk3
json-glib
libevdev

View File

@ -1,12 +1,10 @@
{ stdenv
, fetchFromGitHub
, fetchpatch
, pkgconfig
, gtk3
, granite
, pantheon
, gnome3
, cmake
, vala_0_40
, libqalculate
, gobject-introspection
, wrapGAppsHook }:
@ -28,19 +26,19 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [
cmake
pantheon.vala
gobject-introspection # for setup-hook
pkgconfig
wrapGAppsHook
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
cmake
gobject-introspection # for setup-hook
];
buildInputs = [
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
pantheon.elementary-icon-theme
gnome3.gtksourceview
gnome3.libgee
gnome3.libsoup
granite
pantheon.granite
gtk3
libqalculate
];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, elementary-icon-theme }:
{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon }:
stdenv.mkDerivation rec {
name = "${package-name}-${version}";
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n";
};
nativeBuildInputs = [ meson ninja python3 gtk3 elementary-icon-theme ];
nativeBuildInputs = [ meson ninja python3 gtk3 pantheon.elementary-icon-theme ];
postPatch = ''
patchShebangs meson/post_install.py

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, vala, gnome3,
bamf, clutter-gtk, granite, libcanberra-gtk3, libwnck3,
bamf, clutter-gtk, pantheon, libcanberra-gtk3, libwnck3,
deepin-mutter, deepin-wallpapers, deepin-desktop-schemas,
hicolor-icon-theme, deepin }:
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
gnome3.libgee
bamf
clutter-gtk
granite
pantheon.granite
libcanberra-gtk3
libwnck3
deepin-mutter

View File

@ -0,0 +1,58 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig
, meson, ninja, vala, desktop-file-utils, libxml2
, gtk3, python3, granite, libgee, gobject-introspection
, elementary-icon-theme, appstream, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "calculator";
version = "1.5.1";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0vc27kjmfkly2jkqjiyzlybxyjqhwal3xrxca5b4abfgb379yswa";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
appstream
desktop-file-utils
gobject-introspection
libxml2
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
elementary-icon-theme
granite
gtk3
libgee
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
homepage = https://github.com/elementary/calculator;
description = "Calculator app designed for elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,66 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
, ninja, vala, desktop-file-utils, gtk3, granite, libgee
, geoclue2, libchamplain, clutter, folks, geocode-glib, python3
, libnotify, libical, evolution-data-server, appstream-glib
, elementary-icon-theme, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "calendar";
version = "4.2.3";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "100wy8lkp4nrxj57ywyx44ckm3k7n8h5l6av92hr5pyx8fxn9m48";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
gobject-introspection
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
clutter
elementary-icon-theme
evolution-data-server
folks
geoclue2
geocode-glib
granite
gtk3
libchamplain
libgee
libical
libnotify
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Desktop calendar app designed for elementary OS";
homepage = https://github.com/elementary/calendar;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,64 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
, desktop-file-utils, python3, gettext, libxml2, gtk3, granite, libgee, gst_all_1
, libcanberra, clutter-gtk, clutter-gst, elementary-icon-theme, appstream, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "camera";
version = "1.0.3";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "05rjymflhwbkw8yc57rgi9n7lrhf4dpvfvlifdnazyqn9iiaxc46";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
appstream
desktop-file-utils
gettext
libxml2
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
clutter-gst
clutter-gtk
elementary-icon-theme
granite
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
gtk3
libcanberra
libgee
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Camera app designed for elementary OS";
homepage = https://github.com/elementary/camera;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,80 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, substituteAll
, python3, glibcLocales, desktop-file-utils, gtk3, granite, libgee, elementary-icon-theme
, appstream, libpeas, editorconfig-core-c, gtksourceview3, gtkspell3, libsoup
, vte, webkitgtk, zeitgeist, ctags, libgit2-glib, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "code";
version = "3.0.2";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0zmm4a7galrs9phiplf6cygwq3rplghv7r8g47mi4nlndgxqyssg";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
appstream
desktop-file-utils
glibcLocales
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
ctags
elementary-icon-theme
editorconfig-core-c
granite
gtk3
gtksourceview3
gtkspell3
libgee
libgit2-glib
libpeas
libsoup
vte
webkitgtk
zeitgeist
];
# See: https://github.com/elementary/code/pull/626
LIBRARY_PATH = stdenv.lib.makeLibraryPath [ editorconfig-core-c ];
# install script fails with UnicodeDecodeError because of printing a fancy elipsis character
LC_ALL = "en_US.UTF-8";
# ctags needed in path by outline plugin
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${stdenv.lib.makeBinPath [ ctags ]}"
)
'';
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Code editor designed for elementary OS";
homepage = https://github.com/elementary/code;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,77 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, gettext, vala
, python3, desktop-file-utils, intltool, libcanberra, gtk3, libgee, granite
, libnotify, libunity, pango, plank, bamf, sqlite, libdbusmenu-gtk3, zeitgeist
, glib-networking, elementary-icon-theme, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "files";
version = "4.1.3";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0vz6m6kqm9r1scj1jdljbzh019skj8fhf916011wkdfzdpc1zlac";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
desktop-file-utils
gettext
glib-networking
gobject-introspection
intltool
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
bamf
elementary-icon-theme
granite
gtk3
libcanberra
libdbusmenu-gtk3
libgee
libnotify
libunity
pango
plank
sqlite
zeitgeist
];
patches = [ ./hardcode-gsettings.patch ];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
substituteInPlace filechooser-module/FileChooserDialog.vala --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas
'';
# xdg.mime will create this
postInstall = ''
rm $out/share/applications/mimeinfo.cache
'';
meta = with stdenv.lib; {
description = "File browser designed for elementary OS";
homepage = https://github.com/elementary/files;
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,22 @@
diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
index cb7c3c49..8b1899d1 100644
--- a/filechooser-module/FileChooserDialog.vala
+++ b/filechooser-module/FileChooserDialog.vala
@@ -57,10 +57,15 @@ public class CustomFileChooserDialog : Object {
chooser_dialog.deletable = false;
chooser_dialog.local_only = false;
- var settings = new Settings ("io.elementary.files.preferences");
+ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
+ SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
+ SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
+
+ var settings = new Settings.full (preferences_schema, null, null);
+
is_single_click = settings.get_boolean ("single-click");
- var chooser_settings = new Settings ("io.elementary.files.file-chooser");
+ var chooser_settings = new Settings.full (chooser_schema, null, null);
assign_container_box ();
remove_gtk_widgets ();

View File

@ -0,0 +1,78 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
, ninja, vala, desktop-file-utils, libxml2, gtk3, granite
, python3, libgee, clutter-gtk, json-glib, libgda, libgpod
, libnotify, libpeas, libsoup, zeitgeist, gst_all_1, taglib
, libdbusmenu, libsignon-glib, libaccounts-glib
, elementary-icon-theme, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "music";
version = "5.0.2";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "06mpikzdm01r9j7g15b7fgi4lcnp8cc0wmj17dfli5nmncxghx89";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = with gst_all_1; [
clutter-gtk
elementary-icon-theme
granite
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
gtk3
json-glib
libaccounts-glib
libdbusmenu
libgda
libgee
libgpod
libsignon-glib
libnotify
libpeas
libsoup
taglib
zeitgeist
];
mesonFlags = [
"-Dplugins=lastfm,audioplayer,cdrom,ipod"
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Music player and library designed for elementary OS";
homepage = https://github.com/elementary/music;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,80 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, desktop-file-utils
, gtk3, glib, libaccounts-glib, libexif, libgee, geocode-glib, gexiv2,libgphoto2
, granite, gst_all_1, libgudev, json-glib, libraw, librest, libsoup, sqlite
, scour, webkitgtk, libwebp, appstream, libunity, wrapGAppsHook, gobject-introspection, elementary-icon-theme }:
stdenv.mkDerivation rec {
pname = "photos";
version = "2.6.1";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "063h6jr0p8v46w8bppsss1zlphx21xqwylh57qbyd5xi71z4gl1v";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
appstream
desktop-file-utils
gobject-introspection
meson
ninja
pkgconfig
vala
wrapGAppsHook
];
buildInputs = with gst_all_1; [
elementary-icon-theme
geocode-glib
gexiv2
granite
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
gtk3
json-glib
libaccounts-glib
libexif
libgee
libgphoto2
libgudev
libraw
libsoup
libunity
libwebp
librest
scour
sqlite
webkitgtk
];
mesonFlags = [
"-Dplugins=false"
];
# This should be provided by a post_install.py script - See -> https://github.com/elementary/photos/pull/433
postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
'';
meta = with stdenv.lib; {
description = "Photo viewer and organizer designed for elementary OS";
homepage = https://github.com/elementary/photos;
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,67 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, callPackage
, ninja, vala, python3, desktop-file-utils, gtk3, granite, libgee
, libcanberra, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
let
redacted-script = callPackage ./redacted-script.nix {};
in
stdenv.mkDerivation rec {
pname = "screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93
version = "1.6.0";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = "screenshot";
rev = version;
sha256 = "0hxgh7br12kw8bs2cdm2q9ivhnj2zb0i7fs43pkgf3z0fidjf1yv";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = "screenshot";
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
desktop-file-utils
gobject-introspection
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
elementary-icon-theme
granite
gtk3
libcanberra
libgee
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
postInstall = ''
mkdir -p $out/share/fonts/truetype
cp -rva ${redacted-script}/share/fonts/truetype/redacted-elementary $out/share/fonts/truetype
'';
meta = with stdenv.lib; {
description = "Screenshot tool designed for elementary OS";
homepage = https://github.com/elementary/screenshot;
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,28 @@
{ stdenv, fetchFromGitHub, pantheon }:
stdenv.mkDerivation rec {
name = "elementary-redacted-script-${version}";
version = "5.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "fonts";
rev = version;
sha256 = "16x2w7w29k4jx2nwc5932h9rqvb216vxsziazisv2rpll74kn8b2";
};
dontConfigure = true;
installPhase = ''
mkdir -p $out/share/fonts/truetype/redacted-elementary
cp -a redacted/*.ttf $out/share/fonts/truetype/redacted-elementary
'';
meta = with stdenv.lib; {
description = "Redacted Script Font for elementary";
homepage = https://github.com/elementary/fonts;
license = licenses.ofl;
maintainers = pantheon.maintainers;
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,66 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3
, vala, desktop-file-utils, gtk3, libxml2, granite, libnotify, vte, libgee
, elementary-icon-theme, appstream, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "terminal";
version = "5.3.3";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1rhqfq5dn913g551ribycid4k8add2lanxkkqpv6zzdgvah26ni8";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
appstream
desktop-file-utils
gobject-introspection
libxml2
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
elementary-icon-theme
granite
gtk3
libgee
libnotify
vte
];
# See https://github.com/elementary/terminal/commit/914d4b0e2d0a137f12276d748ae07072b95eff80
mesonFlags = [ "-Dubuntu-bionic-patched-vte=false" ];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Terminal emulator designed for elementary OS";
longDescription = ''
A super lightweight, beautiful, and simple terminal. Comes with sane defaults, browser-class tabs, sudo paste protection,
smart copy/paste, and little to no configuration.
'';
homepage = https://github.com/elementary/terminal;
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,64 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, python3
, desktop-file-utils, gtk3, granite, libgee, clutter-gst, clutter-gtk, gst_all_1
, gobject-introspection, elementary-icon-theme, wrapGAppsHook, gst-ffmpeg }:
stdenv.mkDerivation rec {
pname = "videos";
version = "2.6.3";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1ncm8kh6dcy83p8pmpilnk03b4dx3b1jm8w13izq2dkglfgdwvqx";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
desktop-file-utils
gobject-introspection
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = with gst_all_1; [
clutter-gst
clutter-gtk
elementary-icon-theme
granite
gst-ffmpeg
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
gtk3
libgee
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Video player and library app designed for elementary OS";
homepage = https://github.com/elementary/videos;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,45 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-a11y";
version = "2.1.3";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1wh46lrsliii5bbvfc4xnzgnii2v7sqxnbn43ylmyqppfv9mk1wd";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Universal Access Plug";
homepage = https://github.com/elementary/switchboard-plug-a11y;
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,54 @@
{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, switchboard, pciutils, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-about";
version = "2.5.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "11diwz2aj45yqkxdija8ny0sgm0wl2905gl3799cdl12ss9ffndp";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
patches = [
(substituteAll {
src = ./lspci-path.patch;
inherit pciutils;
})
./remove-update-button.patch
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard About Plug";
homepage = https://github.com/elementary/witchboard-plug-about;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,13 @@
diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala
index a3e449c..a95fe93 100644
--- a/src/Views/HardwareView.vala
+++ b/src/Views/HardwareView.vala
@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid {
// Graphics
try {
- Process.spawn_command_line_sync ("lspci", out graphics);
+ Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics);
if ("VGA" in graphics) { //VGA-keyword indicates graphics-line
string[] lines = graphics.split("\n");

View File

@ -0,0 +1,55 @@
diff --git a/src/Plug.vala b/src/Plug.vala
index 76fca34..3e79c1f 100644
--- a/src/Plug.vala
+++ b/src/Plug.vala
@@ -65,7 +65,6 @@ public class About.Plug : Switchboard.Plug {
search_results.set ("%s → %s".printf (display_name, _("Restore Default Settings")), "");
search_results.set ("%s → %s".printf (display_name, _("Suggest Translation")), "");
search_results.set ("%s → %s".printf (display_name, _("Report Problems")), "");
- search_results.set ("%s → %s".printf (display_name, _("Updates")), "");
return search_results;
}
@@ -161,7 +160,7 @@ public class About.Plug : Switchboard.Plug {
var kernel_version_label = new Gtk.Label (kernel_version);
kernel_version_label.set_selectable (true);
- var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version));
+ var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version));
gtk_version_label.set_selectable (true);
var website_label = new Gtk.LinkButton.with_label (website_url, _("Website"));
@@ -202,16 +201,6 @@ public class About.Plug : Switchboard.Plug {
issue_dialog.run ();
});
- // Update button
- var update_button = new Gtk.Button.with_label (_("Check for Updates"));
- update_button.clicked.connect (() => {
- try {
- Process.spawn_command_line_async ("io.elementary.appcenter --show-updates");
- } catch (Error e) {
- warning (e.message);
- }
- });
-
// Restore settings button
var settings_restore_button = new Gtk.Button.with_label (_("Restore Default Settings"));
settings_restore_button.clicked.connect (settings_restore_clicked);
@@ -224,7 +213,6 @@ public class About.Plug : Switchboard.Plug {
button_grid.add (settings_restore_button);
button_grid.add (translate_button);
button_grid.add (bug_button);
- button_grid.add (update_button);
button_grid.set_child_non_homogeneous (help_button, true);
var software_grid = new Gtk.Grid ();
@@ -238,7 +226,7 @@ public class About.Plug : Switchboard.Plug {
software_grid.attach (based_off, 0, 2, 2, 1);
}
- software_grid.attach (kernel_version_label, 0, 3, 2, 1);
+ software_grid.attach (kernel_version_label, 0, 3, 2, 1);
software_grid.attach (gtk_version_label, 0, 4, 2, 1);
software_grid.attach (website_label, 0, 5, 2, 1);

View File

@ -0,0 +1,45 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-applications";
version = "2.1.4";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1gi8jwjh9ga7h92ffl43r0rnlnl5649pqzpk7q1ffhhyqzwh8l63";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Applications Plug";
homepage = https://github.com/elementary/switchboard-plug-applications;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,47 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, libgee
, granite, gtk3, bluez, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-bluetooth";
version = "2.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1aynzns0xw629drv9qvci37ba0fzyd5x9y8kwjqr527rnk0qiyca";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
bluez
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Bluetooth Plug";
homepage = https://github.com/elementary/switchboard-plug-bluetooth;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,12 @@
diff --git a/src/DateTime1.vala b/src/DateTime1.vala
index 5a80fbd..2e1f948 100644
--- a/src/DateTime1.vala
+++ b/src/DateTime1.vala
@@ -38,6 +38,6 @@ public class DateTime.Settings : Granite.Services.Settings {
public string clock_format { get; set; }
public Settings () {
- base ("io.elementary.desktop.wingpanel.datetime");
+ base ("io.elementary.granite");
}
}

View File

@ -0,0 +1,55 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, substituteAll, pkgconfig
, vala, libgee, granite, gtk3, libxml2, switchboard, tzdata, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-datetime";
version = "2.1.5";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1iz8skf5dw76a07ljc8v8lw2x2nrmq8j6sggm227cmxy60gadsdv";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
libxml2
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
patches = [
(substituteAll {
src = ./timezone.patch;
tzdata = "${tzdata}/share/zoneinfo/zone.tab";
})
# Use "clock-format" GSettings key that's been moved to granite
./clock-format.patch
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Date & Time Plug";
homepage = https://github.com/elementary/switchboard-plug-datetime;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,13 @@
diff --git a/src/Parser.vala b/src/Parser.vala
index faccb64..432a362 100644
--- a/src/Parser.vala
+++ b/src/Parser.vala
@@ -28,7 +28,7 @@ public class DateTime.Parser : GLib.Object {
return parser;
}
private Parser () {
- var file = File.new_for_path ("/usr/share/zoneinfo/zone.tab");
+ var file = File.new_for_path ("@tzdata@");
if (!file.query_exists ()) {
critical ("/usr/share/zoneinfo/zone.tab doesn't exist !");
return;

View File

@ -0,0 +1,45 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-display";
version = "2.1.6";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0pw21bnc79shiynmg7h9bs1x1v011lh07ypn22j73yhmxp6wiypd";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Displays Plug";
homepage = https://github.com/elementary/switchboard-plug-display;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,57 @@
{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig, vala, libgee
, granite, gtk3, libxml2, libgnomekbd, libxklavier, xorg, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-keyboard";
version = "2.3.4";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1997hnhlcp2jmf3z70na42vl1b7i5vxhp7k5ga5sl68dv0g4126y";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
libxml2
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
libgnomekbd
libxklavier
switchboard
];
patches = [
(substituteAll {
src = ./xkb.patch;
config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml";
})
];
LIBRARY_PATH = stdenv.lib.makeLibraryPath [ libgnomekbd ];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Keyboard Plug";
homepage = https://github.com/elementary/switchboard-plug-keyboard;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,22 @@
diff --git a/src/Layout/Handler.vala b/src/Layout/Handler.vala
index 297314b..b36509a 100644
--- a/src/Layout/Handler.vala
+++ b/src/Layout/Handler.vala
@@ -29,7 +29,7 @@ public class Pantheon.Keyboard.LayoutPage.LayoutHandler : GLib.Object {
}
private void parse_layouts () {
- Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml");
+ Xml.Doc* doc = Xml.Parser.parse_file ("@config@");
if (doc == null) {
critical ("'evdev.xml' not found or permissions missing\n");
return;
@@ -76,7 +76,7 @@ public class Pantheon.Keyboard.LayoutPage.LayoutHandler : GLib.Object {
public HashTable<string, string> get_variants_for_language (string language) {
var returned_table = new HashTable<string, string> (str_hash, str_equal);
returned_table.set ("", _("Default"));
- Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml");
+ Xml.Doc* doc = Xml.Parser.parse_file ("@config@");
if (doc == null) {
critical ("'evdev.xml' not found or permissions incorrect\n");
return returned_table;

View File

@ -0,0 +1,45 @@
{ stdenv, fetchFromGitHub, pantheon, fetchpatch, meson, ninja
, pkgconfig, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-mouse-touchpad";
version = "2.1.4";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1zh5472ab01bckrc1py5bqqsal9i9pbgx6i8ap2d4yzhc8sirjrf";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Mouse & Touchpad Plug";
homepage = https://github.com/elementary/switchboard-plug-mouse-touchpad;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,55 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, substituteAll, vala
, libgee, granite, gtk3, networkmanager, networkmanagerapplet, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-network";
version = "2.1.4";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "12lvcc15jngzsa40fjhxa6kccs58h5qq4lqrc7lcx5przmfaik8k";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
networkmanager
networkmanagerapplet
switchboard
];
patches = [
(substituteAll {
src = ./nma.patch;
networkmanagerapplet = "${networkmanagerapplet}";
})
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Networking Plug";
homepage = https://github.com/elementary/switchboard-plug-network;
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,43 @@
diff --git a/src/Widgets/SettingsButton.vala b/src/Widgets/SettingsButton.vala
index 19fd514..bc800d9 100644
--- a/src/Widgets/SettingsButton.vala
+++ b/src/Widgets/SettingsButton.vala
@@ -23,7 +23,7 @@
label = _("Edit Connections…");
clicked.connect (() => {
try {
- var appinfo = AppInfo.create_from_commandline ("nm-connection-editor", null, AppInfoCreateFlags.NONE);
+ var appinfo = AppInfo.create_from_commandline ("@networkmanagerapplet@/bin/nm-connection-editor", null, AppInfoCreateFlags.NONE);
appinfo.launch (null, null);
} catch (Error e) {
warning ("%s", e.message);
@@ -61,13 +61,13 @@
label = title;
clicked.connect (() => {
edit_connection_uuid (connection.get_uuid ());
- });
+ });
}
private void edit_connection_uuid (string uuid) {
try {
var appinfo = AppInfo.create_from_commandline (
- "nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE
+ "@networkmanagerapplet@/bin/nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE
);
appinfo.launch (null, null);
diff --git a/src/Widgets/VPN/VPNPage.vala b/src/Widgets/VPN/VPNPage.vala
index 23c3ae9..c71984c 100644
--- a/src/Widgets/VPN/VPNPage.vala
+++ b/src/Widgets/VPN/VPNPage.vala
@@ -86,8 +86,7 @@ namespace Network {
add_button.tooltip_text = _("Add VPN Connection…");
add_button.clicked.connect (() => {
add_button.sensitive = false;
- var command = new Granite.Services.SimpleCommand ("/usr/bin",
- "nm-connection-editor --create --type=vpn");
+ var command = new Granite.Services.SimpleCommand ("@networkmanagerapplet@", "bin/nm-connection-editor --create --type=vpn");
command.done.connect ((exit) => {
if (exit != 0) {
var dialog = new Gtk.MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, "%s", _("Failed to run Connection Editor."));

View File

@ -0,0 +1,45 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-notifications";
version = "2.1.5";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0p0aj3bbjrh6x8wajqqb5yqm2iqfnj7kp16zf4hdr4siw0sx5p8n";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Notifications Plug";
homepage = https://github.com/elementary/switchboard-plug-notifications;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,56 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala
, libgee, granite, gtk3, libaccounts-glib, libsignon-glib, json-glib
, librest, webkitgtk, libsoup, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-onlineaccounts";
version = "2.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "03h8ii8zz59fpp4fwlvyx3m3550096fn7a6w612b1rbj3dqhlmh9";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
json-glib
libaccounts-glib
libgee
libsignon-glib
libsoup
librest
switchboard
webkitgtk
];
PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers";
PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services";
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Online Accounts Plug";
homepage = https://github.com/elementary/switchboard-plug-onlineaccounts;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,26 @@
diff --git a/set-wallpaper-contract/set-wallpaper.vala b/set-wallpaper-contract/set-wallpaper.vala
index 3e02089..7ce7041 100644
--- a/set-wallpaper-contract/set-wallpaper.vala
+++ b/set-wallpaper-contract/set-wallpaper.vala
@@ -38,7 +38,7 @@ namespace SetWallpaperContractor {
</transition>
""";
- const string SYSTEM_BACKGROUNDS_PATH = "/usr/share/backgrounds";
+ const string SYSTEM_BACKGROUNDS_PATH = "/run/current-system/sw/share/backgrounds";
private int delay_value = 60;
diff --git a/src/Views/Wallpaper.vala b/src/Views/Wallpaper.vala
index 4be14fa..aa8832f 100644
--- a/src/Views/Wallpaper.vala
+++ b/src/Views/Wallpaper.vala
@@ -38,7 +38,7 @@ public class Wallpaper : Gtk.Grid {
FileAttribute.THUMBNAIL_IS_VALID
};
- const string SYSTEM_BACKGROUNDS_PATH = "/usr/share/backgrounds";
+ const string SYSTEM_BACKGROUNDS_PATH = "/run/current-system/sw/share/backgrounds";
public Switchboard.Plug plug { get; construct set; }
private GLib.Settings settings;

View File

@ -0,0 +1,63 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala
, libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop
, gala, wingpanel, plank, switchboard, gettext, gobject-introspection, bamf }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-pantheon-shell";
version = "2.8.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0yy821hl26jfd9hyigqi7nmaf30iww0lhg9qzcwlfzsvvfwnxagi";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gettext
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
bamf
gexiv2
gnome-desktop
elementary-settings-daemon
granite
gtk3
libgee
plank
switchboard
];
patches = [
./backgrounds.patch # Having https://github.com/elementary/switchboard-plug-pantheon-shell/issues/166 would make this patch uneeded
./hardcode-gsettings.patch
];
postPatch = ''
substituteInPlace src/Views/Appearance.vala --subst-var-by GALA_GSETTINGS_PATH ${gala}/share/gsettings-schemas/${gala.name}/glib-2.0/schemas
substituteInPlace src/Views/Appearance.vala --subst-var-by WINGPANEL_GSETTINGS_PATH ${wingpanel}/share/gsettings-schemas/${wingpanel.name}/glib-2.0/schemas
'';
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Desktop Plug";
homepage = https://github.com/elementary/switchboard-plug-pantheon-shell;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,23 @@
diff --git a/src/Views/Appearance.vala b/src/Views/Appearance.vala
index 721d458..17e1c58 100644
--- a/src/Views/Appearance.vala
+++ b/src/Views/Appearance.vala
@@ -66,10 +66,16 @@ public class Appearance : Gtk.Grid {
attach (text_size_label, 0, 2);
attach (text_size_modebutton, 1, 2);
- var animations_settings = new Settings (ANIMATIONS_SCHEMA);
+ SettingsSchemaSource gala_schema_source = new SettingsSchemaSource.from_directory ("@GALA_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
+ SettingsSchema animations_schema = gala_schema_source.lookup (ANIMATIONS_SCHEMA, false);
+
+ var animations_settings = new Settings.full (animations_schema, null, null);
animations_settings.bind (ANIMATIONS_KEY, animations_switch, "active", SettingsBindFlags.DEFAULT);
- var panel_settings = new Settings (PANEL_SCHEMA);
+ SettingsSchemaSource panel_schema_source = new SettingsSchemaSource.from_directory ("@WINGPANEL_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
+ SettingsSchema panel_schema = panel_schema_source.lookup (PANEL_SCHEMA, false);
+
+ var panel_settings = new Settings.full (panel_schema, null, null);
panel_settings.bind (TRANSLUCENCY_KEY, translucency_switch, "active", SettingsBindFlags.DEFAULT);
var interface_settings = new Settings (INTERFACE_SCHEMA);

View File

@ -0,0 +1,64 @@
{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja
, pkgconfig, vala, libgee, elementary-dpms-helper, elementary-settings-daemon
, makeWrapper, granite, gtk3, dbus, polkit, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-power";
version = "2.3.4";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0kfnnghyzvy368sh39j4jdl7cnz2yc239hp00054lc4rjs8m61nv";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
dbus
granite
gtk3
libgee
polkit
switchboard
];
patches = [
(substituteAll {
src = ./dpms-helper-exec.patch;
elementary_dpms_helper = "${elementary-dpms-helper}";
})
./hardcode-gsettings.patch
];
postPatch = ''
substituteInPlace src/MainView.vala --subst-var-by DPMS_HELPER_GSETTINGS_PATH ${elementary-dpms-helper}/share/gsettings-schemas/${elementary-dpms-helper.name}/glib-2.0/schemas
substituteInPlace src/MainView.vala --subst-var-by GSD_GSETTINGS_PATH ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas
'';
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "share/dbus-1/system-services";
PKG_CONFIG_DBUS_1_SYSCONFDIR = "etc";
PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "share/polkit-1/actions";
meta = with stdenv.lib; {
description = "Switchboard Power Plug";
homepage = https://github.com/elementary/switchboard-plug-power;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,13 @@
diff --git a/src/MainView.vala b/src/MainView.vala
index 1654e68..175f220 100644
--- a/src/MainView.vala
+++ b/src/MainView.vala
@@ -317,7 +317,7 @@ public class Power.MainView : Gtk.Grid {
private static void run_dpms_helper () {
try {
- string[] argv = { "io.elementary.dpms-helper" };
+ string[] argv = { "@elementary_dpms_helper@/bin/io.elementary.dpms-helper" };
Process.spawn_async (null, argv, Environ.get (),
SpawnFlags.SEARCH_PATH | SpawnFlags.STDERR_TO_DEV_NULL | SpawnFlags.STDOUT_TO_DEV_NULL,
null, null);

View File

@ -0,0 +1,20 @@
diff --git a/src/MainView.vala b/src/MainView.vala
index 1654e68..ad8fed9 100644
--- a/src/MainView.vala
+++ b/src/MainView.vala
@@ -46,8 +46,13 @@ public class Power.MainView : Gtk.Grid {
var label_size = new Gtk.SizeGroup (Gtk.SizeGroupMode.HORIZONTAL);
- settings = new GLib.Settings ("org.gnome.settings-daemon.plugins.power");
- elementary_dpms_settings = new GLib.Settings ("io.elementary.dpms");
+ SettingsSchemaSource gsd_sss = new SettingsSchemaSource.from_directory ("@GSD_GSETTINGS_PATH@", null, true);
+ SettingsSchema gsd_schema = gsd_sss.lookup ("org.gnome.settings-daemon.plugins.power", false);
+ settings = new GLib.Settings.full (gsd_schema, null, null);
+
+ SettingsSchemaSource dpms_sss = new SettingsSchemaSource.from_directory ("@DPMS_HELPER_GSETTINGS_PATH@", null, true);
+ SettingsSchema elementary_dpms_schema = dpms_sss.lookup ("io.elementary.dpms", false);
+ elementary_dpms_settings = new GLib.Settings.full (elementary_dpms_schema, null, null);
battery = new Battery ();
power_supply = new PowerSupply ();

View File

@ -0,0 +1,47 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, cups, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-printers";
version = "2.1.6";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "05pkf3whh51gd9d0h2h4clgf7r3mvzl4ybas7834vhy19dzcbzmc";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
cups
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Printers Plug";
homepage = https://github.com/elementary/switchboard-plug-printers;
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,62 @@
{ stdenv, fetchFromGitHub, pantheon, meson, python3, ninja
, pkgconfig, vala, libgee, granite, gtk3, polkit, zeitgeist
, switchboard, lightlocker, pantheon-agent-geoclue2, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-security-privacy";
version = "2.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0f1idh36hlgmdva5jn0xnj2b6gbic0asnj3b7j283gyziibm3pxa";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
python3
vala
];
buildInputs = [
granite
gtk3
libgee
polkit
switchboard
zeitgeist
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
patches = [
./hardcode-gsettings.patch
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
substituteInPlace src/Views/LockPanel.vala --subst-var-by LIGHTLOCKER_GSETTINGS_PATH ${lightlocker}/share/gsettings-schemas/${lightlocker.name}/glib-2.0/schemas
substituteInPlace src/Views/FirewallPanel.vala --subst-var-by SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas
'';
meta = with stdenv.lib; {
description = "Switchboard Security & Privacy Plug";
homepage = https://github.com/elementary/switchboard-plug-security-privacy;
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,36 @@
diff --git a/src/Views/FirewallPanel.vala b/src/Views/FirewallPanel.vala
index 994c4d1..5702de2 100644
--- a/src/Views/FirewallPanel.vala
+++ b/src/Views/FirewallPanel.vala
@@ -49,10 +49,13 @@ public class SecurityPrivacy.FirewallPanel : Granite.SimpleSettingsPage {
}
construct {
- settings = new Settings ("io.elementary.switchboard.security-privacy");
+ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
+ SettingsSchema security_privacy_schema = sss.lookup ("io.elementary.switchboard.security-privacy", false);
+ settings = new Settings.full (security_privacy_schema, null, null);
+
disabled_rules = new Gee.HashMap<string, UFWHelpers.Rule> ();
load_disabled_rules ();
-
+
status_switch.notify["active"].connect (() => {
if (loading == false) {
view.sensitive = status_switch.active;
diff --git a/src/Views/LockPanel.vala b/src/Views/LockPanel.vala
index 081cf10..42f6118 100644
--- a/src/Views/LockPanel.vala
+++ b/src/Views/LockPanel.vala
@@ -30,7 +30,10 @@ public class SecurityPrivacy.LockPanel : Granite.SimpleSettingsPage {
}
construct {
- locker = new Settings ("apps.light-locker");
+ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@LIGHTLOCKER_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
+ SettingsSchema locker_schema = sss.lookup ("apps.light-locker", false);
+
+ locker = new Settings.full (locker_schema, null, null);
var lock_suspend_label = new Gtk.Label (_("Lock on sleep:"));
var lock_suspend_switch = new Gtk.Switch ();

View File

@ -0,0 +1,45 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-sharing";
version = "2.1.3";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1yi6aga9i18wwn22zwmfbhsk16f92fka837is5r8xghqb7a50hyh";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Sharing Plug";
homepage = https://github.com/elementary/switchboard-plug-sharing;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,49 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
, vala, libgee, granite, gtk3, pulseaudio, libcanberra, libcanberra-gtk3
, switchboard, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-sound";
version = "2.1.3";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0dvxmjziifffa2rm7h43ca5grhlcpih3rgik50mz808mqfxr4l1q";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
vala
];
buildInputs = [
granite
gtk3
libcanberra
libcanberra-gtk3
libgee
pulseaudio
switchboard
];
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Sound Plug";
homepage = https://github.com/elementary/switchboard-plug-sound;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,56 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja
, vala, gtk3, libgee, granite, gettext, clutter-gtk, libunity
, elementary-icon-theme, wrapGAppsHook, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard";
version = "2.3.6";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0lsrn636b0f9a58jbid6mlhgrf8ajnh7phwmhgxz55sz7k7qa58g";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
};
};
nativeBuildInputs = [
gettext
gobject-introspection
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
clutter-gtk
elementary-icon-theme
granite
gtk3
libgee
libunity
];
patches = [ ./plugs-path-env.patch ];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Extensible System Settings app for Pantheon";
homepage = https://github.com/elementary/switchboard;
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,25 @@
diff --git a/lib/PlugsManager.vala b/lib/PlugsManager.vala
index 75d0eaf..c227908 100644
--- a/lib/PlugsManager.vala
+++ b/lib/PlugsManager.vala
@@ -34,10 +34,18 @@ public class Switchboard.PlugsManager : GLib.Object {
private Gee.LinkedList<Switchboard.Plug> plugs;
public signal void plug_added (Switchboard.Plug plug);
-
+
private PlugsManager () {
plugs = new Gee.LinkedList<Switchboard.Plug> ();
- var base_folder = File.new_for_path (Build.PLUGS_DIR);
+
+ var plugs_path = Environment.get_variable("SWITCHBOARD_PLUGS_PATH");
+ if (plugs_path != null) {
+ debug ("SWITCHBOARD_PLUGS_PATH set to %s", plugs_path);
+ } else {
+ critical ("SWITCHBOARD_PLUGS_PATH not set");
+ }
+
+ var base_folder = File.new_for_path (plugs_path);
find_plugins (base_folder);
}

View File

@ -0,0 +1,19 @@
{ stdenv, makeWrapper, symlinkJoin, switchboard, switchboardPlugs, plugs }:
let
selectedPlugs = if plugs == null then switchboardPlugs else plugs;
in
symlinkJoin {
name = "${switchboard.name}-with-plugs";
paths = [ switchboard ] ++ selectedPlugs;
buildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram $out/bin/io.elementary.switchboard \
--set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard"
'';
inherit (switchboard) meta;
}

View File

@ -0,0 +1,35 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja }:
stdenv.mkDerivation rec {
pname = "stylesheet";
version = "5.2.1";
name = "elementary-gtk-theme-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "03l8m87f7z25svxk0hhcqnn4qnnqvasr5qwzq3s87lx25gwjml29";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-gtk-theme";
};
};
nativeBuildInputs = [
meson
ninja
];
meta = with stdenv.lib; {
description = "GTK theme designed to be smooth, attractive, fast, and usable";
homepage = https://github.com/elementary/stylesheet;
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,55 @@
{ stdenv, fetchFromGitHub, pantheon, meson, python3,ninja, hicolor-icon-theme, gtk3 }:
stdenv.mkDerivation rec {
pname = "icons";
version = "5.0.2";
name = "elementary-icon-theme-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "12j582f0kggv2lp935r75xg7q26zpl0f05s11xcs4qxazhj1ly2r";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-icon-theme";
};
};
nativeBuildInputs = [
meson
ninja
python3
];
buildInputs = [ gtk3 ];
propagatedBuildInputs = [ hicolor-icon-theme ];
mesonFlags = [
"-Dvolume_icons=false" # Tries to install some icons to /
"-Dpalettes=false" # Don't install gimp and inkscape palette files
];
postPatch = ''
chmod +x meson/symlink.py
patchShebangs meson/symlink.py
'';
postFixup = "gtk-update-icon-cache $out/share/icons/elementary";
meta = with stdenv.lib; {
description = "Named, vector icons for elementary OS";
longDescription = ''
An original set of vector icons designed specifically for elementary OS and its desktop environment: Pantheon.
'';
homepage = https://github.com/elementary/icons;
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,36 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig }:
stdenv.mkDerivation rec {
pname = "sound-theme";
version = "1.0";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
meson
ninja
pkgconfig
];
meta = with stdenv.lib; {
description = "A set of system sounds for elementary";
homepage = https://github.com/elementary/sound-theme;
license = licenses.unlicense;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,38 @@
{ stdenv, fetchFromGitHub, pantheon }:
stdenv.mkDerivation rec {
pname = "wallpapers";
version = "5.3";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1i0zf9gzhwm8hgq5cp1xnxipqjvgzd9wfiicz612hgp6ivc0z0ag";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
dontBuild = true;
installPhase = ''
mkdir -p $out/share/backgrounds/elementary
cp -av *.jpg $out/share/backgrounds/elementary
'';
meta = with stdenv.lib; {
description = "Collection of wallpapers for elementary";
homepage = https://github.com/elementary/wallpapers;
license = licenses.publicDomain;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,222 @@
{ pkgs, lib, gnome3 }:
lib.makeScope pkgs.newScope (self: with self; {
apps = [
elementary-calculator elementary-calendar
elementary-camera elementary-code elementary-files
elementary-music elementary-photos elementary-screenshot-tool
elementary-terminal elementary-videos switchboard-with-plugs
];
artwork = [
elementary-gtk-theme
elementary-icon-theme
elementary-sound-theme
elementary-wallpapers
];
desktop = [
elementary-session-settings
elementary-shortcut-overlay
gala
wingpanel-with-indicators
];
services = [
cerbere
elementary-capnet-assist
elementary-settings-daemon
elementary-dpms-helper
pantheon-agent-geoclue2
pantheon-agent-polkit
];
switchboardPlugs = [
switchboard-plug-a11y switchboard-plug-about
switchboard-plug-applications switchboard-plug-bluetooth
switchboard-plug-datetime switchboard-plug-display
switchboard-plug-keyboard switchboard-plug-mouse-touchpad
switchboard-plug-network switchboard-plug-notifications
switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell
switchboard-plug-power switchboard-plug-printers
switchboard-plug-security-privacy switchboard-plug-sharing
switchboard-plug-sound
];
wingpanelIndicators = [
wingpanel-applications-menu wingpanel-indicator-bluetooth
wingpanel-indicator-datetime wingpanel-indicator-keyboard
wingpanel-indicator-network wingpanel-indicator-nightlight
wingpanel-indicator-notifications wingpanel-indicator-power
wingpanel-indicator-session wingpanel-indicator-sound
];
updateScript = callPackage ./update.nix { };
maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ];
mutter = pkgs.gnome3.mutter328;
vala = pkgs.vala_0_40;
elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
#### APPS
elementary-calculator = callPackage ./apps/elementary-calculator { };
elementary-calendar = callPackage ./apps/elementary-calendar { };
elementary-camera = callPackage ./apps/elementary-camera { };
elementary-code = callPackage ./apps/elementary-code { };
elementary-files = callPackage ./apps/elementary-files { };
elementary-music = callPackage ./apps/elementary-music { };
elementary-photos = callPackage ./apps/elementary-photos { };
elementary-screenshot-tool = callPackage ./apps/elementary-screenshot-tool { };
elementary-terminal = callPackage ./apps/elementary-terminal { };
elementary-videos = callPackage ./apps/elementary-videos { };
#### DESKTOP
elementary-default-settings = callPackage ./desktop/elementary-default-settings { };
elementary-greeter = callPackage ./desktop/elementary-greeter {
inherit (gnome3) gnome-desktop;
};
elementary-print-shim = callPackage ./desktop/elementary-print-shim { };
elementary-session-settings = callPackage ./desktop/elementary-session-settings {
inherit (gnome3) gnome-session gnome-keyring;
};
elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };
extra-elementary-contracts = callPackage ./desktop/extra-elementary-contracts {
inherit (gnome3) file-roller gnome-bluetooth;
};
gala = callPackage ./desktop/gala {
inherit (gnome3) gnome-desktop;
};
wingpanel = callPackage ./desktop/wingpanel { };
wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix {
indicators = null;
};
#### LIBRARIES
granite = callPackage ./granite { };
#### SERVICES
cerbere = callPackage ./services/cerbere { };
contractor = callPackage ./services/contractor { };
elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { };
elementary-dpms-helper = callPackage ./services/elementary-dpms-helper { };
# We're using ubuntu and elementary's patchset due to reasons
# explained here -> https://github.com/elementary/greeter/issues/92#issuecomment-376215614
# Take note of "I am holding off on "fixing" this bug for as long as possible."
elementary-settings-daemon = callPackage ./services/elementary-settings-daemon {
inherit (gnome3) libgweather;
};
pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { };
pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { };
#### WINGPANEL INDICATORS
wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
wingpanel-indicator-bluetooth = callPackage ./desktop/wingpanel-indicators/bluetooth { };
wingpanel-indicator-datetime = callPackage ./desktop/wingpanel-indicators/datetime { };
wingpanel-indicator-keyboard = callPackage ./desktop/wingpanel-indicators/keyboard { };
wingpanel-indicator-network = callPackage ./desktop/wingpanel-indicators/network {
inherit (gnome3) networkmanagerapplet;
};
wingpanel-indicator-nightlight = callPackage ./desktop/wingpanel-indicators/nightlight { };
wingpanel-indicator-notifications = callPackage ./desktop/wingpanel-indicators/notifications { };
wingpanel-indicator-power = callPackage ./desktop/wingpanel-indicators/power { };
wingpanel-indicator-session = callPackage ./desktop/wingpanel-indicators/session { };
wingpanel-indicator-sound = callPackage ./desktop/wingpanel-indicators/sound { };
#### SWITCHBOARD
switchboard = callPackage ./apps/switchboard { };
switchboard-with-plugs = callPackage ./apps/switchboard/wrapper.nix {
plugs = null;
};
switchboard-plug-a11y = callPackage ./apps/switchboard-plugs/a11y { };
switchboard-plug-about = callPackage ./apps/switchboard-plugs/about { };
switchboard-plug-applications = callPackage ./apps/switchboard-plugs/applications { };
switchboard-plug-bluetooth = callPackage ./apps/switchboard-plugs/bluetooth { };
switchboard-plug-datetime = callPackage ./apps/switchboard-plugs/datetime { };
switchboard-plug-display = callPackage ./apps/switchboard-plugs/display { };
switchboard-plug-keyboard = callPackage ./apps/switchboard-plugs/keyboard { };
switchboard-plug-mouse-touchpad = callPackage ./apps/switchboard-plugs/mouse-touchpad { };
switchboard-plug-network = callPackage ./apps/switchboard-plugs/network {
inherit (gnome3) networkmanagerapplet;
};
switchboard-plug-notifications = callPackage ./apps/switchboard-plugs/notifications { };
switchboard-plug-onlineaccounts = callPackage ./apps/switchboard-plugs/onlineaccounts { };
switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell {
inherit (gnome3) gnome-desktop;
};
switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { };
switchboard-plug-printers = callPackage ./apps/switchboard-plugs/printers { };
switchboard-plug-security-privacy = callPackage ./apps/switchboard-plugs/security-privacy { };
switchboard-plug-sharing = callPackage ./apps/switchboard-plugs/sharing { };
switchboard-plug-sound = callPackage ./apps/switchboard-plugs/sound { };
### ARTWORK
elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { };
elementary-icon-theme = callPackage ./artwork/elementary-icon-theme { };
elementary-sound-theme = callPackage ./artwork/elementary-sound-theme { };
elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
})

View File

@ -0,0 +1,25 @@
diff --git a/debian/elementary-default-settings.gsettings-override b/debian/elementary-default-settings.gsettings-override
index 6452c30..899972d 100644
--- a/debian/elementary-default-settings.gsettings-override
+++ b/debian/elementary-default-settings.gsettings-override
@@ -1,5 +1,5 @@
[net.launchpad.plank.dock.settings]
-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
hide-delay=250
hide-mode='window-dodge'
show-dock-item=false
@@ -8,13 +8,6 @@ theme='Gtk+'
[org.freedesktop.ibus.general.hotkey]
triggers=['<Control>space']
-[org.gnome.desktop.background]
-draw-background=true
-picture-options='zoom'
-picture-uri='file:///usr/share/backgrounds/elementaryos-default'
-primary-color='#000000'
-show-desktop-icons=false
-
[org.gnome.desktop.datetime]
automatic-timezone=true

View File

@ -0,0 +1,60 @@
{ stdenv, fetchFromGitHub, fetchpatch, pantheon }:
stdenv.mkDerivation rec {
pname = "default-settings";
version = "5.0";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0gyv835qbr90001gda2pzngzzbbk5jf9grgfl25pqkm29s45rqq0";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
patches = [
# See: https://github.com/elementary/default-settings/pull/86 (didn't make 5.0 release)
(fetchpatch {
url = "https://github.com/elementary/default-settings/commit/05d0b2a4e98c28203521d599b40745b46be549fa.patch";
sha256 = "1wk1qva3yzc28gljnkx9hb3pwhqnfrsb08wd76lsl3xnylg0wn2l";
})
# See: https://github.com/elementary/default-settings/pull/94 (didn't make 5.0 release)
(fetchpatch {
url = "https://github.com/elementary/default-settings/commit/a2ca00130c16e805179fb5abd7b624a873dff2da.patch";
sha256 = "1jp1c5d8jfm0404zsylfk7h9vj81s409wgbzbsd2kxmz65icq16x";
})
./correct-override.patch
];
dontBuild = true;
installPhase = ''
mkdir -p $out/etc/gtk-3.0
cp -av settings.ini $out/etc/gtk-3.0
mkdir -p $out/share/glib-2.0/schemas
cp -av debian/elementary-default-settings.gsettings-override $out/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override
mkdir $out/etc/wingpanel.d
cp -avr ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
mkdir -p $out/share/elementary/config/plank/dock1
cp -avr ${./launchers} $out/share/elementary/config/plank/dock1/launchers
'';
meta = with stdenv.lib; {
description = "Default settings and configuration files for elementary";
homepage = https://github.com/elementary/default-settings;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,6 @@
liba11y.so
libbluetooth.so
libkeyboard.so
libnetwork.so
libpower.so
libsession.so

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/gala-multitaskingview.desktop

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.calendar.desktop

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.music.desktop

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.photos.desktop

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.switchboard.desktop

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.videos.desktop

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/org.gnome.Epiphany.desktop

View File

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/org.gnome.Geary.desktop

View File

@ -0,0 +1,25 @@
From 2384bee55a46eac44eb9d329be4c2a097e053ae1 Mon Sep 17 00:00:00 2001
From: worldofpeace <worldofpeace@users.noreply.github.com>
Date: Tue, 17 Jul 2018 07:04:18 -0400
Subject: [PATCH 1/1] 'sysconfdir' will be etc not /etc for install
---
data/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/meson.build b/data/meson.build
index 7621b03..7c08eaf 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -20,7 +20,7 @@ i18n.merge_file (
install_data(
meson.project_name() + '.conf',
- install_dir: join_paths(get_option('sysconfdir'), 'lightdm')
+ install_dir: join_paths(get_option('prefix'), 'etc', 'lightdm')
)
install_data(
--
2.17.1

View File

@ -0,0 +1,103 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, substituteAll, makeWrapper, meson
, ninja, vala, desktop-file-utils, gtk3, granite, libgee, elementary-settings-daemon
, gnome-desktop, mutter, gobject-introspection, elementary-icon-theme, wingpanel-with-indicators
, elementary-gtk-theme, nixos-artwork, elementary-default-settings, lightdm, numlockx
, clutter-gtk, libGL, dbus, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "greeter";
version = "3.3.1";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1vkq4z0hrmvzv4sh2qkxjajdxcycd1zj97a3pc8n4yb858pqfyzc";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
desktop-file-utils
gobject-introspection
meson
ninja
pkgconfig
vala
wrapGAppsHook
];
buildInputs = [
clutter-gtk
elementary-icon-theme
elementary-gtk-theme
elementary-settings-daemon
gnome-desktop
granite
gtk3
libgee
libGL
lightdm
mutter
wingpanel-with-indicators
];
patches = [
(substituteAll {
src = ./gsd.patch;
elementary-settings-daemon = "${elementary-settings-daemon}/libexec";
})
(substituteAll {
src = ./numlockx.patch;
inherit numlockx;
})
./01-sysconfdir-install.patch
];
mesonFlags = [
# A hook does this but after wrapGAppsHook so the files never get wrapped.
"--sbindir=${placeholder "out"}/bin"
# baked into the program for discovery of the greeter configuration
"--sysconfdir=/etc"
];
preFixup = ''
gappsWrapperArgs+=(
# GTK+ reads default settings (such as icons and themes) from elementary's settings.ini here
--prefix XDG_CONFIG_DIRS : "${elementary-default-settings}/etc"
# dbus-launch needed in path
--prefix PATH : "${dbus}/bin"
# for `wingpanel -g`
--prefix PATH : "${wingpanel-with-indicators}/bin"
# TODO: they should be using meson for this
# See: https://github.com/elementary/greeter/blob/19c0730fded4e9ddec5a491f0e78f83c7c04eb59/src/PantheonGreeter.vala#L451
--prefix PATH : "$out/bin"
)
'';
postFixup = ''
substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \
--replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter"
substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \
--replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
'';
meta = with stdenv.lib; {
description = "LightDM Greeter for Pantheon";
homepage = https://github.com/elementary/greeter;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,13 @@
diff --git a/src/meson.build b/src/meson.build
index 2450c1a..a908d11 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,7 +1,7 @@
conf_data = configuration_data()
conf_data.set('CONF_DIR', join_paths(get_option('sysconfdir'), 'lightdm'))
conf_data.set('GETTEXT_PACKAGE', meson.project_name())
-conf_data.set('GSD_DIR', '/usr/lib/gnome-settings-daemon/')
+conf_data.set('GSD_DIR', '@elementary-settings-daemon@')
conf_data.set('VERSION', meson.project_version())
config_header = configure_file (
input: 'config.vala.in',

View File

@ -0,0 +1,13 @@
diff --git a/src/PantheonGreeter.vala b/src/PantheonGreeter.vala
index 11aa4c0..ae7bf7e 100644
--- a/src/PantheonGreeter.vala
+++ b/src/PantheonGreeter.vala
@@ -163,7 +163,7 @@ public class PantheonGreeter : Gtk.Window {
warning (e.message);
}
if (activate_numlock) {
- Granite.Services.System.execute_command ("/usr/bin/numlockx on");
+ Granite.Services.System.execute_command ("@numlockx@/bin/numlockx on");
}
var screensaver_timeout = 60;

View File

@ -0,0 +1,44 @@
{ stdenv, runCommand, gnome3, elementary-default-settings, nixos-artwork, glib, gala, epiphany, elementary-settings-daemon, gtk3, plank
, extraGSettingsOverrides ? ""
, extraGSettingsOverridePackages ? []
}:
let
gsettingsOverridePackages = [
gala
epiphany
elementary-settings-daemon
gnome3.mutter
gtk3
plank
] ++ extraGSettingsOverridePackages;
in
with stdenv.lib;
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
runCommand "elementary-gsettings-desktop-schemas" {}
''
mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
cp -rf ${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/gsettings-desktop-schemas*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
${concatMapStrings (pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n") gsettingsOverridePackages}
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
cp ${elementary-default-settings}/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override \
$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
[org.gnome.desktop.background]
draw-background=true
picture-options='zoom'
picture-uri='${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png'
primary-color='#000000'
${extraGSettingsOverrides}
EOF
${glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
''

View File

@ -0,0 +1,39 @@
{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, gtk3 }:
stdenv.mkDerivation rec {
pname = "print";
version = "0.1.3";
name = "elementary-print-shim-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1w3cfap7j42x14mqpfqdm46hk5xc0v5kv8r6wxcnknr3sfxi8qlp";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}-shim";
};
};
nativeBuildInputs = [
meson
ninja
pkgconfig
vala
];
buildInputs = [ gtk3 ];
meta = with stdenv.lib; {
description = "Simple shim for printing support via Contractor";
homepage = https://github.com/elementary/print;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Name=Instantiate Default elementary dockitems
Exec=@script@
StartupNotify=false
NoDisplay=true
OnlyShowIn=Pantheon;
X-GNOME-Autostart-Phase=EarlyInitialization

View File

@ -0,0 +1,107 @@
{ stdenv, fetchFromGitHub, substituteAll, writeScript, pantheon, gnome-keyring, gnome-session, wingpanel, orca, at-spi2-core, elementary-default-settings, writeTextFile, writeShellScriptBin, elementary-settings-daemon }:
let
#
# ─── ENSURES PLANK GETS ELEMENTARY'S DEFAULT DOCKITEMS ────────────────────────────
#
#
# Upstream relies on /etc/skel to initiate a new users home directory with planks dockitems.
#
# That is not possible within nixos, but we can achieve this easily with a simple script that copies
# them. We then use a xdg autostart and initalize it during the "EarlyInitialization" phase of a gnome session
# which is most appropriate for installing files into $HOME.
#
dockitems-script = writeScript "dockitems-script" ''
#!${stdenv.shell}
elementary_default_settings="${elementary-default-settings}"
dock_items="$elementary_default_settings/share/elementary/config/plank/dock1/launchers"/*
if [ ! -d "$HOME/.config/plank/dock1" ]; then
echo "Instantiating default Plank Dockitems..."
mkdir -p $HOME/.config/plank/dock1/launchers
cp -r --no-preserve=mode,ownership $dock_items $HOME/.config/plank/dock1/launchers/
else
echo "Plank Dockitems already instantiated"
fi
'';
dockitemAutostart = substituteAll {
src = ./default-elementary-dockitems.desktop;
script = "${dockitems-script}";
};
executable = writeShellScriptBin "pantheon" ''
export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:$XDG_CONFIG_DIRS
export XDG_DATA_DIRS=${placeholder "out"}/share:$XDG_DATA_DIRS
exec ${gnome-session}/bin/gnome-session --session=pantheon "$@"
'';
in
stdenv.mkDerivation rec {
pname = "session-settings";
version = "5.0.3";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
dontBuild = true;
installPhase = ''
mkdir -p $out/share
cp -avr applications $out/share/
mkdir -p $out/etc/xdg/autostart
cp -av ${gnome-keyring}/etc/xdg/autostart/* $out/etc/xdg/autostart
cp -av ${orca}/etc/xdg/autostart/* $out/etc/xdg/autostart
cp -av ${at-spi2-core}/etc/xdg/autostart/* $out/etc/xdg/autostart
cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
mkdir -p $out/share/gnome-session/sessions
cp -av gnome-session/pantheon.session $out/share/gnome-session/sessions
mkdir -p $out/share/xsessions
cp -av xsessions/pantheon.desktop $out/share/xsessions
'';
postFixup = ''
substituteInPlace $out/share/xsessions/pantheon.desktop \
--replace "gnome-session --session=pantheon" "${executable}/bin/pantheon" \
--replace "wingpanel" "${wingpanel}/bin/wingpanel"
for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done
for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart)
do
echo "Patching OnlyShowIn to Pantheon in: $autostart"
sed -i "s,OnlyShowIn=GNOME;,OnlyShowIn=Pantheon;," $autostart
done
'';
meta = with stdenv.lib; {
description = "Session settings for elementary";
homepage = https://github.com/elementary/session-settings;
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,50 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, libxml2, desktop-file-utils
, gtk3, glib, granite, libgee, elementary-icon-theme, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "shortcut-overlay";
version = "1.0.1";
name = "elementary-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1ph4rx2l5fn0zh4fjfjlgbgskmzc0lvzqgcv7v4kr5m4rij1p4y4";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "elementary-${pname}";
};
};
nativeBuildInputs = [
desktop-file-utils
gobject-introspection
libxml2
meson
ninja
pkgconfig
vala
wrapGAppsHook
];
buildInputs = [
elementary-icon-theme
glib
granite
gtk3
libgee
];
meta = with stdenv.lib; {
description = "A native OS-wide shortcut overlay to be launched by Gala";
homepage = https://github.com/elementary/shortcut-overlay;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,39 @@
{ stdenv, substituteAll, fetchFromGitHub, file-roller, gnome-bluetooth }:
stdenv.mkDerivation rec {
pname = "extra-elementary-contracts";
version = "2018-08-21";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "worldofpeace";
repo = pname;
rev = "a05dfb00695854163805b666185e3e9f31b6eb83";
sha256 = "0fkaf2w4xg0n9faj74rgzy7gvd3yz112l058b157a3pr39vpci7g";
};
patches = [
(substituteAll {
src = ./exec-path.patch;
file_roller = "${file-roller}";
gnome_bluetooth = "${gnome-bluetooth}";
})
];
dontBuild = true;
installPhase = ''
mkdir -p $out/share/contractor
cp *.contract $out/share/contractor/
'';
meta = with stdenv.lib; {
description = "Extra contractor files for elementary";
homepage = https://github.com/worldofpeace/extra-elementary-contracts;
license = licenses.gpl2;
maintainers = with maintainers; [ worldofpeace ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,34 @@
diff --git a/file-roller-compress.contract b/file-roller-compress.contract
index 8de5396..de7e939 100644
--- a/file-roller-compress.contract
+++ b/file-roller-compress.contract
@@ -3,6 +3,6 @@ Name=Compress
Icon=add-files-to-archive
Description=Create a compressed archive with the selected objects
MimeType=!archive;inode/blockdevice;inode/chardevice;inode/fifo;inode/socket;
-Exec=file-roller --add %U
+Exec=@file_roller@/bin/file-roller --add %U
Gettext-Domain=file-roller
diff --git a/file-roller-extract-here.contract b/file-roller-extract-here.contract
index 184a6f2..345f4e7 100644
--- a/file-roller-extract-here.contract
+++ b/file-roller-extract-here.contract
@@ -3,5 +3,5 @@ Name=Extract Here
Icon=extract-archive
Description=Extract the contents of the archives in the archive folder and quit the program
MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-deb;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lhz;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zip;
-Exec=file-roller --extract-here %U
+Exec=@file_roller@/bin/file-roller --extract-here %U
Gettext-Domain=file-roller
diff --git a/gnome-bluetooth.contract b/gnome-bluetooth.contract
index 745dbbe..8cc0102 100644
--- a/gnome-bluetooth.contract
+++ b/gnome-bluetooth.contract
@@ -3,5 +3,5 @@ Name=Send files via Bluetooth
Icon=bluetooth
Description=Send files to device...
MimeType=!inode;
-Exec=bluetooth-sendto %F
+Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F
Gettext-Domain=gnome-bluetooth2

View File

@ -0,0 +1,66 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala
, desktop-file-utils, gettext, libxml2, gtk3, granite, libgee, bamf, libcanberra
, libcanberra-gtk3, gnome-desktop, mutter, clutter, plank, gobject-introspection
, elementary-icon-theme, elementary-settings-daemon, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "gala";
version = "unstable-2018-12-16";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = "7f1e392e03000df0bd47e7832bb3adab81f39ae5";
sha256 = "1syqq0xfyg5nbnnmy0wp5d66k1bvq9qn27lvr37abxxqig9acpc8";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
versionPolicy = "master";
};
};
nativeBuildInputs = [
desktop-file-utils
gettext
gobject-introspection
libxml2
meson
ninja
pkgconfig
python3
vala
wrapGAppsHook
];
buildInputs = [
bamf
clutter
elementary-icon-theme
gnome-desktop
elementary-settings-daemon
granite
gtk3
libcanberra
libcanberra-gtk3
libgee
mutter
plank
];
patches = [ ./plugins-dir.patch ];
postPatch = ''
chmod +x build-aux/meson/post_install.py
patchShebangs build-aux/meson/post_install.py
'';
meta = with stdenv.lib; {
description = "A window & compositing manager based on mutter and designed by elementary for use with Pantheon";
homepage = https://github.com/elementary/gala;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,22 @@
diff --git a/meson.build b/meson.build
index 6b20a60..205699b 100644
--- a/meson.build
+++ b/meson.build
@@ -38,7 +38,7 @@ conf.set_quoted('PACKAGE_VERSION', gala_version)
conf.set_quoted('DATADIR', data_dir)
conf.set_quoted('PKGDATADIR', pkgdata_dir)
conf.set_quoted('PKGLIBDIR', pkglib_dir)
-conf.set_quoted('PLUGINSDIR', plugins_dir)
+conf.set_quoted('PLUGINSDIR', '/run/current-system/sw/lib/gala/plugins')
conf.set_quoted('RELEASE_NAME', 'Window Manager.')
conf.set_quoted('VERSION', gala_version)
conf.set_quoted('VERSION_INFO', (is_release ? 'Release' : 'Development'))
@@ -83,7 +83,7 @@ add_project_arguments([
'-DDATADIR="@0@"'.format(data_dir),
'-DPKGDATADIR="@0@"'.format(pkgdata_dir),
'-DPKGLIBDIR="@0@"'.format(pkglib_dir),
- '-DPLUGINDIR="@0@"'.format(plugins_dir),
+ '-DPLUGINDIR="@0@"'.format('/run/current-system/sw/lib/gala/plugins'),
'-DSCHEMA="org.pantheon.desktop.gala"',
'-DRESOURCEPATH="/org/pantheon/desktop/gala"',

View File

@ -0,0 +1,24 @@
diff --git a/lib/synapse-plugins/calculator-plugin.vala b/lib/synapse-plugins/calculator-plugin.vala
index 1b5fa06..076c0c7 100644
--- a/lib/synapse-plugins/calculator-plugin.vala
+++ b/lib/synapse-plugins/calculator-plugin.vala
@@ -51,9 +51,7 @@ namespace Synapse {
_("Calculator"),
_("Calculate basic expressions."),
"accessories-calculator",
- register_plugin,
- Environment.find_program_in_path ("bc") != null,
- _("bc is not installed"));
+ register_plugin);
}
static construct {
@@ -90,7 +88,7 @@ namespace Synapse {
if (matched) {
Pid pid;
int read_fd, write_fd;
- string[] argv = {"bc", "-l"};
+ string[] argv = {"@exec@", "-l"};
string? solution = null;
try {

View File

@ -0,0 +1,72 @@
{ stdenv, fetchFromGitHub, pantheon, substituteAll, cmake, ninja
, pkgconfig, vala, granite, libgee, gettext, gtk3, appstream, gnome-menus
, json-glib, plank, bamf, switchboard, libunity, libsoup, wingpanel, libwnck3
, zeitgeist, gobject-introspection, elementary-icon-theme, bc, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "applications-menu";
version = "2.4.2";
name = "wingpanel-${pname}-${version}";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0y7kh50ixvm4m56v18c70s05hhpfp683c4qi3sxy50p2368d772x";
};
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
attrPath = "wingpanel-${pname}";
};
};
nativeBuildInputs = [
appstream
cmake
ninja
gettext
gobject-introspection
pkgconfig
vala
wrapGAppsHook
];
buildInputs = [
bamf
elementary-icon-theme
gnome-menus
granite
gtk3
json-glib
libgee
libsoup
libunity
libwnck3
plank
switchboard
wingpanel
zeitgeist
];
PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
patches = [
(substituteAll {
src = ./bc.patch;
exec = "${bc}/bin/bc";
})
./xdg.patch
];
meta = with stdenv.lib; {
description = "Lightweight and stylish app launcher for Pantheon";
homepage = https://github.com/elementary/applications-menu;
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = pantheon.maintainers;
};
}

View File

@ -0,0 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 928976a..7f0ea58 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -90,7 +90,7 @@ link_directories (${DEPS_LIBRARY_DIRS})
# Installation
install (TARGETS ${APPNAME} RUNTIME DESTINATION bin)
-install (FILES ${applications_menu} DESTINATION /etc/xdg/menus)
+install (FILES ${applications_menu} DESTINATION etc/xdg/menus)
file (GLOB resources "${CMAKE_CURRENT_SOURCE_DIR}/data/*")
# Settings schema

Some files were not shown because too many files have changed in this diff Show More