From: ng0 <ng0@infotropique.org>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: 27083@debbugs.gnu.org
Subject: [bug#27083] screen-lockers: i3lock-color and i3lock-fancy
Date: Fri, 17 Nov 2017 21:19:01 +0000 [thread overview]
Message-ID: <20171117211901.eor5yjlvj3icgbsd@abyayala> (raw)
In-Reply-To: <20171117210211.vdauzbvhrjubwamt@abyayala>
[-- Attachment #1.1: Type: text/plain, Size: 26716 bytes --]
ng0 transcribed 25K bytes:
> ng0 transcribed 23K bytes:
> > ng0 transcribed 22K bytes:
> > > New version appended. i3lock-fancy needs some fixes, but I can confirm
> > > that i3lock-color works!
> >
> > in i3lock-fancy script:
> >
> > # try to use a forked version of i3lock with prepared parameters
> > if ! /gnu/store/kfymvwgm4g0avs3b97micq8477sa0if6-i3lock-color-2.9.1-c/bin/i3lock "${param_add[@]}" "${param[@]}" -i "$image" > /dev/null 2>&1; then
> > # We have failed, lets get back to stock one
> > i3lock "${param_add[@]}" -i "$image"
> > fi
> >
> >
> > Would /run/current-system/profile/bin/i3lock-fancy be better?
> > The most realistic scenario I see is to just set 'i3lock' and
> > propagate i3lock-color with i3lock-fancy.
I've changed my mind. As there's also 'i3lock' (without the -color suffix)
but we don't package it (yet), it would take away the freedom to
decide which i3lock you want to use.
The author of i3lock-fancy wantsus to use i3lock-color, but there's
also a check and it falls back to the normal i3lock.
Therefore I think it must be up to people using i3lock-fancy to
install i3lock-color AND i3lock-fancy in their system profile
(or just i3lock-color in systemprofile + suid it, and i3lock-fancy
in the user profile).
3rd version of patches appended.
> I have just copied /run/current-system/profile/bin/i3lock-fancy to $HOME/i3lock-fancy
> and changed the /gnu/store/kfymvwgm4g0avs3b97micq8477sa0if6-i3lock-color-2.9.1-c/bin/i3lock
> bit to read just "i3lock". This way i3lock-fancy works for me.
> There's a general 'lag' in both i3lock-color and i3lock-fancy, but
> I blame my Desktop.
>
> I'll send an update soon.
>
> > > ng0 transcribed 12K bytes:
> > > > Hi Chris,
> > > >
> > > > thanks for your input. I think I was just stuck by too many
> > > > repetive attempts. Thanks for a fresh view :)
> > > > I'll send applied changes as soon as I can (probably next week).
> > > >
> > > > Chris Marusich transcribed 11K bytes:
> > > > > <ng0@pragmatique.xyz> writes:
> > > > >
> > > > > > I have no idea about the error of i3lock-fancy (password is not
> > > > > > accepted). An commented phase in i3lock-color is still included where
> > > > > > I tried to fix this, but I don't know much about PAM at this point.
> > > > >
> > > > > When I checked using "guix system vm", the reason i3lock refused to
> > > > > accept the password was because it could not read /etc/shadow. One
> > > > > solution to this problem is to do both of the following:
> > > > >
> > > > > 1) Do not wrap i3lock in a wrapper script.
> > > > >
> > > > > 2) Install the i3lock executable as setuid-root.
> > > >
> > > > Oh, 2 was what I was thinking of that might fix
> > > > it. I just had no time to test it.
> > > >
> > > > > When installing i3lock as a setuid-root program, it is important not to
> > > > > wrap it in a script. It is common in UNIX-like systems to ignore the
> > > > > setuid bit when the program is an interpreted script instead of an
> > > > > executable (a simple Internet search for a phrase like "setuid bash
> > > > > script" will provide lots of supporting information about this). If you
> > > > > do (2) without also removing the wrapping logic that you put into the
> > > > > package definition, you will find that i3lock still rejects your
> > > > > password - this is because it still can't read /etc/shadow.
> > > > >
> > > > > The attached patch is a revised version of your first patch to add
> > > > > i3lock-color. I have basically just removed the wrapping phase. To
> > > > > install it setuid-root along with an appropriate PAM configuration file,
> > > > > just add a screen-locker service like the following to your services in
> > > > > your operating system declaration:
> > > > >
> > > > > (screen-locker-service i3lock-color "i3lock")
> > > > >
> > > > > Note that this will create an appropriate PAM configuration file at
> > > > > /etc/pam.d/i3lock, so you don't need to bother messing around with the
> > > > > PAM configuration file that comes with i3lock-color.
> > > > >
> > > > > I haven't looked at the fancy version yet. I'll check it out when I get
> > > > > a little more time.
> > > >
> > > > The fancy version is basically a fork with some more fancy visual elements.
> > > > It should be similar.
> > > >
> > > > > > + %D%/packages/patches/hypre-doc-tables.patch \
> > > > > > + %D%/packages/patches/hypre-ldflags.patch \
> > > > >
> > > > > Did you intend to include these in the patch? They aren't used, so I've
> > > > > removed them in my version of the patch.
> > > >
> > > > Many weeks ago, I don't know what happened there.
> > > > Maybe a mistake in rebase.
> > > >
> > > > > > +---
> > > > > > + Makefile | 7 +------
> > > > > > + 1 file changed, 1 insertion(+), 6 deletions(-)
> > > > > > +
> > > > > > +diff --git a/Makefile b/Makefile
> > > > > > +index c0fe888..b4b6cd9 100644
> > > > > > +--- a/Makefile
> > > > > > ++++ b/Makefile
> > > > > > +@@ -6,11 +6,6 @@ SYSCONFDIR=/etc
> > > > > > + PKG_CONFIG=pkg-config
> > > > > > + MANDIR=/usr/share/man
> > > > > > +
> > > > > > +-# Check if pkg-config is installed, we need it for building CFLAGS/LIBS
> > > > > > +-ifeq ($(shell which $(PKG_CONFIG) 2>/dev/null 1>/dev/null || echo 1),1)
> > > > > > +-$(error "$(PKG_CONFIG) was not found")
> > > > > > +-endif
> > > > > > +-
> > > > > > + CFLAGS += -std=c99
> > > > > > + CFLAGS += -pipe
> > > > > > + CFLAGS += -Wall
> > > > > > +@@ -18,7 +13,7 @@ CFLAGS += -O2
> > > > > > + SIMD_CFLAGS += -funroll-loops
> > > > > > + SIMD_CFLAGS += -msse2
> > > > > > + CPPFLAGS += -D_GNU_SOURCE
> > > > > > +-CPPFLAGS += -DXKBCOMPOSE=$(shell if test -e /usr/include/xkbcommon/xkbcommon-compose.h ; then echo 1 ; else echo 0 ; fi )
> > > > > > ++CPPFLAGS += -DXKBCOMPOSE=1
> > > > > > + CFLAGS += $(shell $(PKG_CONFIG) --cflags cairo xcb-composite xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > > > > > + LIBS += $(shell $(PKG_CONFIG) --libs cairo xcb-composite xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > > > > > + LIBS += -lpam
> > > > > > +--
> > > > > > +2.13.0
> > > > >
> > > > > FYI, it looks like maybe we could probably remove this patch file
> > > > > entirely, and just use substitute* to modify the Makefile, if we
> > > > > provided the "which" program as an input. Specifically, if the which
> > > > > program were present, then probably the check you removed would
> > > > > succeed. I haven't tried it myself, though.
> > > >
> > > > Okay, I will give it a try.
> > > >
> > > > > > -;;; Copyright (c) 2016, 2017 ng0 <contact.ng0@cryptolab.net>
> > > > > > +;;; Copyright (c) 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
> > > > >
> > > > > FYI, the contact.ng0@cryptolab.net email address is still mentioned in
> > > > > multiple other files, too.
> > > >
> > > > Yes. I'm only changing addresses once I touch the file. So old
> > > > addresses might be in there for a long time. Otoh, I will
> > > > prepare a patch and change all my header addresses.
> > > >
> > > > > > + (description
> > > > > > + "I3lock-color is a screen locker. It is a re-patched version of
> > > > > > +i3lock, which is a simple screen locker like slock. Features include:
> > > > > > +
> > > > > > +@enumerate
> > > > > > +@item forking process, the locked screen is preserved when you suspend from RAM
> > > > > > +@item specify background color or PNG image to be displayed in the lock screen
> > > > > > +@item many additional color options
> > > > > > +@end enumerate\n")
> > > > >
> > > > > I'm not sure if the trailing newline is necessary. Unless you beat me
> > > > > to it, I'll check on this detail the next time I return to this thread.
> > > >
> > > > I've seen this multiple times before and have just followed this style.
> > > >
> > > > > --
> > > > > Chris
> > > >
> > > > > From 53edb9d43966ec9fbea8292608875d0c894adaea Mon Sep 17 00:00:00 2001
> > > > > From: ng0 <ng0@no-reply.pragmatique.xyz>
> > > > > Date: Fri, 17 Nov 2017 01:38:14 -0800
> > > > > Subject: [PATCH] gnu: Add i3lock-color.
> > > > >
> > > > > * gnu/local.mk (dist_patch_DATA): Add i3lock-color-fix-makefile.patch.
> > > > > * gnu/packages/patches/i3lock-color-fix-makefile.patch: New file.
> > > > > * gnu/packages/wm.scm: Add i3lock-color.
> > > > >
> > > > > Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
> > > > > ---
> > > > > gnu/local.mk | 1 +
> > > > > .../patches/i3lock-color-fix-makefile.patch | 38 +++++++++++++
> > > > > gnu/packages/wm.scm | 66 ++++++++++++++++++++++
> > > > > 3 files changed, 105 insertions(+)
> > > > > create mode 100644 gnu/packages/patches/i3lock-color-fix-makefile.patch
> > > > >
> > > > > diff --git a/gnu/local.mk b/gnu/local.mk
> > > > > index 61bebe662..575d88506 100644
> > > > > --- a/gnu/local.mk
> > > > > +++ b/gnu/local.mk
> > > > > @@ -738,6 +738,7 @@ dist_patch_DATA = \
> > > > > %D%/packages/patches/hubbub-sort-entities.patch \
> > > > > %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
> > > > > %D%/packages/patches/hydra-disable-darcs-test.patch \
> > > > > + %D%/packages/patches/i3lock-color-fix-makefile.patch \
> > > > > %D%/packages/patches/icecat-avoid-bundled-libraries.patch \
> > > > > %D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \
> > > > > %D%/packages/patches/icu4c-CVE-2017-14952.patch \
> > > > > diff --git a/gnu/packages/patches/i3lock-color-fix-makefile.patch b/gnu/packages/patches/i3lock-color-fix-makefile.patch
> > > > > new file mode 100644
> > > > > index 000000000..8243dc548
> > > > > --- /dev/null
> > > > > +++ b/gnu/packages/patches/i3lock-color-fix-makefile.patch
> > > > > @@ -0,0 +1,38 @@
> > > > > +From eaca36ed78bafb82bd51a9e83c6445ef8f1698c8 Mon Sep 17 00:00:00 2001
> > > > > +From: ng0 <ng0@no-reply.pragmatique.xyz>
> > > > > +Date: Mon, 22 May 2017 18:22:19 +0000
> > > > > +Subject: [PATCH] This fix to the Makefile is required to make i3lock-color
> > > > > + build on Guix.
> > > > > +
> > > > > +---
> > > > > + Makefile | 7 +------
> > > > > + 1 file changed, 1 insertion(+), 6 deletions(-)
> > > > > +
> > > > > +diff --git a/Makefile b/Makefile
> > > > > +index c0fe888..b4b6cd9 100644
> > > > > +--- a/Makefile
> > > > > ++++ b/Makefile
> > > > > +@@ -6,11 +6,6 @@ SYSCONFDIR=/etc
> > > > > + PKG_CONFIG=pkg-config
> > > > > + MANDIR=/usr/share/man
> > > > > +
> > > > > +-# Check if pkg-config is installed, we need it for building CFLAGS/LIBS
> > > > > +-ifeq ($(shell which $(PKG_CONFIG) 2>/dev/null 1>/dev/null || echo 1),1)
> > > > > +-$(error "$(PKG_CONFIG) was not found")
> > > > > +-endif
> > > > > +-
> > > > > + CFLAGS += -std=c99
> > > > > + CFLAGS += -pipe
> > > > > + CFLAGS += -Wall
> > > > > +@@ -18,7 +13,7 @@ CFLAGS += -O2
> > > > > + SIMD_CFLAGS += -funroll-loops
> > > > > + SIMD_CFLAGS += -msse2
> > > > > + CPPFLAGS += -D_GNU_SOURCE
> > > > > +-CPPFLAGS += -DXKBCOMPOSE=$(shell if test -e /usr/include/xkbcommon/xkbcommon-compose.h ; then echo 1 ; else echo 0 ; fi )
> > > > > ++CPPFLAGS += -DXKBCOMPOSE=1
> > > > > + CFLAGS += $(shell $(PKG_CONFIG) --cflags cairo xcb-composite xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > > > > + LIBS += $(shell $(PKG_CONFIG) --libs cairo xcb-composite xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > > > > + LIBS += -lpam
> > > > > +--
> > > > > +2.13.0
> > > > > +
> > > > > diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
> > > > > index 09c10eaa0..3d5a0ef7a 100644
> > > > > --- a/gnu/packages/wm.scm
> > > > > +++ b/gnu/packages/wm.scm
> > > > > @@ -66,6 +66,7 @@
> > > > > #:use-module (gnu packages gperf)
> > > > > #:use-module (gnu packages imagemagick)
> > > > > #:use-module (gnu packages lua)
> > > > > + #:use-module (gnu packages linux)
> > > > > #:use-module (gnu packages suckless)
> > > > > #:use-module (guix download)
> > > > > #:use-module (guix git-download))
> > > > > @@ -333,6 +334,71 @@ and locate windows on all your workspaces, using an interactive dmenu
> > > > > prompt.")
> > > > > (license (license:non-copyleft "http://www.wtfpl.net/txt/copying/")))))
> > > > >
> > > > > +;; The last release is from 2015, use the git commit.
> > > > > +(define-public i3lock-color
> > > > > + (let ((commit "275ff68f6a6b7985c65fbaac537f4c018b47942f")
> > > > > + (revision "1"))
> > > > > + (package
> > > > > + (name "i3lock-color")
> > > > > + (version (string-append "2.8-" revision "." (string-take commit 7)))
> > > > > + (source
> > > > > + (origin
> > > > > + (method git-fetch)
> > > > > + (uri (git-reference
> > > > > + (url "https://github.com/chrjguill/i3lock-color")
> > > > > + (commit commit)))
> > > > > + (file-name (string-append name "-" version "-checkout"))
> > > > > + (snippet
> > > > > + ;; The Makefile is read-only, we are going to patch it.
> > > > > + '(chmod "Makefile" #o755))
> > > > > + (patches (search-patches "i3lock-color-fix-makefile.patch"))
> > > > > + (sha256
> > > > > + (base32
> > > > > + "1qhxqj1gwmf473b4b1bfqxdxiw1y6gq9rf97d77jc9s9z267fjm5"))))
> > > > > + (build-system gnu-build-system)
> > > > > + (arguments
> > > > > + `(#:tests? #f ; No tests included.
> > > > > + #:make-flags (list "CC=gcc")
> > > > > + #:phases
> > > > > + (modify-phases %standard-phases
> > > > > + (replace 'configure
> > > > > + (lambda* (#:key outputs #:allow-other-keys)
> > > > > + (let* ((out (assoc-ref outputs "out"))
> > > > > + (man (string-append out "/share/man"))
> > > > > + (etc (string-append out "/etc")))
> > > > > + (substitute* "Makefile"
> > > > > + (("PREFIX=/usr")
> > > > > + (string-append "PREFIX=" out))
> > > > > + (("SYSCONFDIR=/etc")
> > > > > + (string-append "SYSCONFDIR=" etc))
> > > > > + (("MANDIR=/usr/share/man")
> > > > > + (string-append "MANDIR=" man)))
> > > > > + #t))))))
> > > > > + (inputs
> > > > > + `(("xcb-util-image" ,xcb-util-image)
> > > > > + ("xcb-util-keysyms" ,xcb-util-keysyms)
> > > > > + ("xcb-util" ,xcb-util)
> > > > > + ("libxcb" ,libxcb)
> > > > > + ("linux-pam" ,linux-pam)
> > > > > + ("libev" ,libev)
> > > > > + ("libx11" ,libx11)
> > > > > + ("cairo" ,cairo)))
> > > > > + (native-inputs
> > > > > + `(("libxkbcommon" ,libxkbcommon)
> > > > > + ("pkg-config" ,pkg-config)))
> > > > > + (home-page "https://github.com/chrjguill/i3lock-color")
> > > > > + (synopsis "Screenlocker with color configuration support")
> > > > > + (description
> > > > > + "I3lock-color is a screen locker. It is a re-patched version of
> > > > > +i3lock, which is a simple screen locker like slock. Features include:
> > > > > +
> > > > > +@enumerate
> > > > > +@item forking process, the locked screen is preserved when you suspend from RAM
> > > > > +@item specify background color or PNG image to be displayed in the lock screen
> > > > > +@item many additional color options
> > > > > +@end enumerate\n")
> > > > > + (license license:bsd-3))))
> > > > > +
> > > > > (define-public xmonad
> > > > > (package
> > > > > (name "xmonad")
> > > > > --
> > > > > 2.14.2
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
> > > > GnuPG: https://dl.n0.is/dist/keys/
> > > > WWW: https://we.make.ritual.n0.is
> > >
> > >
> > >
> > > --
> > > GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
> > > GnuPG: https://dl.n0.is/dist/keys/
> > > WWW: https://we.make.ritual.n0.is
> >
> > > From ba2a83195afb10ca7c65833f81cdc10748212873 Mon Sep 17 00:00:00 2001
> > > From: ng0 <contact.ng0@cryptolab.net>
> > > Date: Tue, 24 Jan 2017 13:03:42 +0000
> > > Subject: [PATCH 1/2] gnu: Add i3lock-color.
> > >
> > > * gnu/packages/wm.scm (i3lock-color): New variable.
> > > ---
> > > gnu/local.mk | 1 +
> > > gnu/packages/wm.scm | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++
> > > 2 files changed, 69 insertions(+)
> > >
> > > diff --git a/gnu/local.mk b/gnu/local.mk
> > > index 54d1ac91c..2ec5844dc 100644
> > > --- a/gnu/local.mk
> > > +++ b/gnu/local.mk
> > > @@ -744,6 +744,7 @@ dist_patch_DATA = \
> > > %D%/packages/patches/hubbub-sort-entities.patch \
> > > %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
> > > %D%/packages/patches/hydra-disable-darcs-test.patch \
> > > + %D%/packages/patches/i3lock-color-fix-makefile.patch \
> > > %D%/packages/patches/icecat-avoid-bundled-libraries.patch \
> > > %D%/packages/patches/icecat-bug-1348660-pt5.patch \
> > > %D%/packages/patches/icecat-bug-1415133.patch \
> > > diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
> > > index 62a5b5460..e4db72a6f 100644
> > > --- a/gnu/packages/wm.scm
> > > +++ b/gnu/packages/wm.scm
> > > @@ -68,6 +68,7 @@
> > > #:use-module (gnu packages gperf)
> > > #:use-module (gnu packages imagemagick)
> > > #:use-module (gnu packages lua)
> > > + #:use-module (gnu packages linux)
> > > #:use-module (gnu packages suckless)
> > > #:use-module (guix download)
> > > #:use-module (guix git-download))
> > > @@ -335,6 +336,73 @@ and locate windows on all your workspaces, using an interactive dmenu
> > > prompt.")
> > > (license (license:non-copyleft "http://www.wtfpl.net/txt/copying/")))))
> > >
> > > +(define-public i3lock-color
> > > + (package
> > > + (name "i3lock-color")
> > > + (version "2.9.1-c")
> > > + (source
> > > + (origin
> > > + (method url-fetch)
> > > + (uri (string-append "https://github.com/chrjguill/i3lock-color/"
> > > + "archive/" version ".tar.gz"))
> > > + (file-name (string-append name "-" version ".tar.gz"))
> > > + (sha256
> > > + (base32
> > > + "18ql0kb24qlqsijs6j99algf2lprl78mzsz53b1hshmc8jjd4m27"))))
> > > + (build-system gnu-build-system)
> > > + (arguments
> > > + `(#:tests? #f ; No tests included.
> > > + #:make-flags (list "CC=gcc")
> > > + #:phases
> > > + (modify-phases %standard-phases
> > > + (replace 'configure
> > > + (lambda* (#:key outputs inputs #:allow-other-keys)
> > > + (let* ((out (assoc-ref outputs "out"))
> > > + (etc (string-append out "/etc"))
> > > + (man (string-append out "/share/man"))
> > > + (xkb (assoc-ref inputs "libxkbcommon"))
> > > + (xkbheader (string-append xkb
> > > + "/include/xkbcommon/"
> > > + "xkbcommon-compose.h")))
> > > + (substitute* "Makefile"
> > > + (("PKG_CONFIG=pkg-config")
> > > + (string-append "PKG_CONFIG="
> > > + (which "pkg-config")))
> > > + (("/usr/include/xkbcommon/xkbcommon-compose.h")
> > > + xkbheader)
> > > + (("PREFIX=/usr")
> > > + (string-append "PREFIX=" out))
> > > + (("SYSCONFDIR=/etc")
> > > + (string-append "SYSCONFDIR=" etc))
> > > + (("MANDIR=/usr/share/man")
> > > + (string-append "MANDIR=" man)))
> > > + #t))))))
> > > + (inputs
> > > + `(("xcb-util-image" ,xcb-util-image)
> > > + ("xcb-util-keysyms" ,xcb-util-keysyms)
> > > + ("xcb-util" ,xcb-util)
> > > + ("libxcb" ,libxcb)
> > > + ("linux-pam" ,linux-pam)
> > > + ("libev" ,libev)
> > > + ("libx11" ,libx11)
> > > + ("cairo" ,cairo)))
> > > + (native-inputs
> > > + `(("libxkbcommon" ,libxkbcommon)
> > > + ("pkg-config" ,pkg-config)
> > > + ("which" ,which)))
> > > + (home-page "https://github.com/chrjguill/i3lock-color")
> > > + (synopsis "Screenlocker with color configuration support")
> > > + (description
> > > + "I3lock-color is a screen locker. It is a re-patched version of
> > > +i3lock, which is a simple screen locker like slock. Features include:
> > > +
> > > +@enumerate
> > > +@item forking process, the locked screen is preserved when you suspend from RAM
> > > +@item specify background color or PNG image to be displayed in the lock screen
> > > +@item many additional color options
> > > +@end enumerate\n")
> > > + (license license:bsd-3)))
> > > +
> > > (define-public xmonad
> > > (package
> > > (name "xmonad")
> > > --
> > > 2.15.0
> > >
> >
> > > From 49f8940d64ecab73d246d7652ba7358b748d0c2d Mon Sep 17 00:00:00 2001
> > > From: ng0 <contact.ng0@cryptolab.net>
> > > Date: Tue, 24 Jan 2017 15:57:13 +0000
> > > Subject: [PATCH 2/2] gnu: Add i3lock-fancy.
> > >
> > > * gnu/packages/wm.scm (i3lock-fancy): New variable.
> > > ---
> > > gnu/packages/wm.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++
> > > 1 file changed, 71 insertions(+)
> > >
> > > diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
> > > index e4db72a6f..cf861e77e 100644
> > > --- a/gnu/packages/wm.scm
> > > +++ b/gnu/packages/wm.scm
> > > @@ -44,6 +44,7 @@
> > > #:use-module (gnu packages haskell)
> > > #:use-module (gnu packages haskell-check)
> > > #:use-module (gnu packages haskell-web)
> > > + #:use-module (gnu packages gawk)
> > > #:use-module (gnu packages base)
> > > #:use-module (gnu packages pkg-config)
> > > #:use-module (gnu packages perl)
> > > @@ -403,6 +404,76 @@ i3lock, which is a simple screen locker like slock. Features include:
> > > @end enumerate\n")
> > > (license license:bsd-3)))
> > >
> > > +(define-public i3lock-fancy
> > > + (package
> > > + (name "i3lock-fancy")
> > > + (version "0.2")
> > > + (source
> > > + (origin
> > > + (method url-fetch)
> > > + (uri (string-append "https://github.com/meskarune/i3lock-fancy/archive/"
> > > + version ".tar.gz"))
> > > + (file-name (string-append name "-" version ".tar.gz"))
> > > + (sha256
> > > + (base32
> > > + "020m7mnfq5cvir7p9v3hkb7cvb4cai33wppxl2zdwscwwjnchc5y"))))
> > > + (build-system gnu-build-system)
> > > + (arguments
> > > + `(#:tests? #f ;No tests included
> > > + #:phases
> > > + (modify-phases %standard-phases
> > > + (replace 'configure
> > > + (lambda* (#:key inputs outputs #:allow-other-keys)
> > > + (let* ((out (assoc-ref outputs "out"))
> > > + (icons (string-append out "/share/i3lock-fancy/icons/"))
> > > + (i3lock (string-append (assoc-ref inputs "i3lock-color")
> > > + "/bin/i3lock"))
> > > + (wmctrl (string-append (assoc-ref inputs "wmctrl")
> > > + "/bin/wmctrl"))
> > > + (mconvert (string-append (assoc-ref inputs "imagemagick")
> > > + "/bin/convert"))
> > > + (mimport (string-append (assoc-ref inputs "imagemagick")
> > > + "/bin/import"))
> > > + (awk (string-append (assoc-ref inputs "gawk")
> > > + "/bin/gawk")))
> > > +
> > > + (substitute* "lock"
> > > + (("if ! i3lock") (string-append "if ! " i3lock))
> > > + (("i3lock -n") (string-append i3lock " -n"))
> > > + (("$(which wmctrl)") wmctrl)
> > > + (("convert") mconvert)
> > > + (("shot=\\(import") (string-append "shot=\(" mimport))
> > > + (("awk -F") (string-append awk " -F"))
> > > + ((" awk") awk)
> > > + (("\\$scriptpath/icons/") icons))
> > > + #t)))
> > > + (delete 'build)
> > > + (replace 'install
> > > + (lambda* (#:key inputs outputs #:allow-other-keys)
> > > + (let* ((out (assoc-ref outputs "out"))
> > > + (bin (string-append out "/bin"))
> > > + (icons (string-append out "/share/i3lock-fancy/icons/")))
> > > +
> > > + (install-file "lock" bin)
> > > + (rename-file (string-append bin "/lock")
> > > + (string-append bin "/i3lock-fancy"))
> > > + (copy-recursively "icons" icons)
> > > + #t))))))
> > > + (native-inputs
> > > + `(("imagemagick" ,imagemagick)
> > > + ("i3lock-color" ,i3lock-color)
> > > + ("wmctrl" ,wmctrl)
> > > + ("gawk" ,gawk)))
> > > + (home-page "https://github.com/meskarune/i3lock-fancy")
> > > + (synopsis "Screenlocker with screenshot function")
> > > + (description
> > > + "@code{i3lock-fancy} is a Bash script that takes a screenshot of
> > > +the desktop, blurs the background and adds a lock icon and text.
> > > +It makes use of @code{i3lock-color} and can optionally be passed any
> > > +screenshot util like @code{scrot}. This screenlocker can be used with
> > > +any window manager or desktop environment.")
> > > + (license license:expat)))
> > > +
> > > (define-public xmonad
> > > (package
> > > (name "xmonad")
> > > --
> > > 2.15.0
> > >
> >
> >
> >
> >
> > --
> > GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
> > GnuPG: https://dl.n0.is/dist/keys/
> > WWW: https://we.make.ritual.n0.is
>
>
>
> --
> GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
> GnuPG: https://dl.n0.is/dist/keys/
> WWW: https://we.make.ritual.n0.is
--
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://dl.n0.is/dist/keys/
WWW: https://we.make.ritual.n0.is
[-- Attachment #1.2: 0001-gnu-Add-i3lock-color.patch --]
[-- Type: text/plain, Size: 4434 bytes --]
From ba2a83195afb10ca7c65833f81cdc10748212873 Mon Sep 17 00:00:00 2001
From: ng0 <contact.ng0@cryptolab.net>
Date: Tue, 24 Jan 2017 13:03:42 +0000
Subject: [PATCH 1/2] gnu: Add i3lock-color.
* gnu/packages/wm.scm (i3lock-color): New variable.
---
gnu/local.mk | 1 +
gnu/packages/wm.scm | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 69 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 54d1ac91c..2ec5844dc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -744,6 +744,7 @@ dist_patch_DATA = \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \
+ %D%/packages/patches/i3lock-color-fix-makefile.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
%D%/packages/patches/icecat-bug-1348660-pt5.patch \
%D%/packages/patches/icecat-bug-1415133.patch \
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 62a5b5460..e4db72a6f 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -68,6 +68,7 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages lua)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages suckless)
#:use-module (guix download)
#:use-module (guix git-download))
@@ -335,6 +336,73 @@ and locate windows on all your workspaces, using an interactive dmenu
prompt.")
(license (license:non-copyleft "http://www.wtfpl.net/txt/copying/")))))
+(define-public i3lock-color
+ (package
+ (name "i3lock-color")
+ (version "2.9.1-c")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/chrjguill/i3lock-color/"
+ "archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "18ql0kb24qlqsijs6j99algf2lprl78mzsz53b1hshmc8jjd4m27"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No tests included.
+ #:make-flags (list "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (etc (string-append out "/etc"))
+ (man (string-append out "/share/man"))
+ (xkb (assoc-ref inputs "libxkbcommon"))
+ (xkbheader (string-append xkb
+ "/include/xkbcommon/"
+ "xkbcommon-compose.h")))
+ (substitute* "Makefile"
+ (("PKG_CONFIG=pkg-config")
+ (string-append "PKG_CONFIG="
+ (which "pkg-config")))
+ (("/usr/include/xkbcommon/xkbcommon-compose.h")
+ xkbheader)
+ (("PREFIX=/usr")
+ (string-append "PREFIX=" out))
+ (("SYSCONFDIR=/etc")
+ (string-append "SYSCONFDIR=" etc))
+ (("MANDIR=/usr/share/man")
+ (string-append "MANDIR=" man)))
+ #t))))))
+ (inputs
+ `(("xcb-util-image" ,xcb-util-image)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)
+ ("xcb-util" ,xcb-util)
+ ("libxcb" ,libxcb)
+ ("linux-pam" ,linux-pam)
+ ("libev" ,libev)
+ ("libx11" ,libx11)
+ ("cairo" ,cairo)))
+ (native-inputs
+ `(("libxkbcommon" ,libxkbcommon)
+ ("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (home-page "https://github.com/chrjguill/i3lock-color")
+ (synopsis "Screenlocker with color configuration support")
+ (description
+ "I3lock-color is a screen locker. It is a re-patched version of
+i3lock, which is a simple screen locker like slock. Features include:
+
+@enumerate
+@item forking process, the locked screen is preserved when you suspend from RAM
+@item specify background color or PNG image to be displayed in the lock screen
+@item many additional color options
+@end enumerate\n")
+ (license license:bsd-3)))
+
(define-public xmonad
(package
(name "xmonad")
--
2.15.0
[-- Attachment #1.3: 0002-gnu-Add-i3lock-fancy.patch --]
[-- Type: text/plain, Size: 4004 bytes --]
From 63e4eff6e954361a7b30fb4c060bdecbfee56da3 Mon Sep 17 00:00:00 2001
From: ng0 <contact.ng0@cryptolab.net>
Date: Tue, 24 Jan 2017 15:57:13 +0000
Subject: [PATCH 2/2] gnu: Add i3lock-fancy.
* gnu/packages/wm.scm (i3lock-fancy): New variable.
---
gnu/packages/wm.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index e4db72a6f..01faf8149 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -44,6 +44,7 @@
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-web)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages base)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages perl)
@@ -403,6 +404,72 @@ i3lock, which is a simple screen locker like slock. Features include:
@end enumerate\n")
(license license:bsd-3)))
+(define-public i3lock-fancy
+ (package
+ (name "i3lock-fancy")
+ (version "0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/meskarune/i3lock-fancy/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "020m7mnfq5cvir7p9v3hkb7cvb4cai33wppxl2zdwscwwjnchc5y"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;No tests included
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (icons (string-append out "/share/i3lock-fancy/icons/"))
+ (wmctrl (string-append (assoc-ref inputs "wmctrl")
+ "/bin/wmctrl"))
+ (mconvert (string-append (assoc-ref inputs "imagemagick")
+ "/bin/convert"))
+ (mimport (string-append (assoc-ref inputs "imagemagick")
+ "/bin/import"))
+ (awk (string-append (assoc-ref inputs "gawk")
+ "/bin/gawk")))
+
+ (substitute* "lock"
+ (("$(which wmctrl)") wmctrl)
+ (("convert") mconvert)
+ (("shot=\\(import") (string-append "shot=\(" mimport))
+ (("awk -F") (string-append awk " -F"))
+ ((" awk") awk)
+ (("\\$scriptpath/icons/") icons))
+ #t)))
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (icons (string-append out "/share/i3lock-fancy/icons/")))
+
+ (install-file "lock" bin)
+ (rename-file (string-append bin "/lock")
+ (string-append bin "/i3lock-fancy"))
+ (copy-recursively "icons" icons)
+ #t))))))
+ (native-inputs
+ `(("imagemagick" ,imagemagick)
+ ("i3lock-color" ,i3lock-color)
+ ("wmctrl" ,wmctrl)
+ ("gawk" ,gawk)))
+ (home-page "https://github.com/meskarune/i3lock-fancy")
+ (synopsis "Screenlocker with screenshot function")
+ (description
+ "@code{i3lock-fancy} is a Bash script that takes a screenshot of
+the desktop, blurs the background and adds a lock icon and text.
+It makes use of @code{i3lock-color} and can optionally be passed any
+screenshot util like @code{scrot}. This screenlocker can be used with
+any window manager or desktop environment.")
+ (license license:expat)))
+
(define-public xmonad
(package
(name "xmonad")
--
2.15.0
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-11-17 21:20 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-26 11:33 bug#27083: screen-lockers: i3lock-color and i3lock-fancy ng0
2017-11-17 9:55 ` [bug#27083] " Chris Marusich
2017-11-17 10:18 ` ng0
2017-11-17 20:17 ` ng0
2017-11-17 20:57 ` ng0
2017-11-17 21:02 ` ng0
2017-11-17 21:19 ` ng0 [this message]
2017-11-19 11:04 ` ng0
2017-12-01 7:20 ` Chris Marusich
2017-12-01 9:27 ` ng0
2017-12-02 9:59 ` Chris Marusich
2017-12-09 13:25 ` ng0
2017-12-09 14:25 ` ng0
2017-12-11 13:47 ` Ludovic Courtès
2017-12-11 14:03 ` ng0
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171117211901.eor5yjlvj3icgbsd@abyayala \
--to=ng0@infotropique.org \
--cc=27083@debbugs.gnu.org \
--cc=cmmarusich@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).