[PATCH] New extension to lock the screen using ad-hoc external programs



Hello !

I propose the following very simple extension to be added to the gnome-
shell-extensions package:

Add a new extension named "lockscreen" to lock the screen using an
external program such as XScreenSaver (or gnome-screensaver).

The new extension adds an icon to the panel that can be clicked to
lock the screen when leaving the desktop.

This is also useful to solve problems such as the following one:
https://bugzilla.gnome.org/show_bug.cgi?id=759640
(gnome-shell doesn't lock the screen)

Signed-off-by: Guido Trentalancia <guido trentalancia net>
---
 README                                 |    6 
 configure.ac                           |    5 
 extensions/lockscreen/Makefile.am      |    3 
 extensions/lockscreen/Makefile.in      |  516 +++++++++++++++++++++++++++++++++
 extensions/lockscreen/extension.js     |   59 +++
 extensions/lockscreen/metadata.json.in |   11 
 extensions/lockscreen/stylesheet.css   |    1 
 7 files changed, 599 insertions(+), 2 deletions(-)

diff -pruN gnome-shell-extensions-3.18.3-orig/configure.ac gnome-shell-extensions-3.18.3/configure.ac
--- gnome-shell-extensions-3.18.3-orig/configure.ac     2016-01-09 10:34:47.000000000 +0100
+++ gnome-shell-extensions-3.18.3/configure.ac  2016-01-09 13:12:08.844587646 +0100
@@ -28,7 +28,7 @@ AC_SUBST([SHELL_VERSION])
 
 dnl keep this in alphabetic order
 CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab launch-new-instance window-list"
-DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS drive-menu screenshot-window-sizer windowsNavigator 
workspace-indicator"
+DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS drive-menu lockscreen screenshot-window-sizer windowsNavigator 
workspace-indicator"
 ALL_EXTENSIONS="$DEFAULT_EXTENSIONS auto-move-windows example native-window-placement user-theme"
 AC_SUBST(CLASSIC_EXTENSIONS, [$CLASSIC_EXTENSIONS])
 AC_SUBST(ALL_EXTENSIONS, [$ALL_EXTENSIONS])
@@ -61,7 +61,7 @@ ENABLED_EXTENSIONS=
 for e in $enable_extensions; do
        case $e in
 dnl            keep this in alphabetic order
-               
alternate-tab|apps-menu|auto-move-windows|drive-menu|example|launch-new-instance|native-window-placement|places-menu|screenshot-window-sizer|user-theme|window-list|windowsNavigator|workspace-indicator)
+               
alternate-tab|apps-menu|auto-move-windows|drive-menu|example|launch-new-instance|lockscreen|native-window-placement|places-menu|screenshot-window-sizer|user-theme|window-list|windowsNavigator|workspace-indicator)
                        ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
                        ;;
                *)
