Index: X/.Xdefaults
===================================================================
--- X/.Xdefaults	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ X/.Xdefaults	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -63,5 +63,5 @@
 emacs.menuBar: 0
 emacs.verticalScrollBars: off
-emacs.pane.menubar.font: Unifont 12
+! emacs.pane.menubar.font: Unifont 12
 
 ! emacs.reverseVideo: true
Index: guix/.bash_profile
===================================================================
--- guix/.bash_profile	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/.bash_profile	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -1,3 +1,3 @@
-export PATH=$PATH:$HOME/.bin:~/.local/bin:/bin:$HOME/.nix-profile/bin
+export PATH=$PATH:$HOME/.bin:~/.local/bin:/bin:$HOME/.nix-profile/bin:$HOME/.nodejs/bin
 #:$HOME/.nix-profile/bin
 
@@ -18,4 +18,6 @@
 export GUIX_PACKAGE_PATH=$HOME/.guix-packages
 GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles
+export GUILE_LOAD_PATH=$GUILE_LOAD_PATH:$HOME/projects/guix
+export GUILE_LOAD_COMPILED_PATH=$GUILE_LOAD_COMPILED_PATH:$HOME/projects/guix
 
 for i in $GUIX_EXTRA_PROFILES/*; do
@@ -28,9 +30,9 @@
 done
 
-export PHPENV_ROOT="/home/w96k/.phpenv"
-if [ -d "${PHPENV_ROOT}" ]; then
-  export PATH="${PHPENV_ROOT}/bin:${PATH}"
-  eval "$(phpenv init -)"
-fi
+# export PHPENV_ROOT="/home/w96k/.phpenv"
+# if [ -d "${PHPENV_ROOT}" ]; then
+#   export PATH="${PHPENV_ROOT}/bin:${PATH}"
+#   eval "$(phpenv init -)"
+# fi
 
 # Honor per-interactive-shell startup file
Index: ix/.config/fontconfig/fonts.conf
===================================================================
--- guix/.config/fontconfig/fonts.conf	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ 	(revision )
@@ -1,46 +1,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
-<fontconfig>
-  <alias>
-    <family>sans-serif</family>
-    <prefer>
-      <family>FreeSans</family>
-    </prefer>
-  </alias>
-  <alias>
-    <family>serif</family>
-    <prefer>
-      <family>FreeSerif</family>
-    </prefer>
-  </alias>
-  <alias>
-    <family>monospace</family>
-    <prefer>
-      <family>Unifont</family>
-    </prefer>
-  </alias>
-  
-  <match target="font">
-    <edit name="antialias" mode="assign">
-      <bool>true</bool>
-    </edit>
-    <edit name="hinting" mode="assign">
-      <bool>true</bool>
-    </edit>
-    <edit mode="assign" name="embeddedbitmap">
-      <bool>true</bool>
-    </edit>
-    <edit mode="assign" name="hintstyle">
-      <const>hintslight</const>
-    </edit>
-    <edit name="autohint" mode="assign">
-      <bool>true</bool>
-    </edit>
-    <edit mode="assign" name="lcdfilter">
-      <const>lcddefault</const>
-    </edit>
-    <edit mode="assign" name="rgba">
-      <const>rgb</const>
-    </edit>
-  </match>
-</fontconfig>
Index: guix/.config/gtk-3.0/gtk.css
===================================================================
--- guix/.config/gtk-3.0/gtk.css	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/.config/gtk-3.0/gtk.css	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -70,8 +70,4 @@
 }
 
-toolbar icon {
-    width: 16px;
-}
-
 toolbar button {
     border-radius: 0;
@@ -80,2 +76,94 @@
     font-size: 10pt
 }
+
+@binding-set gtk-emacs-text-entry
+{
+  bind "<ctrl>b" { "move-cursor" (logical-positions, -1, 0) };
+  bind "<shift><ctrl>b" { "move-cursor" (logical-positions, -1, 1) };
+  bind "<ctrl>f" { "move-cursor" (logical-positions, 1, 0) };
+  bind "<shift><ctrl>f" { "move-cursor" (logical-positions, 1, 1) };
+
+  bind "<alt>b" { "move-cursor" (words, -1, 0) };
+  bind "<shift><alt>b" { "move-cursor" (words, -1, 1) };
+  bind "<alt>f" { "move-cursor" (words, 1, 0) };
+  bind "<shift><alt>f" { "move-cursor" (words, 1, 1) };
+
+  bind "<ctrl>a" { "move-cursor" (paragraph-ends, -1, 0) };
+  bind "<shift><ctrl>a" { "move-cursor" (paragraph-ends, -1, 1) };
+  bind "<ctrl>e" { "move-cursor" (paragraph-ends, 1, 0) };
+  bind "<shift><ctrl>e" { "move-cursor" (paragraph-ends, 1, 1) };
+
+  bind "<ctrl>w" { "cut-clipboard" () };
+  bind "<ctrl>y" { "paste-clipboard" () };
+
+  bind "<ctrl>d" { "delete-from-cursor" (chars, 1) };
+  bind "<alt>d" { "delete-from-cursor" (word-ends, 1) };
+  bind "<ctrl>k" { "delete-from-cursor" (paragraph-ends, 1) };
+  bind "<alt>backslash" { "delete-from-cursor" (whitespace, 1) };
+
+  bind "<alt>space" { "delete-from-cursor" (whitespace, 1)
+                      "insert-at-cursor" (" ") };
+  bind "<alt>KP_Space" { "delete-from-cursor" (whitespace, 1)
+                         "insert-at-cursor" (" ")  };
+  /*
+   * Some non-Emacs keybindings people are attached to
+   */
+  bind "<ctrl>u" { "move-cursor" (paragraph-ends, -1, 0)
+                   "delete-from-cursor" (paragraph-ends, 1) };
+
+  bind "<ctrl>h" { "delete-from-cursor" (chars, -1) };
+  bind "<ctrl>w" { "delete-from-cursor" (word-ends, -1) };
+}
+
+/*
+ * Bindings for GtkTextView
+ */
+@binding-set gtk-emacs-text-view
+{
+  bind "<ctrl>p" { "move-cursor" (display-lines, -1, 0) };
+  bind "<shift><ctrl>p" { "move-cursor" (display-lines, -1, 1) };
+  bind "<ctrl>n" { "move-cursor" (display-lines, 1, 0) };
+  bind "<shift><ctrl>n" { "move-cursor" (display-lines, 1, 1) };
+
+  bind "<ctrl>space" { "set-anchor" () };
+  bind "<ctrl>KP_Space" { "set-anchor" () };
+}
+
+/*
+ * Bindings for GtkTreeView
+ */
+@binding-set gtk-emacs-tree-view
+{
+  bind "<ctrl>s" { "start-interactive-search" () };
+  bind "<ctrl>f" { "move-cursor" (logical-positions, 1) };
+  bind "<ctrl>b" { "move-cursor" (logical-positions, -1) };
+}
+
+/*
+ * Bindings for menus
+ */
+@binding-set gtk-emacs-menu
+{
+  bind "<ctrl>n" { "move-current" (next) };
+  bind "<ctrl>p" { "move-current" (prev) };
+  bind "<ctrl>f" { "move-current" (child) };
+  bind "<ctrl>b" { "move-current" (parent) };
+}
+
+GtkEntry {
+  -gtk-key-bindings: gtk-emacs-text-entry;
+}
+
+GtkTextView {
+  -gtk-key-bindings: gtk-emacs-text-entry, gtk-emacs-text-view;
+}
+
+GtkTreeView {
+  -gtk-key-bindings: gtk-emacs-tree-view;
+}
+
+GtkMenuShell {
+  -gtk-key-bindings: gtk-emacs-menu;
+}
+
+class "GtkMenuShell" binding "gtk-emacs-menu"
Index: guix/.config/gtk-3.0/settings.ini
===================================================================
--- guix/.config/gtk-3.0/settings.ini	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/.config/gtk-3.0/settings.ini	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -7,9 +7,10 @@
 gtk-xft-hintstyle=hintslight
 gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
+gtk-icon-sizes = "panel-menu=12,12:panel=12,12:gtk-menu=12,12:gtk-large-toolbar=12,12:gtk-small-toolbar=12,12:gtk-button=12,12"
+gtk-decoration-layout=menu:closes
+# gtk-font-name=FreeFont Sans 14
+# gtk-primary-button-warps-slider=false
+gtk-menu-popup-delay = 0
+#gtk-menu-images = 0
+# gtk-button-images = 0
 gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
