0
내 도트 파일은 컴퓨터간에 99 % 유사하지만 여러 가지 사소한 설정을 위해 을 유지하는 사소한 조작이 있습니다. 호스트 이름을 기준으로 if 문을 사용하여 차별하는 것이 계획되었습니다. 로 보일 것이다 뭔가 bashrc에 또는 zshrcxmonad/xmobar 설정 파일에서 호스트 이름 가져 오기
if [ $(hostname) == 'host1' ]; then
# things to do differently on host1.
elif [ $(hostname) == 'host2' ]; then
# things to do differently on host2.
fi
단순히 거기에 진짜 하스켈로 해석되는 설정 파일 xmobar 것으로 의심 같은 쉘 설정에 따른다. xmobar에있는 쉘과 비슷한 것을 얻는 방법에 대한 의견이 있으십니까?
주로 내가 xmonad를 사랑하지만 아직 하스켈 문법을 배운하지 않은, 내 구문은 희망찬 가능성 잘못된 인식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>"
}
처럼 xmobar 뭔가 폭 및 네트워크 인터페이스를 수정하고자하고있다. ghci에서
가 :
λ> import Network.HostName
λ> getHostName
Loading package hostname-1.0 ... linking ... done.
"hostname1"
당신이 당신의 호스트에 대한 다른 xmobar
설정을 할 것으로 보인다 xmonad.hs
이후
xmonad의 설정 파일 그냥 조각 : 다음과 같은 패턴을 사용하여 당신은 다음
xmonad.hs
파일에 적절한 장소에이 메소드를 호출 할 수 있습니다:이 유형의 정의는 다음과 같이 보일 것입니다 Haskell 코드의 경우,'Network' 패키지에서'getEnv "HOST"또는'getHostName'에 의해 호스트 명을 얻을 수 있습니다. 그러나 나는 이것이 당신이 원하는 대답이라고 생각하지 않는다, 그래서 xmonad의 설정 파일에서 실제로 달성하기를 원하는 것을 설명 할 수 있겠는가? – ymonad
방금 내 xmobar.hs 파일에서 스 니펫으로 업데이트했습니다. 나는 ".hs"결말이 코드가 아니라 단순한 설정이 아니라 나를 쓰다듬어 야한다고 생각한다. 그러나 haskell 문법은 나에게 매우 외국적이다. – bertabus
@bertabus'xmobar'의 최신 버전에 대해서는 잘 모르겠지만, 이전 버전은 일반적으로'.xmobarrc' 파일을 파싱했습니다. 그 때문에 해당 파일에 주석을 입력 할 수 없습니다. 그렇다면 여전히 그 파일에서'if else'표현식을 사용할 수 있다고 생각하지 않습니다. 최근 버전에서는 그렇지 않은 경우 기쁠 것입니다. 그러나 확실하지 않습니다. – Sibi