xmonad-stockholm: 1.2.0 -> 1.3.0
This commit is contained in:
parent
95f6255f58
commit
53359a60f5
@ -24,8 +24,9 @@ import Control.Monad.Extra (whenJustM)
|
|||||||
import Graphics.X11.ExtraTypes.XF86
|
import Graphics.X11.ExtraTypes.XF86
|
||||||
import Text.Read (readEither)
|
import Text.Read (readEither)
|
||||||
import XMonad
|
import XMonad
|
||||||
import System.IO (hPutStrLn, stderr)
|
|
||||||
import System.Environment (getArgs, withArgs, getEnv, getEnvironment, lookupEnv)
|
import System.Environment (getArgs, withArgs, getEnv, getEnvironment, lookupEnv)
|
||||||
|
import System.Exit (exitFailure)
|
||||||
|
import System.IO (hPutStrLn, stderr)
|
||||||
import System.Posix.Process (executeFile)
|
import System.Posix.Process (executeFile)
|
||||||
import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace
|
import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace
|
||||||
, removeEmptyWorkspace)
|
, removeEmptyWorkspace)
|
||||||
@ -66,12 +67,14 @@ myFont = "-schumacher-*-*-*-*-*-*-*-*-*-*-*-iso10646-*"
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = getArgs >>= \case
|
main = getArgs >>= \case
|
||||||
["--shutdown"] -> sendShutdownEvent
|
[] -> mainNoArgs
|
||||||
_ -> mainNoArgs
|
["--shutdown"] -> shutdown
|
||||||
|
args -> hPutStrLn stderr ("bad arguments: " <> show args) >> exitFailure
|
||||||
|
|
||||||
mainNoArgs :: IO ()
|
mainNoArgs :: IO ()
|
||||||
mainNoArgs = do
|
mainNoArgs = do
|
||||||
workspaces0 <- getWorkspaces0
|
workspaces0 <- getWorkspaces0
|
||||||
|
handleShutdownEvent <- newShutdownEventHandler
|
||||||
xmonad
|
xmonad
|
||||||
-- $ withUrgencyHookC dzenUrgencyHook { args = ["-bg", "magenta", "-fg", "magenta", "-h", "2"], duration = 500000 }
|
-- $ withUrgencyHookC dzenUrgencyHook { args = ["-bg", "magenta", "-fg", "magenta", "-h", "2"], duration = 500000 }
|
||||||
-- urgencyConfig { remindWhen = Every 1 }
|
-- urgencyConfig { remindWhen = Every 1 }
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
{ mkDerivation, base, containers, fetchgit, stdenv, X11, X11-xft, X11-xshape
|
{ mkDerivation, base, containers, fetchgit, filepath, stdenv, unix, X11, X11-xft
|
||||||
, xmonad, xmonad-contrib
|
, X11-xshape, xmonad, xmonad-contrib
|
||||||
}:
|
}:
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "xmonad-stockholm";
|
pname = "xmonad-stockholm";
|
||||||
version = "1.2.0";
|
version = "1.3.0";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = http://cgit.ni.krebsco.de/xmonad-stockholm;
|
url = http://cgit.ni.krebsco.de/xmonad-stockholm;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v1.3.0";
|
||||||
sha256 = "13mvmh3kk9a79l1nii028p0n7l95pb78wz9c4j42l90m02mg6cis";
|
sha256 = "1np5126wn67y0a1r60rnkq828s0w9zjnvai4b8zy3yc02xlkrjm9";
|
||||||
};
|
};
|
||||||
libraryHaskellDepends = [
|
libraryHaskellDepends = [
|
||||||
base containers X11 X11-xft X11-xshape xmonad xmonad-contrib
|
base containers filepath unix X11 X11-xft X11-xshape xmonad xmonad-contrib
|
||||||
];
|
];
|
||||||
license = stdenv.lib.licenses.mit;
|
license = stdenv.lib.licenses.mit;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,8 @@ import Control.Monad.Extra (whenJustM)
|
|||||||
import Data.List (isInfixOf)
|
import Data.List (isInfixOf)
|
||||||
import Data.Monoid (Endo)
|
import Data.Monoid (Endo)
|
||||||
import System.Environment (getArgs, lookupEnv)
|
import System.Environment (getArgs, lookupEnv)
|
||||||
|
import System.Exit (exitFailure)
|
||||||
|
import System.IO (hPutStrLn, stderr)
|
||||||
import System.Posix.Process (executeFile)
|
import System.Posix.Process (executeFile)
|
||||||
import XMonad.Actions.CopyWindow (copy, kill1)
|
import XMonad.Actions.CopyWindow (copy, kill1)
|
||||||
import XMonad.Actions.CycleWS (toggleWS)
|
import XMonad.Actions.CycleWS (toggleWS)
|
||||||
@ -49,7 +51,7 @@ import XMonad.Util.EZConfig (additionalKeysP)
|
|||||||
import XMonad.Util.NamedWindows (getName)
|
import XMonad.Util.NamedWindows (getName)
|
||||||
import XMonad.Util.Run (safeSpawn)
|
import XMonad.Util.Run (safeSpawn)
|
||||||
|
|
||||||
import XMonad.Stockholm.Shutdown (handleShutdownEvent, sendShutdownEvent)
|
import XMonad.Stockholm.Shutdown (newShutdownEventHandler, shutdown)
|
||||||
import XMonad.Stockholm.Pager (defaultWindowColors, pager, MatchMethod(MatchPrefix), PagerConfig(..))
|
import XMonad.Stockholm.Pager (defaultWindowColors, pager, MatchMethod(MatchPrefix), PagerConfig(..))
|
||||||
|
|
||||||
data LibNotifyUrgencyHook = LibNotifyUrgencyHook deriving (Read, Show)
|
data LibNotifyUrgencyHook = LibNotifyUrgencyHook deriving (Read, Show)
|
||||||
@ -69,11 +71,13 @@ myFont = "-*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1"
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = getArgs >>= \case
|
main = getArgs >>= \case
|
||||||
["--shutdown"] -> sendShutdownEvent
|
[] -> main'
|
||||||
_ -> main'
|
["--shutdown"] -> shutdown
|
||||||
|
args -> hPutStrLn stderr ("bad arguments: " <> show args) >> exitFailure
|
||||||
|
|
||||||
main' :: IO ()
|
main' :: IO ()
|
||||||
main' = do
|
main' = do
|
||||||
|
handleShutdownEvent <- newShutdownEventHandler
|
||||||
xmonad $ ewmh
|
xmonad $ ewmh
|
||||||
$ withUrgencyHook LibNotifyUrgencyHook
|
$ withUrgencyHook LibNotifyUrgencyHook
|
||||||
$ def
|
$ def
|
||||||
|
@ -101,7 +101,7 @@ in {
|
|||||||
"\${XMONAD_DATA_DIR}"
|
"\${XMONAD_DATA_DIR}"
|
||||||
]}";
|
]}";
|
||||||
ExecStart = "${pkgs.xmonad-tv}/bin/xmonad-${currentSystem}";
|
ExecStart = "${pkgs.xmonad-tv}/bin/xmonad-${currentSystem}";
|
||||||
ExecStop = "${pkgs.xmonad-tv}/bin/xmonad-${currentSystem} --shutdown $MAINPID";
|
ExecStop = "${pkgs.xmonad-tv}/bin/xmonad-${currentSystem} --shutdown";
|
||||||
User = cfg.user.name;
|
User = cfg.user.name;
|
||||||
WorkingDirectory = cfg.user.home;
|
WorkingDirectory = cfg.user.home;
|
||||||
};
|
};
|
||||||
|
@ -19,10 +19,7 @@ pkgs.writeHaskellPackage "xmonad-tv" {
|
|||||||
|
|
||||||
module Main where
|
module Main where
|
||||||
|
|
||||||
import System.IO.Error (isDoesNotExistError, tryIOError)
|
|
||||||
import System.Exit (exitFailure)
|
import System.Exit (exitFailure)
|
||||||
import Control.Monad (forever)
|
|
||||||
import Control.Concurrent (threadDelay)
|
|
||||||
|
|
||||||
import Control.Exception
|
import Control.Exception
|
||||||
import Control.Monad.Extra (whenJustM)
|
import Control.Monad.Extra (whenJustM)
|
||||||
@ -32,8 +29,6 @@ import XMonad
|
|||||||
import System.IO (hPutStrLn, stderr)
|
import System.IO (hPutStrLn, stderr)
|
||||||
import System.Environment (getArgs, getEnv, getEnvironment, lookupEnv)
|
import System.Environment (getArgs, getEnv, getEnvironment, lookupEnv)
|
||||||
import System.Posix.Process (executeFile)
|
import System.Posix.Process (executeFile)
|
||||||
import System.Posix.Signals (nullSignal, signalProcess)
|
|
||||||
import System.Posix.Types (ProcessID)
|
|
||||||
import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace
|
import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace
|
||||||
, removeEmptyWorkspace)
|
, removeEmptyWorkspace)
|
||||||
import XMonad.Actions.GridSelect
|
import XMonad.Actions.GridSelect
|
||||||
@ -65,26 +60,13 @@ myFont = "-schumacher-*-*-*-*-*-*-*-*-*-*-*-iso10646-*"
|
|||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = getArgs >>= \case
|
main = getArgs >>= \case
|
||||||
[] -> mainNoArgs
|
[] -> mainNoArgs
|
||||||
["--shutdown", pidArg] -> mainShutdown (read pidArg)
|
["--shutdown"] -> shutdown
|
||||||
args -> hPutStrLn stderr ("bad arguments: " <> show args) >> exitFailure
|
args -> hPutStrLn stderr ("bad arguments: " <> show args) >> exitFailure
|
||||||
|
|
||||||
mainShutdown :: ProcessID -> IO ()
|
|
||||||
mainShutdown pid = do
|
|
||||||
sendShutdownEvent
|
|
||||||
hPutStrLn stderr ("waiting for: " <> show pid)
|
|
||||||
result <- tryIOError (waitProcess pid)
|
|
||||||
if isSuccess result
|
|
||||||
then hPutStrLn stderr ("result: " <> show result <> " [AKA success^_^]")
|
|
||||||
else hPutStrLn stderr ("result: " <> show result)
|
|
||||||
where
|
|
||||||
isSuccess = either isDoesNotExistError (const False)
|
|
||||||
|
|
||||||
waitProcess :: ProcessID -> IO ()
|
|
||||||
waitProcess pid = forever (signalProcess nullSignal pid >> threadDelay 10000)
|
|
||||||
|
|
||||||
mainNoArgs :: IO ()
|
mainNoArgs :: IO ()
|
||||||
mainNoArgs = do
|
mainNoArgs = do
|
||||||
workspaces0 <- getWorkspaces0
|
workspaces0 <- getWorkspaces0
|
||||||
|
handleShutdownEvent <- newShutdownEventHandler
|
||||||
xmonad
|
xmonad
|
||||||
$ withUrgencyHook (SpawnUrgencyHook "echo emit Urgency ")
|
$ withUrgencyHook (SpawnUrgencyHook "echo emit Urgency ")
|
||||||
$ def
|
$ def
|
||||||
|
Loading…
Reference in New Issue
Block a user