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