第一部分:安装桌面环境后安装icewm
这是使用icewm最简单的方式,直接安装icewm这个包即可:
sudo apt install icewm
安装完毕后在登录管理器选"icewm会话"。这种方式可以享受icewm的快速,但是桌面环境毕竟占了一些磁盘空间,另外可能有一些服务占内存,但不影响速度。
也可以安装测试版icewm-experimental,提供未正式发布的功能,但通常与主包兼容 。它包含标准版尚未引入的实验性功能,例如抗锯齿图标、声音事件支持和渐变效果等,启动时要用icewm-session-experimental。如果安装了icewm-experimental,用icewm-session启动,仍然是用正式版。
安装后,将配置文件复制到~/.icewm:
mkdir ~/.icewm
cp -r /usr/share/icewm/* ~/.icewm/
icewm配置文件都在/usr/share/icewm/和~/.icewm,后者会覆盖前者。主要配置文件:
- preferences/prefoverride - 窗口行为、任务栏设置。两者区别在于前者会被theme的设置覆盖,而后者不会
- menu - 开始菜单
- programs - 开始菜单的"程序"子菜单
- keys - 快捷键绑定
- toolbar - 快速启动栏
- startup - 会话启动脚本,启动时自动加载。(这个文件必须要有可执行权限,chmod +x ~/.icewm/startup)
- themes/ - 主题配置目录
- env - 给icewm和所有子程序加载环境变量(要使用 icewm-session 命令启动 IceWM才有效)
更换设置后,重启icewm(屏幕闪一下就结束了):
icewm --restart
更换主题(theme):从icewm主页、 https://www.box-look.org/ (国内被墙了)、github下载theme,解压到~/.icewm/themes。antix系统也提供了很多用于高分辨率的theme(带Large或Huge后缀),可以借用,我的主题就是从antix扒来的。
[设置gtk和QT程序的默认字体]
icewm的字体设置包含了菜单字体(MenuFontNameXft)、标题栏字体(TitleFontNameXft)等,但gtk和QT程序的默认字体要另外设置(没设置会发现窗口菜单、输入框字体很小):
gtk-2字体:
编辑~/.gtkrc-2.0,加入:
gtk-font-name = "Sans 12"
gtk-3字体:
编辑~/.config/gtk-3.0/settings.ini,加入:
[Settings]
gtk-font-name = Sans, 12
修改QT程序默认字体:
qt5ct 是官方推荐的图形化配置工具,为所有 Qt 程序设置统一的字体和主题。
sudo apt install qt5ct
在~/.icewm/env中添加:
# QT程序字体设置
QT_QPA_PLATFORMTHEME="qt5ct"
重新登录后启动 qt5ct,即可在"Fonts"选项卡中设置默认字体。
[设置菜单]
注意开始菜单最上面的"终端"是带-ls参数的,也就是让模拟终端以登录shell形式运行,有些模拟终端如sakura会变成全屏。任务栏的"终端"才是不带参数运行模拟终端。
编辑~/.icewm/menu
将包含icewm-menu-fdo一行加上–no-sub-cats参数,意思是"不要子分类",尽量简化菜单结构,只保留一级菜单(比如把"互联网/网页浏览器"变成"互联网"一级),如下:
includeprog icewm-menu-fdo --no-sub-cats --seps -d1400 -D1650 -S --limit-max-len=42
"程序"菜单(program submenu):
"程序"菜单里的配置文件位于 /etc/icewm/programs 或 ~/.icewm/programs,格式和menu文件一致。控制是否显示的开关在preference(默认为开):
ShowProgramsMenu=1
默认是空的,可以把常用项放在这,常用项从menu文件复制。简单的复制方法:
icewm-menu-fdo --no-sub-cats --seps -d1400 -D1650 -S --limit-max-len=42 | grep 你要的常用项名称 | sed 's/^\s*//'
看有没有输出,有输出则重定向到 ~/.icewm/programs
[添加音量按钮]
sudo apt install volumeicon-alsa
~/.icewm/startup中添加:
# 音量按钮
volumeicon &
鼠标放在上面滚动滚轮调大/调小音量,单击打开/关闭。
[按PrintScreen截屏]
修改~/.icewm/keys,增加(我是xfce4,所以用xfce4-screenshooter,其它桌面环境自定):
# 自定义键
key "Print" xfce4-screenshooter
[锁屏]
先确保xscreensaver已安装,编辑~/.icewm/startup,添加:
# 启动锁屏
xscreensaver -no-splash &
现在,xscreensaver 已经随 IceWM 启动了,你可以通过它自带的图形界面程序来配置定时锁屏。
编辑~/.icewm/preferences,找到该行,把注释去掉:
# LockCommand="xscreensaver-command -lock"
"锁住工作站"命令即可工作。
[网络]
preferences这两行作相应修改,点击网络图标弹出网络设置,只显示活动网络。
NetStatusCommand="x-terminal-emulator -e nmtui"
NetStatusShowOnlyRunning=1
[U盘挂载]
结合使用 udisks2 和一个轻量级的自动挂载前端工具,比如 udiskie。udisks2 是系统底层的守护进程,负责检测硬件并执行挂载操作;而 udiskie 则是一个常驻后台的小程序,它会替你和 udisks2 打交道,实现真正的"自动"。
安装 udisks2 和 udiskie。
sudo apt install udisks2 udiskie
为了让 udiskie 在每次登录 IceWM 时自动运行,需要把它加到 IceWM 的启动脚本中。编辑~/.icewm/startup,在文件中添加以下行来启动 udiskie:
# 启动 udiskie 以实现 U 盘自动挂载
udiskie &
注销重新登录之后,插入 U 盘,它就会自动挂载,并且在文件管理器中直接可见了。
[桌面设计]
icewm桌面是空的,要利用桌面大致有几个思路:
1、用文件管理器管理桌面
建议用PcmanFM管理,显示"~/桌面"的文件,这是传统的管理方式,和windows一样。
sudo apt install pcmanfm
编辑~/.icewm/startup,末尾加上:
# 启动 PcmanFM 的守护进程
pcmanfm --desktop &
注销重新登录即可。若需设置壁纸或图标等,可运行:
pcmanfm --desktop-pref
如果要一起启动conky,则~/.icewm/startup要加上:
# 启动 PcmanFM 的守护进程并启动conky
pcmanfm --desktop &
# 等待pcmanfm绘制桌面再启动conky(要安装wmctrl)
while [ `wmctrl -l | grep "pcmanfm" | wc -l` -eq 0 ]
do
sleep 0.5
done
conky -d &
pcmanfm管理桌面后,conky设置要适当改动,主要是两行(normal改为window也一样):
own_window_type = 'normal',
own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager',
小问题:点击’显示桌面’时,conky窗口也会消失,再点击一下’显示桌面’,或者窗口列表里打开conky又可以恢复。而且注销时会询问是否关闭conky窗口。
2、用桌面管理软件
典型的例子就是idesk。idesk只负责管理桌面图标,背景图片由icewm设置:
gvim ~/.icewm/preferences
找到这一行:
# DesktopBackgroundImage=""
去掉注释,改为:
DesktopBackgroundImage="/usr/share/images/desktop-base/default"
桌面管理软件还有个DesktopFolder,提供了面板、图标和便签功能,比idesk现代得多,只管理桌面图标,不管理背景图片。但是DesktopFolder是基于gnome的,用在xfce4下可以正常运作,背景可以正常显示,但是在icewm下图标可以正常显示,但不能辨识icewm所设的背景颜色和背景图片,都是黑的。如何解决还没找到方法。如果可以解决也很好用。
3、用conky结合脚本,将桌面作为提示板
这是我在使用的方法,只作为提示板,不再管理"~/桌面"的文件(在文件管理器中管理)也不设快捷方式,好处就是省资源,DIY空间大,就是写脚本费事点。设想就是开三个conky实例,一个位于左边,显示日历和天气;一个位于中间,显示备忘录;一个位于右边,显示系统状态。左边的刷新间隔很长(24小时),只有在进入icewm时刷新一次;中间刷新间隔也很长(24小时),但是接受脚本文件修改备忘录并更新;右边正常刷新(间隔0.5秒)。