[xmonad] new config subpackage with xmonad.hs for any desktop; drop dynamic linking; require dmenu

Jens Petersen petersen at fedoraproject.org
Sat Dec 3 05:45:24 UTC 2011


commit e1af74851acf4e4b6b5eddac8a994aefa507a565
Author: Jens Petersen <petersen at redhat.com>
Date:   Sat Dec 3 14:45:18 2011 +0900

    new config subpackage with xmonad.hs for any desktop; drop dynamic linking; require dmenu

 xmonad-dynamic-link.patch |   12 ------------
 xmonad-start              |   19 ++++++-------------
 xmonad.hs                 |   19 +++++++++++++++++++
 xmonad.spec               |   29 ++++++++++++++++++++++-------
 4 files changed, 47 insertions(+), 32 deletions(-)
---
diff --git a/xmonad-start b/xmonad-start
index fcc663e..cf23ad5 100644
--- a/xmonad-start
+++ b/xmonad-start
@@ -5,19 +5,12 @@ if [ ! -d ~/.xmonad ]; then
     # display the manpage
     xterm -e man xmonad &
 
-    # try to configure for a gnome session
-    if [ "$DESKTOP_SESSION" = "xmonad-gnome" ]; then
-	if ghc-pkg latest xmonad-contrib >/dev/null; then
-	    mkdir ~/.xmonad
-	    cat > ~/.xmonad/xmonad.hs <<EOF
-import XMonad
-import XMonad.Config.Gnome
-
-main = xmonad gnomeConfig
-EOF
-	else
-	    echo "xmonad-start: install ghc-xmonad-contrib-devel for GNOME support"
-	fi
+    # add a desktop friendly config if possible
+    if [ -r /usr/share/xmonad/xmonad.hs ]; then
+	mkdir ~/.xmonad
+	cp -p /usr/share/xmonad/xmonad.hs ~/.xmonad
+    else
+	echo "xmonad-start: install xmonad-config to customize"
     fi
 fi
 
diff --git a/xmonad.hs b/xmonad.hs
new file mode 100644
index 0000000..6506205
--- /dev/null
+++ b/xmonad.hs
@@ -0,0 +1,19 @@
+-- default desktop configuration for Fedora
+
+import System.Posix.Env (getEnv)
+import Data.Maybe (maybe)
+
+import XMonad
+import XMonad.Config.Desktop
+import XMonad.Config.Gnome
+import XMonad.Config.Kde
+import XMonad.Config.Xfce
+
+main = do
+     session <- getEnv "DESKTOP_SESSION"
+     xmonad  $ maybe desktopConfig desktop session
+
+desktop "gnome" = gnomeConfig
+desktop "kde" = kde4Config
+desktop "xfce" = xfceConfig
+desktop _ = desktopConfig
diff --git a/xmonad.spec b/xmonad.spec
index 600affd..e1384fa 100644
--- a/xmonad.spec
+++ b/xmonad.spec
@@ -27,7 +27,7 @@ Source3:        xmonad.desktop
 Source4:        README.fedora
 Source5:        xmonad-gnome-session.desktop
 Source6:        xmonad.session
-Patch1:         xmonad-dynamic-link.patch
+Source7:        xmonad.hs
 ExclusiveArch:  %{ghc_arches}
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-rpm-macros
@@ -36,9 +36,7 @@ BuildRequires:  hscolour
 %endif
 BuildRequires:  desktop-file-utils
 BuildRequires:  ghc-mtl-prof, ghc-X11-prof, ghc-extensible-exceptions-prof
-Requires:       %{pkg_name}-core = %{version}-%{release}
-Requires:       ghc-%{pkg_name}-devel = %{version}-%{release}
-Requires:       ghc-xmonad-contrib-devel
+Requires:       %{pkg_name}-config = %{version}-%{release}
 
 %description
 %{common_description}
@@ -51,6 +49,7 @@ allowing xmonad to be configured with "~/.xmonad/xmonad.hs".
 Summary:        A tiling window manager
 # required until there is a command to open a system-default xterminal
 Requires:       xterm
+Requires:       dmenu
 # for xmessage
 Requires:       xorg-x11-apps
 
@@ -60,10 +59,19 @@ This package contains the core xmonad window manager.
 If you want to configure xmonad please also install either xmonad or xmonad-gnome.
 
 
-%package gnome
-Summary:        xmonad GNOME session
+%package config
+Summary:        xmonad config
 Requires:       %{pkg_name}-core = %{version}-%{release}
+Requires:       ghc-%{pkg_name}-devel = %{version}-%{release}
 Requires:       ghc-xmonad-contrib-devel
+
+%description config
+This package adds desktop configuration for xmonad.
+
+
+%package gnome
+Summary:        xmonad GNOME session
+Requires:       %{pkg_name}-config = %{version}-%{release}
 Requires:       gnome-session, gnome-terminal
 
 %description gnome
@@ -74,7 +82,6 @@ in a GNOME session.
 
 %prep
 %setup -q
-%patch1 -p1 -b .orig
 cp -p %SOURCE4 .
 
 
@@ -91,6 +98,7 @@ install -p -m 0755 -D %SOURCE2 %{buildroot}%{_bindir}/%{name}-start
 desktop-file-install --dir=${RPM_BUILD_ROOT}%{_datadir}/applications %{SOURCE3}
 install -p -m 0644 -D %SOURCE5 %{buildroot}%{_datadir}/xsessions/%{name}-gnome.desktop
 install -p -m 0644 -D %SOURCE6 %{buildroot}%{_datadir}/gnome-session/sessions/%{name}.session
+install -p -m 0644 -D %SOURCE7 %{buildroot}%{_datadir}/xmonad/%{name}.hs
 
 rm %{buildroot}%{_datadir}/%{name}-%{version}/man/xmonad.hs
 
@@ -107,6 +115,10 @@ rm %{buildroot}%{_datadir}/%{name}-%{version}/man/xmonad.hs
 %{_datadir}/xsessions/%{name}.desktop
 
 
+%files config
+%{_datadir}/xmonad/%{name}.hs
+
+
 %files gnome
 %{_datadir}/xsessions/%{name}-gnome.desktop
 %{_datadir}/gnome-session/sessions/%{name}.session
@@ -119,6 +131,9 @@ rm %{buildroot}%{_datadir}/%{name}-%{version}/man/xmonad.hs
 * Fri Dec  2 2011 Jens Petersen <petersen at redhat.com> - 0.10-1
 - update to 0.10 and cabal2spec-0.24.1
 - re-enable haddock
+- replace gnomeConfig in xmonad-start with xmonad.hs in new config subpackage
+- drop the dynamic linking patch: dyn libs need to be default first (#744274)
+- require dmenu
 
 * Wed Oct 26 2011 Marcela Mašláňová <mmaslano at redhat.com> - 0.9.2-11.2
 - rebuild with new gmp without compat lib


More information about the scm-commits mailing list