pantheon: init a 5.0

+5013 -91
+3
nixos/modules/module-list.nix
··· 241 ./services/desktops/bamf.nix 242 ./services/desktops/dleyna-renderer.nix 243 ./services/desktops/dleyna-server.nix 244 ./services/desktops/flatpak.nix 245 ./services/desktops/geoclue2.nix 246 ./services/desktops/gsignond.nix ··· 266 ./services/desktops/gnome3/tracker-miners.nix 267 ./services/desktops/profile-sync-daemon.nix 268 ./services/desktops/telepathy.nix 269 ./services/desktops/zeitgeist.nix 270 ./services/development/bloop.nix 271 ./services/development/hoogle.nix
··· 241 ./services/desktops/bamf.nix 242 ./services/desktops/dleyna-renderer.nix 243 ./services/desktops/dleyna-server.nix 244 + ./services/desktops/pantheon/contractor.nix 245 + ./services/desktops/pantheon/files.nix 246 ./services/desktops/flatpak.nix 247 ./services/desktops/geoclue2.nix 248 ./services/desktops/gsignond.nix ··· 268 ./services/desktops/gnome3/tracker-miners.nix 269 ./services/desktops/profile-sync-daemon.nix 270 ./services/desktops/telepathy.nix 271 + ./services/desktops/tumbler.nix 272 ./services/desktops/zeitgeist.nix 273 ./services/development/bloop.nix 274 ./services/development/hoogle.nix
+39
nixos/modules/services/desktops/pantheon/contractor.nix
···
··· 1 + # Contractor 2 + 3 + { config, pkgs, lib, ... }: 4 + 5 + with lib; 6 + 7 + { 8 + 9 + ###### interface 10 + 11 + options = { 12 + 13 + services.pantheon.contractor = { 14 + 15 + enable = mkEnableOption "contractor, a desktop-wide extension service used by pantheon"; 16 + 17 + }; 18 + 19 + }; 20 + 21 + 22 + ###### implementation 23 + 24 + config = mkIf config.services.pantheon.contractor.enable { 25 + 26 + environment.systemPackages = with pkgs.pantheon; [ 27 + contractor 28 + extra-elementary-contracts 29 + ]; 30 + 31 + services.dbus.packages = [ pkgs.pantheon.contractor ]; 32 + 33 + environment.pathsToLink = [ 34 + "/share/contractor" 35 + ]; 36 + 37 + }; 38 + 39 + }
+36
nixos/modules/services/desktops/pantheon/files.nix
···
··· 1 + # pantheon files daemon. 2 + 3 + { config, pkgs, lib, ... }: 4 + 5 + with lib; 6 + 7 + { 8 + 9 + ###### interface 10 + 11 + options = { 12 + 13 + services.pantheon.files = { 14 + 15 + enable = mkEnableOption "pantheon files daemon"; 16 + 17 + }; 18 + 19 + }; 20 + 21 + 22 + ###### implementation 23 + 24 + config = mkIf config.services.pantheon.files.enable { 25 + 26 + environment.systemPackages = [ 27 + pkgs.pantheon.elementary-files 28 + ]; 29 + 30 + services.dbus.packages = [ 31 + pkgs.pantheon.elementary-files 32 + ]; 33 + 34 + }; 35 + 36 + }
+50
nixos/modules/services/desktops/tumbler.nix
···
··· 1 + # Tumbler 2 + 3 + { config, pkgs, lib, ... }: 4 + 5 + with lib; 6 + 7 + let 8 + 9 + cfg = config.services.tumbler; 10 + tumbler = cfg.package; 11 + 12 + in 13 + 14 + { 15 + 16 + ###### interface 17 + 18 + options = { 19 + 20 + services.tumbler = { 21 + 22 + enable = mkEnableOption "Tumbler, A D-Bus thumbnailer service"; 23 + 24 + package = mkOption { 25 + type = types.package; 26 + default = pkgs.xfce4-13.tumbler; 27 + description = "Which tumbler package to use"; 28 + example = pkgs.xfce4-12.tumbler; 29 + }; 30 + 31 + }; 32 + 33 + }; 34 + 35 + 36 + ###### implementation 37 + 38 + config = mkIf cfg.enable { 39 + 40 + environment.systemPackages = [ 41 + tumbler 42 + ]; 43 + 44 + services.dbus.packages = [ 45 + tumbler 46 + ]; 47 + 48 + }; 49 + 50 + }
+1 -1
nixos/modules/services/x11/desktop-managers/default.nix
··· 20 imports = [ 21 ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix 22 ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix 23 - ./mate.nix 24 ]; 25 26 options = {
··· 20 imports = [ 21 ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix 22 ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix 23 + ./mate.nix ./pantheon.nix 24 ]; 25 26 options = {
+195
nixos/modules/services/x11/desktop-managers/pantheon.nix
···
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + 7 + cfg = config.services.xserver.desktopManager.pantheon; 8 + 9 + nixos-gsettings-desktop-schemas = pkgs.pantheon.elementary-gsettings-schemas.override { 10 + extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages; 11 + extraGSettingsOverrides = cfg.extraGSettingsOverrides; 12 + }; 13 + 14 + in 15 + 16 + { 17 + options = { 18 + 19 + services.xserver.desktopManager.pantheon = { 20 + enable = mkOption { 21 + type = types.bool; 22 + default = false; 23 + description = "Enable the pantheon desktop manager"; 24 + }; 25 + 26 + sessionPath = mkOption { 27 + default = []; 28 + example = literalExample "[ pkgs.gnome3.gpaste ]"; 29 + description = '' 30 + Additional list of packages to be added to the session search path. 31 + Useful for GSettings-conditional autostart. 32 + 33 + Note that this should be a last resort; patching the package is preferred (see GPaste). 34 + ''; 35 + apply = list: list ++ 36 + [ 37 + pkgs.pantheon.pantheon-agent-geoclue2 38 + ]; 39 + }; 40 + 41 + extraGSettingsOverrides = mkOption { 42 + default = ""; 43 + type = types.lines; 44 + description = "Additional gsettings overrides."; 45 + }; 46 + 47 + extraGSettingsOverridePackages = mkOption { 48 + default = []; 49 + type = types.listOf types.path; 50 + description = "List of packages for which gsettings are overridden."; 51 + }; 52 + 53 + debug = mkEnableOption "gnome-session debug messages"; 54 + 55 + }; 56 + 57 + environment.pantheon.excludePackages = mkOption { 58 + default = []; 59 + example = literalExample "[ pkgs.pantheon.elementary-camera ]"; 60 + type = types.listOf types.package; 61 + description = "Which packages pantheon should exclude from the default environment"; 62 + }; 63 + 64 + }; 65 + 66 + 67 + config = mkIf cfg.enable { 68 + 69 + services.xserver.displayManager.extraSessionFilePackages = [ pkgs.pantheon.elementary-session-settings ]; 70 + 71 + # Ensure lightdm is used when Pantheon is enabled 72 + # Without it screen locking will be nonfunctional because of the use of lightlocker 73 + services.xserver.displayManager.lightdm.enable = mkDefault true; 74 + services.xserver.displayManager.lightdm.greeters.pantheon.enable = mkDefault true; 75 + 76 + # If not set manually Pantheon session cannot be started 77 + # Known issue of https://github.com/NixOS/nixpkgs/pull/43992 78 + services.xserver.desktopManager.default = mkForce "pantheon"; 79 + 80 + services.xserver.displayManager.sessionCommands = '' 81 + if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then 82 + ${concatMapStrings (p: '' 83 + if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then 84 + export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name} 85 + fi 86 + 87 + if [ -d "${p}/lib/girepository-1.0" ]; then 88 + export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0 89 + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib 90 + fi 91 + '') cfg.sessionPath} 92 + 93 + # Makes qt applications look less alien 94 + export QT_QPA_PLATFORMTHEME=gtk3 95 + export QT_STYLE_OVERRIDE=adwaita 96 + fi 97 + ''; 98 + 99 + hardware.bluetooth.enable = mkDefault true; 100 + hardware.pulseaudio.enable = mkDefault true; 101 + security.polkit.enable = true; 102 + services.accounts-daemon.enable = true; 103 + services.bamf.enable = true; 104 + services.colord.enable = mkDefault true; 105 + services.pantheon.files.enable = mkDefault true; 106 + services.tumbler.enable = mkDefault true; 107 + services.dbus.packages = mkMerge [ 108 + ([ pkgs.pantheon.switchboard-plug-power ]) 109 + (mkIf config.services.printing.enable ([pkgs.system-config-printer]) ) 110 + ]; 111 + services.pantheon.contractor.enable = true; 112 + services.geoclue2.enable = mkDefault true; 113 + # pantheon has pantheon-agent-geoclue2 114 + services.geoclue2.enableDemoAgent = false; 115 + services.gnome3.at-spi2-core.enable = true; 116 + services.gnome3.evolution-data-server.enable = true; 117 + # TODO: gnome-keyring's xdg autostarts will still be in the environment (from elementary-session-settings) if disabled forcefully 118 + services.gnome3.gnome-keyring.enable = true; 119 + services.gnome3.gvfs.enable = true; 120 + services.gnome3.rygel.enable = true; 121 + services.gsignond.enable = true; 122 + services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ]; 123 + services.udev.packages = [ pkgs.pantheon.elementary-settings-daemon ]; 124 + services.udisks2.enable = true; 125 + services.upower.enable = config.powerManagement.enable; 126 + services.xserver.libinput.enable = mkDefault true; 127 + services.xserver.updateDbusEnvironment = true; 128 + services.zeitgeist.enable = true; 129 + 130 + networking.networkmanager.enable = mkDefault true; 131 + networking.networkmanager.basePackages = 132 + { inherit (pkgs) networkmanager modemmanager wpa_supplicant; 133 + inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc 134 + networkmanager-openconnect networkmanager-fortisslvpn 135 + networkmanager-iodine networkmanager-l2tp; }; 136 + 137 + # Override GSettings schemas 138 + environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas"; 139 + 140 + environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1"; 141 + 142 + environment.variables.GIO_EXTRA_MODULES = [ 143 + "${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules" 144 + "${pkgs.gnome3.glib-networking.out}/lib/gio/modules" 145 + "${pkgs.gnome3.gvfs}/lib/gio/modules" 146 + ]; 147 + 148 + environment.pathsToLink = [ 149 + # FIXME: modules should link subdirs of `/share` rather than relying on this 150 + "/share" 151 + ]; 152 + 153 + environment.systemPackages = pkgs.pantheon.artwork ++ pkgs.pantheon.desktop ++ pkgs.pantheon.services ++ cfg.sessionPath 154 + ++ (pkgs.gnome3.removePackagesByName pkgs.pantheon.apps config.environment.pantheon.excludePackages) 155 + ++ (with pkgs.gnome3; 156 + [ 157 + adwaita-icon-theme 158 + dconf 159 + epiphany 160 + evince 161 + file-roller 162 + geary 163 + gnome-bluetooth 164 + gnome-font-viewer 165 + gnome-power-manager 166 + ]) 167 + ++ (with pkgs; 168 + [ 169 + adwaita-qt 170 + desktop-file-utils 171 + glib 172 + glib-networking 173 + gnome-menus 174 + gtk3.out 175 + hicolor-icon-theme 176 + lightlocker 177 + plank 178 + qgnomeplatform 179 + shared-mime-info 180 + sound-theme-freedesktop 181 + xdg-user-dirs 182 + ]); 183 + 184 + fonts.fonts = with pkgs; [ 185 + opensans-ttf 186 + roboto-mono 187 + ]; 188 + fonts.fontconfig.defaultFonts = { 189 + monospace = [ "Roboto Mono" ]; 190 + sansSerif = [ "Open Sans" ]; 191 + }; 192 + 193 + }; 194 + 195 + }
+47
nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
···
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + 7 + dmcfg = config.services.xserver.displayManager; 8 + ldmcfg = dmcfg.lightdm; 9 + cfg = ldmcfg.greeters.pantheon; 10 + 11 + xgreeters = pkgs.linkFarm "pantheon-greeter-xgreeters" [{ 12 + path = "${pkgs.pantheon.elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop"; 13 + name = "io.elementary.greeter.desktop"; 14 + }]; 15 + 16 + in 17 + { 18 + options = { 19 + 20 + services.xserver.displayManager.lightdm.greeters.pantheon = { 21 + 22 + enable = mkOption { 23 + type = types.bool; 24 + default = false; 25 + description = '' 26 + Whether to enable elementary-greeter as the lightdm greeter. 27 + ''; 28 + }; 29 + 30 + }; 31 + 32 + }; 33 + 34 + config = mkIf (ldmcfg.enable && cfg.enable) { 35 + 36 + services.xserver.displayManager.lightdm.greeters.gtk.enable = false; 37 + 38 + services.xserver.displayManager.lightdm.greeter = mkDefault { 39 + package = xgreeters; 40 + name = "io.elementary.greeter"; 41 + }; 42 + 43 + environment.etc."lightdm/io.elementary.greeter.conf".source = "${pkgs.pantheon.elementary-greeter}/etc/lightdm/io.elementary.greeter.conf"; 44 + environment.etc."wingpanel.d/io.elementary.greeter.whitelist".source = "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.whitelist"; 45 + 46 + }; 47 + }
+1
nixos/modules/services/x11/display-managers/lightdm.nix
··· 81 ./lightdm-greeters/gtk.nix 82 ./lightdm-greeters/mini.nix 83 ./lightdm-greeters/enso-os.nix 84 ]; 85 86 options = {
··· 81 ./lightdm-greeters/gtk.nix 82 ./lightdm-greeters/mini.nix 83 ./lightdm-greeters/enso-os.nix 84 + ./lightdm-greeters/pantheon.nix 85 ]; 86 87 options = {
+1
nixos/release-combined.nix
··· 68 (all nixos.tests.firefox) 69 (all nixos.tests.firewall) 70 (except ["aarch64-linux"] nixos.tests.gnome3) 71 nixos.tests.installer.zfsroot.x86_64-linux or [] # ZFS is 64bit only 72 (except ["aarch64-linux"] nixos.tests.installer.lvm) 73 (except ["aarch64-linux"] nixos.tests.installer.luksroot)
··· 68 (all nixos.tests.firefox) 69 (all nixos.tests.firewall) 70 (except ["aarch64-linux"] nixos.tests.gnome3) 71 + (except ["aarch64-linux"] nixos.tests.pantheon) 72 nixos.tests.installer.zfsroot.x86_64-linux or [] # ZFS is 64bit only 73 (except ["aarch64-linux"] nixos.tests.installer.lvm) 74 (except ["aarch64-linux"] nixos.tests.installer.luksroot)
+55
nixos/tests/pantheon.nix
···
··· 1 + import ./make-test.nix ({ pkgs, ...} : 2 + 3 + { 4 + name = "pantheon"; 5 + meta = with pkgs.stdenv.lib.maintainers; { 6 + maintainers = [ worldofpeace ]; 7 + }; 8 + 9 + machine = { ... }: 10 + 11 + { 12 + imports = [ ./common/user-account.nix ]; 13 + 14 + services.xserver.enable = true; 15 + services.xserver.desktopManager.pantheon.enable = true; 16 + 17 + virtualisation.memorySize = 1024; 18 + }; 19 + 20 + enableOCR = true; 21 + 22 + testScript = { nodes, ... }: let 23 + user = nodes.machine.config.users.users.alice; 24 + in '' 25 + startAll; 26 + 27 + # Wait for display manager to start 28 + $machine->waitForText(qr/${user.description}/); 29 + $machine->screenshot("lightdm"); 30 + 31 + # Log in 32 + $machine->sendChars("${user.password}\n"); 33 + $machine->waitForFile("/home/alice/.Xauthority"); 34 + $machine->succeed("xauth merge ~alice/.Xauthority"); 35 + 36 + # Check if "pantheon-shell" components actually start 37 + $machine->waitUntilSucceeds("pgrep gala"); 38 + $machine->waitForWindow(qr/gala/); 39 + $machine->waitUntilSucceeds("pgrep wingpanel"); 40 + $machine->waitForWindow("wingpanel"); 41 + $machine->waitUntilSucceeds("pgrep plank"); 42 + $machine->waitForWindow(qr/plank/); 43 + 44 + # Check that logging in has given the user ownership of devices. 45 + $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); 46 + 47 + # Open elementary terminal 48 + $machine->execute("su - alice -c 'DISPLAY=:0.0 io.elementary.terminal &'"); 49 + $machine->waitForWindow(qr/io.elementary.terminal/); 50 + 51 + # Take a screenshot of the desktop 52 + $machine->sleep(20); 53 + $machine->screenshot("screen"); 54 + ''; 55 + })
+4 -4
pkgs/applications/audio/vocal/default.nix
··· 1 - { stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, vala_0_40, gtk3, libxml2, granite, webkitgtk, clutter-gtk 2 , clutter-gst, libunity, libnotify, sqlite, gst_all_1, libsoup, json-glib, gnome3, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 20 libxml2 21 ninja 22 pkgconfig 23 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 24 wrapGAppsHook 25 ]; 26 27 buildInputs = with gst_all_1; [ 28 clutter-gst 29 clutter-gtk 30 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 31 gnome3.libgee 32 - granite 33 gst-plugins-base 34 gst-plugins-good 35 gstreamer
··· 1 + { stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, pantheon, gtk3, libxml2, webkitgtk, clutter-gtk 2 , clutter-gst, libunity, libnotify, sqlite, gst_all_1, libsoup, json-glib, gnome3, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 20 libxml2 21 ninja 22 pkgconfig 23 + pantheon.vala 24 wrapGAppsHook 25 ]; 26 27 buildInputs = with gst_all_1; [ 28 clutter-gst 29 clutter-gtk 30 + pantheon.elementary-icon-theme 31 gnome3.libgee 32 + pantheon.granite 33 gst-plugins-base 34 gst-plugins-good 35 gstreamer
+6 -6
pkgs/applications/editors/quilter/default.nix
··· 1 - { stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3 2 - , granite, gtk3, desktop-file-utils, gnome3, gtksourceview, webkitgtk, gtkspell3 3 - , discount, gobject-introspection, wrapGAppsHook }: 4 5 stdenv.mkDerivation rec { 6 pname = "quilter"; ··· 22 ninja 23 pkgconfig 24 python3 25 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 26 wrapGAppsHook 27 ]; 28 29 buildInputs = [ 30 discount 31 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 32 gnome3.libgee 33 - granite 34 gtk3 35 gtksourceview 36 gtkspell3
··· 1 + { stdenv, fetchFromGitHub, fetchpatch, pkgconfig, meson, ninja, python3 2 + , gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon 3 + , gnome3, discount, gobject-introspection, wrapGAppsHook }: 4 5 stdenv.mkDerivation rec { 6 pname = "quilter"; ··· 22 ninja 23 pkgconfig 24 python3 25 + pantheon.vala 26 wrapGAppsHook 27 ]; 28 29 buildInputs = [ 30 discount 31 + pantheon.elementary-icon-theme 32 + pantheon.granite 33 gnome3.libgee 34 gtk3 35 gtksourceview 36 gtkspell3
+5 -5
pkgs/applications/misc/notejot/default.nix
··· 1 - { stdenv, fetchFromGitHub, vala_0_40, pkgconfig, meson, ninja, python3, granite 2 - , gtk3, gnome3, gtksourceview, json-glib, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { 5 pname = "notejot"; ··· 20 ninja 21 pkgconfig 22 python3 23 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 24 wrapGAppsHook 25 ]; 26 27 buildInputs = [ 28 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 29 gnome3.libgee 30 - granite 31 gtk3 32 gtksourceview 33 json-glib
··· 1 + { stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, pantheon 2 + , gtk3, gtksourceview, json-glib, gnome3, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { 5 pname = "notejot"; ··· 20 ninja 21 pkgconfig 22 python3 23 + pantheon.vala 24 wrapGAppsHook 25 ]; 26 27 buildInputs = [ 28 + pantheon.elementary-icon-theme 29 + pantheon.granite 30 gnome3.libgee 31 gtk3 32 gtksourceview 33 json-glib
+9 -9
pkgs/applications/misc/regextester/default.nix
··· 4 , libxml2 5 , pkgconfig 6 , glib 7 - , granite 8 , gtk3 9 , gnome3 10 , meson 11 , ninja 12 , gobject-introspection 13 , gsettings-desktop-schemas 14 - , vala_0_40 15 , wrapGAppsHook }: 16 17 stdenv.mkDerivation rec { ··· 26 }; 27 28 nativeBuildInputs = [ 29 - pkgconfig 30 - meson 31 - ninja 32 gettext 33 gobject-introspection 34 libxml2 35 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 36 wrapGAppsHook 37 ]; 38 buildInputs = [ 39 glib 40 - granite 41 - gtk3 42 - gnome3.defaultIconTheme 43 gnome3.libgee 44 gsettings-desktop-schemas 45 ]; 46 47 postInstall = ''
··· 4 , libxml2 5 , pkgconfig 6 , glib 7 , gtk3 8 , gnome3 9 , meson 10 , ninja 11 , gobject-introspection 12 , gsettings-desktop-schemas 13 + , pantheon 14 , wrapGAppsHook }: 15 16 stdenv.mkDerivation rec { ··· 25 }; 26 27 nativeBuildInputs = [ 28 + pantheon.vala 29 gettext 30 gobject-introspection 31 libxml2 32 + meson 33 + ninja 34 + pkgconfig 35 wrapGAppsHook 36 ]; 37 + 38 buildInputs = [ 39 + pantheon.elementary-icon-theme 40 + pantheon.granite 41 glib 42 gnome3.libgee 43 gsettings-desktop-schemas 44 + gtk3 45 ]; 46 47 postInstall = ''
+4 -4
pkgs/applications/misc/sequeler/default.nix
··· 1 { stdenv, fetchFromGitHub 2 - , meson, ninja, pkgconfig, vala, gobject-introspection, gettext, wrapGAppsHook, python3, desktop-file-utils 3 - , gtk3, glib, granite, libgee, libgda, gtksourceview, libxml2, libsecret, libfixposix, libssh2 }: 4 5 6 let ··· 20 sha256 = "0sxmky27pl0aqnh857xb54rnfg1kbr2smdzyrzw67cbv00f6d30p"; 21 }; 22 23 - nativeBuildInputs = [ meson ninja pkgconfig vala gobject-introspection gettext wrapGAppsHook python3 desktop-file-utils ]; 24 25 - buildInputs = [ gtk3 glib granite libgee sqlGda gtksourceview libxml2 libsecret libfixposix libssh2 ]; 26 27 postPatch = '' 28 chmod +x build-aux/meson_post_install.py
··· 1 { stdenv, fetchFromGitHub 2 + , meson, ninja, pkgconfig, pantheon, gobject-introspection, gettext, wrapGAppsHook, python3, desktop-file-utils 3 + , gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libfixposix, libssh2 }: 4 5 6 let ··· 20 sha256 = "0sxmky27pl0aqnh857xb54rnfg1kbr2smdzyrzw67cbv00f6d30p"; 21 }; 22 23 + nativeBuildInputs = [ meson ninja pkgconfig pantheon.vala gobject-introspection gettext wrapGAppsHook python3 desktop-file-utils ]; 24 25 + buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libfixposix libssh2 ]; 26 27 postPatch = '' 28 chmod +x build-aux/meson_post_install.py
+4 -5
pkgs/applications/misc/tootle/default.nix
··· 1 { stdenv, fetchFromGitHub 2 , meson, ninja, pkgconfig, python3 3 - , gnome3, vala_0_40, gobject-introspection, wrapGAppsHook 4 - , gtk3, granite 5 - , json-glib, glib, glib-networking, hicolor-icon-theme 6 }: 7 8 let ··· 24 ninja 25 pkgconfig 26 python3 27 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 28 wrapGAppsHook 29 ]; 30 buildInputs = [ 31 - gtk3 granite json-glib glib glib-networking hicolor-icon-theme 32 gnome3.libgee gnome3.libsoup gnome3.gsettings-desktop-schemas 33 ]; 34
··· 1 { stdenv, fetchFromGitHub 2 , meson, ninja, pkgconfig, python3 3 + , gnome3, pantheon, gobject-introspection, wrapGAppsHook 4 + , gtk3, json-glib, glib, glib-networking, hicolor-icon-theme 5 }: 6 7 let ··· 23 ninja 24 pkgconfig 25 python3 26 + pantheon.vala 27 wrapGAppsHook 28 ]; 29 buildInputs = [ 30 + gtk3 pantheon.granite json-glib glib glib-networking hicolor-icon-theme 31 gnome3.libgee gnome3.libsoup gnome3.gsettings-desktop-schemas 32 ]; 33
+3 -3
pkgs/applications/networking/ftp/taxi/default.nix
··· 1 - { stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, granite 2 , gtk3, gnome3, libsoup, libsecret, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 15 }; 16 17 nativeBuildInputs = [ 18 gobject-introspection 19 meson 20 ninja 21 pkgconfig 22 python3 23 - vala 24 wrapGAppsHook 25 ]; 26 27 buildInputs = [ 28 gnome3.libgee 29 - granite 30 gtk3 31 libsecret 32 libsoup
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3 2 , gtk3, gnome3, libsoup, libsecret, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 15 }; 16 17 nativeBuildInputs = [ 18 + pantheon.vala 19 gobject-introspection 20 meson 21 ninja 22 pkgconfig 23 python3 24 wrapGAppsHook 25 ]; 26 27 buildInputs = [ 28 + pantheon.granite 29 gnome3.libgee 30 gtk3 31 libsecret 32 libsoup
+9 -11
pkgs/applications/networking/transporter/default.nix
··· 3 , meson 4 , ninja 5 , pkgconfig 6 - , granite 7 - , vala_0_40 8 , python3 9 , gnome3 10 , libxml2 11 , gettext ··· 31 nativeBuildInputs = [ 32 appstream-glib 33 desktop-file-utils 34 gettext 35 gobject-introspection # For setup hook 36 libxml2 37 meson 38 ninja 39 pkgconfig 40 - vala_0_40 41 python3 42 wrapGAppsHook 43 ]; 44 45 - buildInputs = with gnome3; [ 46 - defaultIconTheme # If I omit this there's no icons in KDE 47 - glib 48 - granite 49 - gsettings-desktop-schemas 50 gtk3 51 - libgee 52 magic-wormhole 53 ]; 54 ··· 59 ''; 60 61 postPatch = '' 62 - chmod +x ./meson/post_install.py 63 - patchShebangs ./meson/post_install.py 64 ''; 65 66 meta = with stdenv.lib; {
··· 3 , meson 4 , ninja 5 , pkgconfig 6 + , gtk3 7 , python3 8 + , pantheon 9 , gnome3 10 , libxml2 11 , gettext ··· 31 nativeBuildInputs = [ 32 appstream-glib 33 desktop-file-utils 34 + pantheon.vala 35 gettext 36 gobject-introspection # For setup hook 37 libxml2 38 meson 39 ninja 40 pkgconfig 41 python3 42 wrapGAppsHook 43 ]; 44 45 + buildInputs = [ 46 + pantheon.elementary-icon-theme 47 + gnome3.libgee 48 + pantheon.granite 49 gtk3 50 magic-wormhole 51 ]; 52 ··· 57 ''; 58 59 postPatch = '' 60 + chmod +x meson/post_install.py 61 + patchShebangs meson/post_install.py 62 ''; 63 64 meta = with stdenv.lib; {
+1 -1
pkgs/applications/networking/weather/meteo/default.nix
··· 1 - { stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, granite, gtk3 2 , gnome3, json-glib, libsoup, clutter, clutter-gtk, libchamplain, webkitgtk 3 , libappindicator, desktop-file-utils, appstream, gobject-introspection, wrapGAppsHook }: 4
··· 1 + { stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3 2 , gnome3, json-glib, libsoup, clutter, clutter-gtk, libchamplain, webkitgtk 3 , libappindicator, desktop-file-utils, appstream, gobject-introspection, wrapGAppsHook }: 4
+4 -4
pkgs/applications/office/aesop/default.nix
··· 1 - { stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3, granite, gtk3 2 , gnome3, desktop-file-utils, json-glib, libsoup, poppler, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 21 ninja 22 pkgconfig 23 python3 24 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 25 wrapGAppsHook 26 ]; 27 28 buildInputs = [ 29 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 30 gnome3.libgee 31 - granite 32 gtk3 33 json-glib 34 libsoup
··· 1 + { stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, ninja, python3, gtk3 2 , gnome3, desktop-file-utils, json-glib, libsoup, poppler, gobject-introspection, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 21 ninja 22 pkgconfig 23 python3 24 + pantheon.vala 25 wrapGAppsHook 26 ]; 27 28 buildInputs = [ 29 + pantheon.elementary-icon-theme 30 gnome3.libgee 31 + pantheon.granite 32 gtk3 33 json-glib 34 libsoup
+6 -6
pkgs/applications/office/bookworm/default.nix
··· 1 - { stdenv, fetchFromGitHub, fetchpatch, vala_0_40, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, granite, gnome3 2 , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 20 ninja 21 pkgconfig 22 python3 23 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 24 wrapGAppsHook 25 ]; 26 27 - buildInputs = with gnome3; [ 28 glib 29 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 30 - granite 31 gtk3 32 html2text 33 - libgee 34 poppler 35 python2 36 sqlite
··· 1 + { stdenv, fetchFromGitHub, fetchpatch, pantheon, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk 2 , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }: 3 4 stdenv.mkDerivation rec { ··· 20 ninja 21 pkgconfig 22 python3 23 + pantheon.vala 24 wrapGAppsHook 25 ]; 26 27 + buildInputs = [ 28 + pantheon.elementary-icon-theme 29 + pantheon.granite 30 glib 31 + gnome3.libgee 32 gtk3 33 html2text 34 poppler 35 python2 36 sqlite
+8 -9
pkgs/applications/office/spice-up/default.nix
··· 4 , libxml2 5 , pkgconfig 6 , gtk3 7 - , granite 8 , gnome3 9 , gobject-introspection 10 , json-glib ··· 13 , libgudev 14 , libevdev 15 , libsoup 16 - , vala_0_40 17 , wrapGAppsHook }: 18 19 stdenv.mkDerivation rec { ··· 30 USER = "nix-build-user"; 31 32 nativeBuildInputs = [ 33 - pkgconfig 34 - wrapGAppsHook 35 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 36 cmake 37 - ninja 38 gettext 39 libxml2 40 - gobject-introspection # For setup hook 41 ]; 42 buildInputs = [ 43 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 44 gnome3.libgee 45 - granite 46 gtk3 47 json-glib 48 libevdev
··· 4 , libxml2 5 , pkgconfig 6 , gtk3 7 , gnome3 8 , gobject-introspection 9 , json-glib ··· 12 , libgudev 13 , libevdev 14 , libsoup 15 + , pantheon 16 , wrapGAppsHook }: 17 18 stdenv.mkDerivation rec { ··· 29 USER = "nix-build-user"; 30 31 nativeBuildInputs = [ 32 cmake 33 gettext 34 + gobject-introspection # For setup hook 35 libxml2 36 + ninja 37 + pkgconfig 38 + pantheon.vala 39 + wrapGAppsHook 40 ]; 41 buildInputs = [ 42 + pantheon.elementary-icon-theme 43 + pantheon.granite 44 gnome3.libgee 45 gtk3 46 json-glib 47 libevdev
+6 -8
pkgs/applications/science/math/nasc/default.nix
··· 1 { stdenv 2 , fetchFromGitHub 3 - , fetchpatch 4 , pkgconfig 5 , gtk3 6 - , granite 7 , gnome3 8 , cmake 9 - , vala_0_40 10 , libqalculate 11 , gobject-introspection 12 , wrapGAppsHook }: ··· 28 ''; 29 30 nativeBuildInputs = [ 31 - pkgconfig 32 - wrapGAppsHook 33 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 34 cmake 35 gobject-introspection # for setup-hook 36 ]; 37 38 buildInputs = [ 39 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 40 gnome3.gtksourceview 41 gnome3.libgee 42 gnome3.libsoup 43 - granite 44 gtk3 45 libqalculate 46 ];
··· 1 { stdenv 2 , fetchFromGitHub 3 , pkgconfig 4 , gtk3 5 + , pantheon 6 , gnome3 7 , cmake 8 , libqalculate 9 , gobject-introspection 10 , wrapGAppsHook }: ··· 26 ''; 27 28 nativeBuildInputs = [ 29 cmake 30 + pantheon.vala 31 gobject-introspection # for setup-hook 32 + pkgconfig 33 + wrapGAppsHook 34 ]; 35 36 buildInputs = [ 37 + pantheon.elementary-icon-theme 38 gnome3.gtksourceview 39 gnome3.libgee 40 gnome3.libsoup 41 + pantheon.granite 42 gtk3 43 libqalculate 44 ];
+2 -2
pkgs/data/icons/faba-icon-theme/default.nix
··· 1 - { stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, elementary-icon-theme }: 2 3 stdenv.mkDerivation rec { 4 name = "${package-name}-${version}"; ··· 12 sha256 = "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"; 13 }; 14 15 - nativeBuildInputs = [ meson ninja python3 gtk3 elementary-icon-theme ]; 16 17 postPatch = '' 18 patchShebangs meson/post_install.py
··· 1 + { stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon }: 2 3 stdenv.mkDerivation rec { 4 name = "${package-name}-${version}"; ··· 12 sha256 = "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"; 13 }; 14 15 + nativeBuildInputs = [ meson ninja python3 gtk3 pantheon.elementary-icon-theme ]; 16 17 postPatch = '' 18 patchShebangs meson/post_install.py
+2 -2
pkgs/desktops/deepin/deepin-wm/default.nix
··· 1 { stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, vala, gnome3, 2 - bamf, clutter-gtk, granite, libcanberra-gtk3, libwnck3, 3 deepin-mutter, deepin-wallpapers, deepin-desktop-schemas, 4 hicolor-icon-theme, deepin }: 5 ··· 28 gnome3.libgee 29 bamf 30 clutter-gtk 31 - granite 32 libcanberra-gtk3 33 libwnck3 34 deepin-mutter
··· 1 { stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, vala, gnome3, 2 + bamf, clutter-gtk, pantheon, libcanberra-gtk3, libwnck3, 3 deepin-mutter, deepin-wallpapers, deepin-desktop-schemas, 4 hicolor-icon-theme, deepin }: 5 ··· 28 gnome3.libgee 29 bamf 30 clutter-gtk 31 + pantheon.granite 32 libcanberra-gtk3 33 libwnck3 34 deepin-mutter
+58
pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig 2 + , meson, ninja, vala, desktop-file-utils, libxml2 3 + , gtk3, python3, granite, libgee, gobject-introspection 4 + , elementary-icon-theme, appstream, wrapGAppsHook }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "calculator"; 8 + version = "1.5.1"; 9 + 10 + name = "elementary-${pname}-${version}"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "elementary"; 14 + repo = pname; 15 + rev = version; 16 + sha256 = "0vc27kjmfkly2jkqjiyzlybxyjqhwal3xrxca5b4abfgb379yswa"; 17 + }; 18 + 19 + passthru = { 20 + updateScript = pantheon.updateScript { 21 + repoName = pname; 22 + attrPath = "elementary-${pname}"; 23 + }; 24 + }; 25 + 26 + nativeBuildInputs = [ 27 + appstream 28 + desktop-file-utils 29 + gobject-introspection 30 + libxml2 31 + meson 32 + ninja 33 + pkgconfig 34 + python3 35 + vala 36 + wrapGAppsHook 37 + ]; 38 + 39 + buildInputs = [ 40 + elementary-icon-theme 41 + granite 42 + gtk3 43 + libgee 44 + ]; 45 + 46 + postPatch = '' 47 + chmod +x meson/post_install.py 48 + patchShebangs meson/post_install.py 49 + ''; 50 + 51 + meta = with stdenv.lib; { 52 + homepage = https://github.com/elementary/calculator; 53 + description = "Calculator app designed for elementary OS"; 54 + license = licenses.gpl3Plus; 55 + platforms = platforms.linux; 56 + maintainers = pantheon.maintainers; 57 + }; 58 + }
+66
pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson 2 + , ninja, vala, desktop-file-utils, gtk3, granite, libgee 3 + , geoclue2, libchamplain, clutter, folks, geocode-glib, python3 4 + , libnotify, libical, evolution-data-server, appstream-glib 5 + , elementary-icon-theme, gobject-introspection, wrapGAppsHook }: 6 + 7 + stdenv.mkDerivation rec { 8 + pname = "calendar"; 9 + version = "4.2.3"; 10 + 11 + name = "elementary-${pname}-${version}"; 12 + 13 + src = fetchFromGitHub { 14 + owner = "elementary"; 15 + repo = pname; 16 + rev = version; 17 + sha256 = "100wy8lkp4nrxj57ywyx44ckm3k7n8h5l6av92hr5pyx8fxn9m48"; 18 + }; 19 + 20 + passthru = { 21 + updateScript = pantheon.updateScript { 22 + repoName = pname; 23 + attrPath = "elementary-${pname}"; 24 + }; 25 + }; 26 + 27 + nativeBuildInputs = [ 28 + appstream-glib 29 + desktop-file-utils 30 + gobject-introspection 31 + meson 32 + ninja 33 + pkgconfig 34 + python3 35 + vala 36 + wrapGAppsHook 37 + ]; 38 + 39 + buildInputs = [ 40 + clutter 41 + elementary-icon-theme 42 + evolution-data-server 43 + folks 44 + geoclue2 45 + geocode-glib 46 + granite 47 + gtk3 48 + libchamplain 49 + libgee 50 + libical 51 + libnotify 52 + ]; 53 + 54 + postPatch = '' 55 + chmod +x meson/post_install.py 56 + patchShebangs meson/post_install.py 57 + ''; 58 + 59 + meta = with stdenv.lib; { 60 + description = "Desktop calendar app designed for elementary OS"; 61 + homepage = https://github.com/elementary/calendar; 62 + license = licenses.gpl3Plus; 63 + platforms = platforms.linux; 64 + maintainers = pantheon.maintainers; 65 + }; 66 + }
+64
pkgs/desktops/pantheon/apps/elementary-camera/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala 2 + , desktop-file-utils, python3, gettext, libxml2, gtk3, granite, libgee, gst_all_1 3 + , libcanberra, clutter-gtk, clutter-gst, elementary-icon-theme, appstream, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "camera"; 7 + version = "1.0.3"; 8 + 9 + name = "elementary-${pname}-${version}"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "elementary"; 13 + repo = pname; 14 + rev = version; 15 + sha256 = "05rjymflhwbkw8yc57rgi9n7lrhf4dpvfvlifdnazyqn9iiaxc46"; 16 + }; 17 + 18 + passthru = { 19 + updateScript = pantheon.updateScript { 20 + repoName = pname; 21 + attrPath = "elementary-${pname}"; 22 + }; 23 + }; 24 + 25 + nativeBuildInputs = [ 26 + appstream 27 + desktop-file-utils 28 + gettext 29 + libxml2 30 + meson 31 + ninja 32 + pkgconfig 33 + python3 34 + vala 35 + wrapGAppsHook 36 + ]; 37 + 38 + buildInputs = [ 39 + clutter-gst 40 + clutter-gtk 41 + elementary-icon-theme 42 + granite 43 + gst_all_1.gst-plugins-bad 44 + gst_all_1.gst-plugins-base 45 + gst_all_1.gst-plugins-good 46 + gst_all_1.gstreamer 47 + gtk3 48 + libcanberra 49 + libgee 50 + ]; 51 + 52 + postPatch = '' 53 + chmod +x meson/post_install.py 54 + patchShebangs meson/post_install.py 55 + ''; 56 + 57 + meta = with stdenv.lib; { 58 + description = "Camera app designed for elementary OS"; 59 + homepage = https://github.com/elementary/camera; 60 + license = licenses.gpl2Plus; 61 + platforms = platforms.linux; 62 + maintainers = pantheon.maintainers; 63 + }; 64 + }
+80
pkgs/desktops/pantheon/apps/elementary-code/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, substituteAll 2 + , python3, glibcLocales, desktop-file-utils, gtk3, granite, libgee, elementary-icon-theme 3 + , appstream, libpeas, editorconfig-core-c, gtksourceview3, gtkspell3, libsoup 4 + , vte, webkitgtk, zeitgeist, ctags, libgit2-glib, wrapGAppsHook }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "code"; 8 + version = "3.0.2"; 9 + 10 + name = "elementary-${pname}-${version}"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "elementary"; 14 + repo = pname; 15 + rev = version; 16 + sha256 = "0zmm4a7galrs9phiplf6cygwq3rplghv7r8g47mi4nlndgxqyssg"; 17 + }; 18 + 19 + passthru = { 20 + updateScript = pantheon.updateScript { 21 + repoName = pname; 22 + attrPath = "elementary-${pname}"; 23 + }; 24 + }; 25 + 26 + nativeBuildInputs = [ 27 + appstream 28 + desktop-file-utils 29 + glibcLocales 30 + meson 31 + ninja 32 + pkgconfig 33 + python3 34 + vala 35 + wrapGAppsHook 36 + ]; 37 + 38 + buildInputs = [ 39 + ctags 40 + elementary-icon-theme 41 + editorconfig-core-c 42 + granite 43 + gtk3 44 + gtksourceview3 45 + gtkspell3 46 + libgee 47 + libgit2-glib 48 + libpeas 49 + libsoup 50 + vte 51 + webkitgtk 52 + zeitgeist 53 + ]; 54 + 55 + # See: https://github.com/elementary/code/pull/626 56 + LIBRARY_PATH = stdenv.lib.makeLibraryPath [ editorconfig-core-c ]; 57 + 58 + # install script fails with UnicodeDecodeError because of printing a fancy elipsis character 59 + LC_ALL = "en_US.UTF-8"; 60 + 61 + # ctags needed in path by outline plugin 62 + preFixup = '' 63 + gappsWrapperArgs+=( 64 + --prefix PATH : "${stdenv.lib.makeBinPath [ ctags ]}" 65 + ) 66 + ''; 67 + 68 + postPatch = '' 69 + chmod +x meson/post_install.py 70 + patchShebangs meson/post_install.py 71 + ''; 72 + 73 + meta = with stdenv.lib; { 74 + description = "Code editor designed for elementary OS"; 75 + homepage = https://github.com/elementary/code; 76 + license = licenses.gpl3Plus; 77 + platforms = platforms.linux; 78 + maintainers = pantheon.maintainers; 79 + }; 80 + }
+77
pkgs/desktops/pantheon/apps/elementary-files/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, gettext, vala 2 + , python3, desktop-file-utils, intltool, libcanberra, gtk3, libgee, granite 3 + , libnotify, libunity, pango, plank, bamf, sqlite, libdbusmenu-gtk3, zeitgeist 4 + , glib-networking, elementary-icon-theme, gobject-introspection, wrapGAppsHook }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "files"; 8 + version = "4.1.3"; 9 + 10 + name = "elementary-${pname}-${version}"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "elementary"; 14 + repo = pname; 15 + rev = version; 16 + sha256 = "0vz6m6kqm9r1scj1jdljbzh019skj8fhf916011wkdfzdpc1zlac"; 17 + }; 18 + 19 + passthru = { 20 + updateScript = pantheon.updateScript { 21 + repoName = pname; 22 + attrPath = "elementary-${pname}"; 23 + }; 24 + }; 25 + 26 + nativeBuildInputs = [ 27 + desktop-file-utils 28 + gettext 29 + glib-networking 30 + gobject-introspection 31 + intltool 32 + meson 33 + ninja 34 + pkgconfig 35 + python3 36 + vala 37 + wrapGAppsHook 38 + ]; 39 + 40 + buildInputs = [ 41 + bamf 42 + elementary-icon-theme 43 + granite 44 + gtk3 45 + libcanberra 46 + libdbusmenu-gtk3 47 + libgee 48 + libnotify 49 + libunity 50 + pango 51 + plank 52 + sqlite 53 + zeitgeist 54 + ]; 55 + 56 + patches = [ ./hardcode-gsettings.patch ]; 57 + 58 + postPatch = '' 59 + chmod +x meson/post_install.py 60 + patchShebangs meson/post_install.py 61 + 62 + substituteInPlace filechooser-module/FileChooserDialog.vala --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas 63 + ''; 64 + 65 + # xdg.mime will create this 66 + postInstall = '' 67 + rm $out/share/applications/mimeinfo.cache 68 + ''; 69 + 70 + meta = with stdenv.lib; { 71 + description = "File browser designed for elementary OS"; 72 + homepage = https://github.com/elementary/files; 73 + license = licenses.lgpl3; 74 + platforms = platforms.linux; 75 + maintainers = pantheon.maintainers; 76 + }; 77 + }
+22
pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
···
··· 1 + diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala 2 + index cb7c3c49..8b1899d1 100644 3 + --- a/filechooser-module/FileChooserDialog.vala 4 + +++ b/filechooser-module/FileChooserDialog.vala 5 + @@ -57,10 +57,15 @@ public class CustomFileChooserDialog : Object { 6 + chooser_dialog.deletable = false; 7 + chooser_dialog.local_only = false; 8 + 9 + - var settings = new Settings ("io.elementary.files.preferences"); 10 + + SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); 11 + + SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false); 12 + + SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false); 13 + + 14 + + var settings = new Settings.full (preferences_schema, null, null); 15 + + 16 + is_single_click = settings.get_boolean ("single-click"); 17 + 18 + - var chooser_settings = new Settings ("io.elementary.files.file-chooser"); 19 + + var chooser_settings = new Settings.full (chooser_schema, null, null); 20 + 21 + assign_container_box (); 22 + remove_gtk_widgets ();
+78
pkgs/desktops/pantheon/apps/elementary-music/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson 2 + , ninja, vala, desktop-file-utils, libxml2, gtk3, granite 3 + , python3, libgee, clutter-gtk, json-glib, libgda, libgpod 4 + , libnotify, libpeas, libsoup, zeitgeist, gst_all_1, taglib 5 + , libdbusmenu, libsignon-glib, libaccounts-glib 6 + , elementary-icon-theme, wrapGAppsHook }: 7 + 8 + stdenv.mkDerivation rec { 9 + pname = "music"; 10 + version = "5.0.2"; 11 + 12 + name = "elementary-${pname}-${version}"; 13 + 14 + src = fetchFromGitHub { 15 + owner = "elementary"; 16 + repo = pname; 17 + rev = version; 18 + sha256 = "06mpikzdm01r9j7g15b7fgi4lcnp8cc0wmj17dfli5nmncxghx89"; 19 + }; 20 + 21 + passthru = { 22 + updateScript = pantheon.updateScript { 23 + repoName = pname; 24 + attrPath = "elementary-${pname}"; 25 + }; 26 + }; 27 + 28 + nativeBuildInputs = [ 29 + desktop-file-utils 30 + meson 31 + ninja 32 + pkgconfig 33 + python3 34 + vala 35 + wrapGAppsHook 36 + ]; 37 + 38 + buildInputs = with gst_all_1; [ 39 + clutter-gtk 40 + elementary-icon-theme 41 + granite 42 + gst-plugins-bad 43 + gst-plugins-base 44 + gst-plugins-good 45 + gst-plugins-ugly 46 + gstreamer 47 + gtk3 48 + json-glib 49 + libaccounts-glib 50 + libdbusmenu 51 + libgda 52 + libgee 53 + libgpod 54 + libsignon-glib 55 + libnotify 56 + libpeas 57 + libsoup 58 + taglib 59 + zeitgeist 60 + ]; 61 + 62 + mesonFlags = [ 63 + "-Dplugins=lastfm,audioplayer,cdrom,ipod" 64 + ]; 65 + 66 + postPatch = '' 67 + chmod +x meson/post_install.py 68 + patchShebangs meson/post_install.py 69 + ''; 70 + 71 + meta = with stdenv.lib; { 72 + description = "Music player and library designed for elementary OS"; 73 + homepage = https://github.com/elementary/music; 74 + license = licenses.lgpl2Plus; 75 + platforms = platforms.linux; 76 + maintainers = pantheon.maintainers; 77 + }; 78 + }
+80
pkgs/desktops/pantheon/apps/elementary-photos/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, desktop-file-utils 2 + , gtk3, glib, libaccounts-glib, libexif, libgee, geocode-glib, gexiv2,libgphoto2 3 + , granite, gst_all_1, libgudev, json-glib, libraw, librest, libsoup, sqlite 4 + , scour, webkitgtk, libwebp, appstream, libunity, wrapGAppsHook, gobject-introspection, elementary-icon-theme }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "photos"; 8 + version = "2.6.1"; 9 + 10 + name = "elementary-${pname}-${version}"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "elementary"; 14 + repo = pname; 15 + rev = version; 16 + sha256 = "063h6jr0p8v46w8bppsss1zlphx21xqwylh57qbyd5xi71z4gl1v"; 17 + }; 18 + 19 + passthru = { 20 + updateScript = pantheon.updateScript { 21 + repoName = pname; 22 + attrPath = "elementary-${pname}"; 23 + }; 24 + }; 25 + 26 + nativeBuildInputs = [ 27 + appstream 28 + desktop-file-utils 29 + gobject-introspection 30 + meson 31 + ninja 32 + pkgconfig 33 + vala 34 + wrapGAppsHook 35 + ]; 36 + 37 + buildInputs = with gst_all_1; [ 38 + elementary-icon-theme 39 + geocode-glib 40 + gexiv2 41 + granite 42 + gst-plugins-bad 43 + gst-plugins-base 44 + gst-plugins-good 45 + gst-plugins-ugly 46 + gstreamer 47 + gtk3 48 + json-glib 49 + libaccounts-glib 50 + libexif 51 + libgee 52 + libgphoto2 53 + libgudev 54 + libraw 55 + libsoup 56 + libunity 57 + libwebp 58 + librest 59 + scour 60 + sqlite 61 + webkitgtk 62 + ]; 63 + 64 + mesonFlags = [ 65 + "-Dplugins=false" 66 + ]; 67 + 68 + # This should be provided by a post_install.py script - See -> https://github.com/elementary/photos/pull/433 69 + postInstall = '' 70 + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas 71 + ''; 72 + 73 + meta = with stdenv.lib; { 74 + description = "Photo viewer and organizer designed for elementary OS"; 75 + homepage = https://github.com/elementary/photos; 76 + license = licenses.lgpl21Plus; 77 + platforms = platforms.linux; 78 + maintainers = pantheon.maintainers; 79 + }; 80 + }
+67
pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, callPackage 2 + , ninja, vala, python3, desktop-file-utils, gtk3, granite, libgee 3 + , libcanberra, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: 4 + 5 + let 6 + 7 + redacted-script = callPackage ./redacted-script.nix {}; 8 + 9 + in 10 + 11 + stdenv.mkDerivation rec { 12 + pname = "screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93 13 + version = "1.6.0"; 14 + 15 + name = "elementary-${pname}-${version}"; 16 + 17 + src = fetchFromGitHub { 18 + owner = "elementary"; 19 + repo = "screenshot"; 20 + rev = version; 21 + sha256 = "0hxgh7br12kw8bs2cdm2q9ivhnj2zb0i7fs43pkgf3z0fidjf1yv"; 22 + }; 23 + 24 + passthru = { 25 + updateScript = pantheon.updateScript { 26 + repoName = "screenshot"; 27 + attrPath = "elementary-${pname}"; 28 + }; 29 + }; 30 + 31 + nativeBuildInputs = [ 32 + desktop-file-utils 33 + gobject-introspection 34 + meson 35 + ninja 36 + pkgconfig 37 + python3 38 + vala 39 + wrapGAppsHook 40 + ]; 41 + 42 + buildInputs = [ 43 + elementary-icon-theme 44 + granite 45 + gtk3 46 + libcanberra 47 + libgee 48 + ]; 49 + 50 + postPatch = '' 51 + chmod +x meson/post_install.py 52 + patchShebangs meson/post_install.py 53 + ''; 54 + 55 + postInstall = '' 56 + mkdir -p $out/share/fonts/truetype 57 + cp -rva ${redacted-script}/share/fonts/truetype/redacted-elementary $out/share/fonts/truetype 58 + ''; 59 + 60 + meta = with stdenv.lib; { 61 + description = "Screenshot tool designed for elementary OS"; 62 + homepage = https://github.com/elementary/screenshot; 63 + license = licenses.lgpl3; 64 + platforms = platforms.linux; 65 + maintainers = pantheon.maintainers; 66 + }; 67 + }
+28
pkgs/desktops/pantheon/apps/elementary-screenshot-tool/redacted-script.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "elementary-redacted-script-${version}"; 5 + version = "5.1.0"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "elementary"; 9 + repo = "fonts"; 10 + rev = version; 11 + sha256 = "16x2w7w29k4jx2nwc5932h9rqvb216vxsziazisv2rpll74kn8b2"; 12 + }; 13 + 14 + dontConfigure = true; 15 + 16 + installPhase = '' 17 + mkdir -p $out/share/fonts/truetype/redacted-elementary 18 + cp -a redacted/*.ttf $out/share/fonts/truetype/redacted-elementary 19 + ''; 20 + 21 + meta = with stdenv.lib; { 22 + description = "Redacted Script Font for elementary"; 23 + homepage = https://github.com/elementary/fonts; 24 + license = licenses.ofl; 25 + maintainers = pantheon.maintainers; 26 + platforms = platforms.linux; 27 + }; 28 + }
+66
pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3 2 + , vala, desktop-file-utils, gtk3, libxml2, granite, libnotify, vte, libgee 3 + , elementary-icon-theme, appstream, gobject-introspection, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "terminal"; 7 + version = "5.3.3"; 8 + 9 + name = "elementary-${pname}-${version}"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "elementary"; 13 + repo = pname; 14 + rev = version; 15 + sha256 = "1rhqfq5dn913g551ribycid4k8add2lanxkkqpv6zzdgvah26ni8"; 16 + }; 17 + 18 + passthru = { 19 + updateScript = pantheon.updateScript { 20 + repoName = pname; 21 + attrPath = "elementary-${pname}"; 22 + }; 23 + }; 24 + 25 + nativeBuildInputs = [ 26 + appstream 27 + desktop-file-utils 28 + gobject-introspection 29 + libxml2 30 + meson 31 + ninja 32 + pkgconfig 33 + python3 34 + vala 35 + wrapGAppsHook 36 + ]; 37 + 38 + buildInputs = [ 39 + elementary-icon-theme 40 + granite 41 + gtk3 42 + libgee 43 + libnotify 44 + vte 45 + ]; 46 + 47 + # See https://github.com/elementary/terminal/commit/914d4b0e2d0a137f12276d748ae07072b95eff80 48 + mesonFlags = [ "-Dubuntu-bionic-patched-vte=false" ]; 49 + 50 + postPatch = '' 51 + chmod +x meson/post_install.py 52 + patchShebangs meson/post_install.py 53 + ''; 54 + 55 + meta = with stdenv.lib; { 56 + description = "Terminal emulator designed for elementary OS"; 57 + longDescription = '' 58 + A super lightweight, beautiful, and simple terminal. Comes with sane defaults, browser-class tabs, sudo paste protection, 59 + smart copy/paste, and little to no configuration. 60 + ''; 61 + homepage = https://github.com/elementary/terminal; 62 + license = licenses.lgpl3; 63 + platforms = platforms.linux; 64 + maintainers = pantheon.maintainers; 65 + }; 66 + }
+64
pkgs/desktops/pantheon/apps/elementary-videos/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, python3 2 + , desktop-file-utils, gtk3, granite, libgee, clutter-gst, clutter-gtk, gst_all_1 3 + , gobject-introspection, elementary-icon-theme, wrapGAppsHook, gst-ffmpeg }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "videos"; 7 + version = "2.6.3"; 8 + 9 + name = "elementary-${pname}-${version}"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "elementary"; 13 + repo = pname; 14 + rev = version; 15 + sha256 = "1ncm8kh6dcy83p8pmpilnk03b4dx3b1jm8w13izq2dkglfgdwvqx"; 16 + }; 17 + 18 + passthru = { 19 + updateScript = pantheon.updateScript { 20 + repoName = pname; 21 + attrPath = "elementary-${pname}"; 22 + }; 23 + }; 24 + 25 + nativeBuildInputs = [ 26 + desktop-file-utils 27 + gobject-introspection 28 + meson 29 + ninja 30 + pkgconfig 31 + python3 32 + vala 33 + wrapGAppsHook 34 + ]; 35 + 36 + buildInputs = with gst_all_1; [ 37 + clutter-gst 38 + clutter-gtk 39 + elementary-icon-theme 40 + granite 41 + gst-ffmpeg 42 + gst-libav 43 + gst-plugins-bad 44 + gst-plugins-base 45 + gst-plugins-good 46 + gst-plugins-ugly 47 + gstreamer 48 + gtk3 49 + libgee 50 + ]; 51 + 52 + postPatch = '' 53 + chmod +x meson/post_install.py 54 + patchShebangs meson/post_install.py 55 + ''; 56 + 57 + meta = with stdenv.lib; { 58 + description = "Video player and library app designed for elementary OS"; 59 + homepage = https://github.com/elementary/videos; 60 + license = licenses.gpl3Plus; 61 + platforms = platforms.linux; 62 + maintainers = pantheon.maintainers; 63 + }; 64 + }
+45
pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-a11y"; 6 + version = "2.1.3"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1wh46lrsliii5bbvfc4xnzgnii2v7sqxnbn43ylmyqppfv9mk1wd"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + switchboard 34 + ]; 35 + 36 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Switchboard Universal Access Plug"; 40 + homepage = https://github.com/elementary/switchboard-plug-a11y; 41 + license = licenses.lgpl3Plus; 42 + platforms = platforms.linux; 43 + maintainers = pantheon.maintainers; 44 + }; 45 + }
+54
pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, switchboard, pciutils, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-about"; 6 + version = "2.5.2"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "11diwz2aj45yqkxdija8ny0sgm0wl2905gl3799cdl12ss9ffndp"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + switchboard 34 + ]; 35 + 36 + patches = [ 37 + (substituteAll { 38 + src = ./lspci-path.patch; 39 + inherit pciutils; 40 + }) 41 + ./remove-update-button.patch 42 + ]; 43 + 44 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 45 + 46 + meta = with stdenv.lib; { 47 + description = "Switchboard About Plug"; 48 + homepage = https://github.com/elementary/witchboard-plug-about; 49 + license = licenses.gpl3Plus; 50 + platforms = platforms.linux; 51 + maintainers = pantheon.maintainers; 52 + }; 53 + 54 + }
+13
pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch
···
··· 1 + diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala 2 + index a3e449c..a95fe93 100644 3 + --- a/src/Views/HardwareView.vala 4 + +++ b/src/Views/HardwareView.vala 5 + @@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid { 6 + 7 + // Graphics 8 + try { 9 + - Process.spawn_command_line_sync ("lspci", out graphics); 10 + + Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics); 11 + 12 + if ("VGA" in graphics) { //VGA-keyword indicates graphics-line 13 + string[] lines = graphics.split("\n");
+55
pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch
···
··· 1 + diff --git a/src/Plug.vala b/src/Plug.vala 2 + index 76fca34..3e79c1f 100644 3 + --- a/src/Plug.vala 4 + +++ b/src/Plug.vala 5 + @@ -65,7 +65,6 @@ public class About.Plug : Switchboard.Plug { 6 + search_results.set ("%s → %s".printf (display_name, _("Restore Default Settings")), ""); 7 + search_results.set ("%s → %s".printf (display_name, _("Suggest Translation")), ""); 8 + search_results.set ("%s → %s".printf (display_name, _("Report Problems")), ""); 9 + - search_results.set ("%s → %s".printf (display_name, _("Updates")), ""); 10 + return search_results; 11 + } 12 + 13 + @@ -161,7 +160,7 @@ public class About.Plug : Switchboard.Plug { 14 + var kernel_version_label = new Gtk.Label (kernel_version); 15 + kernel_version_label.set_selectable (true); 16 + 17 + - var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version)); 18 + + var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version)); 19 + gtk_version_label.set_selectable (true); 20 + 21 + var website_label = new Gtk.LinkButton.with_label (website_url, _("Website")); 22 + @@ -202,16 +201,6 @@ public class About.Plug : Switchboard.Plug { 23 + issue_dialog.run (); 24 + }); 25 + 26 + - // Update button 27 + - var update_button = new Gtk.Button.with_label (_("Check for Updates")); 28 + - update_button.clicked.connect (() => { 29 + - try { 30 + - Process.spawn_command_line_async ("io.elementary.appcenter --show-updates"); 31 + - } catch (Error e) { 32 + - warning (e.message); 33 + - } 34 + - }); 35 + - 36 + // Restore settings button 37 + var settings_restore_button = new Gtk.Button.with_label (_("Restore Default Settings")); 38 + settings_restore_button.clicked.connect (settings_restore_clicked); 39 + @@ -224,7 +213,6 @@ public class About.Plug : Switchboard.Plug { 40 + button_grid.add (settings_restore_button); 41 + button_grid.add (translate_button); 42 + button_grid.add (bug_button); 43 + - button_grid.add (update_button); 44 + button_grid.set_child_non_homogeneous (help_button, true); 45 + 46 + var software_grid = new Gtk.Grid (); 47 + @@ -238,7 +226,7 @@ public class About.Plug : Switchboard.Plug { 48 + software_grid.attach (based_off, 0, 2, 2, 1); 49 + } 50 + 51 + - software_grid.attach (kernel_version_label, 0, 3, 2, 1); 52 + + software_grid.attach (kernel_version_label, 0, 3, 2, 1); 53 + software_grid.attach (gtk_version_label, 0, 4, 2, 1); 54 + software_grid.attach (website_label, 0, 5, 2, 1); 55 +
+45
pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-applications"; 6 + version = "2.1.4"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1gi8jwjh9ga7h92ffl43r0rnlnl5649pqzpk7q1ffhhyqzwh8l63"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + switchboard 34 + ]; 35 + 36 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Switchboard Applications Plug"; 40 + homepage = https://github.com/elementary/switchboard-plug-applications; 41 + license = licenses.gpl2Plus; 42 + platforms = platforms.linux; 43 + maintainers = pantheon.maintainers; 44 + }; 45 + }
+47
pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, libgee 2 + , granite, gtk3, bluez, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-bluetooth"; 6 + version = "2.2.0"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1aynzns0xw629drv9qvci37ba0fzyd5x9y8kwjqr527rnk0qiyca"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + bluez 31 + granite 32 + gtk3 33 + libgee 34 + switchboard 35 + ]; 36 + 37 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 38 + 39 + meta = with stdenv.lib; { 40 + description = "Switchboard Bluetooth Plug"; 41 + homepage = https://github.com/elementary/switchboard-plug-bluetooth; 42 + license = licenses.gpl3Plus; 43 + platforms = platforms.linux; 44 + maintainers = pantheon.maintainers; 45 + }; 46 + 47 + }
+12
pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch
···
··· 1 + diff --git a/src/DateTime1.vala b/src/DateTime1.vala 2 + index 5a80fbd..2e1f948 100644 3 + --- a/src/DateTime1.vala 4 + +++ b/src/DateTime1.vala 5 + @@ -38,6 +38,6 @@ public class DateTime.Settings : Granite.Services.Settings { 6 + public string clock_format { get; set; } 7 + 8 + public Settings () { 9 + - base ("io.elementary.desktop.wingpanel.datetime"); 10 + + base ("io.elementary.granite"); 11 + } 12 + }
+55
pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, substituteAll, pkgconfig 2 + , vala, libgee, granite, gtk3, libxml2, switchboard, tzdata, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-datetime"; 6 + version = "2.1.5"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1iz8skf5dw76a07ljc8v8lw2x2nrmq8j6sggm227cmxy60gadsdv"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + libxml2 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + ]; 29 + 30 + buildInputs = [ 31 + granite 32 + gtk3 33 + libgee 34 + switchboard 35 + ]; 36 + 37 + patches = [ 38 + (substituteAll { 39 + src = ./timezone.patch; 40 + tzdata = "${tzdata}/share/zoneinfo/zone.tab"; 41 + }) 42 + # Use "clock-format" GSettings key that's been moved to granite 43 + ./clock-format.patch 44 + ]; 45 + 46 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 47 + 48 + meta = with stdenv.lib; { 49 + description = "Switchboard Date & Time Plug"; 50 + homepage = https://github.com/elementary/switchboard-plug-datetime; 51 + license = licenses.gpl3Plus; 52 + platforms = platforms.linux; 53 + maintainers = pantheon.maintainers; 54 + }; 55 + }
+13
pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/timezone.patch
···
··· 1 + diff --git a/src/Parser.vala b/src/Parser.vala 2 + index faccb64..432a362 100644 3 + --- a/src/Parser.vala 4 + +++ b/src/Parser.vala 5 + @@ -28,7 +28,7 @@ public class DateTime.Parser : GLib.Object { 6 + return parser; 7 + } 8 + private Parser () { 9 + - var file = File.new_for_path ("/usr/share/zoneinfo/zone.tab"); 10 + + var file = File.new_for_path ("@tzdata@"); 11 + if (!file.query_exists ()) { 12 + critical ("/usr/share/zoneinfo/zone.tab doesn't exist !"); 13 + return;
+45
pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-display"; 6 + version = "2.1.6"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "0pw21bnc79shiynmg7h9bs1x1v011lh07ypn22j73yhmxp6wiypd"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + switchboard 34 + ]; 35 + 36 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Switchboard Displays Plug"; 40 + homepage = https://github.com/elementary/switchboard-plug-display; 41 + license = licenses.lgpl2Plus; 42 + platforms = platforms.linux; 43 + maintainers = pantheon.maintainers; 44 + }; 45 + }
+57
pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig, vala, libgee 2 + , granite, gtk3, libxml2, libgnomekbd, libxklavier, xorg, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-keyboard"; 6 + version = "2.3.4"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1997hnhlcp2jmf3z70na42vl1b7i5vxhp7k5ga5sl68dv0g4126y"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + libxml2 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + ]; 29 + 30 + buildInputs = [ 31 + granite 32 + gtk3 33 + libgee 34 + libgnomekbd 35 + libxklavier 36 + switchboard 37 + ]; 38 + 39 + patches = [ 40 + (substituteAll { 41 + src = ./xkb.patch; 42 + config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml"; 43 + }) 44 + ]; 45 + 46 + LIBRARY_PATH = stdenv.lib.makeLibraryPath [ libgnomekbd ]; 47 + 48 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 49 + 50 + meta = with stdenv.lib; { 51 + description = "Switchboard Keyboard Plug"; 52 + homepage = https://github.com/elementary/switchboard-plug-keyboard; 53 + license = licenses.gpl2Plus; 54 + platforms = platforms.linux; 55 + maintainers = pantheon.maintainers; 56 + }; 57 + }
+22
pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/xkb.patch
···
··· 1 + diff --git a/src/Layout/Handler.vala b/src/Layout/Handler.vala 2 + index 297314b..b36509a 100644 3 + --- a/src/Layout/Handler.vala 4 + +++ b/src/Layout/Handler.vala 5 + @@ -29,7 +29,7 @@ public class Pantheon.Keyboard.LayoutPage.LayoutHandler : GLib.Object { 6 + } 7 + 8 + private void parse_layouts () { 9 + - Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml"); 10 + + Xml.Doc* doc = Xml.Parser.parse_file ("@config@"); 11 + if (doc == null) { 12 + critical ("'evdev.xml' not found or permissions missing\n"); 13 + return; 14 + @@ -76,7 +76,7 @@ public class Pantheon.Keyboard.LayoutPage.LayoutHandler : GLib.Object { 15 + public HashTable<string, string> get_variants_for_language (string language) { 16 + var returned_table = new HashTable<string, string> (str_hash, str_equal); 17 + returned_table.set ("", _("Default")); 18 + - Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml"); 19 + + Xml.Doc* doc = Xml.Parser.parse_file ("@config@"); 20 + if (doc == null) { 21 + critical ("'evdev.xml' not found or permissions incorrect\n"); 22 + return returned_table;
+45
pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, fetchpatch, meson, ninja 2 + , pkgconfig, vala, libgee, granite, gtk3, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-mouse-touchpad"; 6 + version = "2.1.4"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1zh5472ab01bckrc1py5bqqsal9i9pbgx6i8ap2d4yzhc8sirjrf"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + switchboard 34 + ]; 35 + 36 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Switchboard Mouse & Touchpad Plug"; 40 + homepage = https://github.com/elementary/switchboard-plug-mouse-touchpad; 41 + license = licenses.gpl2Plus; 42 + platforms = platforms.linux; 43 + maintainers = pantheon.maintainers; 44 + }; 45 + }
+55
pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, substituteAll, vala 2 + , libgee, granite, gtk3, networkmanager, networkmanagerapplet, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-network"; 6 + version = "2.1.4"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "12lvcc15jngzsa40fjhxa6kccs58h5qq4lqrc7lcx5przmfaik8k"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + networkmanager 34 + networkmanagerapplet 35 + switchboard 36 + ]; 37 + 38 + patches = [ 39 + (substituteAll { 40 + src = ./nma.patch; 41 + networkmanagerapplet = "${networkmanagerapplet}"; 42 + }) 43 + ]; 44 + 45 + 46 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 47 + 48 + meta = with stdenv.lib; { 49 + description = "Switchboard Networking Plug"; 50 + homepage = https://github.com/elementary/switchboard-plug-network; 51 + license = licenses.lgpl21Plus; 52 + platforms = platforms.linux; 53 + maintainers = pantheon.maintainers; 54 + }; 55 + }
+43
pkgs/desktops/pantheon/apps/switchboard-plugs/network/nma.patch
···
··· 1 + diff --git a/src/Widgets/SettingsButton.vala b/src/Widgets/SettingsButton.vala 2 + index 19fd514..bc800d9 100644 3 + --- a/src/Widgets/SettingsButton.vala 4 + +++ b/src/Widgets/SettingsButton.vala 5 + @@ -23,7 +23,7 @@ 6 + label = _("Edit Connections…"); 7 + clicked.connect (() => { 8 + try { 9 + - var appinfo = AppInfo.create_from_commandline ("nm-connection-editor", null, AppInfoCreateFlags.NONE); 10 + + var appinfo = AppInfo.create_from_commandline ("@networkmanagerapplet@/bin/nm-connection-editor", null, AppInfoCreateFlags.NONE); 11 + appinfo.launch (null, null); 12 + } catch (Error e) { 13 + warning ("%s", e.message); 14 + @@ -61,13 +61,13 @@ 15 + label = title; 16 + clicked.connect (() => { 17 + edit_connection_uuid (connection.get_uuid ()); 18 + - }); 19 + + }); 20 + } 21 + 22 + private void edit_connection_uuid (string uuid) { 23 + try { 24 + var appinfo = AppInfo.create_from_commandline ( 25 + - "nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE 26 + + "@networkmanagerapplet@/bin/nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE 27 + ); 28 + 29 + appinfo.launch (null, null); 30 + diff --git a/src/Widgets/VPN/VPNPage.vala b/src/Widgets/VPN/VPNPage.vala 31 + index 23c3ae9..c71984c 100644 32 + --- a/src/Widgets/VPN/VPNPage.vala 33 + +++ b/src/Widgets/VPN/VPNPage.vala 34 + @@ -86,8 +86,7 @@ namespace Network { 35 + add_button.tooltip_text = _("Add VPN Connection…"); 36 + add_button.clicked.connect (() => { 37 + add_button.sensitive = false; 38 + - var command = new Granite.Services.SimpleCommand ("/usr/bin", 39 + - "nm-connection-editor --create --type=vpn"); 40 + + var command = new Granite.Services.SimpleCommand ("@networkmanagerapplet@", "bin/nm-connection-editor --create --type=vpn"); 41 + command.done.connect ((exit) => { 42 + if (exit != 0) { 43 + var dialog = new Gtk.MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, "%s", _("Failed to run Connection Editor."));
+45
pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-notifications"; 6 + version = "2.1.5"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "0p0aj3bbjrh6x8wajqqb5yqm2iqfnj7kp16zf4hdr4siw0sx5p8n"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + switchboard 34 + ]; 35 + 36 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Switchboard Notifications Plug"; 40 + homepage = https://github.com/elementary/switchboard-plug-notifications; 41 + license = licenses.gpl2Plus; 42 + platforms = platforms.linux; 43 + maintainers = pantheon.maintainers; 44 + }; 45 + }
+56
pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala 2 + , libgee, granite, gtk3, libaccounts-glib, libsignon-glib, json-glib 3 + , librest, webkitgtk, libsoup, switchboard, gobject-introspection }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "switchboard-plug-onlineaccounts"; 7 + version = "2.0.1"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "03h8ii8zz59fpp4fwlvyx3m3550096fn7a6w612b1rbj3dqhlmh9"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + ]; 29 + 30 + buildInputs = [ 31 + granite 32 + gtk3 33 + json-glib 34 + libaccounts-glib 35 + libgee 36 + libsignon-glib 37 + libsoup 38 + librest 39 + switchboard 40 + webkitgtk 41 + ]; 42 + 43 + PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers"; 44 + PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services"; 45 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard"; 46 + 47 + 48 + meta = with stdenv.lib; { 49 + description = "Switchboard Online Accounts Plug"; 50 + homepage = https://github.com/elementary/switchboard-plug-onlineaccounts; 51 + license = licenses.lgpl2Plus; 52 + platforms = platforms.linux; 53 + maintainers = pantheon.maintainers; 54 + }; 55 + 56 + }
+26
pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/backgrounds.patch
···
··· 1 + diff --git a/set-wallpaper-contract/set-wallpaper.vala b/set-wallpaper-contract/set-wallpaper.vala 2 + index 3e02089..7ce7041 100644 3 + --- a/set-wallpaper-contract/set-wallpaper.vala 4 + +++ b/set-wallpaper-contract/set-wallpaper.vala 5 + @@ -38,7 +38,7 @@ namespace SetWallpaperContractor { 6 + </transition> 7 + """; 8 + 9 + - const string SYSTEM_BACKGROUNDS_PATH = "/usr/share/backgrounds"; 10 + + const string SYSTEM_BACKGROUNDS_PATH = "/run/current-system/sw/share/backgrounds"; 11 + 12 + private int delay_value = 60; 13 + 14 + diff --git a/src/Views/Wallpaper.vala b/src/Views/Wallpaper.vala 15 + index 4be14fa..aa8832f 100644 16 + --- a/src/Views/Wallpaper.vala 17 + +++ b/src/Views/Wallpaper.vala 18 + @@ -38,7 +38,7 @@ public class Wallpaper : Gtk.Grid { 19 + FileAttribute.THUMBNAIL_IS_VALID 20 + }; 21 + 22 + - const string SYSTEM_BACKGROUNDS_PATH = "/usr/share/backgrounds"; 23 + + const string SYSTEM_BACKGROUNDS_PATH = "/run/current-system/sw/share/backgrounds"; 24 + 25 + public Switchboard.Plug plug { get; construct set; } 26 + private GLib.Settings settings;
+63
pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala 2 + , libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop 3 + , gala, wingpanel, plank, switchboard, gettext, gobject-introspection, bamf }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "switchboard-plug-pantheon-shell"; 7 + version = "2.8.0"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0yy821hl26jfd9hyigqi7nmaf30iww0lhg9qzcwlfzsvvfwnxagi"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gettext 24 + gobject-introspection 25 + meson 26 + ninja 27 + pkgconfig 28 + vala 29 + ]; 30 + 31 + buildInputs = [ 32 + bamf 33 + gexiv2 34 + gnome-desktop 35 + elementary-settings-daemon 36 + granite 37 + gtk3 38 + libgee 39 + plank 40 + switchboard 41 + ]; 42 + 43 + patches = [ 44 + ./backgrounds.patch # Having https://github.com/elementary/switchboard-plug-pantheon-shell/issues/166 would make this patch uneeded 45 + ./hardcode-gsettings.patch 46 + ]; 47 + 48 + postPatch = '' 49 + substituteInPlace src/Views/Appearance.vala --subst-var-by GALA_GSETTINGS_PATH ${gala}/share/gsettings-schemas/${gala.name}/glib-2.0/schemas 50 + substituteInPlace src/Views/Appearance.vala --subst-var-by WINGPANEL_GSETTINGS_PATH ${wingpanel}/share/gsettings-schemas/${wingpanel.name}/glib-2.0/schemas 51 + ''; 52 + 53 + 54 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 55 + 56 + meta = with stdenv.lib; { 57 + description = "Switchboard Desktop Plug"; 58 + homepage = https://github.com/elementary/switchboard-plug-pantheon-shell; 59 + license = licenses.gpl3Plus; 60 + platforms = platforms.linux; 61 + maintainers = pantheon.maintainers; 62 + }; 63 + }
+23
pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/hardcode-gsettings.patch
···
··· 1 + diff --git a/src/Views/Appearance.vala b/src/Views/Appearance.vala 2 + index 721d458..17e1c58 100644 3 + --- a/src/Views/Appearance.vala 4 + +++ b/src/Views/Appearance.vala 5 + @@ -66,10 +66,16 @@ public class Appearance : Gtk.Grid { 6 + attach (text_size_label, 0, 2); 7 + attach (text_size_modebutton, 1, 2); 8 + 9 + - var animations_settings = new Settings (ANIMATIONS_SCHEMA); 10 + + SettingsSchemaSource gala_schema_source = new SettingsSchemaSource.from_directory ("@GALA_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); 11 + + SettingsSchema animations_schema = gala_schema_source.lookup (ANIMATIONS_SCHEMA, false); 12 + + 13 + + var animations_settings = new Settings.full (animations_schema, null, null); 14 + animations_settings.bind (ANIMATIONS_KEY, animations_switch, "active", SettingsBindFlags.DEFAULT); 15 + 16 + - var panel_settings = new Settings (PANEL_SCHEMA); 17 + + SettingsSchemaSource panel_schema_source = new SettingsSchemaSource.from_directory ("@WINGPANEL_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); 18 + + SettingsSchema panel_schema = panel_schema_source.lookup (PANEL_SCHEMA, false); 19 + + 20 + + var panel_settings = new Settings.full (panel_schema, null, null); 21 + panel_settings.bind (TRANSLUCENCY_KEY, translucency_switch, "active", SettingsBindFlags.DEFAULT); 22 + 23 + var interface_settings = new Settings (INTERFACE_SCHEMA);
+64
pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja 2 + , pkgconfig, vala, libgee, elementary-dpms-helper, elementary-settings-daemon 3 + , makeWrapper, granite, gtk3, dbus, polkit, switchboard, gobject-introspection }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "switchboard-plug-power"; 7 + version = "2.3.4"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0kfnnghyzvy368sh39j4jdl7cnz2yc239hp00054lc4rjs8m61nv"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + ]; 29 + 30 + buildInputs = [ 31 + dbus 32 + granite 33 + gtk3 34 + libgee 35 + polkit 36 + switchboard 37 + ]; 38 + 39 + patches = [ 40 + (substituteAll { 41 + src = ./dpms-helper-exec.patch; 42 + elementary_dpms_helper = "${elementary-dpms-helper}"; 43 + }) 44 + ./hardcode-gsettings.patch 45 + ]; 46 + 47 + postPatch = '' 48 + 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 49 + substituteInPlace src/MainView.vala --subst-var-by GSD_GSETTINGS_PATH ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas 50 + ''; 51 + 52 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 53 + PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "share/dbus-1/system-services"; 54 + PKG_CONFIG_DBUS_1_SYSCONFDIR = "etc"; 55 + PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "share/polkit-1/actions"; 56 + 57 + meta = with stdenv.lib; { 58 + description = "Switchboard Power Plug"; 59 + homepage = https://github.com/elementary/switchboard-plug-power; 60 + license = licenses.gpl2Plus; 61 + platforms = platforms.linux; 62 + maintainers = pantheon.maintainers; 63 + }; 64 + }
+13
pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch
···
··· 1 + diff --git a/src/MainView.vala b/src/MainView.vala 2 + index 1654e68..175f220 100644 3 + --- a/src/MainView.vala 4 + +++ b/src/MainView.vala 5 + @@ -317,7 +317,7 @@ public class Power.MainView : Gtk.Grid { 6 + 7 + private static void run_dpms_helper () { 8 + try { 9 + - string[] argv = { "io.elementary.dpms-helper" }; 10 + + string[] argv = { "@elementary_dpms_helper@/bin/io.elementary.dpms-helper" }; 11 + Process.spawn_async (null, argv, Environ.get (), 12 + SpawnFlags.SEARCH_PATH | SpawnFlags.STDERR_TO_DEV_NULL | SpawnFlags.STDOUT_TO_DEV_NULL, 13 + null, null);
+20
pkgs/desktops/pantheon/apps/switchboard-plugs/power/hardcode-gsettings.patch
···
··· 1 + diff --git a/src/MainView.vala b/src/MainView.vala 2 + index 1654e68..ad8fed9 100644 3 + --- a/src/MainView.vala 4 + +++ b/src/MainView.vala 5 + @@ -46,8 +46,13 @@ public class Power.MainView : Gtk.Grid { 6 + 7 + var label_size = new Gtk.SizeGroup (Gtk.SizeGroupMode.HORIZONTAL); 8 + 9 + - settings = new GLib.Settings ("org.gnome.settings-daemon.plugins.power"); 10 + - elementary_dpms_settings = new GLib.Settings ("io.elementary.dpms"); 11 + + SettingsSchemaSource gsd_sss = new SettingsSchemaSource.from_directory ("@GSD_GSETTINGS_PATH@", null, true); 12 + + SettingsSchema gsd_schema = gsd_sss.lookup ("org.gnome.settings-daemon.plugins.power", false); 13 + + settings = new GLib.Settings.full (gsd_schema, null, null); 14 + + 15 + + SettingsSchemaSource dpms_sss = new SettingsSchemaSource.from_directory ("@DPMS_HELPER_GSETTINGS_PATH@", null, true); 16 + + SettingsSchema elementary_dpms_schema = dpms_sss.lookup ("io.elementary.dpms", false); 17 + + elementary_dpms_settings = new GLib.Settings.full (elementary_dpms_schema, null, null); 18 + 19 + battery = new Battery (); 20 + power_supply = new PowerSupply ();
+47
pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, cups, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-printers"; 6 + version = "2.1.6"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "05pkf3whh51gd9d0h2h4clgf7r3mvzl4ybas7834vhy19dzcbzmc"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + cups 31 + granite 32 + gtk3 33 + libgee 34 + switchboard 35 + ]; 36 + 37 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 38 + 39 + meta = with stdenv.lib; { 40 + description = "Switchboard Printers Plug"; 41 + homepage = https://github.com/elementary/switchboard-plug-printers; 42 + license = licenses.lgpl3Plus; 43 + platforms = platforms.linux; 44 + maintainers = pantheon.maintainers; 45 + }; 46 + 47 + }
+62
pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, python3, ninja 2 + , pkgconfig, vala, libgee, granite, gtk3, polkit, zeitgeist 3 + , switchboard, lightlocker, pantheon-agent-geoclue2, gobject-introspection }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "switchboard-plug-security-privacy"; 7 + version = "2.2.0"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0f1idh36hlgmdva5jn0xnj2b6gbic0asnj3b7j283gyziibm3pxa"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + python3 28 + vala 29 + ]; 30 + 31 + buildInputs = [ 32 + granite 33 + gtk3 34 + libgee 35 + polkit 36 + switchboard 37 + zeitgeist 38 + ]; 39 + 40 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 41 + 42 + patches = [ 43 + ./hardcode-gsettings.patch 44 + ]; 45 + 46 + postPatch = '' 47 + chmod +x meson/post_install.py 48 + patchShebangs meson/post_install.py 49 + 50 + substituteInPlace src/Views/LockPanel.vala --subst-var-by LIGHTLOCKER_GSETTINGS_PATH ${lightlocker}/share/gsettings-schemas/${lightlocker.name}/glib-2.0/schemas 51 + substituteInPlace src/Views/FirewallPanel.vala --subst-var-by SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas 52 + ''; 53 + 54 + meta = with stdenv.lib; { 55 + description = "Switchboard Security & Privacy Plug"; 56 + homepage = https://github.com/elementary/switchboard-plug-security-privacy; 57 + license = licenses.lgpl3Plus; 58 + platforms = platforms.linux; 59 + maintainers = pantheon.maintainers; 60 + }; 61 + 62 + }
+36
pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch
···
··· 1 + diff --git a/src/Views/FirewallPanel.vala b/src/Views/FirewallPanel.vala 2 + index 994c4d1..5702de2 100644 3 + --- a/src/Views/FirewallPanel.vala 4 + +++ b/src/Views/FirewallPanel.vala 5 + @@ -49,10 +49,13 @@ public class SecurityPrivacy.FirewallPanel : Granite.SimpleSettingsPage { 6 + } 7 + 8 + construct { 9 + - settings = new Settings ("io.elementary.switchboard.security-privacy"); 10 + + SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); 11 + + SettingsSchema security_privacy_schema = sss.lookup ("io.elementary.switchboard.security-privacy", false); 12 + + settings = new Settings.full (security_privacy_schema, null, null); 13 + + 14 + disabled_rules = new Gee.HashMap<string, UFWHelpers.Rule> (); 15 + load_disabled_rules (); 16 + - 17 + + 18 + status_switch.notify["active"].connect (() => { 19 + if (loading == false) { 20 + view.sensitive = status_switch.active; 21 + diff --git a/src/Views/LockPanel.vala b/src/Views/LockPanel.vala 22 + index 081cf10..42f6118 100644 23 + --- a/src/Views/LockPanel.vala 24 + +++ b/src/Views/LockPanel.vala 25 + @@ -30,7 +30,10 @@ public class SecurityPrivacy.LockPanel : Granite.SimpleSettingsPage { 26 + } 27 + 28 + construct { 29 + - locker = new Settings ("apps.light-locker"); 30 + + SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@LIGHTLOCKER_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); 31 + + SettingsSchema locker_schema = sss.lookup ("apps.light-locker", false); 32 + + 33 + + locker = new Settings.full (locker_schema, null, null); 34 + 35 + var lock_suspend_label = new Gtk.Label (_("Lock on sleep:")); 36 + var lock_suspend_switch = new Gtk.Switch ();
+45
pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, switchboard, gobject-introspection }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "switchboard-plug-sharing"; 6 + version = "2.1.3"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1yi6aga9i18wwn22zwmfbhsk16f92fka837is5r8xghqb7a50hyh"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + ]; 28 + 29 + buildInputs = [ 30 + granite 31 + gtk3 32 + libgee 33 + switchboard 34 + ]; 35 + 36 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Switchboard Sharing Plug"; 40 + homepage = https://github.com/elementary/switchboard-plug-sharing; 41 + license = licenses.gpl2Plus; 42 + platforms = platforms.linux; 43 + maintainers = pantheon.maintainers; 44 + }; 45 + }
+49
pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig 2 + , vala, libgee, granite, gtk3, pulseaudio, libcanberra, libcanberra-gtk3 3 + , switchboard, gobject-introspection }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "switchboard-plug-sound"; 7 + version = "2.1.3"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0dvxmjziifffa2rm7h43ca5grhlcpih3rgik50mz808mqfxr4l1q"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + ]; 29 + 30 + buildInputs = [ 31 + granite 32 + gtk3 33 + libcanberra 34 + libcanberra-gtk3 35 + libgee 36 + pulseaudio 37 + switchboard 38 + ]; 39 + 40 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 41 + 42 + meta = with stdenv.lib; { 43 + description = "Switchboard Sound Plug"; 44 + homepage = https://github.com/elementary/switchboard-plug-sound; 45 + license = licenses.lgpl2Plus; 46 + platforms = platforms.linux; 47 + maintainers = pantheon.maintainers; 48 + }; 49 + }
+56
pkgs/desktops/pantheon/apps/switchboard/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja 2 + , vala, gtk3, libgee, granite, gettext, clutter-gtk, libunity 3 + , elementary-icon-theme, wrapGAppsHook, gobject-introspection }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "switchboard"; 7 + version = "2.3.6"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0lsrn636b0f9a58jbid6mlhgrf8ajnh7phwmhgxz55sz7k7qa58g"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gettext 24 + gobject-introspection 25 + meson 26 + ninja 27 + pkgconfig 28 + python3 29 + vala 30 + wrapGAppsHook 31 + ]; 32 + 33 + buildInputs = [ 34 + clutter-gtk 35 + elementary-icon-theme 36 + granite 37 + gtk3 38 + libgee 39 + libunity 40 + ]; 41 + 42 + patches = [ ./plugs-path-env.patch ]; 43 + 44 + postPatch = '' 45 + chmod +x meson/post_install.py 46 + patchShebangs meson/post_install.py 47 + ''; 48 + 49 + meta = with stdenv.lib; { 50 + description = "Extensible System Settings app for Pantheon"; 51 + homepage = https://github.com/elementary/switchboard; 52 + license = licenses.lgpl21Plus; 53 + platforms = platforms.linux; 54 + maintainers = pantheon.maintainers; 55 + }; 56 + }
+25
pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch
···
··· 1 + diff --git a/lib/PlugsManager.vala b/lib/PlugsManager.vala 2 + index 75d0eaf..c227908 100644 3 + --- a/lib/PlugsManager.vala 4 + +++ b/lib/PlugsManager.vala 5 + @@ -34,10 +34,18 @@ public class Switchboard.PlugsManager : GLib.Object { 6 + private Gee.LinkedList<Switchboard.Plug> plugs; 7 + 8 + public signal void plug_added (Switchboard.Plug plug); 9 + - 10 + + 11 + private PlugsManager () { 12 + plugs = new Gee.LinkedList<Switchboard.Plug> (); 13 + - var base_folder = File.new_for_path (Build.PLUGS_DIR); 14 + + 15 + + var plugs_path = Environment.get_variable("SWITCHBOARD_PLUGS_PATH"); 16 + + if (plugs_path != null) { 17 + + debug ("SWITCHBOARD_PLUGS_PATH set to %s", plugs_path); 18 + + } else { 19 + + critical ("SWITCHBOARD_PLUGS_PATH not set"); 20 + + } 21 + + 22 + + var base_folder = File.new_for_path (plugs_path); 23 + find_plugins (base_folder); 24 + } 25 +
+19
pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
···
··· 1 + { stdenv, makeWrapper, symlinkJoin, switchboard, switchboardPlugs, plugs }: 2 + 3 + let 4 + selectedPlugs = if plugs == null then switchboardPlugs else plugs; 5 + in 6 + symlinkJoin { 7 + name = "${switchboard.name}-with-plugs"; 8 + 9 + paths = [ switchboard ] ++ selectedPlugs; 10 + 11 + buildInputs = [ makeWrapper ]; 12 + 13 + postBuild = '' 14 + wrapProgram $out/bin/io.elementary.switchboard \ 15 + --set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard" 16 + ''; 17 + 18 + inherit (switchboard) meta; 19 + }
+35
pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "stylesheet"; 5 + version = "5.2.1"; 6 + 7 + name = "elementary-gtk-theme-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "03l8m87f7z25svxk0hhcqnn4qnnqvasr5qwzq3s87lx25gwjml29"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + attrPath = "elementary-gtk-theme"; 20 + }; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + meson 25 + ninja 26 + ]; 27 + 28 + meta = with stdenv.lib; { 29 + description = "GTK theme designed to be smooth, attractive, fast, and usable"; 30 + homepage = https://github.com/elementary/stylesheet; 31 + license = licenses.gpl3; 32 + platforms = platforms.linux; 33 + maintainers = pantheon.maintainers; 34 + }; 35 + }
+55
pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, python3,ninja, hicolor-icon-theme, gtk3 }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "icons"; 5 + version = "5.0.2"; 6 + 7 + name = "elementary-icon-theme-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "12j582f0kggv2lp935r75xg7q26zpl0f05s11xcs4qxazhj1ly2r"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + attrPath = "elementary-icon-theme"; 20 + }; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + meson 25 + ninja 26 + python3 27 + ]; 28 + 29 + buildInputs = [ gtk3 ]; 30 + 31 + propagatedBuildInputs = [ hicolor-icon-theme ]; 32 + 33 + mesonFlags = [ 34 + "-Dvolume_icons=false" # Tries to install some icons to / 35 + "-Dpalettes=false" # Don't install gimp and inkscape palette files 36 + ]; 37 + 38 + postPatch = '' 39 + chmod +x meson/symlink.py 40 + patchShebangs meson/symlink.py 41 + ''; 42 + 43 + postFixup = "gtk-update-icon-cache $out/share/icons/elementary"; 44 + 45 + meta = with stdenv.lib; { 46 + description = "Named, vector icons for elementary OS"; 47 + longDescription = '' 48 + An original set of vector icons designed specifically for elementary OS and its desktop environment: Pantheon. 49 + ''; 50 + homepage = https://github.com/elementary/icons; 51 + license = licenses.gpl3; 52 + platforms = platforms.linux; 53 + maintainers = pantheon.maintainers; 54 + }; 55 + }
+36
pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "sound-theme"; 5 + version = "1.0"; 6 + 7 + name = "elementary-${pname}-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + attrPath = "elementary-${pname}"; 20 + }; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + meson 25 + ninja 26 + pkgconfig 27 + ]; 28 + 29 + meta = with stdenv.lib; { 30 + description = "A set of system sounds for elementary"; 31 + homepage = https://github.com/elementary/sound-theme; 32 + license = licenses.unlicense; 33 + platforms = platforms.linux; 34 + maintainers = pantheon.maintainers; 35 + }; 36 + }
+38
pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "wallpapers"; 5 + version = "5.3"; 6 + 7 + name = "elementary-${pname}-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "1i0zf9gzhwm8hgq5cp1xnxipqjvgzd9wfiicz612hgp6ivc0z0ag"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + attrPath = "elementary-${pname}"; 20 + }; 21 + }; 22 + 23 + dontBuild = true; 24 + 25 + installPhase = '' 26 + mkdir -p $out/share/backgrounds/elementary 27 + cp -av *.jpg $out/share/backgrounds/elementary 28 + ''; 29 + 30 + meta = with stdenv.lib; { 31 + description = "Collection of wallpapers for elementary"; 32 + homepage = https://github.com/elementary/wallpapers; 33 + license = licenses.publicDomain; 34 + platforms = platforms.linux; 35 + maintainers = pantheon.maintainers; 36 + }; 37 + } 38 +
+222
pkgs/desktops/pantheon/default.nix
···
··· 1 + { pkgs, lib, gnome3 }: 2 + 3 + 4 + lib.makeScope pkgs.newScope (self: with self; { 5 + 6 + apps = [ 7 + elementary-calculator elementary-calendar 8 + elementary-camera elementary-code elementary-files 9 + elementary-music elementary-photos elementary-screenshot-tool 10 + elementary-terminal elementary-videos switchboard-with-plugs 11 + ]; 12 + 13 + artwork = [ 14 + elementary-gtk-theme 15 + elementary-icon-theme 16 + elementary-sound-theme 17 + elementary-wallpapers 18 + ]; 19 + 20 + desktop = [ 21 + elementary-session-settings 22 + elementary-shortcut-overlay 23 + gala 24 + wingpanel-with-indicators 25 + ]; 26 + 27 + services = [ 28 + cerbere 29 + elementary-capnet-assist 30 + elementary-settings-daemon 31 + elementary-dpms-helper 32 + pantheon-agent-geoclue2 33 + pantheon-agent-polkit 34 + ]; 35 + 36 + switchboardPlugs = [ 37 + switchboard-plug-a11y switchboard-plug-about 38 + switchboard-plug-applications switchboard-plug-bluetooth 39 + switchboard-plug-datetime switchboard-plug-display 40 + switchboard-plug-keyboard switchboard-plug-mouse-touchpad 41 + switchboard-plug-network switchboard-plug-notifications 42 + switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell 43 + switchboard-plug-power switchboard-plug-printers 44 + switchboard-plug-security-privacy switchboard-plug-sharing 45 + switchboard-plug-sound 46 + ]; 47 + 48 + wingpanelIndicators = [ 49 + wingpanel-applications-menu wingpanel-indicator-bluetooth 50 + wingpanel-indicator-datetime wingpanel-indicator-keyboard 51 + wingpanel-indicator-network wingpanel-indicator-nightlight 52 + wingpanel-indicator-notifications wingpanel-indicator-power 53 + wingpanel-indicator-session wingpanel-indicator-sound 54 + ]; 55 + 56 + updateScript = callPackage ./update.nix { }; 57 + 58 + maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ]; 59 + 60 + mutter = pkgs.gnome3.mutter328; 61 + vala = pkgs.vala_0_40; 62 + 63 + elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { }; 64 + 65 + #### APPS 66 + 67 + elementary-calculator = callPackage ./apps/elementary-calculator { }; 68 + 69 + elementary-calendar = callPackage ./apps/elementary-calendar { }; 70 + 71 + elementary-camera = callPackage ./apps/elementary-camera { }; 72 + 73 + elementary-code = callPackage ./apps/elementary-code { }; 74 + 75 + elementary-files = callPackage ./apps/elementary-files { }; 76 + 77 + elementary-music = callPackage ./apps/elementary-music { }; 78 + 79 + elementary-photos = callPackage ./apps/elementary-photos { }; 80 + 81 + elementary-screenshot-tool = callPackage ./apps/elementary-screenshot-tool { }; 82 + 83 + elementary-terminal = callPackage ./apps/elementary-terminal { }; 84 + 85 + elementary-videos = callPackage ./apps/elementary-videos { }; 86 + 87 + #### DESKTOP 88 + 89 + elementary-default-settings = callPackage ./desktop/elementary-default-settings { }; 90 + 91 + elementary-greeter = callPackage ./desktop/elementary-greeter { 92 + inherit (gnome3) gnome-desktop; 93 + }; 94 + 95 + elementary-print-shim = callPackage ./desktop/elementary-print-shim { }; 96 + 97 + elementary-session-settings = callPackage ./desktop/elementary-session-settings { 98 + inherit (gnome3) gnome-session gnome-keyring; 99 + }; 100 + 101 + elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { }; 102 + 103 + extra-elementary-contracts = callPackage ./desktop/extra-elementary-contracts { 104 + inherit (gnome3) file-roller gnome-bluetooth; 105 + }; 106 + 107 + gala = callPackage ./desktop/gala { 108 + inherit (gnome3) gnome-desktop; 109 + }; 110 + 111 + wingpanel = callPackage ./desktop/wingpanel { }; 112 + 113 + wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix { 114 + indicators = null; 115 + }; 116 + 117 + #### LIBRARIES 118 + 119 + granite = callPackage ./granite { }; 120 + 121 + #### SERVICES 122 + 123 + cerbere = callPackage ./services/cerbere { }; 124 + 125 + contractor = callPackage ./services/contractor { }; 126 + 127 + elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { }; 128 + 129 + elementary-dpms-helper = callPackage ./services/elementary-dpms-helper { }; 130 + 131 + # We're using ubuntu and elementary's patchset due to reasons 132 + # explained here -> https://github.com/elementary/greeter/issues/92#issuecomment-376215614 133 + # Take note of "I am holding off on "fixing" this bug for as long as possible." 134 + elementary-settings-daemon = callPackage ./services/elementary-settings-daemon { 135 + inherit (gnome3) libgweather; 136 + }; 137 + 138 + pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { }; 139 + 140 + pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { }; 141 + 142 + #### WINGPANEL INDICATORS 143 + 144 + wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { }; 145 + 146 + wingpanel-indicator-bluetooth = callPackage ./desktop/wingpanel-indicators/bluetooth { }; 147 + 148 + wingpanel-indicator-datetime = callPackage ./desktop/wingpanel-indicators/datetime { }; 149 + 150 + wingpanel-indicator-keyboard = callPackage ./desktop/wingpanel-indicators/keyboard { }; 151 + 152 + wingpanel-indicator-network = callPackage ./desktop/wingpanel-indicators/network { 153 + inherit (gnome3) networkmanagerapplet; 154 + }; 155 + 156 + wingpanel-indicator-nightlight = callPackage ./desktop/wingpanel-indicators/nightlight { }; 157 + 158 + wingpanel-indicator-notifications = callPackage ./desktop/wingpanel-indicators/notifications { }; 159 + 160 + wingpanel-indicator-power = callPackage ./desktop/wingpanel-indicators/power { }; 161 + 162 + wingpanel-indicator-session = callPackage ./desktop/wingpanel-indicators/session { }; 163 + 164 + wingpanel-indicator-sound = callPackage ./desktop/wingpanel-indicators/sound { }; 165 + 166 + #### SWITCHBOARD 167 + 168 + switchboard = callPackage ./apps/switchboard { }; 169 + 170 + switchboard-with-plugs = callPackage ./apps/switchboard/wrapper.nix { 171 + plugs = null; 172 + }; 173 + 174 + switchboard-plug-a11y = callPackage ./apps/switchboard-plugs/a11y { }; 175 + 176 + switchboard-plug-about = callPackage ./apps/switchboard-plugs/about { }; 177 + 178 + switchboard-plug-applications = callPackage ./apps/switchboard-plugs/applications { }; 179 + 180 + switchboard-plug-bluetooth = callPackage ./apps/switchboard-plugs/bluetooth { }; 181 + 182 + switchboard-plug-datetime = callPackage ./apps/switchboard-plugs/datetime { }; 183 + 184 + switchboard-plug-display = callPackage ./apps/switchboard-plugs/display { }; 185 + 186 + switchboard-plug-keyboard = callPackage ./apps/switchboard-plugs/keyboard { }; 187 + 188 + switchboard-plug-mouse-touchpad = callPackage ./apps/switchboard-plugs/mouse-touchpad { }; 189 + 190 + switchboard-plug-network = callPackage ./apps/switchboard-plugs/network { 191 + inherit (gnome3) networkmanagerapplet; 192 + }; 193 + 194 + switchboard-plug-notifications = callPackage ./apps/switchboard-plugs/notifications { }; 195 + 196 + switchboard-plug-onlineaccounts = callPackage ./apps/switchboard-plugs/onlineaccounts { }; 197 + 198 + switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell { 199 + inherit (gnome3) gnome-desktop; 200 + }; 201 + 202 + switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { }; 203 + 204 + switchboard-plug-printers = callPackage ./apps/switchboard-plugs/printers { }; 205 + 206 + switchboard-plug-security-privacy = callPackage ./apps/switchboard-plugs/security-privacy { }; 207 + 208 + switchboard-plug-sharing = callPackage ./apps/switchboard-plugs/sharing { }; 209 + 210 + switchboard-plug-sound = callPackage ./apps/switchboard-plugs/sound { }; 211 + 212 + ### ARTWORK 213 + 214 + elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { }; 215 + 216 + elementary-icon-theme = callPackage ./artwork/elementary-icon-theme { }; 217 + 218 + elementary-sound-theme = callPackage ./artwork/elementary-sound-theme { }; 219 + 220 + elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { }; 221 + 222 + })
+25
pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch
···
··· 1 + diff --git a/debian/elementary-default-settings.gsettings-override b/debian/elementary-default-settings.gsettings-override 2 + index 6452c30..899972d 100644 3 + --- a/debian/elementary-default-settings.gsettings-override 4 + +++ b/debian/elementary-default-settings.gsettings-override 5 + @@ -1,5 +1,5 @@ 6 + [net.launchpad.plank.dock.settings] 7 + -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'] 8 + +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'] 9 + hide-delay=250 10 + hide-mode='window-dodge' 11 + show-dock-item=false 12 + @@ -8,13 +8,6 @@ theme='Gtk+' 13 + [org.freedesktop.ibus.general.hotkey] 14 + triggers=['<Control>space'] 15 + 16 + -[org.gnome.desktop.background] 17 + -draw-background=true 18 + -picture-options='zoom' 19 + -picture-uri='file:///usr/share/backgrounds/elementaryos-default' 20 + -primary-color='#000000' 21 + -show-desktop-icons=false 22 + - 23 + [org.gnome.desktop.datetime] 24 + automatic-timezone=true 25 +
+60
pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, fetchpatch, pantheon }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "default-settings"; 5 + version = "5.0"; 6 + 7 + name = "elementary-${pname}-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0gyv835qbr90001gda2pzngzzbbk5jf9grgfl25pqkm29s45rqq0"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + attrPath = "elementary-${pname}"; 20 + }; 21 + }; 22 + 23 + patches = [ 24 + # See: https://github.com/elementary/default-settings/pull/86 (didn't make 5.0 release) 25 + (fetchpatch { 26 + url = "https://github.com/elementary/default-settings/commit/05d0b2a4e98c28203521d599b40745b46be549fa.patch"; 27 + sha256 = "1wk1qva3yzc28gljnkx9hb3pwhqnfrsb08wd76lsl3xnylg0wn2l"; 28 + }) 29 + # See: https://github.com/elementary/default-settings/pull/94 (didn't make 5.0 release) 30 + (fetchpatch { 31 + url = "https://github.com/elementary/default-settings/commit/a2ca00130c16e805179fb5abd7b624a873dff2da.patch"; 32 + sha256 = "1jp1c5d8jfm0404zsylfk7h9vj81s409wgbzbsd2kxmz65icq16x"; 33 + }) 34 + ./correct-override.patch 35 + ]; 36 + 37 + dontBuild = true; 38 + 39 + installPhase = '' 40 + mkdir -p $out/etc/gtk-3.0 41 + cp -av settings.ini $out/etc/gtk-3.0 42 + 43 + mkdir -p $out/share/glib-2.0/schemas 44 + cp -av debian/elementary-default-settings.gsettings-override $out/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override 45 + 46 + mkdir $out/etc/wingpanel.d 47 + cp -avr ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist 48 + 49 + mkdir -p $out/share/elementary/config/plank/dock1 50 + cp -avr ${./launchers} $out/share/elementary/config/plank/dock1/launchers 51 + ''; 52 + 53 + meta = with stdenv.lib; { 54 + description = "Default settings and configuration files for elementary"; 55 + homepage = https://github.com/elementary/default-settings; 56 + license = licenses.gpl2Plus; 57 + platforms = platforms.linux; 58 + maintainers = pantheon.maintainers; 59 + }; 60 + }
+6
pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist
···
··· 1 + liba11y.so 2 + libbluetooth.so 3 + libkeyboard.so 4 + libnetwork.so 5 + libpower.so 6 + libsession.so
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/gala-multitaskingview.desktop
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/io.elementary.calendar.desktop
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/io.elementary.music.desktop
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/io.elementary.photos.desktop
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/io.elementary.switchboard.desktop
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/io.elementary.videos.desktop
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/org.gnome.Epiphany.desktop
+2
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem
···
··· 1 + [PlankDockItemPreferences] 2 + Launcher=file:///run/current-system/sw/share/applications/org.gnome.Geary.desktop
+25
pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch
···
··· 1 + From 2384bee55a46eac44eb9d329be4c2a097e053ae1 Mon Sep 17 00:00:00 2001 2 + From: worldofpeace <worldofpeace@users.noreply.github.com> 3 + Date: Tue, 17 Jul 2018 07:04:18 -0400 4 + Subject: [PATCH 1/1] 'sysconfdir' will be etc not /etc for install 5 + 6 + --- 7 + data/meson.build | 2 +- 8 + 1 file changed, 1 insertion(+), 1 deletion(-) 9 + 10 + diff --git a/data/meson.build b/data/meson.build 11 + index 7621b03..7c08eaf 100644 12 + --- a/data/meson.build 13 + +++ b/data/meson.build 14 + @@ -20,7 +20,7 @@ i18n.merge_file ( 15 + 16 + install_data( 17 + meson.project_name() + '.conf', 18 + - install_dir: join_paths(get_option('sysconfdir'), 'lightdm') 19 + + install_dir: join_paths(get_option('prefix'), 'etc', 'lightdm') 20 + ) 21 + 22 + install_data( 23 + -- 24 + 2.17.1 25 +
+103
pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, substituteAll, makeWrapper, meson 2 + , ninja, vala, desktop-file-utils, gtk3, granite, libgee, elementary-settings-daemon 3 + , gnome-desktop, mutter, gobject-introspection, elementary-icon-theme, wingpanel-with-indicators 4 + , elementary-gtk-theme, nixos-artwork, elementary-default-settings, lightdm, numlockx 5 + , clutter-gtk, libGL, dbus, wrapGAppsHook }: 6 + 7 + stdenv.mkDerivation rec { 8 + pname = "greeter"; 9 + version = "3.3.1"; 10 + 11 + name = "elementary-${pname}-${version}"; 12 + 13 + src = fetchFromGitHub { 14 + owner = "elementary"; 15 + repo = pname; 16 + rev = version; 17 + sha256 = "1vkq4z0hrmvzv4sh2qkxjajdxcycd1zj97a3pc8n4yb858pqfyzc"; 18 + }; 19 + 20 + passthru = { 21 + updateScript = pantheon.updateScript { 22 + repoName = pname; 23 + attrPath = "elementary-${pname}"; 24 + }; 25 + }; 26 + 27 + nativeBuildInputs = [ 28 + desktop-file-utils 29 + gobject-introspection 30 + meson 31 + ninja 32 + pkgconfig 33 + vala 34 + wrapGAppsHook 35 + ]; 36 + 37 + buildInputs = [ 38 + clutter-gtk 39 + elementary-icon-theme 40 + elementary-gtk-theme 41 + elementary-settings-daemon 42 + gnome-desktop 43 + granite 44 + gtk3 45 + libgee 46 + libGL 47 + lightdm 48 + mutter 49 + wingpanel-with-indicators 50 + ]; 51 + 52 + patches = [ 53 + (substituteAll { 54 + src = ./gsd.patch; 55 + elementary-settings-daemon = "${elementary-settings-daemon}/libexec"; 56 + }) 57 + (substituteAll { 58 + src = ./numlockx.patch; 59 + inherit numlockx; 60 + }) 61 + ./01-sysconfdir-install.patch 62 + ]; 63 + 64 + mesonFlags = [ 65 + # A hook does this but after wrapGAppsHook so the files never get wrapped. 66 + "--sbindir=${placeholder "out"}/bin" 67 + # baked into the program for discovery of the greeter configuration 68 + "--sysconfdir=/etc" 69 + ]; 70 + 71 + preFixup = '' 72 + gappsWrapperArgs+=( 73 + # GTK+ reads default settings (such as icons and themes) from elementary's settings.ini here 74 + --prefix XDG_CONFIG_DIRS : "${elementary-default-settings}/etc" 75 + 76 + # dbus-launch needed in path 77 + --prefix PATH : "${dbus}/bin" 78 + 79 + # for `wingpanel -g` 80 + --prefix PATH : "${wingpanel-with-indicators}/bin" 81 + 82 + # TODO: they should be using meson for this 83 + # See: https://github.com/elementary/greeter/blob/19c0730fded4e9ddec5a491f0e78f83c7c04eb59/src/PantheonGreeter.vala#L451 84 + --prefix PATH : "$out/bin" 85 + ) 86 + ''; 87 + 88 + postFixup = '' 89 + substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \ 90 + --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter" 91 + 92 + substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \ 93 + --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" 94 + ''; 95 + 96 + meta = with stdenv.lib; { 97 + description = "LightDM Greeter for Pantheon"; 98 + homepage = https://github.com/elementary/greeter; 99 + license = licenses.gpl3Plus; 100 + platforms = platforms.linux; 101 + maintainers = pantheon.maintainers; 102 + }; 103 + }
+13
pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch
···
··· 1 + diff --git a/src/meson.build b/src/meson.build 2 + index 2450c1a..a908d11 100644 3 + --- a/src/meson.build 4 + +++ b/src/meson.build 5 + @@ -1,7 +1,7 @@ 6 + conf_data = configuration_data() 7 + conf_data.set('CONF_DIR', join_paths(get_option('sysconfdir'), 'lightdm')) 8 + conf_data.set('GETTEXT_PACKAGE', meson.project_name()) 9 + -conf_data.set('GSD_DIR', '/usr/lib/gnome-settings-daemon/') 10 + +conf_data.set('GSD_DIR', '@elementary-settings-daemon@') 11 + conf_data.set('VERSION', meson.project_version()) 12 + config_header = configure_file ( 13 + input: 'config.vala.in',
+13
pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch
···
··· 1 + diff --git a/src/PantheonGreeter.vala b/src/PantheonGreeter.vala 2 + index 11aa4c0..ae7bf7e 100644 3 + --- a/src/PantheonGreeter.vala 4 + +++ b/src/PantheonGreeter.vala 5 + @@ -163,7 +163,7 @@ public class PantheonGreeter : Gtk.Window { 6 + warning (e.message); 7 + } 8 + if (activate_numlock) { 9 + - Granite.Services.System.execute_command ("/usr/bin/numlockx on"); 10 + + Granite.Services.System.execute_command ("@numlockx@/bin/numlockx on"); 11 + } 12 + 13 + var screensaver_timeout = 60;
+44
pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
···
··· 1 + { stdenv, runCommand, gnome3, elementary-default-settings, nixos-artwork, glib, gala, epiphany, elementary-settings-daemon, gtk3, plank 2 + , extraGSettingsOverrides ? "" 3 + , extraGSettingsOverridePackages ? [] 4 + }: 5 + 6 + let 7 + 8 + gsettingsOverridePackages = [ 9 + gala 10 + epiphany 11 + elementary-settings-daemon 12 + gnome3.mutter 13 + gtk3 14 + plank 15 + ] ++ extraGSettingsOverridePackages; 16 + 17 + in 18 + 19 + with stdenv.lib; 20 + 21 + # TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this 22 + runCommand "elementary-gsettings-desktop-schemas" {} 23 + '' 24 + mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas 25 + 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 26 + 27 + ${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} 28 + 29 + chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides 30 + cp ${elementary-default-settings}/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override \ 31 + $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas 32 + 33 + cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF 34 + [org.gnome.desktop.background] 35 + draw-background=true 36 + picture-options='zoom' 37 + picture-uri='${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png' 38 + primary-color='#000000' 39 + 40 + ${extraGSettingsOverrides} 41 + EOF 42 + 43 + ${glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/ 44 + ''
+39
pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, gtk3 }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "print"; 5 + version = "0.1.3"; 6 + 7 + name = "elementary-print-shim-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "1w3cfap7j42x14mqpfqdm46hk5xc0v5kv8r6wxcnknr3sfxi8qlp"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + attrPath = "elementary-${pname}-shim"; 20 + }; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + ]; 29 + 30 + buildInputs = [ gtk3 ]; 31 + 32 + meta = with stdenv.lib; { 33 + description = "Simple shim for printing support via Contractor"; 34 + homepage = https://github.com/elementary/print; 35 + license = licenses.gpl3Plus; 36 + platforms = platforms.linux; 37 + maintainers = pantheon.maintainers; 38 + }; 39 + }
+8
pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop
···
··· 1 + [Desktop Entry] 2 + Type=Application 3 + Name=Instantiate Default elementary dockitems 4 + Exec=@script@ 5 + StartupNotify=false 6 + NoDisplay=true 7 + OnlyShowIn=Pantheon; 8 + X-GNOME-Autostart-Phase=EarlyInitialization
+107
pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, substituteAll, writeScript, pantheon, gnome-keyring, gnome-session, wingpanel, orca, at-spi2-core, elementary-default-settings, writeTextFile, writeShellScriptBin, elementary-settings-daemon }: 2 + 3 + let 4 + 5 + # 6 + # ─── ENSURES PLANK GETS ELEMENTARY'S DEFAULT DOCKITEMS ──────────────────────────── 7 + # 8 + 9 + # 10 + # Upstream relies on /etc/skel to initiate a new users home directory with planks dockitems. 11 + # 12 + # That is not possible within nixos, but we can achieve this easily with a simple script that copies 13 + # them. We then use a xdg autostart and initalize it during the "EarlyInitialization" phase of a gnome session 14 + # which is most appropriate for installing files into $HOME. 15 + # 16 + 17 + dockitems-script = writeScript "dockitems-script" '' 18 + #!${stdenv.shell} 19 + 20 + elementary_default_settings="${elementary-default-settings}" 21 + dock_items="$elementary_default_settings/share/elementary/config/plank/dock1/launchers"/* 22 + 23 + if [ ! -d "$HOME/.config/plank/dock1" ]; then 24 + echo "Instantiating default Plank Dockitems..." 25 + 26 + mkdir -p $HOME/.config/plank/dock1/launchers 27 + cp -r --no-preserve=mode,ownership $dock_items $HOME/.config/plank/dock1/launchers/ 28 + else 29 + echo "Plank Dockitems already instantiated" 30 + fi 31 + ''; 32 + 33 + dockitemAutostart = substituteAll { 34 + src = ./default-elementary-dockitems.desktop; 35 + script = "${dockitems-script}"; 36 + }; 37 + 38 + executable = writeShellScriptBin "pantheon" '' 39 + export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:$XDG_CONFIG_DIRS 40 + export XDG_DATA_DIRS=${placeholder "out"}/share:$XDG_DATA_DIRS 41 + exec ${gnome-session}/bin/gnome-session --session=pantheon "$@" 42 + ''; 43 + 44 + in 45 + 46 + stdenv.mkDerivation rec { 47 + pname = "session-settings"; 48 + version = "5.0.3"; 49 + 50 + name = "elementary-${pname}-${version}"; 51 + 52 + src = fetchFromGitHub { 53 + owner = "elementary"; 54 + repo = pname; 55 + rev = version; 56 + sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k"; 57 + }; 58 + 59 + passthru = { 60 + updateScript = pantheon.updateScript { 61 + repoName = pname; 62 + attrPath = "elementary-${pname}"; 63 + }; 64 + }; 65 + 66 + dontBuild = true; 67 + 68 + installPhase = '' 69 + mkdir -p $out/share 70 + cp -avr applications $out/share/ 71 + 72 + mkdir -p $out/etc/xdg/autostart 73 + cp -av ${gnome-keyring}/etc/xdg/autostart/* $out/etc/xdg/autostart 74 + cp -av ${orca}/etc/xdg/autostart/* $out/etc/xdg/autostart 75 + cp -av ${at-spi2-core}/etc/xdg/autostart/* $out/etc/xdg/autostart 76 + 77 + cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop 78 + 79 + mkdir -p $out/share/gnome-session/sessions 80 + cp -av gnome-session/pantheon.session $out/share/gnome-session/sessions 81 + 82 + mkdir -p $out/share/xsessions 83 + cp -av xsessions/pantheon.desktop $out/share/xsessions 84 + ''; 85 + 86 + postFixup = '' 87 + substituteInPlace $out/share/xsessions/pantheon.desktop \ 88 + --replace "gnome-session --session=pantheon" "${executable}/bin/pantheon" \ 89 + --replace "wingpanel" "${wingpanel}/bin/wingpanel" 90 + 91 + for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done 92 + 93 + for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart) 94 + do 95 + echo "Patching OnlyShowIn to Pantheon in: $autostart" 96 + sed -i "s,OnlyShowIn=GNOME;,OnlyShowIn=Pantheon;," $autostart 97 + done 98 + ''; 99 + 100 + meta = with stdenv.lib; { 101 + description = "Session settings for elementary"; 102 + homepage = https://github.com/elementary/session-settings; 103 + license = licenses.lgpl3; 104 + platforms = platforms.linux; 105 + maintainers = pantheon.maintainers; 106 + }; 107 + }
+50
pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, libxml2, desktop-file-utils 2 + , gtk3, glib, granite, libgee, elementary-icon-theme, gobject-introspection, wrapGAppsHook }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "shortcut-overlay"; 6 + version = "1.0.1"; 7 + 8 + name = "elementary-${pname}-${version}"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "elementary"; 12 + repo = pname; 13 + rev = version; 14 + sha256 = "1ph4rx2l5fn0zh4fjfjlgbgskmzc0lvzqgcv7v4kr5m4rij1p4y4"; 15 + }; 16 + 17 + passthru = { 18 + updateScript = pantheon.updateScript { 19 + repoName = pname; 20 + attrPath = "elementary-${pname}"; 21 + }; 22 + }; 23 + 24 + nativeBuildInputs = [ 25 + desktop-file-utils 26 + gobject-introspection 27 + libxml2 28 + meson 29 + ninja 30 + pkgconfig 31 + vala 32 + wrapGAppsHook 33 + ]; 34 + 35 + buildInputs = [ 36 + elementary-icon-theme 37 + glib 38 + granite 39 + gtk3 40 + libgee 41 + ]; 42 + 43 + meta = with stdenv.lib; { 44 + description = "A native OS-wide shortcut overlay to be launched by Gala"; 45 + homepage = https://github.com/elementary/shortcut-overlay; 46 + license = licenses.gpl3Plus; 47 + platforms = platforms.linux; 48 + maintainers = pantheon.maintainers; 49 + }; 50 + }
+39
pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
···
··· 1 + { stdenv, substituteAll, fetchFromGitHub, file-roller, gnome-bluetooth }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "extra-elementary-contracts"; 5 + version = "2018-08-21"; 6 + 7 + name = "${pname}-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "worldofpeace"; 11 + repo = pname; 12 + rev = "a05dfb00695854163805b666185e3e9f31b6eb83"; 13 + sha256 = "0fkaf2w4xg0n9faj74rgzy7gvd3yz112l058b157a3pr39vpci7g"; 14 + }; 15 + 16 + patches = [ 17 + (substituteAll { 18 + src = ./exec-path.patch; 19 + file_roller = "${file-roller}"; 20 + gnome_bluetooth = "${gnome-bluetooth}"; 21 + }) 22 + ]; 23 + 24 + dontBuild = true; 25 + 26 + installPhase = '' 27 + mkdir -p $out/share/contractor 28 + 29 + cp *.contract $out/share/contractor/ 30 + ''; 31 + 32 + meta = with stdenv.lib; { 33 + description = "Extra contractor files for elementary"; 34 + homepage = https://github.com/worldofpeace/extra-elementary-contracts; 35 + license = licenses.gpl2; 36 + maintainers = with maintainers; [ worldofpeace ]; 37 + platforms = platforms.linux; 38 + }; 39 + }
+34
pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch
···
··· 1 + diff --git a/file-roller-compress.contract b/file-roller-compress.contract 2 + index 8de5396..de7e939 100644 3 + --- a/file-roller-compress.contract 4 + +++ b/file-roller-compress.contract 5 + @@ -3,6 +3,6 @@ Name=Compress 6 + Icon=add-files-to-archive 7 + Description=Create a compressed archive with the selected objects 8 + MimeType=!archive;inode/blockdevice;inode/chardevice;inode/fifo;inode/socket; 9 + -Exec=file-roller --add %U 10 + +Exec=@file_roller@/bin/file-roller --add %U 11 + Gettext-Domain=file-roller 12 + 13 + diff --git a/file-roller-extract-here.contract b/file-roller-extract-here.contract 14 + index 184a6f2..345f4e7 100644 15 + --- a/file-roller-extract-here.contract 16 + +++ b/file-roller-extract-here.contract 17 + @@ -3,5 +3,5 @@ Name=Extract Here 18 + Icon=extract-archive 19 + Description=Extract the contents of the archives in the archive folder and quit the program 20 + 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; 21 + -Exec=file-roller --extract-here %U 22 + +Exec=@file_roller@/bin/file-roller --extract-here %U 23 + Gettext-Domain=file-roller 24 + diff --git a/gnome-bluetooth.contract b/gnome-bluetooth.contract 25 + index 745dbbe..8cc0102 100644 26 + --- a/gnome-bluetooth.contract 27 + +++ b/gnome-bluetooth.contract 28 + @@ -3,5 +3,5 @@ Name=Send files via Bluetooth 29 + Icon=bluetooth 30 + Description=Send files to device... 31 + MimeType=!inode; 32 + -Exec=bluetooth-sendto %F 33 + +Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F 34 + Gettext-Domain=gnome-bluetooth2
+66
pkgs/desktops/pantheon/desktop/gala/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala 2 + , desktop-file-utils, gettext, libxml2, gtk3, granite, libgee, bamf, libcanberra 3 + , libcanberra-gtk3, gnome-desktop, mutter, clutter, plank, gobject-introspection 4 + , elementary-icon-theme, elementary-settings-daemon, wrapGAppsHook }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "gala"; 8 + version = "unstable-2018-12-16"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "elementary"; 12 + repo = pname; 13 + rev = "7f1e392e03000df0bd47e7832bb3adab81f39ae5"; 14 + sha256 = "1syqq0xfyg5nbnnmy0wp5d66k1bvq9qn27lvr37abxxqig9acpc8"; 15 + }; 16 + 17 + passthru = { 18 + updateScript = pantheon.updateScript { 19 + repoName = pname; 20 + versionPolicy = "master"; 21 + }; 22 + }; 23 + 24 + nativeBuildInputs = [ 25 + desktop-file-utils 26 + gettext 27 + gobject-introspection 28 + libxml2 29 + meson 30 + ninja 31 + pkgconfig 32 + python3 33 + vala 34 + wrapGAppsHook 35 + ]; 36 + 37 + buildInputs = [ 38 + bamf 39 + clutter 40 + elementary-icon-theme 41 + gnome-desktop 42 + elementary-settings-daemon 43 + granite 44 + gtk3 45 + libcanberra 46 + libcanberra-gtk3 47 + libgee 48 + mutter 49 + plank 50 + ]; 51 + 52 + patches = [ ./plugins-dir.patch ]; 53 + 54 + postPatch = '' 55 + chmod +x build-aux/meson/post_install.py 56 + patchShebangs build-aux/meson/post_install.py 57 + ''; 58 + 59 + meta = with stdenv.lib; { 60 + description = "A window & compositing manager based on mutter and designed by elementary for use with Pantheon"; 61 + homepage = https://github.com/elementary/gala; 62 + license = licenses.gpl3Plus; 63 + platforms = platforms.linux; 64 + maintainers = pantheon.maintainers; 65 + }; 66 + }
+22
pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch
···
··· 1 + diff --git a/meson.build b/meson.build 2 + index 6b20a60..205699b 100644 3 + --- a/meson.build 4 + +++ b/meson.build 5 + @@ -38,7 +38,7 @@ conf.set_quoted('PACKAGE_VERSION', gala_version) 6 + conf.set_quoted('DATADIR', data_dir) 7 + conf.set_quoted('PKGDATADIR', pkgdata_dir) 8 + conf.set_quoted('PKGLIBDIR', pkglib_dir) 9 + -conf.set_quoted('PLUGINSDIR', plugins_dir) 10 + +conf.set_quoted('PLUGINSDIR', '/run/current-system/sw/lib/gala/plugins') 11 + conf.set_quoted('RELEASE_NAME', 'Window Manager.') 12 + conf.set_quoted('VERSION', gala_version) 13 + conf.set_quoted('VERSION_INFO', (is_release ? 'Release' : 'Development')) 14 + @@ -83,7 +83,7 @@ add_project_arguments([ 15 + '-DDATADIR="@0@"'.format(data_dir), 16 + '-DPKGDATADIR="@0@"'.format(pkgdata_dir), 17 + '-DPKGLIBDIR="@0@"'.format(pkglib_dir), 18 + - '-DPLUGINDIR="@0@"'.format(plugins_dir), 19 + + '-DPLUGINDIR="@0@"'.format('/run/current-system/sw/lib/gala/plugins'), 20 + '-DSCHEMA="org.pantheon.desktop.gala"', 21 + '-DRESOURCEPATH="/org/pantheon/desktop/gala"', 22 +
+24
pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch
···
··· 1 + diff --git a/lib/synapse-plugins/calculator-plugin.vala b/lib/synapse-plugins/calculator-plugin.vala 2 + index 1b5fa06..076c0c7 100644 3 + --- a/lib/synapse-plugins/calculator-plugin.vala 4 + +++ b/lib/synapse-plugins/calculator-plugin.vala 5 + @@ -51,9 +51,7 @@ namespace Synapse { 6 + _("Calculator"), 7 + _("Calculate basic expressions."), 8 + "accessories-calculator", 9 + - register_plugin, 10 + - Environment.find_program_in_path ("bc") != null, 11 + - _("bc is not installed")); 12 + + register_plugin); 13 + } 14 + 15 + static construct { 16 + @@ -90,7 +88,7 @@ namespace Synapse { 17 + if (matched) { 18 + Pid pid; 19 + int read_fd, write_fd; 20 + - string[] argv = {"bc", "-l"}; 21 + + string[] argv = {"@exec@", "-l"}; 22 + string? solution = null; 23 + 24 + try {
+72
pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, substituteAll, cmake, ninja 2 + , pkgconfig, vala, granite, libgee, gettext, gtk3, appstream, gnome-menus 3 + , json-glib, plank, bamf, switchboard, libunity, libsoup, wingpanel, libwnck3 4 + , zeitgeist, gobject-introspection, elementary-icon-theme, bc, wrapGAppsHook }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "applications-menu"; 8 + version = "2.4.2"; 9 + 10 + name = "wingpanel-${pname}-${version}"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "elementary"; 14 + repo = pname; 15 + rev = version; 16 + sha256 = "0y7kh50ixvm4m56v18c70s05hhpfp683c4qi3sxy50p2368d772x"; 17 + }; 18 + 19 + passthru = { 20 + updateScript = pantheon.updateScript { 21 + repoName = pname; 22 + attrPath = "wingpanel-${pname}"; 23 + }; 24 + }; 25 + 26 + nativeBuildInputs = [ 27 + appstream 28 + cmake 29 + ninja 30 + gettext 31 + gobject-introspection 32 + pkgconfig 33 + vala 34 + wrapGAppsHook 35 + ]; 36 + 37 + buildInputs = [ 38 + bamf 39 + elementary-icon-theme 40 + gnome-menus 41 + granite 42 + gtk3 43 + json-glib 44 + libgee 45 + libsoup 46 + libunity 47 + libwnck3 48 + plank 49 + switchboard 50 + wingpanel 51 + zeitgeist 52 + ]; 53 + 54 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 55 + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; 56 + 57 + patches = [ 58 + (substituteAll { 59 + src = ./bc.patch; 60 + exec = "${bc}/bin/bc"; 61 + }) 62 + ./xdg.patch 63 + ]; 64 + 65 + meta = with stdenv.lib; { 66 + description = "Lightweight and stylish app launcher for Pantheon"; 67 + homepage = https://github.com/elementary/applications-menu; 68 + license = licenses.gpl3Plus; 69 + platforms = platforms.linux; 70 + maintainers = pantheon.maintainers; 71 + }; 72 + }
+13
pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch
···
··· 1 + diff --git a/CMakeLists.txt b/CMakeLists.txt 2 + index 928976a..7f0ea58 100644 3 + --- a/CMakeLists.txt 4 + +++ b/CMakeLists.txt 5 + @@ -90,7 +90,7 @@ link_directories (${DEPS_LIBRARY_DIRS}) 6 + 7 + # Installation 8 + install (TARGETS ${APPNAME} RUNTIME DESTINATION bin) 9 + -install (FILES ${applications_menu} DESTINATION /etc/xdg/menus) 10 + +install (FILES ${applications_menu} DESTINATION etc/xdg/menus) 11 + file (GLOB resources "${CMAKE_CURRENT_SOURCE_DIR}/data/*") 12 + 13 + # Settings schema
+56
pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3 2 + , ninja, vala, gtk3, granite, libnotify, wingpanel, libgee, libxml2 3 + , gobject-introspection, elementary-icon-theme, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "wingpanel-indicator-bluetooth"; 7 + version = "2.1.2"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "1gx0xglp6b3znxl4d2vpzhfkxz5z8q04hh7z2mrihj1in155bn44"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + libxml2 25 + meson 26 + ninja 27 + pkgconfig 28 + python3 29 + vala 30 + wrapGAppsHook 31 + ]; 32 + 33 + buildInputs = [ 34 + elementary-icon-theme 35 + granite 36 + gtk3 37 + libgee 38 + libnotify 39 + wingpanel 40 + ]; 41 + 42 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 43 + 44 + postPatch = '' 45 + chmod +x meson/post_install.py 46 + patchShebangs meson/post_install.py 47 + ''; 48 + 49 + meta = with stdenv.lib; { 50 + description = "Bluetooth Indicator for Wingpanel"; 51 + homepage = https://github.com/elementary/wingpanel-indicator-bluetooth; 52 + license = licenses.lgpl21Plus; 53 + platforms = platforms.linux; 54 + maintainers = pantheon.maintainers; 55 + }; 56 + }
+13
pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch
···
··· 1 + diff --git a/src/Widgets/calendar/Calendar.vala b/src/Widgets/calendar/Calendar.vala 2 + index 76443ca..d86bd44 100644 3 + --- a/src/Widgets/calendar/Calendar.vala 4 + +++ b/src/Widgets/calendar/Calendar.vala 5 + @@ -19,7 +19,7 @@ 6 + 7 + namespace DateTime.Widgets { 8 + public class Calendar : Gtk.Box { 9 + - private const string CALENDAR_EXEC = "/usr/bin/io.elementary.calendar"; 10 + + private const string CALENDAR_EXEC = "@elementary-calendar@"; 11 + 12 + ControlHeader heading; 13 + CalendarView cal;
+71
pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, python3 2 + , ninja, substituteAll, vala, gtk3, granite, wingpanel, evolution-data-server 3 + , libical, libgee, libxml2, libsoup, gobject-introspection 4 + , elementary-calendar, elementary-icon-theme, wrapGAppsHook }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "wingpanel-indicator-datetime"; 8 + version = "2.1.3"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "elementary"; 12 + repo = pname; 13 + rev = version; 14 + sha256 = "1y7a4xjwl3bpls56ys6g3s6mh5b3qbjm2vw7b6n2i4x7a63c4cbh"; 15 + }; 16 + 17 + passthru = { 18 + updateScript = pantheon.updateScript { 19 + repoName = pname; 20 + }; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + gobject-introspection 25 + libxml2 26 + meson 27 + ninja 28 + pkgconfig 29 + python3 30 + vala 31 + wrapGAppsHook 32 + ]; 33 + 34 + buildInputs = [ 35 + elementary-icon-theme 36 + evolution-data-server 37 + granite 38 + gtk3 39 + libgee 40 + libical 41 + libsoup 42 + wingpanel 43 + ]; 44 + 45 + patches = [ 46 + (substituteAll { 47 + src = ./calendar-exec.patch; 48 + elementary-calendar = "${elementary-calendar}/bin/io.elementary.calendar"; 49 + }) 50 + # Use "clock-format" GSettings key that's been moved to granite 51 + (fetchpatch { 52 + url = "https://src.fedoraproject.org/rpms/wingpanel-indicator-datetime/raw/c8d515b76aa812c141212d5515621a6febd781a3/f/00-move-clock-format-settings-to-granite.patch"; 53 + sha256 = "1sq3aw9ckkm057rnrclnw9lyrxbpl37fyzfnbixi2q3ypr70n880"; 54 + }) 55 + ]; 56 + 57 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 58 + 59 + postPatch = '' 60 + chmod +x meson/post_install.py 61 + patchShebangs meson/post_install.py 62 + ''; 63 + 64 + meta = with stdenv.lib; { 65 + description = "Date & Time Indicator for Wingpanel"; 66 + homepage = https://github.com/elementary/wingpanel-indicator-datetime; 67 + license = licenses.gpl2Plus; 68 + platforms = platforms.linux; 69 + maintainers = pantheon.maintainers; 70 + }; 71 + }
+57
pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja 2 + , substituteAll, vala, gtk3, granite, libxml2, wingpanel, libgee 3 + , xorg, libgnomekbd, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "wingpanel-indicator-keyboard"; 7 + version = "2.1.1"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0x0bdd9svw4sffx8pa0pqlh6mrj3fqp4mgrb4n7ys26k2w20ngnb"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + libxml2 27 + pkgconfig 28 + vala 29 + wrapGAppsHook 30 + ]; 31 + 32 + buildInputs = [ 33 + elementary-icon-theme 34 + granite 35 + gtk3 36 + libgee 37 + wingpanel 38 + ]; 39 + 40 + patches = [ 41 + (substituteAll { 42 + src = ./fix-paths.patch; 43 + libgnomekbd_path = "${libgnomekbd}/bin/"; 44 + config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml"; 45 + }) 46 + ]; 47 + 48 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 49 + 50 + meta = with stdenv.lib; { 51 + description = "Keyboard Indicator for Wingpanel"; 52 + homepage = https://github.com/elementary/wingpanel-indicator-keyboard; 53 + license = licenses.lgpl21Plus; 54 + platforms = platforms.linux; 55 + maintainers = pantheon.maintainers; 56 + }; 57 + }
+26
pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch
···
··· 1 + diff --git a/src/Indicator.vala b/src/Indicator.vala 2 + index cd7ca49..0bef9c7 100644 3 + --- a/src/Indicator.vala 4 + +++ b/src/Indicator.vala 5 + @@ -94,7 +94,7 @@ public class Keyboard.Indicator : Wingpanel.Indicator { 6 + private void show_keyboard_map () { 7 + close (); 8 + 9 + - string command = "gkbd-keyboard-display \"--layout=" + layouts.get_current_with_variant () + "\""; 10 + + string command = "@libgnomekbd_path@gkbd-keyboard-display \"--layout=" + layouts.get_current_with_variant () + "\""; 11 + 12 + try { 13 + AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE).launch (null, null); 14 + diff --git a/src/LayoutsManager.vala b/src/LayoutsManager.vala 15 + index 1bac80e..67df847 100644 16 + --- a/src/LayoutsManager.vala 17 + +++ b/src/LayoutsManager.vala 18 + @@ -97,7 +97,7 @@ public class Keyboard.Widgets.LayoutManager : Gtk.ScrolledWindow { 19 + 20 + public string? get_name_for_xkb_layout (string language, string? variant) { 21 + debug ("get_name_for_xkb_layout (%s, %s)", language, variant); 22 + - Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml"); 23 + + Xml.Doc* doc = Xml.Parser.parse_file ("@config@"); 24 + if (doc == null) { 25 + critical ("'evdev.xml' not found or permissions incorrect\n"); 26 + return null;
+50
pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala 2 + , gtk3, granite, networkmanager, networkmanagerapplet, wingpanel 3 + , libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "wingpanel-indicator-network"; 7 + version = "2.2.1"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0k039qqlpwhl34mdhwjqhp7bz8vi432p0zfxzcdhsjhglpk8srlw"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + wrapGAppsHook 29 + ]; 30 + 31 + buildInputs = [ 32 + elementary-icon-theme 33 + granite 34 + gtk3 35 + libgee 36 + networkmanager 37 + networkmanagerapplet 38 + wingpanel 39 + ]; 40 + 41 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 42 + 43 + meta = with stdenv.lib; { 44 + description = "Network Indicator for Wingpanel"; 45 + homepage = https://github.com/elementary/wingpanel-indicator-network; 46 + license = licenses.lgpl21Plus; 47 + platforms = platforms.linux; 48 + maintainers = pantheon.maintainers; 49 + }; 50 + }
+49
pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala 2 + , gtk3, granite, wingpanel, libgee, libxml2, gobject-introspection 3 + , elementary-icon-theme, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "wingpanel-indicator-nightlight"; 7 + version = "2.0.1"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "17pa048asbkhzz5945hjp96dnghdl72nqp1zq0b999nawnfrb339"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + libxml2 25 + meson 26 + ninja 27 + pkgconfig 28 + vala 29 + wrapGAppsHook 30 + ]; 31 + 32 + buildInputs = [ 33 + elementary-icon-theme 34 + granite 35 + gtk3 36 + libgee 37 + wingpanel 38 + ]; 39 + 40 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 41 + 42 + meta = with stdenv.lib; { 43 + description = "Night Light Indicator for Wingpanel"; 44 + homepage = https://github.com/elementary/wingpanel-indicator-nightlight; 45 + license = licenses.gpl2Plus; 46 + platforms = platforms.linux; 47 + maintainers = pantheon.maintainers; 48 + }; 49 + }
+48
pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, gtk3, granite 2 + , wingpanel, libgee, libwnck3, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "wingpanel-indicator-notifications"; 6 + version = "2.1.2"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1960s3xcsx6yjlnk0csf1m66s1z1sj5rym9b2fy7pm2nan47z3ld"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + wrapGAppsHook 28 + ]; 29 + 30 + buildInputs = [ 31 + elementary-icon-theme 32 + granite 33 + gtk3 34 + libgee 35 + libwnck3 36 + wingpanel 37 + ]; 38 + 39 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 40 + 41 + meta = with stdenv.lib; { 42 + description = "Notifications Indicator for Wingpanel"; 43 + homepage = https://github.com/elementary/wingpanel-indicator-notifications; 44 + license = licenses.lgpl21Plus; 45 + platforms = platforms.linux; 46 + maintainers = pantheon.maintainers; 47 + }; 48 + }
+57
pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3 2 + , ninja, vala, gtk3, granite, bamf, libgtop, udev, wingpanel 3 + , libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "wingpanel-indicator-power"; 7 + version = "2.1.3"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "1rkqa27bsfai4psp19sy61in6730da0s7nds7dkcf06a0hvjvjc2"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + python3 28 + vala 29 + wrapGAppsHook 30 + ]; 31 + 32 + buildInputs = [ 33 + bamf 34 + elementary-icon-theme 35 + granite 36 + gtk3 37 + libgee 38 + libgtop 39 + udev 40 + wingpanel 41 + ]; 42 + 43 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 44 + 45 + postPatch = '' 46 + chmod +x meson/post_install.py 47 + patchShebangs meson/post_install.py 48 + ''; 49 + 50 + meta = with stdenv.lib; { 51 + description = "Power Indicator for Wingpanel"; 52 + homepage = https://github.com/elementary/wingpanel-indicator-power; 53 + license = licenses.gpl2Plus; 54 + platforms = platforms.linux; 55 + maintainers = pantheon.maintainers; 56 + }; 57 + }
+49
pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson 2 + , ninja, vala, gtk3, granite, wingpanel, accountsservice 3 + , libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "wingpanel-indicator-session"; 7 + version = "2.2.2"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "15ghhiabk74m7fm5pzr2qmdwpc330jczvvkwbf5pf7qczfyipjln"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + wrapGAppsHook 29 + ]; 30 + 31 + buildInputs = [ 32 + accountsservice 33 + elementary-icon-theme 34 + granite 35 + gtk3 36 + libgee 37 + wingpanel 38 + ]; 39 + 40 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 41 + 42 + meta = with stdenv.lib; { 43 + description = "Session Indicator for Wingpanel"; 44 + homepage = https://github.com/elementary/wingpanel-indicator-session; 45 + license = licenses.gpl2Plus; 46 + platforms = platforms.linux; 47 + maintainers = pantheon.maintainers; 48 + }; 49 + }
+59
pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson 2 + , python3, ninja, vala, gtk3, granite, wingpanel, libnotify 3 + , pulseaudio, libcanberra-gtk3, libgee, libxml2, wrapGAppsHook 4 + , gobject-introspection, elementary-icon-theme }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "wingpanel-indicator-sound"; 8 + version = "2.1.2"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "elementary"; 12 + repo = pname; 13 + rev = version; 14 + sha256 = "0hxbr5dp8d1czq8ffw339r41c7srqb72vr48hxph8g091d3mcgcl"; 15 + }; 16 + 17 + passthru = { 18 + updateScript = pantheon.updateScript { 19 + repoName = pname; 20 + }; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + gobject-introspection 25 + libxml2 26 + meson 27 + ninja 28 + pkgconfig 29 + python3 30 + vala 31 + wrapGAppsHook 32 + ]; 33 + 34 + buildInputs = [ 35 + elementary-icon-theme 36 + granite 37 + gtk3 38 + libcanberra-gtk3 39 + libgee 40 + libnotify 41 + pulseaudio 42 + wingpanel 43 + ]; 44 + 45 + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; 46 + 47 + postPatch = '' 48 + chmod +x meson/post_install.py 49 + patchShebangs meson/post_install.py 50 + ''; 51 + 52 + meta = with stdenv.lib; { 53 + description = "Sound Indicator for Wingpanel"; 54 + homepage = https://github.com/elementary/wingpanel-indicator-sound; 55 + license = licenses.gpl2Plus; 56 + platforms = platforms.linux; 57 + maintainers = pantheon.maintainers; 58 + }; 59 + }
+61
pkgs/desktops/pantheon/desktop/wingpanel/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, wrapGAppsHook, pkgconfig, meson, ninja 2 + , vala, gala, gtk3, libgee, granite, gettext, glib-networking, mutter, json-glib 3 + , python3, gobject-introspection }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "wingpanel"; 7 + version = "2.2.2"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "1knkqh9q6yp7qf27zi6ki20fq4w0ia2hklvv84ivfmfa0irz0j6r"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + }; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + gettext 24 + glib-networking 25 + gobject-introspection 26 + meson 27 + ninja 28 + pkgconfig 29 + python3 30 + vala 31 + wrapGAppsHook 32 + ]; 33 + 34 + buildInputs = [ 35 + gala 36 + granite 37 + gtk3 38 + json-glib 39 + libgee 40 + mutter 41 + ]; 42 + 43 + patches = [ ./indicators.patch ]; 44 + 45 + postPatch = '' 46 + chmod +x meson/post_install.py 47 + patchShebangs meson/post_install.py 48 + ''; 49 + 50 + meta = with stdenv.lib; { 51 + description = "The extensible top panel for Pantheon"; 52 + longDescription = '' 53 + Wingpanel is an empty container that accepts indicators as extensions, 54 + including the applications menu. 55 + ''; 56 + homepage = https://github.com/elementary/wingpanel; 57 + license = licenses.gpl2Plus; 58 + platforms = platforms.linux; 59 + maintainers = pantheon.maintainers; 60 + }; 61 + }
+21
pkgs/desktops/pantheon/desktop/wingpanel/indicators.patch
···
··· 1 + diff --git a/lib/IndicatorManager.vala b/lib/IndicatorManager.vala 2 + index a99a1ec..0ae7799 100644 3 + --- a/lib/IndicatorManager.vala 4 + +++ b/lib/IndicatorManager.vala 5 + @@ -115,7 +115,15 @@ public class Wingpanel.IndicatorManager : GLib.Object { 6 + } 7 + 8 + /* load indicators */ 9 + - var base_folder = File.new_for_path (Build.INDICATORS_DIR); 10 + + 11 + + var indicators_path = Environment.get_variable("WINGPANEL_INDICATORS_PATH"); 12 + + if (indicators_path != null) { 13 + + debug ("WINGPANEL_INDICATORS_PATH set to %s", indicators_path); 14 + + } else { 15 + + critical ("WINGPANEL_INDICATORS_PATH not set"); 16 + + } 17 + + 18 + + var base_folder = File.new_for_path (indicators_path); 19 + 20 + try { 21 + monitor = base_folder.monitor_directory (FileMonitorFlags.NONE, null);
+23
pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
···
··· 1 + { lib, makeWrapper, symlinkJoin, wingpanel, wingpanelIndicators, switchboard-with-plugs, indicators ? null }: 2 + 3 + let 4 + selectedIndicators = if indicators == null then wingpanelIndicators else indicators; 5 + in 6 + symlinkJoin { 7 + name = "${wingpanel.name}-with-indicators"; 8 + 9 + paths = [ wingpanel ] ++ selectedIndicators; 10 + 11 + buildInputs = [ makeWrapper ]; 12 + 13 + # We have to set SWITCHBOARD_PLUGS_PATH because wingpanel-applications-menu 14 + # has a plugin to search switchboard settings 15 + postBuild = '' 16 + wrapProgram $out/bin/wingpanel \ 17 + --set WINGPANEL_INDICATORS_PATH "$out/lib/wingpanel" \ 18 + --set SWITCHBOARD_PLUGS_PATH "${switchboard-with-plugs}/lib/switchboard" \ 19 + --suffix XDG_DATA_DIRS : ${lib.concatMapStringsSep ":" (indicator: ''${indicator}/share/gsettings-schemas/${indicator.name}'') selectedIndicators} 20 + ''; 21 + 22 + inherit (wingpanel) meta; 23 + }
+48
pkgs/desktops/pantheon/services/cerbere/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, glib, libgee, vala, gobject-introspection, wrapGAppsHook }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "cerbere"; 5 + version = "0.2.4"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "elementary"; 9 + repo = pname; 10 + rev = version; 11 + sha256 = "0f9jr6q5z6nir5b77f96wm9rx6r6s9i0sr1yrymg3n7jyjgrvdwp"; 12 + }; 13 + 14 + passthru = { 15 + updateScript = pantheon.updateScript { 16 + repoName = pname; 17 + }; 18 + }; 19 + 20 + nativeBuildInputs = [ 21 + gobject-introspection 22 + meson 23 + ninja 24 + pkgconfig 25 + python3 26 + vala 27 + wrapGAppsHook 28 + ]; 29 + 30 + buildInputs = [ 31 + glib 32 + libgee 33 + ]; 34 + 35 + postPatch = '' 36 + chmod +x meson/post_install.py 37 + patchShebangs meson/post_install.py 38 + ''; 39 + 40 + meta = with stdenv.lib; { 41 + description = "A simple service to ensure uptime of essential processes"; 42 + homepage = https://github.com/elementary/cerbere; 43 + license = licenses.gpl2Plus; 44 + platforms = platforms.linux; 45 + maintainers = pantheon.maintainers; 46 + }; 47 + 48 + }
+45
pkgs/desktops/pantheon/services/contractor/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, meson, python3, ninja, pkgconfig, vala, glib, libgee, dbus, glib-networking, gobject-introspection }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "contractor"; 5 + version = "0.3.4"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "elementary"; 9 + repo = pname; 10 + rev = version; 11 + sha256 = "1jzqv7pglhhyrkj1pfk1l624zn1822wyl5dp6gvwn4sk3iqxwwhl"; 12 + }; 13 + 14 + passthru = { 15 + updateScript = pantheon.updateScript { 16 + repoName = pname; 17 + }; 18 + }; 19 + 20 + nativeBuildInputs = [ 21 + dbus 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + python3 27 + vala 28 + ]; 29 + 30 + buildInputs = [ 31 + glib 32 + glib-networking 33 + libgee 34 + ]; 35 + 36 + PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "share/dbus-1/services"; 37 + 38 + meta = with stdenv.lib; { 39 + description = "A desktop-wide extension service used by elementary OS"; 40 + homepage = https://github.com/elementarycontractor; 41 + license = licenses.gpl3Plus; 42 + platforms = platforms.linux; 43 + maintainers = pantheon.maintainers; 44 + }; 45 + }
+58
pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala 2 + , desktop-file-utils, gtk3, granite, libgee, gcr, webkitgtk, gobject-introspection, wrapGAppsHook }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "capnet-assist"; 6 + version = "2.2.2"; 7 + 8 + name = "elementary-${pname}-${version}"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "elementary"; 12 + repo = pname; 13 + rev = version; 14 + sha256 = "138fxijnnp0gqzj7h0p9r4crpafas1kmvb3r9bb76mmygbdixkgh"; 15 + }; 16 + 17 + passthru = { 18 + updateScript = pantheon.updateScript { 19 + repoName = pname; 20 + attrPath = "elementary-${pname}"; 21 + }; 22 + }; 23 + 24 + nativeBuildInputs = [ 25 + desktop-file-utils 26 + gobject-introspection 27 + meson 28 + ninja 29 + pkgconfig 30 + python3 31 + vala 32 + wrapGAppsHook 33 + ]; 34 + 35 + buildInputs = [ 36 + gcr 37 + granite 38 + gtk3 39 + libgee 40 + webkitgtk 41 + ]; 42 + 43 + # Not useful here or in elementary - See: https://github.com/elementary/capnet-assist/issues/3 44 + patches = [ ./remove-capnet-test.patch ]; 45 + 46 + postPatch = '' 47 + chmod +x meson/post_install.py 48 + patchShebangs meson/post_install.py 49 + ''; 50 + 51 + meta = with stdenv.lib; { 52 + description = "A small WebKit app that assists a user with login when a captive portal is detected"; 53 + homepage = https://github.com/elementary/capnet-assist; 54 + license = licenses.gpl2Plus; 55 + platforms = platforms.linux; 56 + maintainers = pantheon.maintainers; 57 + }; 58 + }
+13
pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch
···
··· 1 + diff --git a/meson.build b/meson.build 2 + index 46c594b..ba0ea10 100644 3 + --- a/meson.build 4 + +++ b/meson.build 5 + @@ -33,8 +33,3 @@ meson.add_install_script('meson/post_install.py') 6 + 7 + subdir('data') 8 + subdir('po') 9 + - 10 + -install_data( 11 + - '90captive_portal_test', 12 + - install_dir: join_paths(get_option('sysconfdir'), 'NetworkManager', 'dispatcher.d') 13 + -)
+57
pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, makeWrapper, lib, meson, ninja, desktop-file-utils, glib, coreutils, elementary-settings-daemon, wrapGAppsHook }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "dpms-helper"; 5 + version = "1.0"; 6 + 7 + name = "elementary-${pname}-${version}"; 8 + 9 + src = fetchFromGitHub { 10 + owner = "elementary"; 11 + repo = pname; 12 + rev = version; 13 + sha256 = "0svfp0qyb6nx4mjl3jx4aqmb4x24m25jpi75mdis3yfr3c1xz9nh"; 14 + }; 15 + 16 + passthru = { 17 + updateScript = pantheon.updateScript { 18 + repoName = pname; 19 + attrPath = "elementary-${pname}"; 20 + }; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + desktop-file-utils 25 + makeWrapper 26 + meson 27 + ninja 28 + wrapGAppsHook 29 + ]; 30 + 31 + buildInputs = [ 32 + elementary-settings-daemon 33 + glib 34 + ]; 35 + 36 + preFixup = '' 37 + gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ glib.dev coreutils ]}") 38 + ''; 39 + 40 + postFixup = '' 41 + substituteInPlace $out/etc/xdg/autostart/io.elementary.dpms-helper.desktop \ 42 + --replace "Exec=io.elementary.dpms-helper" "Exec=$out/bin/io.elementary.dpms-helper" 43 + ''; 44 + 45 + # See: https://github.com/elementary/dpms-helper/pull/10 46 + postInstall = '' 47 + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas 48 + ''; 49 + 50 + meta = with stdenv.lib; { 51 + description = "Sets DPMS settings found in org.pantheon.dpms"; 52 + homepage = https://github.com/elementary/dpms-helper; 53 + license = licenses.gpl2; 54 + platforms = platforms.linux; 55 + maintainers = pantheon.maintainers; 56 + }; 57 + }
+117
pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
···
··· 1 + { fetchurl, fetchgit, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, perl, gettext, glib, libnotify, lcms2, libXtst 2 + , libxkbfile, libpulseaudio, alsaLib, libcanberra-gtk3, upower, colord, libgweather, polkit 3 + , geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libxml2, networkmanager 4 + , docbook_xsl, wrapGAppsHook, python3, ibus, xkeyboard_config, tzdata, nss, pantheon, accountsservice }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "elementary-settings-daemon"; 8 + version = "3.30.2"; 9 + 10 + src = fetchurl { 11 + url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/gnome-settings-daemon-${version}.tar.xz"; 12 + sha256 = "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12"; 13 + }; 14 + 15 + # Source for ubuntu's patchset 16 + src2 = fetchgit { 17 + url = "https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-settings-daemon"; 18 + rev = "refs/tags/ubuntu/${version}-1ubuntu1"; 19 + sha256 = "02awkhw6jqm7yh812mw0nsdmsljfi8ksz8mvd2qpns5pcv002g2c"; 20 + }; 21 + 22 + # We've omitted the 53_sync_input_sources_to_accountsservice patch because it breaks the build. 23 + # See: https://gist.github.com/worldofpeace/2f152a20b7c47895bb93239fce1c9f52 24 + # 25 + # Also omit ubuntu_calculator_snap.patch as that's obviously not useful here. 26 + patches = let patchPath = "${src2}/debian/patches"; in [ 27 + (substituteAll { 28 + src = ./fix-paths.patch; 29 + inherit tzdata; 30 + }) 31 + "${patchPath}/45_suppress-printer-may-not-be-connected-notification.patch" 32 + "${patchPath}/64_restore_terminal_keyboard_shortcut_schema.patch" 33 + "${patchPath}/correct_logout_action.patch" 34 + "${patchPath}/ubuntu-lid-close-suspend.patch" 35 + "${patchPath}/revert-wacom-migration.patch" 36 + "${patchPath}/revert-gsettings-removals.patch" 37 + "${patchPath}/revert-mediakeys-dbus-interface-drop.patch" 38 + "${patchPath}/ubuntu_ibus_configs.patch" 39 + (fetchurl { 40 + url = "https://github.com/elementary/os-patches/raw/6975d1c254cb6ab913b8e2396877203aea8eaa65/debian/patches/elementary-dpms.patch"; 41 + sha256 = "0kh508ppiv4nvkg30gmw85cljlfq1bvkzhvf1iaxw0snb0mwgsxi"; 42 + }) 43 + ]; 44 + 45 + postPatch = '' 46 + for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do 47 + chmod +x $f 48 + patchShebangs $f 49 + done 50 + ''; 51 + 52 + postFixup = '' 53 + for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done 54 + 55 + for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart) 56 + do 57 + echo "Patching OnlyShowIn to Pantheon in: $autostart" 58 + sed -i "s,OnlyShowIn=GNOME;,OnlyShowIn=Pantheon;," $autostart 59 + done 60 + 61 + # This breaks lightlocker https://github.com/elementary/session-settings/commit/b0e7a2867608c3a3916f9e4e21a68264a20e44f8 62 + rm $out/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy-pantheon.desktop 63 + ''; 64 + 65 + nativeBuildInputs = [ 66 + docbook_xsl 67 + gettext 68 + libxml2 69 + libxslt 70 + meson 71 + ninja 72 + perl 73 + pkgconfig 74 + python3 75 + wrapGAppsHook 76 + ]; 77 + 78 + buildInputs = with gnome3; [ 79 + accountsservice 80 + alsaLib 81 + colord 82 + geoclue2 83 + geocode-glib 84 + glib 85 + gnome-desktop 86 + gsettings-desktop-schemas 87 + gtk 88 + ibus 89 + lcms2 90 + libXtst 91 + libcanberra-gtk3 92 + libgudev 93 + libgweather 94 + libnotify 95 + libpulseaudio 96 + librsvg 97 + libwacom 98 + libxkbfile 99 + networkmanager 100 + nss 101 + polkit 102 + udev 103 + upower 104 + xf86_input_wacom 105 + xkeyboard_config 106 + ]; 107 + 108 + mesonFlags = [ 109 + "-Dudev_dir=${placeholder "out"}/lib/udev" 110 + ]; 111 + 112 + meta = with stdenv.lib; { 113 + license = licenses.gpl2Plus; 114 + maintainers = pantheon.maintainers; 115 + platforms = platforms.linux; 116 + }; 117 + }
+15
pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch
···
··· 1 + --- a/plugins/datetime/tz.h 2 + +++ b/plugins/datetime/tz.h 3 + @@ -27,11 +27,7 @@ 4 + 5 + #include <glib.h> 6 + 7 + -#ifndef __sun 8 + -# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab" 9 + -#else 10 + -# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" 11 + -#endif 12 + +#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab" 13 + 14 + typedef struct _TzDB TzDB; 15 + typedef struct _TzLocation TzLocation;
+49
pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, ninja, vala, glib 2 + , gtk3, libgee, desktop-file-utils, geoclue2, gobject-introspection, wrapGAppsHook }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "pantheon-agent-geoclue2"; 6 + version = "1.0.1"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "0fww65dnbg9zn0gy1q2db39kjra50ykzw05pmn9iwxkijyxi8hm5"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + desktop-file-utils 23 + gobject-introspection 24 + meson 25 + ninja 26 + pkgconfig 27 + vala 28 + wrapGAppsHook 29 + ]; 30 + 31 + buildInputs = [ 32 + geoclue2 33 + gtk3 34 + libgee 35 + ]; 36 + 37 + # This should be provided by a post_install.py script - See -> https://github.com/elementary/pantheon-agent-geoclue2/pull/21 38 + postInstall = '' 39 + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas 40 + ''; 41 + 42 + meta = with stdenv.lib; { 43 + description = "Pantheon Geoclue2 Agent"; 44 + homepage = https://github.com/elementary/pantheon-agent-geoclue2; 45 + license = licenses.gpl3Plus; 46 + platforms = platforms.linux; 47 + maintainers = pantheon.maintainers; 48 + }; 49 + }
+43
pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja 2 + , vala, gtk3, libgee, polkit, gobject-introspection, wrapGAppsHook }: 3 + 4 + stdenv.mkDerivation rec { 5 + pname = "pantheon-agent-polkit"; 6 + version = "0.1.6"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "elementary"; 10 + repo = pname; 11 + rev = version; 12 + sha256 = "1g9l2jzpvv0dbvxh93w98a7ijsfqv3s3382li4s256179gihhd67"; 13 + }; 14 + 15 + passthru = { 16 + updateScript = pantheon.updateScript { 17 + repoName = pname; 18 + }; 19 + }; 20 + 21 + nativeBuildInputs = [ 22 + gobject-introspection 23 + meson 24 + ninja 25 + pkgconfig 26 + vala 27 + wrapGAppsHook 28 + ]; 29 + 30 + buildInputs = [ 31 + gtk3 32 + libgee 33 + polkit 34 + ]; 35 + 36 + meta = with stdenv.lib; { 37 + description = "Polkit Agent for the Pantheon Desktop"; 38 + homepage = https://github.com/elementary/pantheon-agent-polkit; 39 + license = licenses.lgpl21Plus; 40 + platforms = platforms.linux; 41 + maintainers = pantheon.maintainers; 42 + }; 43 + }
+18
pkgs/desktops/pantheon/update.nix
···
··· 1 + { stdenv, writeScript, runCommand, nix, bash, git, jq, nix-prefetch-scripts, coreutils, common-updater-scripts, gnugrep, gnused, curl }: 2 + { repoName, attrPath ? repoName, versionPolicy ? "release" }: 3 + let 4 + script = ./update.sh; 5 + 6 + updateScript = runCommand "update.sh" { 7 + inherit bash git jq nix coreutils gnugrep gnused curl; 8 + # These weren't being substituted 9 + nix_prefetch_scripts = nix-prefetch-scripts; 10 + common_updater_scripts = common-updater-scripts; 11 + } '' 12 + substituteAll ${script} $out 13 + chmod +x $out 14 + ''; 15 + 16 + versionFlag = { "release" = "-r"; "master" = "-m"; }.${versionPolicy}; 17 + 18 + in [ updateScript versionFlag repoName attrPath ]
+223
pkgs/desktops/pantheon/update.sh
···
··· 1 + #!@bash@/bin/bash 2 + PATH=@bash@/bin:@nix_prefetch_scripts@/bin:@common_updater_scripts@/bin:@git@/bin:@jq@/bin:@nix@/bin:@gnugrep@/bin:@gnused@/bin:@curl@/bin:$PATH 3 + #!/usr/bin/env bash 4 + 5 + set -eu -o pipefail 6 + 7 + # 8 + # ─── HOW TO USE ───────────────────────────────────────────────────────────────── 9 + # 10 + 11 + function usage ( ) { 12 + cat <<EOF 13 + Usage: update.sh <repo_name> <attr> 14 + EOF 15 + } 16 + 17 + # 18 + # ─── POINTS YOU IN THE RIGHT DIRECTION ────────────────────────────────────────── 19 + # 20 + 21 + function usage_tip ( ) { 22 + echo 'run `update.sh -h` for usage instructions' >&2 23 + exit 1 24 + } 25 + 26 + # 27 + # ─── OPTIONS: RELEASE | MASTER ──────────────────────────────────────────────────── 28 + # 29 + 30 + while getopts ":hrm" opt; do 31 + case $opt in 32 + r) 33 + release=1 34 + master=0 35 + ;; 36 + m) 37 + master=1 38 + release=0 39 + ;; 40 + h) 41 + usage 42 + exit 43 + ;; 44 + ?) 45 + echo "Invalid option: -$OPTARG" >&2 46 + usage_tip 47 + ;; 48 + esac 49 + done 50 + 51 + shift $((OPTIND-1)) 52 + 53 + # 54 + # ─── FAIL WITH MESSAGE AND NON-ZERO EXIT STATUS ───────────────────────────────── 55 + # 56 + 57 + function fail ( ) { 58 + echo "$1" >&2 59 + exit 1 60 + } 61 + 62 + # 63 + # ─── UPDATES PACKAGE TO LATEST TAGGED RELEASE ─────────────────────────────── 64 + # 65 + 66 + function update_to_latest_release ( ) { 67 + repo_name="$1" 68 + attr="$2" 69 + 70 + version=$(get_latest_tag "$repo_name") 71 + fetch=$(fetch "$repo_name" "refs/tags/${version}") 72 + sha256=$(get_hash "${fetch}") 73 + 74 + update-source-version "pantheon.$attr" "$version" "$sha256" 75 + 76 + nix_file=$(get_file_path $attr) 77 + 78 + if [ ! -f "$nix_file" ]; then 79 + fail "Couldn't evaluate 'pantheon.$attr.meta.position' to locate the .nix file!" 80 + fi 81 + 82 + correct_rev "$attr" "$nix_file" "version" 83 + } 84 + 85 + # 86 + # ─── UPDATES PACKAGE TO MASTER ────────────────────────────────────────────────── 87 + # 88 + 89 + function update_to_master ( ) { 90 + repo_name="$1" 91 + attr="$2" 92 + 93 + fetch=$(fetch "$repo_name" "refs/heads/master") 94 + 95 + version=$(get_version "$fetch") 96 + sha256=$(get_hash "$fetch") 97 + proper_version=$(get_master_date "$fetch") 98 + 99 + update-source-version "pantheon.$attr" "$proper_version" "$sha256" 100 + 101 + nix_file=$(get_file_path $attr) 102 + 103 + if [ ! -f "$nix_file" ]; then 104 + fail "Couldn't evaluate 'pantheon.$attr.meta.position' to locate the .nix file!" 105 + fi 106 + 107 + correct_rev "$attr" "$nix_file" '"'$version'"' 108 + } 109 + 110 + # 111 + # ─── GETS THE LATEST TAGGED RELEASE NAME FROM GITHUB ───────────────────── 112 + # 113 + 114 + function get_latest_tag ( ) { 115 + repo_name="$1" 116 + 117 + # Using github release api because sorting this repo just doesn't work because of old git sillyness 118 + # Also too lazy to care to adapt `git ls-remote` command to work with it 119 + if [ $repo_name == "switchboard-plug-pantheon-shell" ]; then 120 + curl --silent --show-error --fail -X GET "https://api.github.com/repos/elementary/$repo_name/releases/latest" | jq -r '.tag_name' 121 + else 122 + git ls-remote --tags --sort="v:refname" "https://github.com/elementary/$repo_name" | tail -n1 | sed 's/.*\///; s/\^{}//' 123 + fi 124 + } 125 + 126 + # 127 + # ─── FETCHES REPO AND RETURNS RELEVANT INFORMATION ────────────────── 128 + # 129 + 130 + function fetch ( ) { 131 + repo_name="$1" 132 + version="$2" 133 + 134 + base_url="https://github.com/elementary" 135 + full_url="$base_url/$repo_name" 136 + 137 + nix-prefetch-git --quiet --no-deepClone --url "$full_url" --rev "$version" 138 + } 139 + 140 + # 141 + # ─── PARSES GIT REVISION FROM FETCH ───────────────────────────────────────────── 142 + # 143 + 144 + function get_version ( ) { 145 + fetch_info="$1" 146 + 147 + echo "$fetch_info" | jq -r '.rev' 148 + } 149 + 150 + # 151 + # ─── PARSES HASH FROM FETCH ───────────────────────────────────────────────────── 152 + # 153 + 154 + function get_hash ( ) { 155 + fetch_info="$1" 156 + 157 + echo "$fetch_info" | jq -r '.sha256' 158 + } 159 + 160 + # 161 + # ─── PARSES DATE FROM FETCH AND NORMALIZES IT TO NIXPKGS STANDARD ─────────────── 162 + # 163 + 164 + function get_master_date ( ) { 165 + fetch_info="$1" 166 + 167 + full_date=$(echo "$fetch_info" | jq -r '.date') 168 + short_date=$(date -d "$full_date" +"%Y-%m-%d") 169 + 170 + echo "unstable-$short_date" 171 + } 172 + 173 + # 174 + # ─── RETURN NIX EXPRESSION PATH ───────────────────────────────────────────────── 175 + # 176 + 177 + function get_file_path () { 178 + attr="$1" 179 + 180 + nix-instantiate --eval --strict -A "pantheon.$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/' 181 + } 182 + 183 + # 184 + # ─── CORRECTS REV VERSION ─────────────────────────────────────────────────────────── 185 + # 186 + 187 + function correct_rev ( ) { 188 + attr="$1" 189 + nix_file="$2" 190 + rev="$3" 191 + 192 + check_pattern1='^\s*rev\s*=\s*"[0-9a-f]{5,40}"' 193 + check_pattern2='^\s*rev\s*=\s*version' 194 + 195 + replace_pattern1='/\brev\b\s*=/ s|\"[0-9a-f]{5,40}\"|'$rev'|' 196 + replace_pattern2='/\brev\b\s*=/ s|version|'$rev'|' 197 + 198 + if [ $(grep -c -P "$check_pattern1" "$nix_file") = 1 ]; then 199 + pattern="$replace_pattern1" 200 + elif [ $(grep -c -P "$check_pattern2" "$nix_file") = 1 ]; then 201 + pattern="$replace_pattern2" 202 + else 203 + fail "Couldn't figure out where out where to patch in the correct version in pantheon.$attr!" 204 + fi 205 + 206 + sed -i.bak "$nix_file" -re "$pattern" 207 + rm -f "$nix_file.bak" 208 + } 209 + 210 + 211 + # 212 + # ─── WHETHER TO UPDATE TO RELEASE OR MASTER ────────────────────────────────── 213 + # 214 + 215 + if [ $release = 1 ]; then 216 + update_to_latest_release $1 $2 217 + elif [ $master = 1 ]; then 218 + update_to_master $1 $2 219 + else 220 + exit 1 221 + fi 222 + 223 + # ────────────────────────────────────────────────────────────────────────────────
pkgs/development/libraries/granite/02-datetime-clock-format-gsettings.patch pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch
+10 -4
pkgs/development/libraries/granite/default.nix pkgs/desktops/pantheon/granite/default.nix
··· 1 - { stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala_0_40, pkgconfig, gobject-introspection, gnome3, gtk3, glib, gettext, hicolor-icon-theme, wrapGAppsHook }: 2 3 stdenv.mkDerivation rec { 4 pname = "granite"; ··· 26 ./02-datetime-clock-format-gsettings.patch 27 ]; 28 29 nativeBuildInputs = [ 30 gettext 31 gobject-introspection ··· 33 ninja 34 pkgconfig 35 python3 36 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 37 wrapGAppsHook 38 ]; 39 ··· 41 glib 42 gtk3 43 hicolor-icon-theme 44 - gnome3.libgee 45 ]; 46 47 postPatch = '' ··· 58 homepage = https://github.com/elementary/granite; 59 license = licenses.lgpl3Plus; 60 platforms = platforms.linux; 61 - maintainers = with maintainers; [ vozz worldofpeace ]; 62 }; 63 }
··· 1 + { stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala, pkgconfig, gobject-introspection, libgee, pantheon, gtk3, glib, gettext, hicolor-icon-theme, wrapGAppsHook }: 2 3 stdenv.mkDerivation rec { 4 pname = "granite"; ··· 26 ./02-datetime-clock-format-gsettings.patch 27 ]; 28 29 + passthru = { 30 + updateScript = pantheon.updateScript { 31 + repoName = pname; 32 + }; 33 + }; 34 + 35 nativeBuildInputs = [ 36 gettext 37 gobject-introspection ··· 39 ninja 40 pkgconfig 41 python3 42 + vala 43 wrapGAppsHook 44 ]; 45 ··· 47 glib 48 gtk3 49 hicolor-icon-theme 50 + libgee 51 ]; 52 53 postPatch = '' ··· 64 homepage = https://github.com/elementary/granite; 65 license = licenses.lgpl3Plus; 66 platforms = platforms.linux; 67 + maintainers = pantheon.maintainers; 68 }; 69 }
+4 -6
pkgs/tools/misc/hashit/default.nix
··· 1 - { stdenv, fetchFromGitHub, meson, ninja, pkgconfig, cmake, vala_0_40, python3, gnome3, gtk3, granite, gobject-introspection, desktop-file-utils, wrapGAppsHook }: 2 3 stdenv.mkDerivation rec { 4 pname = "hashit"; 5 version = "1.0.0"; 6 - 7 - name = "${pname}-${version}"; 8 9 src = fetchFromGitHub { 10 owner = "artemanufrij"; ··· 20 ninja 21 pkgconfig 22 python3 23 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged 24 wrapGAppsHook 25 ]; 26 27 buildInputs = [ 28 - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged 29 gnome3.libgee 30 - granite 31 gtk3 32 ]; 33
··· 1 + { stdenv, fetchFromGitHub, meson, ninja, pkgconfig, cmake, pantheon, python3, gnome3, gtk3, gobject-introspection, desktop-file-utils, wrapGAppsHook }: 2 3 stdenv.mkDerivation rec { 4 pname = "hashit"; 5 version = "1.0.0"; 6 7 src = fetchFromGitHub { 8 owner = "artemanufrij"; ··· 18 ninja 19 pkgconfig 20 python3 21 + pantheon.vala 22 wrapGAppsHook 23 ]; 24 25 buildInputs = [ 26 + pantheon.elementary-icon-theme 27 gnome3.libgee 28 + pantheon.granite 29 gtk3 30 ]; 31
+2 -1
pkgs/top-level/all-packages.nix
··· 10224 10225 gnome-menus = callPackage ../development/libraries/gnome-menus { }; 10226 10227 - granite = callPackage ../development/libraries/granite { }; 10228 elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { }; 10229 10230 gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { ··· 21317 }); 21318 21319 mate = recurseIntoAttrs (callPackage ../desktops/mate { }); 21320 21321 maxx = callPackage ../desktops/maxx { }; 21322
··· 10224 10225 gnome-menus = callPackage ../development/libraries/gnome-menus { }; 10226 10227 elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { }; 10228 10229 gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { ··· 21316 }); 21317 21318 mate = recurseIntoAttrs (callPackage ../desktops/mate { }); 21319 + 21320 + pantheon = recurseIntoAttrs (callPackage ../desktops/pantheon { }); 21321 21322 maxx = callPackage ../desktops/maxx { }; 21323