@@ -82,6 +82,7 @@ AC_CONFIG_FILES([
   extensions/drive-menu/Makefile
   extensions/example/Makefile
   extensions/launch-new-instance/Makefile
+  extensions/lockscreen/Makefile
   extensions/native-window-placement/Makefile
   extensions/places-menu/Makefile
   extensions/screenshot-window-sizer/Makefile
diff -pruN gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/extension.js 
gnome-shell-extensions-3.18.3/extensions/lockscreen/extension.js
--- gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/extension.js       1970-01-01 01:00:00.000000000 
+0100
+++ gnome-shell-extensions-3.18.3/extensions/lockscreen/extension.js    2015-12-30 21:46:27.000000000 +0100
@@ -0,0 +1,59 @@
+/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
+
+/*
+ * Copyright © 2015 Guido Trentalancia
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the licence, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Guido Trentalancia <guido trentalancia net>
+ */
+
+/*
+ * Extension to lock the screen from an icon on the panel using
+ * XScreenSaver.
+ */
+
+const St = imports.gi.St;
+const Util = imports.misc.util;
+
+const Main = imports.ui.main;
+
+let _lockScreenButton;
+
+function init() {
+       _lockScreenButton = new St.Bin({ style_class: 'panel-button', 
+                                                               reactive: true,
+                                                               can_focus: true,
+                                                               x_fill: true,
+                                                               y_fill: false,
+                                                               track_hover: true });
+       let icon = new St.Icon ({ icon_name: 'changes-prevent-symbolic',
+                                                               style_class: 'system-status-icon'});
+       _lockScreenButton.set_child(icon);
+       _lockScreenButton.connect('button-press-event', _LockScreenActivate);
+}
+
+function _LockScreenActivate () {
+       Main.overview.hide();
+       Util.spawnCommandLine('xscreensaver-command -lock');
+}
+
+function enable () {
+       Main.panel._rightBox.insert_child_at_index(_lockScreenButton, 0);
+}
+
+function disable () {
+       Main.panel._rightBox.remove_child(_lockScreenButton);
+}
+
diff -pruN gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/Makefile.am 
gnome-shell-extensions-3.18.3/extensions/lockscreen/Makefile.am
--- gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/Makefile.am        1970-01-01 01:00:00.000000000 
+0100
+++ gnome-shell-extensions-3.18.3/extensions/lockscreen/Makefile.am     2016-01-09 13:03:59.429337312 +0100
@@ -0,0 +1,3 @@
+EXTENSION_ID = lockscreen
+
+include ../../extension.mk
diff -pruN gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/Makefile.in 
gnome-shell-extensions-3.18.3/extensions/lockscreen/Makefile.in
--- gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/Makefile.in        1970-01-01 01:00:00.000000000 
+0100
+++ gnome-shell-extensions-3.18.3/extensions/lockscreen/Makefile.in     2016-01-09 13:05:03.565156391 +0100
@@ -0,0 +1,516 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = extensions/lockscreen
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(dist_extension_DATA) \
+       $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ AM_V@)
+am__v_P_ = $(am__v_P_ AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ AM_V@)
+am__v_GEN_ = $(am__v_GEN_ AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ AM_V@)
+am__v_at_ = $(am__v_at_ AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(extensiondir)" \
+       "$(DESTDIR)$(extensiondir)"
+DATA = $(dist_extension_DATA) $(nodist_extension_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/../../extension.mk $(srcdir)/Makefile.in \
+       $(top_srcdir)/include.mk
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_EXTENSIONS = @ALL_EXTENSIONS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CLASSIC_EXTENSIONS = @CLASSIC_EXTENSIONS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ENABLED_EXTENSIONS = @ENABLED_EXTENSIONS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GMSGFMT = @GMSGFMT@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+SASS = @SASS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHELL_VERSION = @SHELL_VERSION@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTENSION_ID = lockscreen
+extensionurl = http://git.gnome.org/gnome-shell-extensions
+
+# Change these to modify how installation is performed
+topextensiondir = $(datadir)/gnome-shell/extensions
+extensionbase = @gnome-shell-extensions.gcampax.github.com
+gschemabase = org.gnome.shell.extensions
+uuid = $(EXTENSION_ID)$(extensionbase)
+gschemaname = $(gschemabase).$(EXTENSION_ID)
+extensiondir = $(topextensiondir)/$(uuid)
+dist_extension_DATA = extension.js stylesheet.css $(EXTRA_MODULES)
+nodist_extension_DATA = metadata.json $(top_srcdir)/lib/convenience.js $(EXTRA_EXTENSION)
+EXTRA_DIST = metadata.json.in
+CLEANFILES = metadata.json
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/../../extension.mk $(top_srcdir)/include.mk 
$(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign extensions/lockscreen/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign extensions/lockscreen/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+$(srcdir)/../../extension.mk $(top_srcdir)/include.mk $(am__empty):
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_extensionDATA: $(dist_extension_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(dist_extension_DATA)'; test -n "$(extensiondir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(extensiondir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(extensiondir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(extensiondir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(extensiondir)" || exit $$?; \
+       done
+
+uninstall-dist_extensionDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_extension_DATA)'; test -n "$(extensiondir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(extensiondir)'; $(am__uninstall_files_from_dir)
+install-nodist_extensionDATA: $(nodist_extension_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(nodist_extension_DATA)'; test -n "$(extensiondir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(extensiondir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(extensiondir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(extensiondir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(extensiondir)" || exit $$?; \
+       done
+
+uninstall-nodist_extensionDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(nodist_extension_DATA)'; test -n "$(extensiondir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(extensiondir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(extensiondir)" "$(DESTDIR)$(extensiondir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_extensionDATA \
+       install-nodist_extensionDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_extensionDATA \
+       uninstall-nodist_extensionDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+       ctags-am distclean distclean-generic distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dist_extensionDATA install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-nodist_extensionDATA install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+       pdf-am ps ps-am tags-am uninstall uninstall-am \
+       uninstall-dist_extensionDATA uninstall-nodist_extensionDATA
+
+.PRECIOUS: Makefile
+
+
+metadata.json: metadata.json.in $(top_builddir)/config.status
+       $(AM_V_GEN) sed \
+            -e "s|[ ]extension_id@|$(EXTENSION_ID)|" \
+           -e "s|[ ]uuid@|$(uuid)|" \
+           -e "s|[ ]gschemaname@|$(gschemaname)|" \
+           -e "s|[ ]gettext_domain@|$(GETTEXT_PACKAGE)|" \
+           -e "s|[ ]shell_current@|$(SHELL_VERSION)|" \
+           -e "s|[ ]url@|$(extensionurl)|" \
+           $< > $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -pruN gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/metadata.json.in 
gnome-shell-extensions-3.18.3/extensions/lockscreen/metadata.json.in
--- gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/metadata.json.in   1970-01-01 01:00:00.000000000 
+0100
+++ gnome-shell-extensions-3.18.3/extensions/lockscreen/metadata.json.in        2016-01-09 13:01:31.938453701 
+0100
@@ -0,0 +1,11 @@
+{
+    "shell-version": ["@shell_current@" ],
+    "extension-id": "@extension_id@",
+    "uuid": "@uuid@",
+    "settings-schema": "@gschemaname@",
+    "gettext-domain": "@gettext_domain@",
+    "original-author": "guido trentalancia net",
+    "name": "Lock Screen",
+    "description": "Add a lock icon to the panel to lock the screen using XScreenSaver",
+    "url": "@url@"
+}
I file binari gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/.metadata.json.in.swp e 
gnome-shell-extensions-3.18.3/extensions/lockscreen/.metadata.json.in.swp sono diversi
diff -pruN gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/stylesheet.css 
gnome-shell-extensions-3.18.3/extensions/lockscreen/stylesheet.css
--- gnome-shell-extensions-3.18.3-orig/extensions/lockscreen/stylesheet.css     1970-01-01 01:00:00.000000000 
+0100
+++ gnome-shell-extensions-3.18.3/extensions/lockscreen/stylesheet.css  2016-01-09 12:54:57.039410434 +0100
@@ -0,0 +1 @@
+/* none used */
diff -pruN gnome-shell-extensions-3.18.3-orig/README gnome-shell-extensions-3.18.3/README
--- gnome-shell-extensions-3.18.3-orig/README   2015-09-23 13:23:39.000000000 +0200
+++ gnome-shell-extensions-3.18.3/README        2016-01-09 13:09:50.215817215 +0100
@@ -48,6 +48,12 @@ gajim
 
   Integration with Gajim, a Jabber/XMPP instant messaging client.
 
+lockscreen
+
+  Add a lock icon to the panel to lock the screen using XScreenSaver.
+  To use with gnome-screensaver, just create a symbolic link from
+  from /usr/bin/gnome-screensaver-command to /usr/bin/xscreensaver-command.
+
 native-window-placement
 
   An alternative algorithm for layouting the thumbnails in the windows overview, that


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]