将环境变量传递给XMonad spawn

时间:2015-06-01 14:19:02

标签: environment-variables xmonad

据我了解,在spawn "string command"中调用xmonad时,参数"string command"实际上已传递给/bin/sh。 有没有办法改变这种行为?

更具体地说,是否可以使spawn调用的解释器实例知道某些预定义的环境变量(通常为SSH_AUTH_SOCKSSH_AGENT_PID)? 当然,总是可以诉诸spawn "$VARIABLE=stuff; export $VARIABLE; string command",但每次都应该创建和导出变量,这让我感到困扰。

1 个答案:

答案 0 :(得分:0)

严格回答您的第一个问题,safeSpawn中的XMonad.Util.Run函数(在xmonad-contrib中)将运行命令而不将其传递给shell。

然而,就环境变量而言,这不应该产生太大的影响。在这两种情况下,生成的命令都应该继承XMonad进程的环境(shell的启动/ rc文件可以在生成的情况下进行调整)。

可以使用一般的Haskell工具设置启动过程的环境,例如: System.Posix.Process.executeFile(如果您想要修改XMonad流程环境的副本,请System.Environment.getEnvironment