diff options
Diffstat (limited to 'pkgs/desktops')
21 files changed, 784 insertions, 121 deletions
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix index 11032fba0e79..bb2ab7bc8a16 100644 --- a/pkgs/desktops/deepin/deepin-terminal/default.nix +++ b/pkgs/desktops/deepin/deepin-terminal/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala, +{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala_0_44, gettext, at-spi2-core, dbus, epoxy, expect, gtk3, json-glib, libXdmcp, libgee, libpthreadstubs, librsvg, libsecret, libtasn1, libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux, gnutls, pcre2, @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { pkgconfig cmake ninja - vala + vala_0_44 # xcb.vapi:411.3-411.48: error: missing return statement at end of subroutine body gettext libselinux libsepol utillinux # required by gio deepin.setupHook diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix index a5724385e41b..99d1236ea881 100644 --- a/pkgs/desktops/enlightenment/enlightenment.nix +++ b/pkgs/desktops/enlightenment/enlightenment.nix @@ -9,11 +9,11 @@ stdenv.mkDerivation rec { pname = "enlightenment"; - version = "0.23.0"; + version = "0.23.1"; src = fetchurl { url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz"; - sha256 = "1y7x594gvyvl5zbb1rnf3clj2pm6j97n8wl5mp9x6xjmhx0d1idq"; + sha256 = "0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix index 670cbabf3623..c6d5b22f9348 100644 --- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix +++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix @@ -1,39 +1,65 @@ -{ stdenv, fetchurl, fetchpatch, vala, meson, ninja, libpwquality -, pkgconfig, gtk3, glib, gobject-introspection -, wrapGAppsHook, itstool, gnupg, libsoup -, gnome3, gpgme, python3, openldap, gcr -, libsecret, avahi, p11-kit, openssh, gsettings-desktop-schemas }: +{ stdenv +, fetchurl +, fetchpatch +, vala +, meson +, ninja +, libpwquality +, pkgconfig +, gtk3 +, glib +, wrapGAppsHook +, itstool +, gnupg +, libsoup +, gnome3 +, gpgme +, python3 +, openldap +, gcr +, libsecret +, avahi +, p11-kit +, openssh +, gsettings-desktop-schemas +}: stdenv.mkDerivation rec { pname = "seahorse"; - version = "3.32.2"; + version = "3.34"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"; + sha256 = "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"; }; - patches = [ - # fix build with recent libsecret - # https://gitlab.gnome.org/GNOME/seahorse/merge_requests/83 - (fetchpatch { - url = https://gitlab.gnome.org/GNOME/seahorse/commit/d9db29db567012b7c72e85e1be1fbf55fcc9b667.patch; - sha256 = "004zgs0n0hfc4yfmiy9lj37d67m7wxdf42sf7bzn2c3hcvpl0rcj"; - }) - ]; - doCheck = true; nativeBuildInputs = [ - meson ninja pkgconfig vala itstool wrapGAppsHook - python3 gobject-introspection + meson + ninja + pkgconfig + vala + itstool + wrapGAppsHook + python3 ]; + buildInputs = [ - gtk3 glib gcr - gsettings-desktop-schemas gnupg - gnome3.adwaita-icon-theme gpgme - libsecret avahi libsoup p11-kit - openssh openldap libpwquality + gtk3 + glib + gcr + gsettings-desktop-schemas + gnupg + gnome3.adwaita-icon-theme + gpgme + libsecret + avahi + libsoup + p11-kit + openssh + openldap + libpwquality ]; postPatch = '' diff --git a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch index fe4feaf70857..2399c656016a 100644 --- a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch +++ b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch @@ -1,6 +1,6 @@ --- a/gnome-session/gnome-session.in +++ b/gnome-session/gnome-session.in -@@ -3,11 +3,11 @@ +@@ -3,11 +3,13 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && [ -n "$SHELL" ] && @@ -12,6 +12,8 @@ + ! (echo "$SHELL" | @grep@ -q "nologin"); then if [ "$1" != '-l' ]; then - exec bash -c "exec -l '$SHELL' -c '$0 -l $*'" ++ # Make sure the shell actually sets up the environment ++ unset __NIXOS_SET_ENVIRONMENT_DONE + exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'" else shift diff --git a/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix new file mode 100644 index 000000000000..dca346c6cce4 --- /dev/null +++ b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix @@ -0,0 +1,32 @@ +{ stdenv +, fetchFromGitHub +, gnome3 +}: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-mpris-indicator-button-unstable"; + version = "2019-09-29"; + + src = fetchFromGitHub { + owner = "JasonLG1979"; + repo = "gnome-shell-extension-mpris-indicator-button"; + rev = "6cdc28a8bde98f25618b27ee48280996e2b4a0f8"; + sha256 = "1n3sh3phpa75y3vpc09wnzhis0m92zli1m46amzsdbvmk6gkifif"; + }; + + uuid = "mprisindicatorbutton@JasonLG1979.github.io"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "A simple MPRIS indicator button for GNOME Shell"; + license = licenses.gpl3; + maintainers = with maintainers; [ worldofpeace ]; + platforms = gnome3.gnome-shell.meta.platforms; + homepage = "https://github.com/JasonLG1979/gnome-shell-extension-mpris-indicator-button"; + broken = versionOlder gnome3.gnome-shell.version "3.34"; + }; +} diff --git a/pkgs/desktops/lxqt/libfm-qt/default.nix b/pkgs/desktops/lxqt/libfm-qt/default.nix index c214f0b3dcd4..39cece7724eb 100644 --- a/pkgs/desktops/lxqt/libfm-qt/default.nix +++ b/pkgs/desktops/lxqt/libfm-qt/default.nix @@ -5,14 +5,14 @@ }: mkDerivation rec { - pname = "libfm-qt"; - version = "0.14.1"; + pname = "libfm-qt-unstable"; + version = "2019-09-22"; src = fetchFromGitHub { owner = "lxqt"; - repo = pname; - rev = version; - sha256 = "00rn5i16h659zyp1dx213nc3jz7rx9phiw71zf6nspxzxsb8w2sc"; + repo = "libfm-qt"; + rev = "7c94e9efb996df0602f1f2b34b0216ba9b6df498"; + sha256 = "1fnli2kh7n4hxmqwcb1n06lyk67d9a2fx6z70gas5jzym7r2h5vw"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/pkgs/desktops/lxqt/lxqt-archiver/default.nix index 07a603364d78..205ea2fd2016 100644 --- a/pkgs/desktops/lxqt/lxqt-archiver/default.nix +++ b/pkgs/desktops/lxqt/lxqt-archiver/default.nix @@ -3,13 +3,13 @@ mkDerivation rec { # pname = "lxqt-archiver"; pname = "lxqt-archiver-unstable"; - version = "2019-09-15"; + version = "2019-09-25"; src = fetchFromGitHub { owner = "lxqt"; - repo = pname; - rev = "1e657b6a3e68c32f042d583872eca39a5d4b820f"; - sha256 = "1vc9pzxrhznp65gdkzj3fzzivfqy712mwcxp3r25ar59d54alfpj"; + repo = "lxqt-archiver"; + rev = "62501255434b2ba6a8fd043a5af13dc0df038a5b"; + sha256 = "1af58k68karmnay7xgngzlmcgkmvx6hay5m1xbl5id9hh16n20in"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/mate-common/default.nix b/pkgs/desktops/mate/mate-common/default.nix index f85dd632bd16..5eacbd081460 100644 --- a/pkgs/desktops/mate/mate-common/default.nix +++ b/pkgs/desktops/mate/mate-common/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "mate-common"; - version = "1.22.0"; + version = "1.22.2"; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "11lwckndizawbq993ws8lqp59vsc873zri0m8s1i5zyc4qx9f69z"; + sha256 = "1xx7qrw8kc6355r1a1nybncf8s2rxjb2nqzw0gv2r5j5sqx8fzgf"; }; meta = { diff --git a/pkgs/desktops/mate/mate-utils/default.nix b/pkgs/desktops/mate/mate-utils/default.nix index 7775173611e2..adb8fef27f59 100644 --- a/pkgs/desktops/mate/mate-utils/default.nix +++ b/pkgs/desktops/mate/mate-utils/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "mate-utils"; - version = "1.22.1"; + version = "1.22.2"; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0768y6x33ljc9dxjlfmvplsn4lrxj5xhjddbyab9h6pqav8527rg"; + sha256 = "1i6fnm3y1hj8r57x4jpc4ixqs77zln8f7477d0haypflxm3s4kjr"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/mozo/default.nix b/pkgs/desktops/mate/mozo/default.nix index 36f8fecb1925..9d61f45e18ea 100644 --- a/pkgs/desktops/mate/mozo/default.nix +++ b/pkgs/desktops/mate/mozo/default.nix @@ -2,14 +2,14 @@ python3.pkgs.buildPythonApplication rec { pname = "mozo"; - version = "1.22.1"; + version = "1.22.2"; format = "other"; doCheck = false; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0yffp7p3b6ynpf7ck21klym7h09l35amnyahm71dxbv2kzj6hlqh"; + sha256 = "1lzcwsz940v218frwzhpywp1an9x3cgfvqr7r8dplpdapvd0khrs"; }; nativeBuildInputs = [ pkgconfig intltool gobject-introspection wrapGAppsHook ]; diff --git a/pkgs/desktops/mate/pluma/default.nix b/pkgs/desktops/mate/pluma/default.nix index cfbe33dd380d..e0b61fd35cbe 100644 --- a/pkgs/desktops/mate/pluma/default.nix +++ b/pkgs/desktops/mate/pluma/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "pluma"; - version = "1.22.1"; + version = "1.22.2"; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "14d5c5fg31d7br9h1y3gdcr53j4sxlgybf326jvdcw8mgy91k3dg"; + sha256 = "1gsj8grdhzb1jvl5zwd8zjc9cj9ys2ndny04gy4bbh80sjaj6xva"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/python-caja/default.nix b/pkgs/desktops/mate/python-caja/default.nix index 42a8e328a161..d861ddbf4d7e 100644 --- a/pkgs/desktops/mate/python-caja/default.nix +++ b/pkgs/desktops/mate/python-caja/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "python-caja"; - version = "1.22.0"; + version = "1.22.1"; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1zwdjvxci72j0181nlfq6912lw3aq8j3746brlp7wlzn22qp7b0k"; + sha256 = "07hkvs4a6anrvh28zjsrj8anbcz32p19hslhq66yhcvh0hh4kvqk"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index aed08c35a801..57c2c30c9d20 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -18,6 +18,7 @@ lib.makeScope pkgs.newScope (self: with self; { ]; desktop = [ + elementary-default-settings elementary-session-settings elementary-shortcut-overlay gala diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch b/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch new file mode 100644 index 000000000000..3a0b3812450c --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch @@ -0,0 +1,309 @@ +From f728ac670d8f6bb7600a007d92034b711471fab6 Mon Sep 17 00:00:00 2001 +From: worldofpeace <worldofpeace@protonmail.ch> +Date: Sat, 13 Jul 2019 19:06:20 -0400 +Subject: [PATCH 1/2] Build with Meson + +Has the following meson build options: +* default-wallpaper +* plank-dockitems +* default-gsettings-overrides + +All default to true. + +We also split the default-settings gsettings override into another that +only sets plank's default dockitems. This is installed when plank-dockitems +is true. We need to have this because those settings are dependent on +those dockitems actually being installed and we have it optional. +--- + accountsservice/create-symlink.py | 24 ++++++ + accountsservice/meson.build | 25 ++++++ + .../appcenter.blacklist | 0 + .../default-testpage.pdf | Bin + settings.ini => gtk/settings.ini | 0 + .inputrc => inputrc/.inputrc | 0 + meson.build | 79 ++++++++++++++++++ + meson/post_install.py | 12 +++ + meson_options.txt | 14 ++++ + ...e => default-settings.gschema.override.in} | 3 +- + overrides/meson.build | 21 +++++ + overrides/plank-dockitems.gschema.override | 2 + + .../sessioninstaller.desktop | 0 + 13 files changed, 178 insertions(+), 2 deletions(-) + create mode 100644 accountsservice/create-symlink.py + create mode 100644 accountsservice/meson.build + rename appcenter.blacklist => appcenter/appcenter.blacklist (100%) + rename default-testpage.pdf => cups/default-testpage.pdf (100%) + rename settings.ini => gtk/settings.ini (100%) + rename .inputrc => inputrc/.inputrc (100%) + create mode 100644 meson.build + create mode 100755 meson/post_install.py + create mode 100644 meson_options.txt + rename overrides/{default-settings.gschema.override => default-settings.gschema.override.in} (92%) + create mode 100644 overrides/meson.build + create mode 100644 overrides/plank-dockitems.gschema.override + rename sessioninstaller.desktop => sessioninstaller/sessioninstaller.desktop (100%) + +diff --git a/accountsservice/create-symlink.py b/accountsservice/create-symlink.py +new file mode 100644 +index 0000000..e502134 +--- /dev/null ++++ b/accountsservice/create-symlink.py +@@ -0,0 +1,24 @@ ++#!/usr/bin/env python3 ++ ++import os ++import sys ++ ++if len(sys.argv) < 3: ++ print('Usage: create-symlink.py SOURCE DESTINATION') ++ sys.exit(1) ++ ++src = sys.argv[1] ++dest = sys.argv[2] ++ ++if 'MESON_INSTALL_DESTDIR_PREFIX' in os.environ: ++ src = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], src) ++ dest = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], dest) ++ ++if os.path.isabs(src): ++ src = os.path.relpath(src, os.path.dirname(os.path.realpath(dest))) ++ ++if not os.path.exists(dest): ++ print('Creating symbolic link: ' + dest + ' -> ' + src) ++ if not os.path.exists(os.path.dirname(dest)): ++ os.makedirs(os.path.dirname(dest)) ++ os.symlink(src, dest) +diff --git a/accountsservice/meson.build b/accountsservice/meson.build +new file mode 100644 +index 0000000..6d18459 +--- /dev/null ++++ b/accountsservice/meson.build +@@ -0,0 +1,25 @@ ++dbus_dep = dependency('dbus-1') ++dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', datadir]) ++ ++install_data( ++ 'io.elementary.pantheon.AccountsService.xml', ++ install_dir: dbus_interfaces_dir ++) ++ ++ ++polkit_dep = dependency('polkit-gobject-1') ++polkit_actiondir = polkit_dep.get_pkgconfig_variable('actiondir', define_variable: ['prefix', prefix]) ++ ++install_data( ++ 'io.elementary.pantheon.AccountsService.policy', ++ install_dir: polkit_actiondir ++) ++ ++act_dep = dependency('accountsservice') ++act_interfacesdir = act_dep.get_pkgconfig_variable('interfacesdir', define_variable: ['datadir', datadir]) ++ ++meson.add_install_script( ++ 'create-symlink.py', ++ join_paths(dbus_interfaces_dir, 'io.elementary.pantheon.AccountsService.xml'), ++ join_paths(act_interfacesdir, 'io.elementary.pantheon.AccountsService.xml'), ++) +diff --git a/appcenter.blacklist b/appcenter/appcenter.blacklist +similarity index 100% +rename from appcenter.blacklist +rename to appcenter/appcenter.blacklist +diff --git a/default-testpage.pdf b/cups/default-testpage.pdf +similarity index 100% +rename from default-testpage.pdf +rename to cups/default-testpage.pdf +diff --git a/settings.ini b/gtk/settings.ini +similarity index 100% +rename from settings.ini +rename to gtk/settings.ini +diff --git a/.inputrc b/inputrc/.inputrc +similarity index 100% +rename from .inputrc +rename to inputrc/.inputrc +diff --git a/meson.build b/meson.build +new file mode 100644 +index 0000000..7740a34 +--- /dev/null ++++ b/meson.build +@@ -0,0 +1,79 @@ ++project( ++ 'elementary-default-settings', ++ version: '5.1.0', ++ default_options: 'sysconfdir=/etc', ++) ++ ++prefix = get_option('prefix') ++datadir = join_paths(prefix, get_option('datadir')) ++sysconfdir = get_option('sysconfdir') ++ ++meson.add_install_script('meson/post_install.py', datadir) ++ ++# Planks Default DockItems ++if get_option('plank-dockitems') ++ install_subdir( ++ 'plank', ++ install_dir: join_paths(sysconfdir, 'skel', '.config') ++ ) ++endif ++ ++# Setup system wide global environment for applications ++install_subdir( ++ 'profile.d', ++ install_dir: join_paths(sysconfdir, 'profile.d'), ++ strip_directory : true ++) ++ ++# elementary Plymouth Theme ++install_subdir( ++ 'plymouth/elementary', ++ install_dir: join_paths(datadir, 'plymouth', 'themes') ++) ++ ++install_data( ++ 'plymouth/ubuntu-text.plymouth', ++ install_dir: join_paths(datadir, 'plymouth', 'themes') ++) ++ ++# Sudo password feedback in terminals ++install_data( ++ 'sudoers.d/pwfeedback', ++ install_dir: join_paths(sysconfdir, 'sudoers.d') ++) ++ ++# CUPS Printing testpage ++install_data( ++ 'cups/default-testpage.pdf', ++ install_dir: join_paths(datadir, 'cups', 'data') ++) ++ ++# GTK3 Settings ++install_data( ++ 'gtk/settings.ini', ++ install_dir: join_paths(sysconfdir, 'gtk-3.0') ++) ++ ++# So SessionInstaller can have an Icon ++install_data( ++ 'sessioninstaller/sessioninstaller.desktop', ++ install_dir: join_paths(datadir, 'applications') ++) ++ ++# Default Appcenter Blacklist ++install_data( ++ 'appcenter/appcenter.blacklist', ++ install_dir: join_paths(sysconfdir, 'appcenter') ++) ++ ++# Configuration file of GNU readline ++install_data( ++ 'inputrc/.inputrc', ++ install_dir: join_paths(sysconfdir, 'skel') ++) ++ ++# Default gsettings overrides ++subdir('overrides') ++ ++# AccountsService extension for Greeter. ++subdir('accountsservice') +diff --git a/meson/post_install.py b/meson/post_install.py +new file mode 100755 +index 0000000..c6b5617 +--- /dev/null ++++ b/meson/post_install.py +@@ -0,0 +1,12 @@ ++#!/usr/bin/env python3 ++ ++import os ++import sys ++import subprocess ++ ++if 'DESTDIR' not in os.environ: ++ default_settings_datadir = sys.argv[1] ++ ++ print('Compiling GSettings schemas...') ++ subprocess.call(['glib-compile-schemas', ++ os.path.join(default_settings_datadir, 'glib-2.0', 'schemas')]) +diff --git a/meson_options.txt b/meson_options.txt +new file mode 100644 +index 0000000..8fd19ba +--- /dev/null ++++ b/meson_options.txt +@@ -0,0 +1,14 @@ ++option('default-wallpaper', ++ type: 'string', ++ value: '/usr/share/backgrounds/elementaryos-default', ++ description: 'Path to default wallpaper to use in Pantheon.') ++ ++option('plank-dockitems', ++ type: 'boolean', ++ value: true, ++ description: 'Install default Pantheon Plank dockitems') ++ ++option('default-gsettings-overrides', ++ type: 'boolean', ++ value: true, ++ description: 'Install default Pantheon GSettings Overrides') +diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override.in +similarity index 92% +rename from overrides/default-settings.gschema.override +rename to overrides/default-settings.gschema.override.in +index 1aef29c..69d272b 100644 +--- a/overrides/default-settings.gschema.override ++++ b/overrides/default-settings.gschema.override.in +@@ -1,5 +1,4 @@ + [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'] + hide-delay=250 + hide-mode='window-dodge' + show-dock-item=false +@@ -11,7 +10,7 @@ triggers=['<Control>space'] + [org.gnome.desktop.background] + draw-background=true + picture-options='zoom' +-picture-uri='file:///usr/share/backgrounds/elementaryos-default' ++picture-uri='file://@DEFAULT_WALLPAPER@' + primary-color='#000000' + show-desktop-icons=false + +diff --git a/overrides/meson.build b/overrides/meson.build +new file mode 100644 +index 0000000..ad80644 +--- /dev/null ++++ b/overrides/meson.build +@@ -0,0 +1,21 @@ ++if get_option('default-gsettings-overrides') ++ default_wallpaper = get_option('default-wallpaper') ++ ++ wallpaper_configuration = configuration_data() ++ wallpaper_configuration.set('DEFAULT_WALLPAPER', default_wallpaper) ++ ++ settings_override = configure_file( ++ input: 'default-settings.gschema.override.in', ++ output: '@BASENAME@', ++ configuration: wallpaper_configuration, ++ install_dir: join_paths(datadir, 'glib-2.0', 'schemas') ++ ) ++endif ++ ++# Install conditionally because it's dependent on our dockitems being installed ++if get_option('plank-dockitems') ++ install_data( ++ 'plank-dockitems.gschema.override', ++ install_dir: join_paths(datadir, 'glib-2.0', 'schemas') ++ ) ++endif +diff --git a/overrides/plank-dockitems.gschema.override b/overrides/plank-dockitems.gschema.override +new file mode 100644 +index 0000000..72b38d4 +--- /dev/null ++++ b/overrides/plank-dockitems.gschema.override +@@ -0,0 +1,2 @@ ++[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'] +diff --git a/sessioninstaller.desktop b/sessioninstaller/sessioninstaller.desktop +similarity index 100% +rename from sessioninstaller.desktop +rename to sessioninstaller/sessioninstaller.desktop +-- +2.23.0 + diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch b/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch deleted file mode 100644 index 1b2dc835706d..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override -index 1aef29c..08de164 100644 ---- a/overrides/default-settings.gschema.override -+++ b/overrides/default-settings.gschema.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 - diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix index a1a69ee303fe..f20f11974993 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix @@ -1,11 +1,20 @@ { stdenv , fetchFromGitHub , pantheon +, meson +, ninja +, nixos-artwork +, glib +, pkgconfig +, dbus +, polkit +, accountsservice +, python3 }: stdenv.mkDerivation rec { pname = "elementary-default-settings"; - version = "5.1.0"; + version = "5.1.1"; repoName = "default-settings"; @@ -13,7 +22,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "0l73py4rr56i4dalb2wh1c6qiwmcjkm0l1j75jp5agcnxldh5wym"; + sha256 = "10sdy8v34y6bgb3mabwy7k3b5dbqrnab504dvhashpfxr9n9xncy"; }; passthru = { @@ -24,24 +33,54 @@ stdenv.mkDerivation rec { }; patches = [ - ./correct-override.patch + # https://github.com/elementary/default-settings/pull/119 + ./0001-Build-with-Meson.patch ]; - dontBuild = true; - dontConfigure = true; + nativeBuildInputs = [ + accountsservice + dbus + glib # polkit requires + meson + ninja + pkgconfig + polkit + python3 + ]; + + mesonFlags = [ + "--sysconfdir=${placeholder "out"}/etc" + "-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png" + "-Dplank-dockitems=false" + ]; - installPhase = '' - mkdir -p $out/etc/gtk-3.0 - cp -av settings.ini $out/etc/gtk-3.0 + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; - mkdir -p $out/share/glib-2.0/schemas - cp -av overrides/default-settings.gschema.override $out/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override + preInstall = '' + # Install our override for plank dockitems. + # This is because we don't have Pantheon's mail or Appcenter. + # See: https://github.com/NixOS/nixpkgs/issues/58161 + schema_dir=$out/share/glib-2.0/schemas + install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override + + # Our launchers that use paths at /run/current-system/sw/bin + mkdir -p $out/etc/skel/.config/plank/dock1 + cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers + + # Whitelist wingpanel indicators to be used in the greeter + # TODO: is this needed or installed upstream? + install -D ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist + ''; - mkdir $out/etc/wingpanel.d - cp -avr ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist + postFixup = '' + # https://github.com/elementary/default-settings/issues/55 + rm -rf $out/share/plymouth + rm -rf $out/share/cups - mkdir -p $out/share/elementary/config/plank/dock1 - cp -avr ${./launchers} $out/share/elementary/config/plank/dock1/launchers + rm -rf $out/share/applications ''; meta = with stdenv.lib; { diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override new file mode 100644 index 000000000000..671448745c50 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override @@ -0,0 +1,2 @@ +[net.launchpad.plank.dock.settings] +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'] diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix index 9fc4418e7ca1..38e57539de42 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix @@ -41,13 +41,9 @@ runCommand "elementary-gsettings-desktop-schemas" {} ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml $schema_dir\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 $schema_dir + cp ${glib.getSchemaPath elementary-default-settings}/* $schema_dir cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF - [org.gnome.desktop.background] - picture-uri='file://${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png' - primary-color='#000000' - ${extraGSettingsOverrides} EOF diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop deleted file mode 100644 index 517a9457ae10..000000000000 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Instantiate Default elementary dockitems -Exec=@script@ -StartupNotify=false -NoDisplay=true -OnlyShowIn=Pantheon; -X-GNOME-Autostart-Phase=EarlyInitialization diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index 69a1efa3e9e9..ab7333212a05 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -12,6 +12,10 @@ , elementary-default-settings , elementary-settings-daemon , runtimeShell +, writeText +, meson +, ninja +, git }: let @@ -32,22 +36,28 @@ let #!${runtimeShell} elementary_default_settings="${elementary-default-settings}" - dock_items="$elementary_default_settings/share/elementary/config/plank/dock1/launchers"/* + dock_items="$elementary_default_settings/etc/skel/.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/ + 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; - }; + dockitemAutostart = writeText "default-elementary-dockitems.desktop" '' + [Desktop Entry] + Type=Application + Name=Instantiate Default elementary dockitems + Exec=${dockitems-script} + StartupNotify=false + NoDisplay=true + OnlyShowIn=Pantheon; + X-GNOME-Autostart-Phase=EarlyInitialization + ''; executable = writeScript "pantheon" '' export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:${elementary-default-settings}/etc:$XDG_CONFIG_DIRS @@ -70,17 +80,23 @@ stdenv.mkDerivation rec { sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k"; }; - passthru = { - updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; - }; - }; + postPatch = '' + ${git}/bin/git apply --verbose ${./meson.patch} + ''; + + nativeBuildInputs = [ + meson + ninja + ]; - dontBuild = true; - dontConfigure = true; + mesonFlags = [ + "-Ddefaults-list=false" + "-Dpatched-gsd-autostarts=false" + "-Dpatched-ubuntu-autostarts=false" + "-Dfallback-session=GNOME" + ]; - installPhase = '' + postInstall = '' mkdir -p $out/share/applications cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list @@ -91,15 +107,9 @@ stdenv.mkDerivation rec { 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/libexec substitute ${executable} $out/libexec/pantheon --subst-var out chmod +x $out/libexec/pantheon - - mkdir -p $out/share/xsessions - cp -av xsessions/pantheon.desktop $out/share/xsessions ''; postFixup = '' @@ -116,6 +126,13 @@ stdenv.mkDerivation rec { done ''; + passthru = { + updateScript = pantheon.updateScript { + inherit repoName; + attrPath = pname; + }; + }; + meta = with stdenv.lib; { description = "Session settings for elementary"; homepage = https://github.com/elementary/session-settings; diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch new file mode 100644 index 000000000000..39d155656612 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch @@ -0,0 +1,272 @@ +From 0a20ad6a31c74f4f96e9ed3613ec6c16a94ede39 Mon Sep 17 00:00:00 2001 +From: worldofpeace <worldofpeace@protonmail.ch> +Date: Thu, 8 Aug 2019 11:25:37 -0400 +Subject: [PATCH] Build with Meson (#13) + +--- + applications/meson.build | 4 ++++ + ...ettingsDaemon.A11ySettings-pantheon.desktop | 0 + ...e.SettingsDaemon.Clipboard-pantheon.desktop | 0 + ...gnome.SettingsDaemon.Color-pantheon.desktop | 0 + ...me.SettingsDaemon.Datetime-pantheon.desktop | 0 + ...ettingsDaemon.Housekeeping-pantheon.desktop | 0 + ...me.SettingsDaemon.Keyboard-pantheon.desktop | 0 + ...e.SettingsDaemon.MediaKeys-pantheon.desktop | 0 + ...gnome.SettingsDaemon.Mouse-pantheon.desktop | 0 + ...gnome.SettingsDaemon.Power-pantheon.desktop | 0 + ...sDaemon.PrintNotifications-pantheon.desktop | 0 + ...nome.SettingsDaemon.Rfkill-pantheon.desktop | 0 + ...ome.SettingsDaemon.Sharing-pantheon.desktop | 0 + ...e.SettingsDaemon.Smartcard-pantheon.desktop | 0 + ...gnome.SettingsDaemon.Sound-pantheon.desktop | 0 + ...gnome.SettingsDaemon.Wacom-pantheon.desktop | 0 + ...e.SettingsDaemon.XSettings-pantheon.desktop | 0 + autostart/meson.build | 18 ++++++++++++++++++ + .../gnome-keyring-gpg-pantheon.desktop | 0 + .../gnome-keyring-pkcs11-pantheon.desktop | 0 + .../gnome-keyring-secrets-pantheon.desktop | 0 + .../gnome-keyring-ssh-pantheon.desktop | 0 + .../onboard-autostart-pantheon.desktop | 0 + .../orca-autostart-pantheon.desktop | 0 + .../user-dirs-update-gtk-pantheon.desktop | 0 + gnome-session/meson.build | 11 +++++++++++ + .../{pantheon.session => pantheon.session.in} | 2 +- + meson.build | 14 ++++++++++++++ + meson_options.txt | 11 +++++++++++ + xsessions/meson.build | 4 ++++ + 30 files changed, 63 insertions(+), 1 deletion(-) + create mode 100644 applications/meson.build + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Color-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Datetime-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Mouse-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Power-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sharing-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sound-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Wacom-pantheon.desktop (100%) + rename autostart/{ => gsd}/org.gnome.SettingsDaemon.XSettings-pantheon.desktop (100%) + create mode 100644 autostart/meson.build + rename autostart/{ => ubuntu}/gnome-keyring-gpg-pantheon.desktop (100%) + rename autostart/{ => ubuntu}/gnome-keyring-pkcs11-pantheon.desktop (100%) + rename autostart/{ => ubuntu}/gnome-keyring-secrets-pantheon.desktop (100%) + rename autostart/{ => ubuntu}/gnome-keyring-ssh-pantheon.desktop (100%) + rename autostart/{ => ubuntu}/onboard-autostart-pantheon.desktop (100%) + rename autostart/{ => ubuntu}/orca-autostart-pantheon.desktop (100%) + rename autostart/{ => ubuntu}/user-dirs-update-gtk-pantheon.desktop (100%) + create mode 100644 gnome-session/meson.build + rename gnome-session/{pantheon.session => pantheon.session.in} (94%) + create mode 100644 meson.build + create mode 100644 meson_options.txt + create mode 100644 xsessions/meson.build + +diff --git a/applications/meson.build b/applications/meson.build +new file mode 100644 +index 0000000..d03b92b +--- /dev/null ++++ b/applications/meson.build +@@ -0,0 +1,4 @@ ++install_data( ++ 'defaults.list', ++ install_dir: join_paths(datadir, 'applications') ++) +diff --git a/autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop +diff --git a/autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop +similarity index 100% +rename from autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop +rename to autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop +diff --git a/autostart/meson.build b/autostart/meson.build +new file mode 100644 +index 0000000..265088b +--- /dev/null ++++ b/autostart/meson.build +@@ -0,0 +1,18 @@ ++autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart') ++ ++if get_option('patched-gsd-autostarts') ++ install_subdir( ++ 'gsd', ++ install_dir: autostartdir, ++ strip_directory: true ++ ) ++endif ++ ++ ++if get_option('patched-ubuntu-autostarts') ++ install_subdir( ++ 'ubuntu', ++ install_dir: autostartdir, ++ strip_directory: true ++ ) ++endif +diff --git a/autostart/gnome-keyring-gpg-pantheon.desktop b/autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop +similarity index 100% +rename from autostart/gnome-keyring-gpg-pantheon.desktop +rename to autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop +diff --git a/autostart/gnome-keyring-pkcs11-pantheon.desktop b/autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop +similarity index 100% +rename from autostart/gnome-keyring-pkcs11-pantheon.desktop +rename to autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop +diff --git a/autostart/gnome-keyring-secrets-pantheon.desktop b/autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop +similarity index 100% +rename from autostart/gnome-keyring-secrets-pantheon.desktop +rename to autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop +diff --git a/autostart/gnome-keyring-ssh-pantheon.desktop b/autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop +similarity index 100% +rename from autostart/gnome-keyring-ssh-pantheon.desktop +rename to autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop +diff --git a/autostart/onboard-autostart-pantheon.desktop b/autostart/ubuntu/onboard-autostart-pantheon.desktop +similarity index 100% +rename from autostart/onboard-autostart-pantheon.desktop +rename to autostart/ubuntu/onboard-autostart-pantheon.desktop +diff --git a/autostart/orca-autostart-pantheon.desktop b/autostart/ubuntu/orca-autostart-pantheon.desktop +similarity index 100% +rename from autostart/orca-autostart-pantheon.desktop +rename to autostart/ubuntu/orca-autostart-pantheon.desktop +diff --git a/autostart/user-dirs-update-gtk-pantheon.desktop b/autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop +similarity index 100% +rename from autostart/user-dirs-update-gtk-pantheon.desktop +rename to autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop +diff --git a/gnome-session/meson.build b/gnome-session/meson.build +new file mode 100644 +index 0000000..b9245a1 +--- /dev/null ++++ b/gnome-session/meson.build +@@ -0,0 +1,11 @@ ++fallback_session = get_option('fallback-session') ++ ++session_configuration = configuration_data() ++session_configuration.set('FALLBACK_SESSION', fallback_session) ++ ++pantheon_session = configure_file( ++ input: 'pantheon.session.in', ++ output: '@BASENAME@', ++ configuration: session_configuration, ++ install_dir: join_paths(datadir, 'gnome-session', 'sessions') ++) +diff --git a/gnome-session/pantheon.session b/gnome-session/pantheon.session.in +similarity index 94% +rename from gnome-session/pantheon.session +rename to gnome-session/pantheon.session.in +index 1626393..7bc1814 100644 +--- a/gnome-session/pantheon.session ++++ b/gnome-session/pantheon.session.in +@@ -1,5 +1,5 @@ + [GNOME Session] + Name=Pantheon + RequiredComponents=gala;gala-daemon;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings; +-FallbackSession=ubuntu ++FallbackSession=@FALLBACK_SESSION@ + DesktopName=Pantheon +diff --git a/meson.build b/meson.build +new file mode 100644 +index 0000000..a7d3195 +--- /dev/null ++++ b/meson.build +@@ -0,0 +1,14 @@ ++project('elementary-session-settings', ++ version: '5.0.3', ++ default_options: 'sysconfdir=/etc') ++ ++prefix = get_option('prefix') ++datadir = join_paths(prefix, get_option('datadir')) ++ ++if get_option('defaults-list') ++ subdir('applications') ++endif ++ ++subdir('autostart') ++subdir('gnome-session') ++subdir('xsessions') +diff --git a/meson_options.txt b/meson_options.txt +new file mode 100644 +index 0000000..4c5ac2d +--- /dev/null ++++ b/meson_options.txt +@@ -0,0 +1,11 @@ ++option('defaults-list', type : 'boolean', value: true, ++ description : 'Install defaults.list') ++ ++option('patched-gsd-autostarts', type : 'boolean', value: true, ++ description : 'Install patched GNOME Settings Daemon autostarts') ++ ++option('patched-ubuntu-autostarts', type : 'boolean', value: true, ++ description : 'Install patched Ubuntu autostarts') ++ ++option('fallback-session', type : 'string', value: 'ubuntu', ++ description : 'Fallback session to use for Pantheon') +diff --git a/xsessions/meson.build b/xsessions/meson.build +new file mode 100644 +index 0000000..d144291 +--- /dev/null ++++ b/xsessions/meson.build +@@ -0,0 +1,4 @@ ++install_data( ++ 'pantheon.desktop', ++ install_dir: join_paths(datadir, 'xsessions') ++) |