tv xmonad: replace XMONAD_STATE by XMONAD_*_DIR
This commit is contained in:
parent
f2bdf5590e
commit
e5ab9b686a
@ -2,6 +2,9 @@
|
|||||||
with import <stockholm/lib>;
|
with import <stockholm/lib>;
|
||||||
let
|
let
|
||||||
cfg = {
|
cfg = {
|
||||||
|
cacheDir = cfg.dataDir;
|
||||||
|
configDir = "/var/empty";
|
||||||
|
dataDir = "/run/xdg/${cfg.user.name}/xmonad";
|
||||||
user = config.krebs.build.user;
|
user = config.krebs.build.user;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
@ -56,6 +59,10 @@ in {
|
|||||||
environment = {
|
environment = {
|
||||||
DISPLAY = ":${toString config.services.xserver.display}";
|
DISPLAY = ":${toString config.services.xserver.display}";
|
||||||
|
|
||||||
|
XMONAD_CACHE_DIR = cfg.cacheDir;
|
||||||
|
XMONAD_CONFIG_DIR = cfg.configDir;
|
||||||
|
XMONAD_DATA_DIR = cfg.dataDir;
|
||||||
|
|
||||||
XMONAD_STARTUP_HOOK = pkgs.writeDash "xmonad-startup-hook" ''
|
XMONAD_STARTUP_HOOK = pkgs.writeDash "xmonad-startup-hook" ''
|
||||||
${pkgs.xorg.xhost}/bin/xhost +LOCAL: &
|
${pkgs.xorg.xhost}/bin/xhost +LOCAL: &
|
||||||
${pkgs.xorg.xmodmap}/bin/xmodmap ${import ./Xmodmap.nix args} &
|
${pkgs.xorg.xmodmap}/bin/xmodmap ${import ./Xmodmap.nix args} &
|
||||||
@ -64,8 +71,6 @@ in {
|
|||||||
wait
|
wait
|
||||||
'';
|
'';
|
||||||
|
|
||||||
XMONAD_STATE = "/tmp/xmonad.state";
|
|
||||||
|
|
||||||
# XXX JSON is close enough :)
|
# XXX JSON is close enough :)
|
||||||
XMONAD_WORKSPACES0_FILE = pkgs.writeText "xmonad.workspaces0" (toJSON [
|
XMONAD_WORKSPACES0_FILE = pkgs.writeText "xmonad.workspaces0" (toJSON [
|
||||||
"Dashboard" # we start here
|
"Dashboard" # we start here
|
||||||
@ -81,6 +86,11 @@ in {
|
|||||||
};
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
SyslogIdentifier = "xmonad";
|
SyslogIdentifier = "xmonad";
|
||||||
|
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${toString [
|
||||||
|
"\${XMONAD_CACHE_DIR}"
|
||||||
|
"\${XMONAD_CONFIG_DIR}"
|
||||||
|
"\${XMONAD_DATA_DIR}"
|
||||||
|
]}";
|
||||||
ExecStart = "${pkgs.xmonad-tv}/bin/xmonad";
|
ExecStart = "${pkgs.xmonad-tv}/bin/xmonad";
|
||||||
ExecStop = "${pkgs.xmonad-tv}/bin/xmonad --shutdown";
|
ExecStop = "${pkgs.xmonad-tv}/bin/xmonad --shutdown";
|
||||||
User = cfg.user.name;
|
User = cfg.user.name;
|
||||||
|
@ -71,7 +71,7 @@ main = getArgs >>= \case
|
|||||||
mainNoArgs :: IO ()
|
mainNoArgs :: IO ()
|
||||||
mainNoArgs = do
|
mainNoArgs = do
|
||||||
workspaces0 <- getWorkspaces0
|
workspaces0 <- getWorkspaces0
|
||||||
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 }
|
||||||
-- $ withUrgencyHook borderUrgencyHook "magenta"
|
-- $ withUrgencyHook borderUrgencyHook "magenta"
|
||||||
@ -95,17 +95,6 @@ mainNoArgs = do
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
xmonad' :: (LayoutClass l Window, Read (l Window)) => XConfig l -> IO ()
|
|
||||||
xmonad' conf = do
|
|
||||||
path <- getEnv "XMONAD_STATE"
|
|
||||||
try (readFile path) >>= \case
|
|
||||||
Right content -> do
|
|
||||||
hPutStrLn stderr ("resuming from " ++ path)
|
|
||||||
withArgs ("--resume" : lines content) (xmonad conf)
|
|
||||||
Left e -> do
|
|
||||||
hPutStrLn stderr (displaySomeException e)
|
|
||||||
xmonad conf
|
|
||||||
|
|
||||||
getWorkspaces0 :: IO [String]
|
getWorkspaces0 :: IO [String]
|
||||||
getWorkspaces0 =
|
getWorkspaces0 =
|
||||||
try (getEnv "XMONAD_WORKSPACES0_FILE") >>= \case
|
try (getEnv "XMONAD_WORKSPACES0_FILE") >>= \case
|
||||||
|
Loading…
Reference in New Issue
Block a user