GHC的升级
随着2017年年初发布GHC8.0.2经过半年时间,笔者也决定跟随Overlay引入进行升级。总体来说升级还算顺利,但是我们都清楚,升级一般伴随着新功能的同时会移除老旧功能,甚至出现代码API变更,必须跟随升级。
添加以下配置即可伴随Gentoo的Haskell Overlay升级到最新的版本。升级完别忘记使用haskell-updater进行清理。
# /etc/portage/package.keywords
dev-haskell/*::haskell ~amd64
XMonad的升级
跟随GHC8.0.2,xmonad与xmonad-contrib可以升级到0.13版本。API方面并没有什么很严重的问题导致从0.11版本过来的用户需要改动配置文件。不过查看报错信息,还是可以看到一些已被弃用(deprecated)的用法。
下面将举出
Data.Default.def
默认变量现在均统一使用这个类中的类型。
-
defaultGSConfig
myGSConfig = defaultGSConfig { gs_font = "xft:monospace:size=8:bold" }
-- 改为
myGSConfig = def { gs_font = "xft:monospace:size=8:bold" }
-
defaultTheme
myTheme = TI { themeName = "..."
-- theme = defaultTheme {...} 改为
, theme = def {...}
-- 补充新的配置选项,主题作者
, themeAuthor = "..."
-- 补充新的配置选项,主题描述
, themeDescription = "..."
}
-
defaultXPConfig
, ((modm .|. controlMask, xK_s), sshPrompt defaultXPConfig)
-- 改成
, ((modm .|. controlMask, xK_s), sshPrompt def)
-
defaultConfig
config <- ... $ defaultConfig {...}
-- 改成
config <- ... $ def {...}
工具条高度问题
xmonad升级后会发现原本工具条的高度占用似乎没了,也就是原来的avoidStructs功能失效了。这是由于引入了新的配置项目Dock导致,可以参考xmonad-contrib-0.13的文档1。
-- 如果原来没有引入过,现在需要引入
import XMonad.Hooks.ManageDocks
xmonad config
-- 改成
xmonad $ docks config
程序启动器
相信用过Gnome2或者KDE的用户还是比较熟悉那个Alt+F2的功能,打入想要启动的应用名称回车即可,轻松写意。在Awesome下面有自带,XMonad其实也有。只是笔者之前沉迷suckless,所以选用了dmenu2,但这东西首次使用时都需要等待缓存所有命令好久,感觉不好用。
在升级配置的过程中发现XMonad自带就有挺好用的类似功能3,界面也非常朴素,老棒了。
-- 引入
import XMonad.Prompt.Shell (shellPrompt)
-- 在原来配置快捷键的地方加入,即可
-- shell
, ((modm, xK_r), shellPrompt def)
参考资料
\_\_END\_\_