bluetile 0.4.1 → 0.4.3
raw patch · 12 files changed
+296/−51 lines, 12 filesdep ~basesetup-changednew-component:exe:gnome-bluetile-session
Dependency ranges changed: base
Files
- README +8/−0
- Setup.lhs +17/−7
- bluetile.cabal +43/−28
- bluetilegreet/bluetilegreet.glade +2/−2
- gnome-bluetile-session/GnomeBluetileSession.hs +24/−0
- man/bluetile.1 +31/−13
- man/gnome-bluetile-session.1 +144/−0
- misc/bluetile-session.desktop +7/−0
- misc/bluetile.desktop +10/−0
- misc/gnome-bluetile-session.desktop +8/−0
- src/Config.hs +1/−0
- src/Main.hs +1/−1
+ README view
@@ -0,0 +1,8 @@+Quickstart: After installing Bluetile (use 'cabal install') just open a+terminal under your current window manager/desktop environment+(preferably GNOME) and enter 'bluetile' or '/path/to/bluetile' if it's not+in your PATH. Bluetile will replace the currently running window manager+(if the window manager supports this) and start up.++See the man page of Bluetile for further information - including how to+set up Bluetile as your permanent window manager.
Setup.lhs view
@@ -6,13 +6,23 @@ > import System.FilePath > import System.Directory > import Control.Monad-> main = defaultMainWithHooks (simpleUserHooks { postInst = myPostInst } )+> main = defaultMainWithHooks (simpleUserHooks { postCopy = myPostCopy, postInst = myPostInst } ) >-> -- postInst hook to move helper binaries to the libexec directory+> myPostCopy :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()+> myPostCopy _ copyflags pkgdesc lbi = do+> let dirs = absoluteInstallDirs pkgdesc lbi (fromFlag $ copyDest copyflags)+> libExecHook dirs+> > myPostInst :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO () > myPostInst _ _ pkgdesc lbi = do-> let dirs = absoluteInstallDirs pkgdesc lbi NoCopyDest-> let lexecdir = libexecdir dirs-> createDirectoryIfMissing True lexecdir-> forM_ ["bluetiledock", "bluetilemockwin", "bluetilegreet"] $ \binary ->-> renameFile (bindir dirs </> binary) (lexecdir </> binary)+> let dirs = absoluteInstallDirs pkgdesc lbi NoCopyDest+> libExecHook dirs+>+> -- hook to move helper binaries to the libexec directory+> libExecHook :: InstallDirs String -> IO ()+> libExecHook dirs = do+> let bdir = bindir dirs+> let lexecdir = libexecdir dirs+> createDirectoryIfMissing True lexecdir+> forM_ ["bluetiledock", "bluetilemockwin", "bluetilegreet"] $ \binary ->+> renameFile (bdir </> binary) (lexecdir </> binary)
bluetile.cabal view
@@ -1,14 +1,15 @@ Name: bluetile-Version: 0.4.1+Version: 0.4.3 homepage: http://www.bluetile.org/-synopsis: A modern tiling window manager with a gentle learning curve+synopsis: full-featured tiling for the GNOME desktop environment description:- Bluetile is a tiling window manager for X based on xmonad. Windows are- arranged to use the entire screen without overlapping. Bluetile's focus lies- on making the tiling paradigm easily accessible to users coming from- traditional window managers by drawing on known conventions and providing- both mouse and keyboard access for all features. It also tries to be usable- 'out of the box', requiring minimal to no configuration in most cases.+ Bluetile is a tiling window manager designed to integrate with the+ GNOME desktop environment. It provides both a traditional, stacking+ layout mode as well as tiling layouts where windows are arranged to+ use the entire screen without overlapping. Bluetile tries to make the+ tiling paradigm easily accessible to users coming from traditional+ window managers by drawing on known conventions and providing both+ mouse and keyboard access for all features. category: System License: BSD3 License-file: LICENSE@@ -16,28 +17,33 @@ Maintainer: jan.vornberger@informatik.uni-oldenburg.de extra-source-files: src/Config.hs, src/BluetileDock.hs,- src/XMonad/Actions/BluetileCommands.hs,- src/XMonad/Actions/WindowMenu.hs,- src/XMonad/Hooks/CurrentWorkspaceOnTop.hs,- src/XMonad/Hooks/EwmhDesktops.hs,- src/XMonad/Hooks/PositionStoreHooks.hs,- src/XMonad/Layout/BorderResize.hs,- src/XMonad/Layout/ButtonDecoration.hs,- src/XMonad/Layout/DecorationAddons.hs,- src/XMonad/Layout/Decoration.hs,- src/XMonad/Layout/DraggingVisualizer.hs,- src/XMonad/Layout/ImageButtonDecoration.hs- src/XMonad/Layout/Minimize.hs,- src/XMonad/Layout/MouseResizableTile.hs,- src/XMonad/Layout/PositionStoreFloat.hs,- src/XMonad/Layout/WindowSwitcherDecoration.hs,- src/XMonad/Util/Font.hs,- src/XMonad/Util/Image.hs,- src/XMonad/Util/PositionStore.hs,- src/XMonad/Util/XUtils.hs,+ src/XMonad/Actions/BluetileCommands.hs,+ src/XMonad/Actions/WindowMenu.hs,+ src/XMonad/Hooks/CurrentWorkspaceOnTop.hs,+ src/XMonad/Hooks/EwmhDesktops.hs,+ src/XMonad/Hooks/PositionStoreHooks.hs,+ src/XMonad/Layout/BorderResize.hs,+ src/XMonad/Layout/ButtonDecoration.hs,+ src/XMonad/Layout/DecorationAddons.hs,+ src/XMonad/Layout/Decoration.hs,+ src/XMonad/Layout/DraggingVisualizer.hs,+ src/XMonad/Layout/ImageButtonDecoration.hs+ src/XMonad/Layout/Minimize.hs,+ src/XMonad/Layout/MouseResizableTile.hs,+ src/XMonad/Layout/PositionStoreFloat.hs,+ src/XMonad/Layout/WindowSwitcherDecoration.hs,+ src/XMonad/Util/Font.hs,+ src/XMonad/Util/Image.hs,+ src/XMonad/Util/PositionStore.hs,+ src/XMonad/Util/XUtils.hs, bluetiledock/Utils.hs, bluetilegreet/Utils.hs,- man/bluetile.1+ man/bluetile.1,+ man/gnome-bluetile-session.1,+ misc/bluetile.desktop,+ misc/bluetile-session.desktop,+ misc/gnome-bluetile-session.desktop,+ README data-files: bluetiledock/bluetiledock.glade, bluetiledock/floating.svg, bluetiledock/tiled1.svg,@@ -55,6 +61,15 @@ Build-Depends: base>=3, base<5, containers, process, filepath, random, utf8-string, xmonad>=0.9.1, xmonad-contrib>=0.9.1+ if true+ Ghc-Options: -Wall+ if impl(ghc >= 6.12.1)+ Ghc-Options: -fno-warn-unused-do-bind++Executable gnome-bluetile-session+ Hs-Source-Dirs: gnome-bluetile-session+ Main-is: GnomeBluetileSession.hs+ Build-Depends: base>=3, base<5, filepath, unix if true Ghc-Options: -Wall if impl(ghc >= 6.12.1)
bluetilegreet/bluetilegreet.glade view
@@ -23,8 +23,8 @@ <widget class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="label" translatable="yes"><span size="large" font_weight="bold">Welcome to Bluetile!</span>-A modern tiling window manager-with a gentle learning curve.</property>+full-featured tiling for the+GNOME desktop environment</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget>
+ gnome-bluetile-session/GnomeBluetileSession.hs view
@@ -0,0 +1,24 @@+----------------------------------------------------------------------------+-- |+-- Module : Main+-- Copyright : (c) Jan Vornberger 2009+-- License : BSD3-style (see LICENSE)+--+-- Maintainer : jan.vornberger@informatik.uni-oldenburg.de+-- Stability : unstable+-- Portability : not portable+--+-----------------------------------------------------------------------------++module Main (main) where++import System.Posix.Env+import System.Posix.Process+import System.FilePath+import Paths_bluetile++main :: IO ()+main = do+ binDir <- getBinDir+ setEnv "WINDOW_MANAGER" (binDir </> "bluetile") True+ executeFile "gnome-session" True [] Nothing
man/bluetile.1 view
@@ -124,37 +124,55 @@ .\" ======================================================================== .\" .IX Title "BLUETILE 1"-.TH BLUETILE 1 "2010-06-06" "perl v5.10.1" ""+.TH BLUETILE 1 "2010-06-27" "perl v5.10.1" "" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME"-bluetile \- a modern tiling window manager with a gentle learning curve+bluetile \- full\-featured tiling for the GNOME desktop environment .SH "SYNOPSIS" .IX Header "SYNOPSIS" bluetile [\-\-help] [\-\-version] [\-\-restart] .SH "DESCRIPTION" .IX Header "DESCRIPTION"-\&\fBBluetile\fR is a tiling window manager for X based on xmonad. Windows are-arranged to use the entire screen without overlapping. \fBBluetile\fR's focus-lies on making the tiling paradigm easily accessible to users coming-from traditional window managers by drawing on known conventions and-providing both mouse and keyboard access for all features. It also tries-to be usable 'out of the box', requiring minimal to no configuration in-most cases.+\&\fBBluetile\fR is a tiling window manager designed to integrate with the+\&\s-1GNOME\s0 desktop environment. It provides both a traditional, stacking+layout mode as well as tiling layouts where windows are arranged to+use the entire screen without overlapping. \fBBluetile\fR tries to make the+tiling paradigm easily accessible to users coming from traditional+window managers by drawing on known conventions and providing both+mouse and keyboard access for all features. .IP "\(bu" 4-Hybrid approach: Stacking window layout & tiling layouts available+Designed to integrate with the \s-1GNOME\s0 desktop environment .IP "\(bu" 4-Maximizing & minimizing windows in all layouts+Hybrid approach: Stacking window layout & tiling layouts available .IP "\(bu" 4 All features accessible from mouse, as well as keyboard .IP "\(bu" 4+Maximizing & minimizing windows in all layouts+.IP "\(bu" 4 Good multihead support .IP "\(bu" 4 Proper handling of fullscreen applications-.IP "\(bu" 4-Designed to integrate with the \s-1GNOME\s0 desktop environment+.SH "OVERVIEW"+.IX Header "OVERVIEW"+To quickly get up and running just start \fBBluetile\fR from your current+window manager/desktop environment (preferably \s-1GNOME\s0). \fBBluetile\fR will+replace the currently running window manager (if the window manager+supports this) and start up.+.PP+One way to set up \fBBluetile\fR as your default window manager under \s-1GNOME\s0 is+to make sure that the environment variable \s-1WINDOW_MANAGER\s0 contains the+path to the \fBBluetile\fR binary before \s-1GNOME\s0 starts. This can be achieved by+putting something like the following line into ~/.gnomerc:+.PP+.Vb 1+\& export WINDOW_MANAGER=bluetile+.Ve+.PP+If you use a packaged version of \fBBluetile\fR, your distribution might+already provide you with a preconfigured xsession. .SH "OPTIONS" .IX Header "OPTIONS" \&\fB\-\-help\fR print help message
+ man/gnome-bluetile-session.1 view
@@ -0,0 +1,144 @@+.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)+.\"+.\" Standard preamble:+.\" ========================================================================+.de Sp \" Vertical space (when we can't use .PP)+.if t .sp .5v+.if n .sp+..+.de Vb \" Begin verbatim text+.ft CW+.nf+.ne \\$1+..+.de Ve \" End verbatim text+.ft R+.fi+..+.\" Set up some character translations and predefined strings. \*(-- will+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left+.\" double quote, and \*(R" will give a right double quote. \*(C+ will+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,+.\" nothing in troff, for use with C<>.+.tr \(*W-+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'+.ie n \{\+. ds -- \(*W-+. ds PI pi+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch+. ds L" ""+. ds R" ""+. ds C` ""+. ds C' ""+'br\}+.el\{\+. ds -- \|\(em\|+. ds PI \(*p+. ds L" ``+. ds R" ''+'br\}+.\"+.\" Escape single quotes in literal strings from groff's Unicode transform.+.ie \n(.g .ds Aq \(aq+.el .ds Aq '+.\"+.\" If the F register is turned on, we'll generate index entries on stderr for+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index+.\" entries marked with X<> in POD. Of course, you'll have to process the+.\" output yourself in some meaningful fashion.+.ie \nF \{\+. de IX+. tm Index:\\$1\t\\n%\t"\\$2"+..+. nr % 0+. rr F+.\}+.el \{\+. de IX+..+.\}+.\"+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).+.\" Fear. Run. Save yourself. No user-serviceable parts.+. \" fudge factors for nroff and troff+.if n \{\+. ds #H 0+. ds #V .8m+. ds #F .3m+. ds #[ \f1+. ds #] \fP+.\}+.if t \{\+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)+. ds #V .6m+. ds #F 0+. ds #[ \&+. ds #] \&+.\}+. \" simple accents for nroff and troff+.if n \{\+. ds ' \&+. ds ` \&+. ds ^ \&+. ds , \&+. ds ~ ~+. ds /+.\}+.if t \{\+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'+.\}+. \" troff and (daisy-wheel) nroff accents+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]+.ds ae a\h'-(\w'a'u*4/10)'e+.ds Ae A\h'-(\w'A'u*4/10)'E+. \" corrections for vroff+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'+. \" for low resolution devices (crt and lpr)+.if \n(.H>23 .if \n(.V>19 \+\{\+. ds : e+. ds 8 ss+. ds o a+. ds d- d\h'-1'\(ga+. ds D- D\h'-1'\(hy+. ds th \o'bp'+. ds Th \o'LP'+. ds ae ae+. ds Ae AE+.\}+.rm #[ #] #H #V #F C+.\" ========================================================================+.\"+.IX Title "GNOME-BLUETILE-SESSION 1"+.TH GNOME-BLUETILE-SESSION 1 "2010-06-24" "perl v5.10.1" ""+.\" For nroff, turn off justification. Always turn off hyphenation; it makes+.\" way too many mistakes in technical documents.+.if n .ad l+.nh+.SH "NAME"+gnome\-bluetile\-session \- Invoke gnome\-session with Bluetile as window manager+.SH "SYNOPSIS"+.IX Header "SYNOPSIS"+gnome-bluetile-session+.SH "DESCRIPTION"+.IX Header "DESCRIPTION"+Invokes gnome-session after setting the environment variable+\&\s-1WINDOW_MANAGER\s0 to the path of the \fBBluetile\fR binary. This will start up+the \s-1GNOME\s0 desktop environment with Bluetile as the window manager.+.SH "AUTHOR"+.IX Header "AUTHOR"+Jan Vornberger <jan.vornberger@informatik.uni\-oldenburg.de>
+ misc/bluetile-session.desktop view
@@ -0,0 +1,7 @@+[Desktop Entry]+Encoding=UTF-8+Name=Bluetile+Comment=Tiling window manager+Exec=bluetile+Icon=bluetile.png+Type=XSession
+ misc/bluetile.desktop view
@@ -0,0 +1,10 @@+[Desktop Entry]+Type=Application+Encoding=UTF-8+Name=Bluetile+Exec=bluetile+NoDisplay=true+X-GNOME-WMName=bluetile+X-GNOME-Autostart-Phase=WindowManager+X-GNOME-Provides=windowmanager+X-GNOME-Autostart-Notify=true
+ misc/gnome-bluetile-session.desktop view
@@ -0,0 +1,8 @@+[Desktop Entry]+Encoding=UTF-8+Name=GNOME + Bluetile+Comment=Tiling window manager+TryExec=/usr/bin/gnome-session+Exec=gnome-bluetile-session+Icon=bluetile.png+Type=XSession
src/Config.hs view
@@ -180,6 +180,7 @@ bluetileConfig = defaultConfig { modMask = mod4Mask, -- logo key+ startupHook = ewmhDesktopsStartup, manageHook = bluetileManageHook, layoutHook = bluetileLayoutHook, logHook = currentWorkspaceOnTop >> ewmhDesktopsLogHook,
src/Main.hs view
@@ -8,7 +8,7 @@ -- Stability : unstable -- Portability : not portable ----- Bluetile - a modern tiling window manager with a gentle learning curve+-- Bluetile - full-featured tiling for the GNOME desktop environment -- -----------------------------------------------------------------------------