首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在xmonad/xmobar配置文件中获取主机名

在xmonad/xmobar配置文件中获取主机名
EN

Stack Overflow用户
提问于 2014-05-22 04:14:37
回答 1查看 884关注 0票数 0

我的点文件是99%相似的计算机之间,但有一些小的调整,我保留为各种次要的设置。我的计划是使用基于主机名的if语句进行区分。在shell配置中如下所示的东西,如bashrc或zshrc

代码语言:javascript
复制
if [ $(hostname) == 'host1' ]; then
# things to do differently on host1.
elif [ $(hostname) == 'host2' ]; then
# things to do differently on host2.
fi

我怀疑xmobar只是一个被解析的配置文件,其中没有真正的haskell。对于如何获得类似于xmobar中的shell的东西,有什么想法吗?

我主要想修改xmobar中的宽度和网络接口,比如

代码语言:javascript
复制
Config {
if hostname == "host1" 
then
    font = "xft:Fixed-9",
    position = Static { xpos = 0, ypos = 0, width = 1280, height = 16 },
else if hostname == "host2"
then
    font = "xft:Fixed-12",
    position = Static { xpos = 1920, ypos = 0, width = 1800, height = 16 },
lowerOnStart = True,
commands = [
    -- if here as well to switch between eth0 and wls3 
    Run Network "wls3" ["-t","Net: <rx>, <tx>","-H","200","-L","10","-h","#cc9393","-l","#709080","-n","#705050"] 10,
    Run Date "%a %b %_d %l:%M" "date" 10,
    Run Battery ["-t", "Bat: <left>%","-L","10","-H","11","-l","#CC9393","-h","#709080"] 10,
    Run StdinReader
],
sepChar = "%",
alignSep = "}{",
template = "%StdinReader% }{ %multicpu% | %memory% | %Vol% | %wls3% | %battery% |   <fc=#709080>%date%</fc>"

}

我意识到我的语法是一厢情愿的,而且很可能是错误的,我喜欢xmonad,但还没有学会haskell语法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-22 04:42:00

由于xmonad.hs是haskell文件,所以可以使用包主机名查找它的名称:

在ghci:

代码语言:javascript
复制
λ> import Network.HostName
λ> getHostName
Loading package hostname-1.0 ... linking ... done.
"hostname1"

您似乎希望为主机设置不同的xmobar设置。实现这一目标的一种方法是编写一个函数,该函数将为给定主机创建一个新的.xmobarrc文件。它的类型定义如下所示:

代码语言:javascript
复制
createXmobarrc :: String -> IO ()
createXmobarrc hostname = undefined -- Write your logic

然后,可以使用以下模式在xmonad.hs文件的适当位置调用此方法:

代码语言:javascript
复制
main = do
 hostname <- getHostName
 createXmobarrc hostname -- produce appropriate .xmobarrc file for a given host
 -- other xmonad stuff follows here
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23797702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档