tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
pantheon: init a 5.0
worldofpeace
7 years ago
78da8d66
25303723
+5013
-91
129 changed files
expand all
collapse all
unified
split
nixos
modules
module-list.nix
services
desktops
pantheon
contractor.nix
files.nix
tumbler.nix
x11
desktop-managers
default.nix
pantheon.nix
display-managers
lightdm-greeters
pantheon.nix
lightdm.nix
release-combined.nix
tests
pantheon.nix
pkgs
applications
audio
vocal
default.nix
editors
quilter
default.nix
misc
notejot
default.nix
regextester
default.nix
sequeler
default.nix
tootle
default.nix
networking
ftp
taxi
default.nix
transporter
default.nix
weather
meteo
default.nix
office
aesop
default.nix
bookworm
default.nix
spice-up
default.nix
science
math
nasc
default.nix
data
icons
faba-icon-theme
default.nix
desktops
deepin
deepin-wm
default.nix
pantheon
apps
elementary-calculator
default.nix
elementary-calendar
default.nix
elementary-camera
default.nix
elementary-code
default.nix
elementary-files
default.nix
hardcode-gsettings.patch
elementary-music
default.nix
elementary-photos
default.nix
elementary-screenshot-tool
default.nix
redacted-script.nix
elementary-terminal
default.nix
elementary-videos
default.nix
switchboard
default.nix
plugs-path-env.patch
wrapper.nix
switchboard-plugs
a11y
default.nix
about
default.nix
lspci-path.patch
remove-update-button.patch
applications
default.nix
bluetooth
default.nix
datetime
clock-format.patch
default.nix
timezone.patch
display
default.nix
keyboard
default.nix
xkb.patch
mouse-touchpad
default.nix
network
default.nix
nma.patch
notifications
default.nix
onlineaccounts
default.nix
pantheon-shell
backgrounds.patch
default.nix
hardcode-gsettings.patch
power
default.nix
dpms-helper-exec.patch
hardcode-gsettings.patch
printers
default.nix
security-privacy
default.nix
hardcode-gsettings.patch
sharing
default.nix
sound
default.nix
artwork
elementary-gtk-theme
default.nix
elementary-icon-theme
default.nix
elementary-sound-theme
default.nix
elementary-wallpapers
default.nix
default.nix
desktop
elementary-default-settings
correct-override.patch
default.nix
io.elementary.greeter.whitelist
launchers
gala-multitaskingview.dockitem
io.elementary.calendar.dockitem
io.elementary.music.dockitem
io.elementary.photos.dockitem
io.elementary.switchboard.dockitem
io.elementary.videos.dockitem
org.gnome.Epiphany.dockitem
org.gnome.Geary.dockitem
elementary-greeter
01-sysconfdir-install.patch
default.nix
gsd.patch
numlockx.patch
elementary-gsettings-schemas
default.nix
elementary-print-shim
default.nix
elementary-session-settings
default-elementary-dockitems.desktop
default.nix
elementary-shortcut-overlay
default.nix
extra-elementary-contracts
default.nix
exec-path.patch
gala
default.nix
plugins-dir.patch
wingpanel
default.nix
indicators.patch
wrapper.nix
wingpanel-indicators
applications-menu
bc.patch
default.nix
xdg.patch
bluetooth
default.nix
datetime
calendar-exec.patch
default.nix
keyboard
default.nix
fix-paths.patch
network
default.nix
nightlight
default.nix
notifications
default.nix
power
default.nix
session
default.nix
sound
default.nix
granite
02-datetime-clock-format-gsettings.patch
default.nix
services
cerbere
default.nix
contractor
default.nix
elementary-capnet-assist
default.nix
remove-capnet-test.patch
elementary-dpms-helper
default.nix
elementary-settings-daemon
default.nix
fix-paths.patch
pantheon-agent-geoclue2
default.nix
pantheon-agent-polkit
default.nix
update.nix
update.sh
tools
misc
hashit
default.nix
top-level
all-packages.nix
+3
nixos/modules/module-list.nix
···
241
./services/desktops/bamf.nix
242
./services/desktops/dleyna-renderer.nix
243
./services/desktops/dleyna-server.nix
0
0
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
0
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
0
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)
0
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
0
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
0
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
0
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
0
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
0
0
36
wrapGAppsHook
37
];
0
38
buildInputs = [
0
0
39
glib
40
-
granite
41
-
gtk3
42
-
gnome3.defaultIconTheme
43
gnome3.libgee
44
gsettings-desktop-schemas
0
45
];
46
47
postInstall = ''
···
4
, libxml2
5
, pkgconfig
6
, glib
0
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
0
0
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
0
0
0
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
0
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 = [
0
18
gobject-introspection
19
meson
20
ninja
21
pkgconfig
22
python3
23
-
vala
24
wrapGAppsHook
25
];
26
27
buildInputs = [
0
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
0
24
wrapGAppsHook
25
];
26
27
buildInputs = [
28
+
pantheon.granite
29
gnome3.libgee
0
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
0
9
, gnome3
10
, libxml2
11
, gettext
···
31
nativeBuildInputs = [
32
appstream-glib
33
desktop-file-utils
0
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
0
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
0
41
python3
42
wrapGAppsHook
43
];
44
45
+
buildInputs = [
46
+
pantheon.elementary-icon-theme
47
+
gnome3.libgee
48
+
pantheon.granite
0
49
gtk3
0
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; [
0
0
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
0
32
gtk3
33
html2text
0
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
0
39
libxml2
40
-
gobject-introspection # For setup hook
0
0
0
41
];
42
buildInputs = [
43
-
gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
0
44
gnome3.libgee
45
-
granite
46
gtk3
47
json-glib
48
libevdev
···
4
, libxml2
5
, pkgconfig
6
, gtk3
0
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 = [
0
0
0
32
cmake
0
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
0
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
0
35
gobject-introspection # for setup-hook
0
0
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
0
3
, pkgconfig
4
, gtk3
5
+
, pantheon
6
, gnome3
7
, cmake
0
8
, libqalculate
9
, gobject-introspection
10
, wrapGAppsHook }:
···
26
'';
27
28
nativeBuildInputs = [
0
0
0
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
···
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
···
0
0
···
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
···
0
0
···
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
···
0
0
···
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
···
0
0
···
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
···
0
0
···
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
···
0
0
···
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
···
0
0
···
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
···
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
0
0
0
0
0
0
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";
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 { });
0
0
21320
21321
maxx = callPackage ../desktops/maxx { };
21322
···
10224
10225
gnome-menus = callPackage ../development/libraries/gnome-menus { };
10226
0
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