-gtk-icon-sizes = "panel-menu=12,12:panel=12,12:gtk-menu=12,12:gtk-large-toolbar=12,12\
-:gtk-small-toolbar=12,12:gtk-button=12,12"
-gtk-decoration-layout=menu:close
-gtk-font-name=FreeFont Sans 14
-# gtk-primary-button-warps-slider=false
-StartupMode=cwd
Index: guix/.config/guix/channels.scm
===================================================================
--- guix/.config/guix/channels.scm	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/.config/guix/channels.scm	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -1,18 +1,4 @@
-(cons* ;; (channel
-       ;;  (name 'flat)
-       ;;  (url "https://github.com/flatwhatson/guix-channel.git")
-       ;;  (introduction
-       ;;   (make-channel-introduction
-       ;;    "33f86a4b48205c0dc19d7c036c85393f0766f806"
-       ;;    (openpgp-fingerprint
-       ;;     "736A C00E 1254 378B A982  7AF6 9DBE 8265 81B6 4490"))))
-       ;; (channel
-       ;;  (name 'nonguix)
-       ;;  (url "https://gitlab.com/nonguix/nonguix")
-       ;;  ;; Enable signature verification:
-       ;;  (introduction
-       ;;   (make-channel-introduction
-       ;;    "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
-       ;;    (openpgp-fingerprint
-       ;;     "2A39 3FFF 68F4 EF7A 3D29  12AF 6F51 20A0 22FB B2D5"))))
-       %default-channels)
+(list (channel
+        (name 'guix)
+        (url "https://git.savannah.gnu.org/git/guix.git")
+        (branch "version-1.4.0")))
Index: ix/.guix-packages/docker.scm
===================================================================
--- guix/.guix-packages/docker.scm	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ 	(revision )
@@ -1,16 +1,0 @@
-;; (define-module (docker)
-;;   #:use-module (guix packages)
-;;   #:use-module (guix utils)
-;;   #:use-module (gnu packages docker)
-;;   #:use-module (gnu packages python))
-
-;; (define-public my-docker-compose
-;;   (package
-;;    (inherit docker-compose)
-;;    (name "docker-compose")
-;;    (version "1.29.2")
-;;    (arguments
-;;     '(#:tests? #f
-;;       #:phases
-;;       (modify-phases %standard-phases
-;; 		     (delete 'sanity-check))))))
Index: guix/.guix-packages/emacs.scm
===================================================================
--- guix/.guix-packages/emacs.scm	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/.guix-packages/emacs.scm	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -26,453 +26,4 @@
   #:use-module (ice-9 match))
 
-(define-public emacs
-  (package
-    (name "emacs")
-    (version "28.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/emacs/emacs-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "1qbmmmhnjhn4lvzsnyk7l5ganbi6wzbm38jc1a7hhyh3k78b7c98"))
-              (patches (search-patches "emacs-exec-path.patch"
-                                       "emacs-fix-scheme-indent-function.patch"
-                                       "emacs-source-date-epoch.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(with-directory-excursion "lisp"
-                  ;; Delete the bundled byte-compiled elisp files and generated
-                  ;; autoloads.
-                  (for-each delete-file
-                            (append (find-files "." "\\.elc$")
-                                    (find-files "." "loaddefs\\.el$")
-                                    (find-files "eshell" "^esh-groups\\.el$")))
-
-                  ;; Make sure Tramp looks for binaries in the right places on
-                  ;; remote Guix System machines, where 'getconf PATH' returns
-                  ;; something bogus.
-                  (substitute* "net/tramp-sh.el"
-                    ;; Patch the line after "(defcustom tramp-remote-path".
-                    (("\\(tramp-default-remote-path")
-                     (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
-                             "~/.guix-profile/bin" "~/.guix-profile/sbin"
-                             "/run/current-system/profile/bin"
-                             "/run/current-system/profile/sbin")))
-
-                  ;; Make sure Man looks for C header files in the right
-                  ;; places.
-                  (substitute* "man.el"
-                    (("\"/usr/local/include\"" line)
-                     (string-join
-                      (list line
-                            "\"~/.guix-profile/include\""
-                            "\"/var/guix/profiles/system/profile/include\"")
-                      " ")))
-                  #t))))
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     `(#:tests? #f                      ; no check target
-       #:configure-flags (list "--with-modules"
-                               "--with-cairo"
-                               "--disable-build-details")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-program-file-names
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* '("src/callproc.c"
-                            "lisp/term.el"
-                            "lisp/htmlfontify.el"
-                            "lisp/textmodes/artist.el"
-                            "lisp/progmodes/sh-script.el")
-               (("\"/bin/sh\"")
-                (format #f "~s" (which "sh"))))
-             (substitute* "lisp/doc-view.el"
-               (("\"(gs|dvipdf|ps2pdf)\"" all what)
-                (let ((ghostscript (assoc-ref inputs "ghostscript")))
-                  (if ghostscript
-                      (string-append "\"" ghostscript "/bin/" what "\"")
-                      all)))
-               (("\"(pdftotext)\"" all what)
-                (let ((poppler (assoc-ref inputs "poppler")))
-                  (if poppler
-                      (string-append "\"" poppler "/bin/" what "\"")
-                      all))))
-             ;; match ".gvfs-fuse-daemon-real" and ".gvfsd-fuse-real"
-             ;; respectively when looking for GVFS processes.
-             (substitute* "lisp/net/tramp-gvfs.el"
-               (("\\(tramp-compat-process-running-p \"(.*)\"\\)" all process)
-                (format #f "(or ~a (tramp-compat-process-running-p ~s))"
-                        all (string-append "." process "-real"))))
-             #t))
-         (add-before 'configure 'fix-/bin/pwd
-           (lambda _
-             ;; Use `pwd', not `/bin/pwd'.
-             (substitute* (find-files "." "^Makefile\\.in$")
-               (("/bin/pwd")
-                "pwd"))
-             #t))
-         (add-after 'install 'install-site-start
-           ;; Use 'guix-emacs' in "site-start.el", which is used autoload the
-           ;; Elisp packages found in EMACSLOADPATH.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out      (assoc-ref outputs "out"))
-                    (lisp-dir (string-append out "/share/emacs/site-lisp"))
-                    (emacs    (string-append out "/bin/emacs")))
-
-               ;; This is duplicated from emacs-utils to prevent coupling.
-               (define* (emacs-byte-compile-directory dir)
-                 (let ((expr `(progn
-                               (setq byte-compile-debug t)
-                               (byte-recompile-directory
-                                (file-name-as-directory ,dir) 0 1))))
-                   (invoke emacs "--quick" "--batch"
-                           (format #f "--eval=~s" expr))))
-
-               (copy-file (assoc-ref inputs "guix-emacs.el")
-                          (string-append lisp-dir "/guix-emacs.el"))
-               (with-output-to-file (string-append lisp-dir "/site-start.el")
-                 (lambda ()
-                   (display
-                    (string-append
-                     "(when (require 'guix-emacs nil t)\n"
-                     "  (guix-emacs-autoload-packages)\n"
-                     "  (advice-add 'package-load-all-descriptors"
-                     " :after #'guix-emacs-load-package-descriptors))"))))
-               ;; Remove the extraneous subdirs.el file, as it causes Emacs to
-               ;; add recursively all the the sub-directories of a profile's
-               ;; share/emacs/site-lisp union when added to EMACSLOADPATH,
-               ;; which leads to conflicts.
-               (delete-file (string-append lisp-dir "/subdirs.el"))
-               ;; Byte compile the site-start files.
-               (emacs-byte-compile-directory lisp-dir))
-             #t))
-         (add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
-           ;; restore the dump file that Emacs installs somewhere in
-           ;; libexec/ to its original state
-           (lambda* (#:key outputs target #:allow-other-keys)
-             (let* ((libexec (string-append (assoc-ref outputs "out")
-                                            "/libexec"))
-                    ;; each of these ought to only match a single file,
-                    ;; but even if not (find-files) sorts by string<,
-                    ;; so the Nth element in one maps to the Nth element of
-                    ;; the other
-                    (pdmp (find-files libexec "\\.pdmp$"))
-                    (pdmp-real (find-files libexec "\\.pdmp-real$")))
-               (for-each rename-file pdmp-real pdmp))))
-         (add-after 'glib-or-gtk-wrap 'strip-double-wrap
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Directly copy emacs-X.Y to emacs, so that it is not wrapped
-             ;; twice.  This also fixes a minor issue, where WMs would not be
-             ;; able to track emacs back to emacs.desktop.
-             (with-directory-excursion (assoc-ref outputs "out")
-               (copy-file
-                (car (find-files "bin" "^emacs-([0-9]+\\.)+[0-9]+$"))
-                "bin/emacs")
-               #t)))
-         (add-after 'strip-double-wrap 'wrap-emacs-paths
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lisp-dirs (find-files (string-append out "/share/emacs")
-                                           "^lisp$"
-                                           #:directories? #t)))
-               (for-each
-                (lambda (prog)
-                  (wrap-program prog
-                    ;; emacs-next and variants rely on uname being in PATH for
-                    ;; Tramp.  Tramp paths can't be hardcoded, because they
-                    ;; need to be portable.
-                    `("PATH" suffix
-                      ,(map (lambda (in) (string-append in "/bin"))
-                            (list (assoc-ref inputs "gzip")
-                                  (assoc-ref inputs "coreutils"))))
-                    `("EMACSLOADPATH" suffix ,lisp-dirs)))
-                (find-files (string-append out "/bin")
-                            ;; Matches versioned and unversioned emacs binaries.
-                            ;; We don't patch emacsclient, because it takes its
-                            ;; environment variables from emacs.
-                            ;; Likewise, we don't need to patch helper binaries
-                            ;; like etags, ctags or ebrowse.
-                            "^emacs(-[0-9]+(\\.[0-9]+)*)?$"))))))))
-    (inputs
-     `(("gnutls" ,gnutls)
-       ("ncurses" ,ncurses)
-
-       ;; Required for "core" functionality, such as dired and compression.
-       ("coreutils" ,coreutils)
-       ("gzip" ,gzip)
-
-       ;; Avoid Emacs's limited movemail substitute that retrieves POP3 email
-       ;; only via insecure channels.  This is not needed for (modern) IMAP.
-       ("mailutils" ,mailutils)
-
-       ;; TODO: Add the optional dependencies.
-       ("gpm" ,gpm)
-       ("libx11" ,libx11)
-       ("gtk+" ,gtk+)
-       ("cairo" ,cairo)
-       ("pango" ,pango)
-       ("harfbuzz" ,harfbuzz)
-       ("libxft" ,libxft)
-       ("libtiff" ,libtiff)
-       ("giflib" ,giflib)
-       ("libjpeg" ,libjpeg-turbo)
-       ("acl" ,acl)
-       ("jansson" ,jansson)
-       ("gmp" ,gmp)
-       ("ghostscript" ,ghostscript)
-       ("poppler" ,poppler)
-
-       ;; When looking for libpng `configure' links with `-lpng -lz', so we
-       ;; must also provide zlib as an input.
-       ("libpng" ,libpng)
-       ("zlib" ,zlib)
-       ("librsvg" ,@(if (target-x86-64?)
-                         (list librsvg-bootstrap)
-                         (list librsvg-2.40)))
-       ("libxpm" ,libxpm)
-       ("libxml2" ,libxml2)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
-       ("alsa-lib" ,alsa-lib)
-       ("dbus" ,dbus)
-
-       ;; multilingualization support
-       ("libotf" ,libotf)
-       ("m17n-lib" ,m17n-lib)))
-    (native-inputs
-     `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
-
-    (native-search-paths
-     (list (search-path-specification
-            (variable "EMACSLOADPATH")
-            (files '("share/emacs/site-lisp")))
-           (search-path-specification
-            (variable "INFOPATH")
-            (files '("share/info")))))
-
-    (home-page "https://www.gnu.org/software/emacs/")
-    (synopsis "The extensible, customizable, self-documenting text editor")
-    (description
-     "GNU Emacs is an extensible and highly customizable text editor.  It is
-based on an Emacs Lisp interpreter with extensions for text editing.  Emacs
-has been extended in essentially all areas of computing, giving rise to a
-vast array of packages supporting, e.g., email, IRC and XMPP messaging,
-spreadsheets, remote server editing, and much more.  Emacs includes extensive
-documentation on all aspects of the system, from basic editing to writing
-large Lisp programs.  It has full Unicode support for nearly all human
-languages.")
-    (license license:gpl3+)))
-
-(define-public libgccjit-for-gcc
-  (mlambda (gcc)
-    (package
-      (inherit gcc)
-      (name "libgccjit")
-      (outputs (delete "lib" (package-outputs gcc)))
-      (properties (alist-delete 'hidden? (package-properties gcc)))
-      (arguments
-       (substitute-keyword-arguments `(#:modules ((guix build gnu-build-system)
-                                                  (guix build utils)
-                                                  (ice-9 regex)
-                                                  (srfi srfi-1)
-                                                  (srfi srfi-26))
-                                       ,@(package-arguments gcc))
-         ((#:configure-flags flags)
-          `(append '("--disable-bootstrap"
-                     "--disable-libatomic"
-                     "--disable-libgomp"
-                     "--disable-libquadmath"
-                     "--disable-libssp"
-                     "--enable-host-shared"
-                     "--enable-checking=release"
-                     "--enable-languages=jit")
-                   (remove (cut string-match "--enable-languages.*" <>)
-                           ,flags)))
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-after 'install 'remove-broken-or-conflicting-files
-               (lambda* (#:key outputs #:allow-other-keys)
-                 (for-each delete-file
-                           (find-files (string-append (assoc-ref outputs "out") "/bin")
-                                       ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))
-                 #t))))))
-      (inputs
-       (alist-delete "libstdc++"
-                     (package-inputs gcc)))
-      (native-inputs
-       `(("gcc" ,gcc)
-         ,@(package-native-inputs gcc))))))
-
-(define-public libgccjit-10
-  (libgccjit-for-gcc gcc-10))
-
-(define-public libgccjit-11
-  (libgccjit-for-gcc gcc-11))
-
-(define-public emacs
-  (package
-   (inherit emacs)
-   (name "emacs")
-   (version "28.1")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (string-append "mirror://gnu/emacs/emacs-"
-                         version ".tar.xz"))
-     (sha256
-      (base32
-       "1qbmmmhnjhn4lvzsnyk7l5ganbi6wzbm38jc1a7hhyh3k78b7c98"))))
-   (arguments
-    (substitute-keyword-arguments
-     (package-arguments emacs-next)
-     ((#:configure-flags flags ''())
-      `(list "--with-imagemagick"
-	     "--disable-silent-rules"
-	     "--with-x-toolkit=no"
-	     "--enable-link-time-optimization"
-	     "--with-json"
-	     "--with-jpeg"
-	     "--with-png"
-	     "--with-rsvg"
-	     "--without-xaw3d"
-	     "--with-threads"
-	     "--with-included-regex"
-	     "--with-modules"
-	     "--without-libotf"
-	     "--without-libsystemd"
-	     "--with-mailutils"
-	     "--without-toolkit-scroll-bars"
-	     "--without-selinux"
-	     ;; "--without-harfbuzz"
-	     ;; "--without-cairo"
-	     ;; "--with-libxft"
-	     ;; "--with-xdbe=no"
-	     "CFLAGS=-O3 -g -fcommon -pipe"
-	     ))))
-   (inputs
-    (modify-inputs (package-inputs emacs-next)
-		   (prepend imagemagick libxaw)))
-   (properties '((tunable? . #true)))))
-
-(define-public emacs-with-native-compilation
-  (let ((libgccjit (libgccjit-for-gcc gcc-11)))
-    (package
-      (inherit emacs)
-      (name "emacs-with-native-compilation")
-      (version "28.1")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (string-append "mirror://gnu/emacs/emacs-"
-                             version ".tar.xz"))
-         (sha256
-	  (base32
-	   "1qbmmmhnjhn4lvzsnyk7l5ganbi6wzbm38jc1a7hhyh3k78b7c98"))))
-      (arguments
-       (substitute-keyword-arguments
-        (package-arguments emacs-28)
-	((#:make-flags flags ''())
-                `(cons* "NATIVE_FULL_AOT=1" ,flags))
-         ((#:configure-flags flags ''())
-	  `(cons* "--with-native-compilation"
-		  "CFLAGS=-O3 -g -fcommon -fcommon -pipe"
-		  ,flags))
-         ((#:phases phases ''())
-          `(modify-phases ,phases
-	     ;; Required for configure to find libgccjit
-	     (add-before 'configure 'set-library-path
-	       (lambda* (#:key inputs #:allow-other-keys)
-		 (let* ((libgccjit-version ,(package-version libgccjit))
-		        (libgccjit-libdir
-			 (string-append
-			  (assoc-ref inputs "libgccjit") "/lib/gcc/"
-			  %host-type "/" libgccjit-version "/")))
-		   (setenv "LIBRARY_PATH"
-			   (string-append libgccjit-libdir ":"
-					  (getenv "LIBRARY_PATH"))))))
-	     ;; Add runtime library paths for libgccjit.
-	     (add-after 'unpack 'patch-driver-options
-	       (lambda* (#:key inputs #:allow-other-keys)
-		 (substitute* "lisp/emacs-lisp/comp.el"
-		   (("\\(defcustom native-comp-driver-options nil")
-		    (format
-		     #f "(defcustom native-comp-driver-options '(~s ~s ~s ~s)"
-		     (string-append
-		      "-B" (assoc-ref inputs "binutils") "/bin/")
-		     (string-append
-		      "-B" (assoc-ref inputs "glibc") "/lib/")
-		     (string-append
-		      "-B" (assoc-ref inputs "libgccjit") "/lib/")
-		     (string-append
-		      "-B" (assoc-ref inputs "libgccjit") "/lib/gcc/"))))))))))
-      (inputs
-       (modify-inputs (package-inputs emacs-28)
-		      (prepend libgccjit glibc bzip2)))
-      (propagated-inputs
-       (modify-inputs (package-inputs emacs-28)
-		      (prepend)))
-      (properties '((tunable? . #true))))))
-
-(define-public wkmacs
-  (package
-   (inherit emacs)
-   (name "wkmacs")
-   (version "28.1")
-   (propagated-inputs
-    (list emacs-flycheck
-      emacs-pdf-tools
-      emacs-debbugs
-      emacs-vimrc-mode
-      emacs-docker-compose-mode
-      emacs-dockerfile-mode
-      emacs-docker
-      emacs-org-roam
-      emacs-web-mode
-      emacs-php-mode
-      emacs-robe
-      emacs-inf-ruby
-      emacs-sudo-edit
-      emacs-auto-complete
-      emacs-visual-fill-column
-      emacs-dumb-jump
-      emacs-goto-chg
-      emacs-gitpatch
-      emacs-magit
-      emacs-auctex
-      emacs-anaconda-mode
-      emacs-anzu
-      emacs-all-the-icons
-      emacs-telega
-      emacs-geiser
-      emacs-org-webring
-      emacs-all-the-icons-dired
-      emacs-avy
-      emacs-browse-kill-ring
-      emacs-haskell-mode
-      emacs-idris-mode
-      emacs-mwim
-      emacs-diminish
-      emacs-direnv
-      emacs-elpher
-      emacs-exec-path-from-shell
-      emacs-expand-region
-      emacs-geiser-guile
-      emacs-guix
-      emacs-org-ref
-      emacs-git-gutter
-      emacs-gnuplot
-      emacs-nix-mode
-      emacs-sml-mode
-      emacs-slime
-      emacs-simple-httpd
-      emacs-undo-tree
-      emacs-yasnippet
-      emacs-yasnippet-snippets
-      emacs-xref))
-   (properties '((tunable? . #true)))))
-
 (define-public emacs-pythonic
   (package
@@ -666,2 +217,40 @@
     (list emacs-request))
    (build-system emacs-build-system)))
+
+(define-public emacs-mini-modeline
+  (package
+    (name "emacs-mini-modeline")
+    (version "20211130.604")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/kiennq/emacs-mini-modeline.git")
+                    (commit "434b98b22c69c8b3b08e9c267c935591c49a8301")))
+              (sha256
+               (base32
+                "063bpi3gxzi6kkc3mb9h4m8lvbsvfw47z559960h912h2l3z6vhq"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-dash))
+    (home-page "https://github.com/kiennq/emacs-mini-modeline")
+    (synopsis "Display modeline in minibuffer")
+    (description
+     "Display modeline in minibuffer.  With this we save one display line and also
+don't have to see redundant information.")
+    (license #f)))
+
+(define-public emacs-isearch-mb
+  (package
+    (name "emacs-isearch-mb")
+    (version "0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://elpa.gnu.org/packages/isearch-mb-"
+                                  version ".tar"))
+              (sha256
+               (base32
+                "0fah8dmh9jv05i93ccn9dvl7qmfy32vwxqdzkf1v8gr1plsyjyx7"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/astoff/isearch-mb")
+    (synopsis "Control isearch from the minibuffer")
+    (description "")
+    (license license:gpl3+)))
Index: guix/.guix-packages/php.scm
===================================================================
--- guix/.guix-packages/php.scm	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/.guix-packages/php.scm	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -36,354 +36,349 @@
   #:use-module ((guix licenses) #:prefix license:))
 
-(define-public php-ampq
-  (package
-    (name "php-ampq")
-    (version "7.4.26")
-    (home-page "https://secure.php.net/")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append home-page "distributions/"
-                                  "php-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1y0f1xgfi8cks6npdhrycg8r9g3q0pikqgf5h4xafpy8znmb61g3"))
-              (patches
-               (search-patches "php-bug-74093-test.patch"
-                               "php-openssl_x509_checkpurpose_basic.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(with-directory-excursion "ext"
-                  (for-each delete-file-recursively
-                            ;; Some of the bundled libraries have no proper upstream.
-                            ;; Ideally we'd extract these out as separate packages:
-                            ;;"mbstring/libmbfl"
-                            ;;"date/lib"
-                            ;;"bcmath/libbcmath"
-                            ;;"fileinfo/libmagic" ; a patched version of libmagic
-                            '("gd/libgd"
-                              "pcre/pcre2lib"
-                              "xmlrpc/libxmlrpc"))))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       (let-syntax ((with (syntax-rules ()
-                            ((_ option input)
-                             (string-append option "="
-                                            (assoc-ref %build-inputs input))))))
-         (list (with "--with-bz2" "bzip2")
-               (with "--with-curl" "curl")
-               (with "--with-gdbm" "gdbm")
-               (with "--with-gettext" "libc")  ; libintl.h
-               (with "--with-gmp" "gmp")
-               (with "--with-ldap" "openldap")
-               (with "--with-ldap-sasl" "cyrus-sasl")
-               (with "--with-pdo-pgsql" "postgresql")
-               (with "--with-pdo-sqlite" "sqlite")
-               (with "--with-pgsql" "postgresql")
-               ;; PHP’s Pspell extension, while retaining its current name,
-               ;; now uses the Aspell library.
-               (with "--with-pspell" "aspell")
-               (with "--with-readline" "readline")
-               (with "--with-sodium" "libsodium")
-               (with "--with-sqlite3" "sqlite")
-               (with "--with-tidy" "tidy")
-               (with "--with-xsl" "libxslt")
-               (with "--with-zlib-dir" "zlib")
-               ;; We could add "--with-snmp", but it requires netsnmp that
-               ;; we don't have a package for. It is used to build the snmp
-               ;; extension of php.
-               "--with-external-pcre"
-               "--with-external-gd"
-	       "--with-ampq"
-               "--with-iconv"
-               "--with-openssl"
-               "--with-mysqli"          ; Required for, e.g. wordpress
-               "--with-pdo-mysql"
-               "--with-zip"
-               "--with-zlib"
-               "--enable-bcmath"        ; Required for, e.g. Zabbix frontend
-               "--enable-calendar"
-	       "--enable-debug"
-               "--enable-dba=shared"
-               "--enable-exif"
-               "--enable-flatfile"
-               "--enable-fpm"
-               "--enable-ftp"
-               "--enable-gd"
-               "--enable-inifile"
-               "--enable-intl"
-               "--enable-mbstring"
-               "--enable-pcntl"
-               "--enable-sockets"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'do-not-record-build-flags
-           (lambda _
-             ;; Prevent configure flags from being stored and causing
-             ;; unnecessary runtime dependencies.
-             (substitute* "scripts/php-config.in"
-               (("@CONFIGURE_OPTIONS@") "")
-               (("@PHP_LDFLAGS@") ""))
-             ;; This file has ISO-8859-1 encoding.
-             (with-fluids ((%default-port-encoding "ISO-8859-1"))
-               (substitute* "main/build-defs.h.in"
-                 (("@CONFIGURE_COMMAND@") "(omitted)")))))
-         (add-before 'build 'patch-/bin/sh
-           (lambda _
-             (substitute* '("run-tests.php" "ext/standard/proc_open.c")
-               (("/bin/sh") (which "sh")))))
-         (add-before 'check 'prepare-tests
-           (lambda _
-             ;; Some of these files have ISO-8859-1 encoding, whereas others
-             ;; use ASCII, so we can't use a "catch-all" find-files here.
-             (with-fluids ((%default-port-encoding "ISO-8859-1"))
-               (substitute* '("ext/mbstring/tests/mb_send_mail02.phpt"
-                              "ext/mbstring/tests/mb_send_mail04.phpt"
-                              "ext/mbstring/tests/mb_send_mail05.phpt"
-                              "ext/mbstring/tests/mb_send_mail06.phpt")
-                 (("/bin/cat") (which "cat"))))
-             (substitute* '("ext/mbstring/tests/mb_send_mail01.phpt"
-                            "ext/mbstring/tests/mb_send_mail03.phpt"
-                            "ext/mbstring/tests/bug52681.phpt"
-                            "ext/standard/tests/general_functions/bug34794.phpt"
-                            "ext/standard/tests/general_functions/bug44667.phpt"
-                            "ext/standard/tests/general_functions/proc_open.phpt")
-               (("/bin/cat") (which "cat")))
-
-             ;; The encoding of this file is not recognized, so we simply drop it.
-             (delete-file "ext/mbstring/tests/mb_send_mail07.phpt")
-
-             (substitute* "ext/standard/tests/streams/bug60602.phpt"
-               (("'ls'") (string-append "'" (which "ls") "'")))
-
-             ,@(if (string-prefix? "arm" (or (%current-system)
-                                             (%current-target-system)))
-                   ;; Drop tests known to fail on armhf.
-                   '((for-each delete-file
-                              (list
-                                "ext/calendar/tests/unixtojd_error1.phpt"
-                                ;; arm can be a lot slower, so a time-related test fails
-                                "ext/fileinfo/tests/cve-2014-3538-nojit.phpt"
-                                "ext/pcntl/tests/pcntl_unshare_01.phpt"
-                                "ext/pcre/tests/bug76514.phpt"
-                                "ext/pcre/tests/preg_match_error3.phpt"
-                                "ext/pcre/tests/cache_limit.phpt"
-                                "ext/sockets/tests/socket_getopt.phpt"
-                                "ext/sockets/tests/socket_sendrecvmsg_error.phpt"
-                                "ext/standard/tests/general_functions/var_export-locale.phpt"
-                                "ext/standard/tests/general_functions/var_export_basic1.phpt"
-                                "ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt"
-                                "ext/intl/tests/timezone_getOffset_error.phpt"
-                                "sapi/cli/tests/cli_process_title_unix.phpt"
-                                "sapi/cli/tests/upload_2G.phpt"
-                                "Zend/tests/concat_003.phpt")))
-                   '())
-
-             ,@(if (target-ppc64le?)
-                   ;; Drop tests known to fail on powerpc64le.
-                   '((for-each delete-file
-                               (list
-                                ;; phpdbg watchpoints don't work.
-                                ;; Bug tracked upstream at:
-                                ;; https://bugs.php.net/bug.php?id=81408
-                                "sapi/phpdbg/tests/watch_001.phpt"
-                                "sapi/phpdbg/tests/watch_003.phpt"
-                                "sapi/phpdbg/tests/watch_004.phpt"
-                                "sapi/phpdbg/tests/watch_005.phpt"
-                                "sapi/phpdbg/tests/watch_006.phpt")))
-                   '())
-
-             ;; Drop tests that are known to fail.
-             (for-each delete-file
-                       '("ext/posix/tests/posix_getgrgid.phpt"    ; Requires /etc/group.
-                         "ext/posix/tests/posix_getgrnam_basic.phpt" ; Requires /etc/group.
-                         "ext/sockets/tests/bug63000.phpt"        ; Fails to detect OS.
-                         "ext/sockets/tests/socket_shutdown.phpt" ; Requires DNS.
-                         "ext/sockets/tests/socket_send.phpt"     ; Likewise.
-                         "ext/sockets/tests/mcast_ipv4_recv.phpt" ; Requires multicast.
-                         ;; These needs /etc/services.
-                         "ext/standard/tests/general_functions/getservbyname_basic.phpt"
-                         "ext/standard/tests/general_functions/getservbyport_basic.phpt"
-                         "ext/standard/tests/general_functions/getservbyport_variation1.phpt"
-                         ;; And /etc/protocols.
-                         "ext/standard/tests/network/getprotobyname_basic.phpt"
-                         "ext/standard/tests/network/getprotobynumber_basic.phpt"
-                         ;; And exotic locales.
-                         "ext/standard/tests/strings/setlocale_basic1.phpt"
-                         "ext/standard/tests/strings/setlocale_basic2.phpt"
-                         "ext/standard/tests/strings/setlocale_basic3.phpt"
-                         "ext/standard/tests/strings/setlocale_variation1.phpt"
-                         ;; This failing test is skipped on PHP's Travis CI as it is
-                         ;; supposedly inaccurate.
-                         "ext/standard/tests/file/disk_free_space_basic.phpt"
-                         ;; The following test erroneously expect the link
-                         ;; count of a sub-directory to increase compared to
-                         ;; its parent.
-                         "ext/standard/tests/file/lstat_stat_variation8.phpt"
-                         ;; This tests whether microseconds ‘differ enough’ and
-                         ;; fails inconsistently on ‘fast’ machines.
-                         "ext/date/tests/bug73837.phpt"
-
-                         ;; XXX: These gd tests fails.  Likely because our version
-                         ;; is different from the (patched) bundled one.
-                         ;; Here, gd quits immediately after "fatal libpng error"; while the
-                         ;; test expects it to additionally return a "setjmp" error and warning.
-                         "ext/gd/tests/bug39780_extern.phpt"
-                         "ext/gd/tests/libgd00086_extern.phpt"
-                         ;; Extra newline in gd-png output.
-                         "ext/gd/tests/bug45799.phpt"
-                         ;; Test expects generic "gd warning" but gets the actual function name.
-                         "ext/gd/tests/createfromwbmp2_extern.phpt"
-                         ;; This bug should have been fixed in gd 2.2.2.
-                         ;; Is it a regression?
-                         "ext/gd/tests/bug65148.phpt"
-                         ;; This bug should have been fixed in the gd 2.2
-                         ;; series.  Perhaps a regression introduced by gd
-                         ;; 2.3.0?
-                         "ext/gd/tests/bug66590.phpt"
-                         ;; This bug should have been fixed in the php-5.5
-                         ;; series.  Perhaps a regression introduced by gd
-                         ;; 2.3.0?
-                         "ext/gd/tests/bug70102.phpt"
-                         ;; This bug should have been fixed in the php-5.6
-                         ;; series.  Perhaps a regression introduced by gd
-                         ;; 2.3.0?
-                         "ext/gd/tests/bug73869.phpt"
-                         ;; Some WebP related tests fail.
-                         "ext/gd/tests/webp_basic.phpt"
-                         "ext/gd/tests/imagecreatefromstring_webp.phpt"
-                         ;; Expected error message, but from the wrong function
-                         "ext/gd/tests/bug77269.phpt"
-                         ;; TODO: Enable these when libgd is built with xpm support.
-                         "ext/gd/tests/xpm2gd.phpt"
-                         "ext/gd/tests/xpm2jpg.phpt"
-                         "ext/gd/tests/xpm2png.phpt"
-                         ;; Whitespace difference, probably caused by a very
-                         ;; long store path
-                         "ext/gd/tests/bug77479.phpt"
-                         ;; Expected invalid XBM but got EOF before image was
-                         ;; complete.  It's a warning in both cases and test
-                         ;; result is the same.
-                         "ext/gd/tests/bug77973.phpt"
-                         ;; Test expects uninitialized value to be false, but
-                         ;; instead gets "resource(5) of type (gd)".
-                         "ext/gd/tests/bug79067.phpt"
-                         ;; The following test fails with "The image size
-                         ;; differs: expected 114x115, got 117x117".
-                         "ext/gd/tests/bug79068.phpt"
-
-                         ;; XXX: These iconv tests have the expected outcome,
-                         ;; but with different error messages.
-                         ;; Expects "illegal character", instead gets "unknown error (84)".
-                         "ext/iconv/tests/bug52211.phpt"
-                         "ext/iconv/tests/bug60494.phpt"
-                         ;; Expects "wrong charset", gets unknown error (22).
-                         "ext/iconv/tests/iconv_strlen_error2.phpt"
-                         "ext/iconv/tests/iconv_substr_error2.phpt"
-                         ;; Expects conversion error, gets "error condition Termsig=11".
-                         "ext/iconv/tests/iconv_strpos_error2.phpt"
-                         "ext/iconv/tests/iconv_strrpos_error2.phpt"
-                         ;; Expects "invalid multibyte sequence" but got
-                         ;; "unknown error".
-                         "ext/iconv/tests/bug76249.phpt"
-
-                         ;; XXX: These test failures appear legitimate, needs investigation.
-                         ;; open_basedir() restriction failure.
-                         "ext/curl/tests/bug61948-unix.phpt"
-                         ;; Expects a false boolean, gets empty array from glob().
-                         "ext/standard/tests/file/bug41655_1.phpt"
-                         "ext/standard/tests/file/glob_variation5.phpt"
-                         ;; The test expects an Array, but instead get the contents(?).
-                         "ext/gd/tests/bug43073.phpt"
-                         ;; imagettftext() returns wrong coordinates.
-                         "ext/gd/tests/bug48732-mb.phpt"
-                         "ext/gd/tests/bug48732.phpt"
-                         ;; Similarly for imageftbbox().
-                         "ext/gd/tests/bug48801-mb.phpt"
-                         "ext/gd/tests/bug48801.phpt"
-                         ;; Different expected output from imagecolorallocate().
-                         "ext/gd/tests/bug53504.phpt"
-                         ;; Wrong image size after scaling an image.
-                         "ext/gd/tests/bug73272.phpt"
-                         ;; Expects iconv to detect illegal characters, instead gets
-                         ;; "unknown error (84)" and heap corruption(!).
-                         "ext/iconv/tests/bug48147.phpt"
-                         ;; Expects illegal character ".", gets "=?utf-8?Q?."
-                         "ext/iconv/tests/bug51250.phpt"
-                         ;; iconv throws "buffer length exceeded" on some string checks.
-                         "ext/iconv/tests/iconv_mime_encode.phpt"
-                         ;; file_get_contents(): iconv stream filter
-                         ;; ("ISO-8859-1"=>"UTF-8") unknown error.
-                         "ext/standard/tests/file/bug43008.phpt"
-                         ;; Table data not created in sqlite(?).
-                         "ext/pdo_sqlite/tests/bug_42589.phpt"
-                         ;; Expects an Array with 3 preg_matches; gets 0.
-                         "ext/pcre/tests/bug79846.phpt"
-                         ;; Expects an empty Array; gets one with " " in it.
-                         "ext/pcre/tests/bug80118.phpt"
-                         ;; Renicing a process fails in the build environment.
-                         "ext/standard/tests/general_functions/proc_nice_basic.phpt"
-                         ;; Can fail on fast machines?
-                         "Zend/tests/bug74093.phpt"))
-
-             ;; Accomodate two extra openssl errors flanking the expected one:
-             ;; random number generator:RAND_{load,write}_file:Cannot open file
-             ;; This is due to an invalid $HOME, but changing it in the test
-             ;; still prints the first one & changing it globally is overkill.
-             (substitute* "ext/openssl/tests/bug80747.phpt"
-               ((".*error:%s:key size too small.*" match)
-                (string-append "%s\n" match "%s\n")))
-
-             ;; Skip tests requiring network access.
-             (setenv "SKIP_ONLINE_TESTS" "1")
-             ;; Without this variable, 'make test' passes regardless of failures.
-             (setenv "REPORT_EXIT_STATUS" "1")
-             ;; Skip tests requiring I/O facilities that are unavailable in the
-             ;; build environment
-             (setenv "SKIP_IO_CAPTURE_TESTS" "1"))))
-       #:test-target "test"))
-    (inputs
-     `(("aspell" ,aspell)
-       ("bzip2" ,bzip2)
-       ("curl" ,curl)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("gd" ,gd)
-       ("gdbm" ,gdbm)
-       ("gmp" ,gmp)
-       ("gnutls" ,gnutls)
-       ("icu4c" ,icu4c)
-       ("libgcrypt" ,libgcrypt)
-       ("libpng" ,libpng)
-       ("libsodium" ,libsodium)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("libx11" ,libx11)
-       ("libzip" ,libzip)
-       ("oniguruma" ,oniguruma)
-       ("openldap" ,openldap)
-       ("openssl" ,openssl)
-       ("pcre" ,pcre2)
-       ("postgresql" ,postgresql)
-       ("readline" ,readline)
-       ("sqlite" ,sqlite)
-       ("tidy" ,tidy)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("bison" ,bison)
-       ("gettext" ,gettext-minimal)
-       ("procps" ,procps)))             ; for tests
-    (synopsis "PHP programming language")
-    (description
-      "PHP (PHP Hypertext Processor) is a server-side (CGI) scripting
-language designed primarily for web development but is also used as
-a general-purpose programming language.  PHP code may be embedded into
-HTML code, or it can be used in combination with various web template
-systems, web content management systems and web frameworks." )
-    (license (list
-              (license:non-copyleft "file://LICENSE")       ; The PHP license.
-              (license:non-copyleft "file://Zend/LICENSE")  ; The Zend license.
-              license:lgpl2.1                               ; ext/mbstring/libmbfl
-              license:lgpl2.1+                              ; ext/bcmath/libbcmath
-              license:bsd-2                                 ; ext/fileinfo/libmagic
-              license:expat))))                             ; ext/date/lib
+;; (define-public php-8
+;;   (package
+;;     (name "php-8")
+;;     (version "8.1.9")
+;;     (home-page "https://secure.php.net/")
+;;     (source (origin
+;;               (method url-fetch)
+;;               (uri (string-append home-page "distributions/"
+;;                                   "php-" version ".tar.xz"))
+;;               (sha256
+;;                (base32
+;;                 "1gr79i9dwm7qiqgimxms8rlvzzazh66sa4w9nr1cjk95wrrpwisk"))
+;;               (modules '((guix build utils)))
+;;               (snippet
+;;                '(with-directory-excursion "ext"
+;;                   (for-each delete-file-recursively
+;;                             ;; Some of the bundled libraries have no proper upstream.
+;;                             ;; Ideally we'd extract these out as separate packages:
+;;                             ;;"mbstring/libmbfl"
+;;                             ;;"date/lib"
+;;                             ;;"bcmath/libbcmath"
+;;                             ;;"fileinfo/libmagic" ; a patched version of libmagic
+;;                             '("gd/libgd"
+;;                               "pcre/pcre2lib"
+;;                               "xmlrpc/libxmlrpc"))))))
+;;     (build-system gnu-build-system)
+;;     (arguments
+;;      `(#:configure-flags
+;;        (let-syntax ((with (syntax-rules ()
+;;                             ((_ option input)
+;;                              (string-append option "="
+;;                                             (assoc-ref %build-inputs input))))))
+;;          (list (with "--with-bz2" "bzip2")
+;;                (with "--with-curl" "curl")
+;;                (with "--with-gdbm" "gdbm")
+;;                (with "--with-gettext" "libc")  ; libintl.h
+;;                (with "--with-gmp" "gmp")
+;;                (with "--with-ldap" "openldap")
+;;                (with "--with-ldap-sasl" "cyrus-sasl")
+;;                (with "--with-pdo-pgsql" "postgresql")
+;;                (with "--with-pdo-sqlite" "sqlite")
+;;                (with "--with-pgsql" "postgresql")
+;;                ;; PHP’s Pspell extension, while retaining its current name,
+;;                ;; now uses the Aspell library.
+;;                (with "--with-pspell" "aspell")
+;;                (with "--with-readline" "readline")
+;;                (with "--with-sodium" "libsodium")
+;;                (with "--with-sqlite3" "sqlite")
+;;                (with "--with-tidy" "tidy")
+;;                (with "--with-xsl" "libxslt")
+;;                (with "--with-zlib-dir" "zlib")
+;;                ;; We could add "--with-snmp", but it requires netsnmp that
+;;                ;; we don't have a package for. It is used to build the snmp
+;;                ;; extension of php.
+;;                "--with-external-pcre"
+;;                "--with-external-gd"
+;;                "--with-iconv"
+;;                "--with-openssl"
+;;                "--with-mysqli"          ; Required for, e.g. wordpress
+;;                "--with-pdo-mysql"
+;;                "--with-zip"
+;;                "--with-zlib"
+;;                "--enable-bcmath"        ; Required for, e.g. Zabbix frontend
+;;                "--enable-calendar"
+;;                "--enable-dba=shared"
+;;                "--enable-exif"
+;;                "--enable-flatfile"
+;;                "--enable-fpm"
+;;                "--enable-ftp"
+;;                "--enable-gd"
+;;                "--enable-inifile"
+;;                "--enable-intl"
+;;                "--enable-mbstring"
+;;                "--enable-pcntl"
+;;                "--enable-sockets"))
+;;        #:phases
+;;        (modify-phases %standard-phases
+;;          (add-after 'unpack 'do-not-record-build-flags
+;;            (lambda _
+;;              ;; Prevent configure flags from being stored and causing
+;;              ;; unnecessary runtime dependencies.
+;;              (substitute* "scripts/php-config.in"
+;;                (("@CONFIGURE_OPTIONS@") "")
+;;                (("@PHP_LDFLAGS@") ""))
+;;              ;; This file has ISO-8859-1 encoding.
+;;              (with-fluids ((%default-port-encoding "ISO-8859-1"))
+;;                (substitute* "main/build-defs.h.in"
+;;                  (("@CONFIGURE_COMMAND@") "(omitted)")))))
+;;          (add-before 'build 'patch-/bin/sh
+;;            (lambda _
+;;              (substitute* '("run-tests.php" "ext/standard/proc_open.c")
+;;                (("/bin/sh") (which "sh")))))
+;;          (add-before 'check 'prepare-tests
+;;            (lambda _
+;;              ;; Some of these files have ISO-8859-1 encoding, whereas others
+;;              ;; use ASCII, so we can't use a "catch-all" find-files here.
+;;              (with-fluids ((%default-port-encoding "ISO-8859-1"))
+;;                (substitute* '("ext/mbstring/tests/mb_send_mail02.phpt"
+;;                               "ext/mbstring/tests/mb_send_mail04.phpt"
+;;                               "ext/mbstring/tests/mb_send_mail05.phpt"
+;;                               "ext/mbstring/tests/mb_send_mail06.phpt")
+;;                  (("/bin/cat") (which "cat"))))
+;;              (substitute* '("ext/mbstring/tests/mb_send_mail01.phpt"
+;;                             "ext/mbstring/tests/mb_send_mail03.phpt"
+;;                             "ext/mbstring/tests/bug52681.phpt"
+;;                             "ext/standard/tests/general_functions/bug34794.phpt"
+;;                             "ext/standard/tests/general_functions/bug44667.phpt"
+;;                             "ext/standard/tests/general_functions/proc_open.phpt")
+;;                (("/bin/cat") (which "cat")))
+
+;;              ;; The encoding of this file is not recognized, so we simply drop it.
+;;              (delete-file "ext/mbstring/tests/mb_send_mail07.phpt")
+
+;;              (substitute* "ext/standard/tests/streams/bug60602.phpt"
+;;                (("'ls'") (string-append "'" (which "ls") "'")))
+
+;;              ,@(if (string-prefix? "arm" (or (%current-system)
+;;                                              (%current-target-system)))
+;;                    ;; Drop tests known to fail on armhf.
+;;                    '((for-each delete-file
+;;                               (list
+;;                                 "ext/calendar/tests/unixtojd_error1.phpt"
+;;                                 ;; arm can be a lot slower, so a time-related test fails
+;;                                 "ext/fileinfo/tests/cve-2014-3538-nojit.phpt"
+;;                                 "ext/pcntl/tests/pcntl_unshare_01.phpt"
+;;                                 "ext/pcre/tests/bug76514.phpt"
+;;                                 "ext/pcre/tests/preg_match_error3.phpt"
+;;                                 "ext/pcre/tests/cache_limit.phpt"
+;;                                 "ext/sockets/tests/socket_getopt.phpt"
+;;                                 "ext/sockets/tests/socket_sendrecvmsg_error.phpt"
+;;                                 "ext/standard/tests/general_functions/var_export-locale.phpt"
+;;                                 "ext/standard/tests/general_functions/var_export_basic1.phpt"
+;;                                 "ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt"
+;;                                 "ext/intl/tests/timezone_getOffset_error.phpt"
+;;                                 "sapi/cli/tests/cli_process_title_unix.phpt"
+;;                                 "sapi/cli/tests/upload_2G.phpt"
+;;                                 "Zend/tests/concat_003.phpt")))
+;;                    '())
+
+;;              ,@(if (target-ppc64le?)
+;;                    ;; Drop tests known to fail on powerpc64le.
+;;                    '((for-each delete-file
+;;                                (list
+;;                                 ;; phpdbg watchpoints don't work.
+;;                                 ;; Bug tracked upstream at:
+;;                                 ;; https://bugs.php.net/bug.php?id=81408
+;;                                 "sapi/phpdbg/tests/watch_001.phpt"
+;;                                 "sapi/phpdbg/tests/watch_003.phpt"
+;;                                 "sapi/phpdbg/tests/watch_004.phpt"
+;;                                 "sapi/phpdbg/tests/watch_005.phpt"
+;;                                 "sapi/phpdbg/tests/watch_006.phpt")))
+;;                    '())
+
+;;              ;; Drop tests that are known to fail.
+;;              (for-each delete-file
+;;                        '("ext/posix/tests/posix_getgrgid.phpt"    ; Requires /etc/group.
+;;                          "ext/posix/tests/posix_getgrnam_basic.phpt" ; Requires /etc/group.
+;;                          "ext/sockets/tests/bug63000.phpt"        ; Fails to detect OS.
+;;                          "ext/sockets/tests/socket_shutdown.phpt" ; Requires DNS.
+;;                          "ext/sockets/tests/socket_send.phpt"     ; Likewise.
+;;                          "ext/sockets/tests/mcast_ipv4_recv.phpt" ; Requires multicast.
+;;                          ;; These needs /etc/services.
+;;                          "ext/standard/tests/general_functions/getservbyname_basic.phpt"
+;;                          "ext/standard/tests/general_functions/getservbyport_basic.phpt"
+;;                          "ext/standard/tests/general_functions/getservbyport_variation1.phpt"
+;;                          ;; And /etc/protocols.
+;;                          "ext/standard/tests/network/getprotobyname_basic.phpt"
+;;                          "ext/standard/tests/network/getprotobynumber_basic.phpt"
+;;                          ;; And exotic locales.
+;;                          "ext/standard/tests/strings/setlocale_basic1.phpt"
+;;                          "ext/standard/tests/strings/setlocale_basic2.phpt"
+;;                          "ext/standard/tests/strings/setlocale_basic3.phpt"
+;;                          "ext/standard/tests/strings/setlocale_variation1.phpt"
+;;                          ;; This failing test is skipped on PHP's Travis CI as it is
+;;                          ;; supposedly inaccurate.
+;;                          "ext/standard/tests/file/disk_free_space_basic.phpt"
+;;                          ;; The following test erroneously expect the link
+;;                          ;; count of a sub-directory to increase compared to
+;;                          ;; its parent.
+;;                          "ext/standard/tests/file/lstat_stat_variation8.phpt"
+;;                          ;; This tests whether microseconds ‘differ enough’ and
+;;                          ;; fails inconsistently on ‘fast’ machines.
+;;                          "ext/date/tests/bug73837.phpt"
+
+;;                          ;; XXX: These gd tests fails.  Likely because our version
+;;                          ;; is different from the (patched) bundled one.
+;;                          ;; Here, gd quits immediately after "fatal libpng error"; while the
+;;                          ;; test expects it to additionally return a "setjmp" error and warning.
+;;                          "ext/gd/tests/bug39780_extern.phpt"
+;;                          "ext/gd/tests/libgd00086_extern.phpt"
+;;                          ;; Extra newline in gd-png output.
+;;                          "ext/gd/tests/bug45799.phpt"
+;;                          ;; Test expects generic "gd warning" but gets the actual function name.
+;;                          "ext/gd/tests/createfromwbmp2_extern.phpt"
+;;                          ;; This bug should have been fixed in gd 2.2.2.
+;;                          ;; Is it a regression?
+;;                          "ext/gd/tests/bug65148.phpt"
+;;                          ;; This bug should have been fixed in the gd 2.2
+;;                          ;; series.  Perhaps a regression introduced by gd
+;;                          ;; 2.3.0?
+;;                          "ext/gd/tests/bug66590.phpt"
+;;                          ;; This bug should have been fixed in the php-5.5
+;;                          ;; series.  Perhaps a regression introduced by gd
+;;                          ;; 2.3.0?
+;;                          "ext/gd/tests/bug70102.phpt"
+;;                          ;; This bug should have been fixed in the php-5.6
+;;                          ;; series.  Perhaps a regression introduced by gd
+;;                          ;; 2.3.0?
+;;                          "ext/gd/tests/bug73869.phpt"
+;;                          ;; Some WebP related tests fail.
+;;                          "ext/gd/tests/webp_basic.phpt"
+;;                          "ext/gd/tests/imagecreatefromstring_webp.phpt"
+;;                          ;; Expected error message, but from the wrong function
+;;                          "ext/gd/tests/bug77269.phpt"
+;;                          ;; TODO: Enable these when libgd is built with xpm support.
+;;                          "ext/gd/tests/xpm2gd.phpt"
+;;                          "ext/gd/tests/xpm2jpg.phpt"
+;;                          "ext/gd/tests/xpm2png.phpt"
+;;                          ;; Whitespace difference, probably caused by a very
+;;                          ;; long store path
+;;                          "ext/gd/tests/bug77479.phpt"
+;;                          ;; Expected invalid XBM but got EOF before image was
+;;                          ;; complete.  It's a warning in both cases and test
+;;                          ;; result is the same.
+;;                          "ext/gd/tests/bug77973.phpt"
+;;                          ;; Test expects uninitialized value to be false, but
+;;                          ;; instead gets "resource(5) of type (gd)".
+;;                          "ext/gd/tests/bug79067.phpt"
+;;                          ;; The following test fails with "The image size
+;;                          ;; differs: expected 114x115, got 117x117".
+;;                          "ext/gd/tests/bug79068.phpt"
+
+;;                          ;; XXX: These iconv tests have the expected outcome,
+;;                          ;; but with different error messages.
+;;                          ;; Expects "illegal character", instead gets "unknown error (84)".
+;;                          "ext/iconv/tests/bug52211.phpt"
+;;                          "ext/iconv/tests/bug60494.phpt"
+;;                          ;; Expects "wrong charset", gets unknown error (22).
+;;                          "ext/iconv/tests/iconv_strlen_error2.phpt"
+;;                          "ext/iconv/tests/iconv_substr_error2.phpt"
+;;                          ;; Expects conversion error, gets "error condition Termsig=11".
+;;                          "ext/iconv/tests/iconv_strpos_error2.phpt"
+;;                          "ext/iconv/tests/iconv_strrpos_error2.phpt"
+;;                          ;; Expects "invalid multibyte sequence" but got
+;;                          ;; "unknown error".
+;;                          "ext/iconv/tests/bug76249.phpt"
+
+;;                          ;; XXX: These test failures appear legitimate, needs investigation.
+;;                          ;; open_basedir() restriction failure.
+;;                          "ext/curl/tests/bug61948-unix.phpt"
+;;                          ;; Expects a false boolean, gets empty array from glob().
+;;                          "ext/standard/tests/file/bug41655_1.phpt"
+;;                          "ext/standard/tests/file/glob_variation5.phpt"
+;;                          ;; The test expects an Array, but instead get the contents(?).
+;;                          "ext/gd/tests/bug43073.phpt"
+;;                          ;; imagettftext() returns wrong coordinates.
+;;                          "ext/gd/tests/bug48732-mb.phpt"
+;;                          "ext/gd/tests/bug48732.phpt"
+;;                          ;; Similarly for imageftbbox().
+;;                          "ext/gd/tests/bug48801-mb.phpt"
+;;                          "ext/gd/tests/bug48801.phpt"
+;;                          ;; Different expected output from imagecolorallocate().
+;;                          "ext/gd/tests/bug53504.phpt"
+;;                          ;; Wrong image size after scaling an image.
+;;                          "ext/gd/tests/bug73272.phpt"
+;;                          ;; Expects iconv to detect illegal characters, instead gets
+;;                          ;; "unknown error (84)" and heap corruption(!).
+;;                          "ext/iconv/tests/bug48147.phpt"
+;;                          ;; Expects illegal character ".", gets "=?utf-8?Q?."
+;;                          "ext/iconv/tests/bug51250.phpt"
+;;                          ;; iconv throws "buffer length exceeded" on some string checks.
+;;                          "ext/iconv/tests/iconv_mime_encode.phpt"
+;;                          ;; file_get_contents(): iconv stream filter
+;;                          ;; ("ISO-8859-1"=>"UTF-8") unknown error.
+;;                          "ext/standard/tests/file/bug43008.phpt"
+;;                          ;; Table data not created in sqlite(?).
+;;                          "ext/pdo_sqlite/tests/bug_42589.phpt"
+;;                          ;; Expects an Array with 3 preg_matches; gets 0.
+;;                          "ext/pcre/tests/bug79846.phpt"
+;;                          ;; Expects an empty Array; gets one with " " in it.
+;;                          "ext/pcre/tests/bug80118.phpt"
+;;                          ;; Renicing a process fails in the build environment.
+;;                          "ext/standard/tests/general_functions/proc_nice_basic.phpt"
+;;                          ;; Can fail on fast machines?
+;;                          "Zend/tests/bug74093.phpt"))
+
+;;              ;; Accomodate two extra openssl errors flanking the expected one:
+;;              ;; random number generator:RAND_{load,write}_file:Cannot open file
+;;              ;; This is due to an invalid $HOME, but changing it in the test
+;;              ;; still prints the first one & changing it globally is overkill.
+;;              (substitute* "ext/openssl/tests/bug80747.phpt"
+;;                ((".*error:%s:key size too small.*" match)
+;;                 (string-append "%s\n" match "%s\n")))
+
+;;              ;; Skip tests requiring network access.
+;;              (setenv "SKIP_ONLINE_TESTS" "1")
+;;              ;; Without this variable, 'make test' passes regardless of failures.
+;;              (setenv "REPORT_EXIT_STATUS" "1")
+;;              ;; Skip tests requiring I/O facilities that are unavailable in the
+;;              ;; build environment
+;;              (setenv "SKIP_IO_CAPTURE_TESTS" "1"))))
+;;        #:test-target "test"))
+;;     (inputs
+;;      `(("aspell" ,aspell)
+;;        ("bzip2" ,bzip2)
+;;        ("curl" ,curl)
+;;        ("cyrus-sasl" ,cyrus-sasl)
+;;        ("gd" ,gd)
+;;        ("gdbm" ,gdbm)
+;;        ("gmp" ,gmp)
+;;        ("gnutls" ,gnutls)
+;;        ("icu4c" ,icu4c)
+;;        ("libgcrypt" ,libgcrypt)
+;;        ("libpng" ,libpng)
+;;        ("libsodium" ,libsodium)
+;;        ("libxml2" ,libxml2)
+;;        ("libxslt" ,libxslt)
+;;        ("libx11" ,libx11)
+;;        ("libzip" ,libzip)
+;;        ("oniguruma" ,oniguruma)
+;;        ("openldap" ,openldap)
+;;        ("openssl" ,openssl)
+;;        ("pcre" ,pcre2)
+;;        ("postgresql" ,postgresql)
+;;        ("readline" ,readline)
+;;        ("sqlite" ,sqlite)
+;;        ("tidy" ,tidy)
+;;        ("zlib" ,zlib)))
+;;     (native-inputs
+;;      `(("pkg-config" ,pkg-config)
+;;        ("bison" ,bison)
+;;        ("gettext" ,gettext-minimal)
+;;        ("procps" ,procps)))             ; for tests
+;;     (synopsis "PHP programming language")
+;;     (description
+;;       "PHP (PHP Hypertext Processor) is a server-side (CGI) scripting
+;; language designed primarily for web development but is also used as
+;; a general-purpose programming language.  PHP code may be embedded into
+;; HTML code, or it can be used in combination with various web template
+;; systems, web content management systems and web frameworks." )
+;;     (license (list
+;;               (license:non-copyleft "file://LICENSE")       ; The PHP license.
+;;               (license:non-copyleft "file://Zend/LICENSE")  ; The Zend license.
+;;               license:lgpl2.1                               ; ext/mbstring/libmbfl
+;;               license:lgpl2.1+                              ; ext/bcmath/libbcmath
+;;               license:bsd-2                                 ; ext/fileinfo/libmagic
+;;               license:expat))))
Index: guix/config.scm
===================================================================
--- guix/config.scm	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/config.scm	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -122,6 +122,6 @@
    '("grp:shifts_toggle"
      "caps:ctrl_modifier")))
- (kernel linux-libre-5.19)
- ;; (kernel-loadable-modules '())
+ ;; (kernel linux-libre-5.19)
+ ;; (kernel-loadable-modules '(acpi-call-linux-module))
  (kernel-arguments
    '("consoleblank=0"
@@ -168,6 +168,4 @@
       "ratpoison"
       "wmname"
-      "fvwm"
-      "cagebreak" ;; ratpoison for wayland that works very poorly
       "windowmaker" 
       "nss-certs"
@@ -213,4 +211,5 @@
   (cons*
    (service docker-service-type)
+   (service thermald-service-type)
    (service virtlog-service-type)
    (service libvirt-service-type
@@ -236,11 +235,11 @@
 			   ,thinkpad-acpi-config)))
 
-   (simple-service 'fancontrol-config etc-service-type
-		   (list `("fancontrol"
-			   ,fancontrol-config)))
-
-   (simple-service 'thinkfan-config etc-service-type
-		   (list `("thinkfan.conf"
-			   ,thinkfan-config)))
+   ;; (simple-service 'fancontrol-config etc-service-type
+   ;; 		   (list `("fancontrol"
+   ;; 			   ,fancontrol-config)))
+
+   ;; (simple-service 'thinkfan-config etc-service-type
+   ;; 		   (list `("thinkfan.conf"
+   ;; 			   ,thinkfan-config)))
 
    (simple-service 'i915-config etc-service-type
@@ -291,8 +290,8 @@
    ;; 	      (keyboard-layout keyboard-layout)))
 
-   (service hurd-vm-service-type
-            (hurd-vm-configuration
-             (disk-size (* 8 (expt 2 30))) ;12GiB
-             (memory-size 1024)))
+   ;; (service hurd-vm-service-type
+   ;;          (hurd-vm-configuration
+   ;;           (disk-size (* 8 (expt 2 30))) ;12GiB
+   ;;           (memory-size 1024)))
 
    (service slim-service-type
@@ -305,38 +304,5 @@
    
    (modify-services %desktop-services
-		    (delete gdm-service-type)
-		    ;; (network-manager-service-type config =>
-                    ;;                    (network-manager-configuration
-                    ;;                    (inherit config)
-                    ;;                    (vpn-plugins (list network-manager-openvpn))))
-		    ;; (guix-service-type
-;; 		     config =>
-;; 		     (guix-configuration
-;; 		      (inherit config)
-;; 		      (substitute-urls
-;; 		       (list "http://ci.guix.trop.in"
-;; 				     ;; "https://4zwzi66wwdaalbhgnix55ea3ab4pvvw66ll2ow53kjub6se4q2bclcyd.onion"
-;; 				     "https://bordeaux.guix.gnu.org"
-;; 				     "https://substitutes.nonguix.org"))
-;; 		      (authorized-keys
-;;                        (append (list
-;; 				(plain-file "non-guix.pub"
-;; "(public-key 
-;;  (ecc 
-;;   (curve Ed25519)
-;;   (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)
-;;   )
-;;  )")
-;; 				(plain-file "yunohost.pub"
-;; "(public-key 
-;;  (ecc 
-;;   (curve Ed25519)
-;;   (q #32F6DB936016E836C4A888F217C430C0F40A051864F59A47FC218F991233750D#)
-;;   )
-;;  )"))
-;; 			       %default-authorized-guix-keys))
-;; 		      ;; (http-proxy "http://localhost:9250")
-;; 		      ))
-		    )))
+		    (delete gdm-service-type))))
 
  (bootloader
Index: guix/user.scm
===================================================================
--- guix/user.scm	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ guix/user.scm	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -158,4 +158,7 @@
           "emacs-yasnippet-snippets")
         (specification->package "emacs-xref")
+	(specification->package "emacs-on-screen")
+	(specification->package "emacs-tablist")
+	(specification->package "emacs-imenu-list")
         (specification->package "openvpn")
         (specification->package "tor-client")
Index: wm/.ratpoisonrc
===================================================================
--- wm/.ratpoisonrc	(revision a48604f8cf5fe25b75f9f03f9e92aa9d9e44702d)
+++ wm/.ratpoisonrc	(revision 55165697379c1237ca6f34c4653e6474870d80c8)
@@ -38,12 +38,4 @@
 bind W workrave
 
-# Shortcut for running commands
-bind semicolon exec colon
-
-alias cpu exec ratpoison -c "echo $(lscpu | grep 'CPU MHz')"
-
-# Show cpu info
-bind C cpu
-
 # Emacs-like switching windows
 bind o focus
