mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-27 09:23:01 +00:00
Merge pull request #28882 from jtojnar/chrome-gnome-shell
chrome-gnome-shell: refactor
This commit is contained in:
commit
d2d1a2dfba
@ -200,6 +200,7 @@
|
||||
./services/desktops/dleyna-server.nix
|
||||
./services/desktops/geoclue2.nix
|
||||
./services/desktops/gnome3/at-spi2-core.nix
|
||||
./services/desktops/gnome3/chrome-gnome-shell.nix
|
||||
./services/desktops/gnome3/evolution-data-server.nix
|
||||
./services/desktops/gnome3/gnome-disks.nix
|
||||
./services/desktops/gnome3/gnome-documents.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 ];
|
||||
};
|
||||
}
|
@ -8,7 +8,7 @@
|
||||
, google_talk_plugin, fribid, gnome3/*.gnome_shell*/
|
||||
, esteidfirefoxplugin
|
||||
, vlc_npapi
|
||||
, browserpass
|
||||
, browserpass, chrome-gnome-shell
|
||||
, libudev
|
||||
, kerberos
|
||||
}:
|
||||
@ -63,6 +63,7 @@ let
|
||||
nativeMessagingHosts =
|
||||
([ ]
|
||||
++ lib.optional (cfg.enableBrowserpass or false) browserpass
|
||||
++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell
|
||||
++ extraNativeMessagingHosts
|
||||
);
|
||||
libs = (if ffmpegSupport then [ ffmpeg ] else with gst_all; [ gstreamer gst-plugins-base ])
|
||||
|
@ -1,31 +1,36 @@
|
||||
{stdenv, lib, python, dbus, fetchgit, cmake, coreutils, jq, gobjectIntrospection, python27Packages, makeWrapper, gnome3, wrapGAppsHook}:
|
||||
{stdenv, fetchurl, cmake, ninja, jq, python3, gnome3, wrapGAppsHook}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name="chrome-gnome-shell";
|
||||
src = fetchgit {
|
||||
url = "git://git.gnome.org/chrome-gnome-shell";
|
||||
rev = "7d99523e90805cb65027cc2f5f1191a957dcf276";
|
||||
sha256 = "0qc34dbhsz5yf4z5bx6py08h561rcxw9928drgk9256g3vnygnbc";
|
||||
let
|
||||
version = "9";
|
||||
|
||||
inherit (python3.pkgs) python pygobject3 requests;
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "chrome-gnome-shell-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/chrome-gnome-shell/${version}/${name}.tar.xz";
|
||||
sha256 = "0j6lzlp3jvkpnkk8s99y3m14xiq94rjwjzy2pbfqgv084ahzmz8i";
|
||||
};
|
||||
|
||||
buildInputs = [ gnome3.gnome_shell makeWrapper jq dbus gobjectIntrospection
|
||||
python python27Packages.requests python27Packages.pygobject3 wrapGAppsHook];
|
||||
|
||||
preConfigure = ''
|
||||
mkdir build usr etc
|
||||
cd build
|
||||
${cmake}/bin/cmake -DCMAKE_INSTALL_PREFIX=$out/usr -DBUILD_EXTENSION=OFF ../
|
||||
substituteInPlace cmake_install.cmake --replace "/etc" "$out/etc"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm $out/etc/opt/chrome/policies/managed/chrome-gnome-shell.json
|
||||
rm $out/etc/chromium/policies/managed/chrome-gnome-shell.json
|
||||
wrapProgram $out/usr/bin/chrome-gnome-shell \
|
||||
--prefix PATH : '"${dbus}/bin"' \
|
||||
--prefix PATH : '"${gnome3.gnome_shell}/bin"' \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH"
|
||||
nativeBuildInputs = [ cmake ninja jq wrapGAppsHook ];
|
||||
buildInputs = [ gnome3.gnome_shell python pygobject3 requests ];
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc"
|
||||
'';
|
||||
# cmake setup hook changes /etc/opt into /var/empty
|
||||
dontFixCmake = true;
|
||||
|
||||
cmakeFlags = [ "-DBUILD_EXTENSION=OFF" ];
|
||||
wrapPrefixVariables = [ "PYTHONPATH" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "GNOME Shell integration for Chrome";
|
||||
longDescription = ''
|
||||
To use the integration, install the <link xlink:href="https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation">browser extension</link>, and then set <option>services.gnome3.chrome-gnome-shell.enable</option> to <literal>true</literal>. For Firefox based browsers, you will also need to build the wrappers with <option>nixpkgs.config.firefox.enableGnomeExtensions</option> set to <literal>true</literal>.
|
||||
'';
|
||||
license = licenses.gpl3;
|
||||
maintainers = gnome3.maintainers;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user