diff options
Diffstat (limited to 'nixpkgs/nixos/modules/services/desktops/gnome3')
22 files changed, 816 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/at-spi2-core.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/at-spi2-core.nix new file mode 100644 index 000000000000..cca98c43dc7a --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/at-spi2-core.nix @@ -0,0 +1,42 @@ +# at-spi2-core daemon. + +{ config, lib, pkgs, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.at-spi2-core = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable at-spi2-core, a service for the Assistive Technologies + available on the GNOME platform. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkMerge [ + (mkIf config.services.gnome3.at-spi2-core.enable { + environment.systemPackages = [ pkgs.at-spi2-core ]; + services.dbus.packages = [ pkgs.at-spi2-core ]; + systemd.packages = [ pkgs.at-spi2-core ]; + }) + + (mkIf (!config.services.gnome3.at-spi2-core.enable) { + environment.variables.NO_AT_BRIDGE = "1"; + }) + ]; +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix new file mode 100644 index 000000000000..2740a22c7ca0 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix @@ -0,0 +1,27 @@ +# Chrome GNOME Shell native host connector. +{ config, lib, pkgs, ... }: + +with lib; + +{ + ###### interface + options = { + services.gnome3.chrome-gnome-shell.enable = mkEnableOption '' + Chrome GNOME Shell native host connector, a DBus service + allowing to install GNOME Shell extensions from a web browser. + ''; + }; + + + ###### implementation + config = mkIf config.services.gnome3.chrome-gnome-shell.enable { + environment.etc = { + "chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json"; + "opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json"; + }; + + environment.systemPackages = [ pkgs.chrome-gnome-shell ]; + + services.dbus.packages = [ pkgs.chrome-gnome-shell ]; + }; +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/evince.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/evince.nix new file mode 100644 index 000000000000..5f040a16f067 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/evince.nix @@ -0,0 +1,35 @@ +# Evince. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.evince = { + + enable = mkEnableOption + "systemd and dbus services for Evince, the GNOME document viewer"; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.evince.enable { + + environment.systemPackages = [ pkgs.evince ]; + + services.dbus.packages = [ pkgs.evince ]; + + systemd.packages = [ pkgs.evince ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/evolution-data-server.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/evolution-data-server.nix new file mode 100644 index 000000000000..7e312a1b81eb --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/evolution-data-server.nix @@ -0,0 +1,41 @@ +# Evolution Data Server daemon. + +{ config, lib, pkgs, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.evolution-data-server = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable Evolution Data Server, a collection of services for + storing addressbooks and calendars. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.evolution-data-server.enable { + + environment.systemPackages = [ pkgs.gnome3.evolution-data-server ]; + + services.dbus.packages = [ pkgs.gnome3.evolution-data-server ]; + + systemd.packages = [ pkgs.gnome3.evolution-data-server ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/file-roller.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/file-roller.nix new file mode 100644 index 000000000000..7fb558a98953 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/file-roller.nix @@ -0,0 +1,32 @@ +# File Roller. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.file-roller = { + + enable = mkEnableOption "File Roller, an archive manager for GNOME"; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.file-roller.enable { + + environment.systemPackages = [ pkgs.gnome3.file-roller ]; + + services.dbus.packages = [ pkgs.gnome3.file-roller ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/glib-networking.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/glib-networking.nix new file mode 100644 index 000000000000..186668d7d385 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/glib-networking.nix @@ -0,0 +1,33 @@ +# GLib Networking + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.glib-networking = { + + enable = mkEnableOption "network extensions for GLib"; + + }; + + }; + + ###### implementation + + config = mkIf config.services.gnome3.glib-networking.enable { + + services.dbus.packages = [ pkgs.gnome3.glib-networking ]; + + systemd.packages = [ pkgs.gnome3.glib-networking ]; + + environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.gnome3.glib-networking.out}/lib/gio/modules" ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-disks.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-disks.nix new file mode 100644 index 000000000000..139534cdb892 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-disks.nix @@ -0,0 +1,39 @@ +# GNOME Disks daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-disks = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Disks daemon, a service designed to + be a UDisks2 graphical front-end. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-disks.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-disk-utility ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-disk-utility ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-documents.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-documents.nix new file mode 100644 index 000000000000..f6efb6684240 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-documents.nix @@ -0,0 +1,43 @@ +# GNOME Documents daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-documents = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Documents services, a document + manager application for GNOME. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-documents.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-documents ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-documents ]; + + services.gnome3.gnome-online-accounts.enable = true; + + services.gnome3.gnome-online-miners.enable = true; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-keyring.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-keyring.nix new file mode 100644 index 000000000000..4c350d8bb1c6 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-keyring.nix @@ -0,0 +1,42 @@ +# GNOME Keyring daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-keyring = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Keyring daemon, a service designed to + take care of the user's security credentials, + such as user names and passwords. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-keyring.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-keyring ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-keyring pkgs.gcr ]; + + security.pam.services.login.enableGnomeKeyring = true; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix new file mode 100644 index 000000000000..4286251357f7 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix @@ -0,0 +1,39 @@ +# GNOME Online Accounts daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-online-accounts = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Online Accounts daemon, a service that provides + a single sign-on framework for the GNOME desktop. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-online-accounts.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-online-accounts ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-online-accounts ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix new file mode 100644 index 000000000000..d406bf6f5e39 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix @@ -0,0 +1,39 @@ +# GNOME Online Miners daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-online-miners = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Online Miners, a service that + crawls through your online content. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-online-miners.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-online-miners ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-online-miners ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix new file mode 100644 index 000000000000..021f4f9534b4 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix @@ -0,0 +1,18 @@ +# Remote desktop daemon using Pipewire. +{ config, lib, pkgs, ... }: + +with lib; + +{ + ###### interface + options = { + services.gnome3.gnome-remote-desktop = { + enable = mkEnableOption "Remote Desktop support using Pipewire"; + }; + }; + + ###### implementation + config = mkIf config.services.gnome3.gnome-remote-desktop.enable { + systemd.packages = [ pkgs.gnome3.gnome-remote-desktop ]; + }; +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix new file mode 100644 index 000000000000..dbf0f4e9b118 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix @@ -0,0 +1,45 @@ +# GNOME Settings Daemon + +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.gnome3.gnome-settings-daemon; + +in + +{ + + ###### interface + + options = { + + services.gnome3.gnome-settings-daemon = { + + enable = mkEnableOption "GNOME Settings Daemon."; + + # There are many forks of gnome-settings-daemon + package = mkOption { + type = types.package; + default = pkgs.gnome3.gnome-settings-daemon; + description = "Which gnome-settings-daemon package to use."; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + environment.systemPackages = [ cfg.package ]; + + services.udev.packages = [ cfg.package ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix new file mode 100644 index 000000000000..fd14efee5f2e --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix @@ -0,0 +1,41 @@ +# GNOME Documents daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-terminal-server = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Terminal server service, + needed for gnome-terminal. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-terminal-server.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-terminal ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-terminal ]; + + systemd.packages = [ pkgs.gnome3.gnome-terminal ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-user-share.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-user-share.nix new file mode 100644 index 000000000000..1f6ce2ae968e --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-user-share.nix @@ -0,0 +1,42 @@ +# GNOME User Share daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-user-share = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME User Share, a service that exports the + contents of the Public folder in your home directory on the local network. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-user-share.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-user-share ]; + + services.xserver.displayManager.sessionCommands = with pkgs.gnome3; '' + # Don't let gnome-control-center depend upon gnome-user-share + export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${gnome-user-share}/share/gsettings-schemas/${gnome-user-share.name} + ''; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gpaste.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gpaste.nix new file mode 100644 index 000000000000..5a8258775e0a --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gpaste.nix @@ -0,0 +1,27 @@ +# GPaste daemon. +{ config, lib, pkgs, ... }: + +with lib; + +{ + ###### interface + options = { + services.gnome3.gpaste = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GPaste, a clipboard manager. + ''; + }; + }; + }; + + ###### implementation + config = mkIf config.services.gnome3.gpaste.enable { + environment.systemPackages = [ pkgs.gnome3.gpaste ]; + services.dbus.packages = [ pkgs.gnome3.gpaste ]; + services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ]; + systemd.packages = [ pkgs.gnome3.gpaste ]; + }; +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gvfs.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gvfs.nix new file mode 100644 index 000000000000..4e99d191f18c --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/gvfs.nix @@ -0,0 +1,43 @@ +# gvfs backends + +{ config, lib, pkgs, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gvfs = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable gvfs backends, userspace virtual filesystem used + by GNOME components via D-Bus. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gvfs.enable { + + environment.systemPackages = [ pkgs.gnome3.gvfs ]; + + services.dbus.packages = [ pkgs.gnome3.gvfs ]; + + systemd.packages = [ pkgs.gnome3.gvfs ]; + + services.udev.packages = [ pkgs.libmtp.bin ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/rygel.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/rygel.nix new file mode 100644 index 000000000000..55d5e703aa19 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/rygel.nix @@ -0,0 +1,30 @@ +# rygel service. +{ config, lib, pkgs, ... }: + +with lib; + +{ + ###### interface + options = { + services.gnome3.rygel = { + enable = mkOption { + default = false; + description = '' + Whether to enable Rygel UPnP Mediaserver. + + You will need to also allow UPnP connections in firewall, see the following <link xlink:href="https://github.com/NixOS/nixpkgs/pull/45045#issuecomment-416030795">comment</link>. + ''; + type = types.bool; + }; + }; + }; + + ###### implementation + config = mkIf config.services.gnome3.rygel.enable { + environment.systemPackages = [ pkgs.gnome3.rygel ]; + + services.dbus.packages = [ pkgs.gnome3.rygel ]; + + systemd.packages = [ pkgs.gnome3.rygel ]; + }; +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/seahorse.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/seahorse.nix new file mode 100644 index 000000000000..9631157934f9 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/seahorse.nix @@ -0,0 +1,38 @@ +# Seahorse daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.seahorse = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable Seahorse search provider for the GNOME Shell activity search. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.seahorse.enable { + + environment.systemPackages = [ pkgs.gnome3.seahorse pkgs.gnome3.dconf ]; + + services.dbus.packages = [ pkgs.gnome3.seahorse ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/sushi.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/sushi.nix new file mode 100644 index 000000000000..7a4389038b22 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/sushi.nix @@ -0,0 +1,38 @@ +# GNOME Sushi daemon. + +{ config, lib, pkgs, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.sushi = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable Sushi, a quick previewer for nautilus. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.sushi.enable { + + environment.systemPackages = [ pkgs.gnome3.sushi ]; + + services.dbus.packages = [ pkgs.gnome3.sushi ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/tracker-miners.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/tracker-miners.nix new file mode 100644 index 000000000000..20154fc2fed3 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/tracker-miners.nix @@ -0,0 +1,41 @@ +# Tracker Miners daemons. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.tracker-miners = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable Tracker miners, indexing services for Tracker + search engine and metadata storage system. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.tracker-miners.enable { + + environment.systemPackages = [ pkgs.gnome3.tracker-miners ]; + + services.dbus.packages = [ pkgs.gnome3.tracker-miners ]; + + systemd.packages = [ pkgs.gnome3.tracker-miners ]; + + }; + +} diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/tracker.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/tracker.nix new file mode 100644 index 000000000000..c061f7890499 --- /dev/null +++ b/nixpkgs/nixos/modules/services/desktops/gnome3/tracker.nix @@ -0,0 +1,41 @@ +# Tracker daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.tracker = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable Tracker services, a search engine, + search tool and metadata storage system. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.tracker.enable { + + environment.systemPackages = [ pkgs.gnome3.tracker ]; + + services.dbus.packages = [ pkgs.gnome3.tracker ]; + + systemd.packages = [ pkgs.gnome3.tracker ]; + + }; + +} |