i3窗口管理器

备注

我最终会使用 i3 兼容的基于 wayland显示服务器协议 的窗口管理器 sway - i3兼容Wayland compositor ,我的目标是使用最少资源和最快捷的桌面系统(快速的显示管理器、精简的窗口管理器以及轻量级的应用软件)。在切换到wayland之前,我将使用基于Xorg的i3作为过渡并熟悉现代化的平铺窗口管理器。

i3是一种动态的平铺式窗口管理器,其灵感来自于面向开发者与资深用户的 wmii。i3的多桌面完美支持多显示器,并且基于树形结构的窗口管理,提供 Vim 式的多种操作模式。

安装

Debian/Ubuntu

树莓派Raspberry Pi 400 主机上,也就是Debian 10系统,通过以下命令安装i3:

sudo apt install i3

备注

安装 i3 会同时依赖安装 suckless-tools 是最小化窗口管理器的简单命令,提供了 dmenu / dmenu / wmname 等基础工具

备注

如果系统是从字符界面开始安装,之前没有安装过任何图形系统,则还会缺少甚多图形相关服务,则还需要补充安装:

sudo apt install xinit

如果不知道缺少哪些软件包,可以从 Debian Packages Search 上查找

安装完成后,如果是使用了LightDM这样的桌面显示管理器,则只要退出一次,然后在LightDM管理器的右上角,选择gear图标,下拉选择 i3 就可以登陆到i3桌面。

如果是字符界面启动i3,则在 ~/.Xinitrc 末尾添加:

exec i3

如果想记录 i3 程序所有的输出,这一行要写成:

exec i3 -V >> ~/i3log-$(date +'%F-%k-%M-%S') 2>&1

Fedora

在 Fedora 35 Server上,可以通过单独安装命令:

sudo dnf install -y i3 i3status i3lock dmenu \
    azote rxvt-unicode brightlight dunst \
    htop mousepad thunar

软件包列表:

  • i3status 在 i3bar 中显示信息

  • dmenu 用于在i3桌面加载应用

  • azote 基于gtk3的图片浏览和墙纸设置 (也可以使用 feh 设置墙纸)

  • rxvt-unicode 支持utf字符的终端

备注

安装软件包列表参考 Fedora Linux with the i3 tiling window manager 版本推荐应用列表

使用

第一次登陆,系统会提示没有个人配置文件,按照提示输入回车让系统为你创建个人配置文件,后续我们只要修订个人配置文件就可以定制i3.

../../_images/i3_init_1.png

i3这样的平铺式窗口管理器最大的特点是涉及简单高效,没有任何花哨的功能,是完全面向极简主义的用户。所有窗口默认自动 平铺 ,以不重叠的方式定位窗口,类似于在墙上放置瓷砖。不需要担心窗口定位,i3 一般会更好地利用屏幕空间。

初次登陆i3界面,就只能看到空空如也的桌面以及屏幕底端的状态栏。

基本快捷键

在初始化时候,默认选择 Win 键(也就是 Mod 键)作为快捷键,你也可以在之后修改配置,修改成 Alt 键。

  • 打开终端(这是我们在Linux下最常用的程序)使用快捷键 Mod+ENTER

默认每次按下 Mod+ENTER 会水平再添加一个终端窗口,你可以通过按下 Mod+v 然后再按下 Mod+ENTER 就会在当前窗口下方创建一个新终端窗口

备注

默认的终端是 rxvt-xpm ,速度惊人的快。不过,界面非常类似上个实际计算机图形化的蛮荒时代,有一种复古的风范。

备注

如果使用双显示器,默认会在两个屏幕上显示2个桌面,完全是自动化的

如果屏幕旋转90度(例如我的办公桌面狭小,显示屏是一横一竖),则需要配置

  • 启动应用程序是通过 dmenu (一个简单对文字应用菜单)启动,也就是按下 Mod + d 切换到一个屏幕上方的狭窄的命令行输入框,通过输入匹配命令,缩小选择范围,并且可以通过方向键选择需要启动的应用,之后按下回车键来启动选择的应用。

可以通过应用程序提供的退出方法(通常默认是 ctrl + q 来退出,不过如果应用程序没有提供退出方法,可以使用i3的 Mode + Shift + q 来关闭窗口,不过可能会丢失未保存工作内容。

  • 退出i3会话,使用快捷键 Mod + Shift + e

备注

由于i3可以非常方便切换窗口 Mod + 数字 ,所以我在 Desktop 分配工作:

  • Desktop 1: 开启一个全屏窗口,通过 Vim 来做开发工作,

  • Desktop 2: 启动一个chromium窗口,作为WEB开发验证

  • Desktop 3: 启动4个窗口,分别去维护不同的服务器系统

工具

  • 用 feh 定义桌面的背景图片。

  • 使用合成器管理器,如 compton 以启用窗口淡入淡出和透明度等效果。

  • 用 dmenu或 rofi 以启用可从键盘快捷方式启动的可自定义菜单。

  • 用dunst 用于桌面通知。

使用建议

在 i3 中,工作区是对窗口进行分组的一种简单方法。可以按照工作流以不同的方式对它们进行分组。 将浏览器放在一个工作区上,终端放在另一个工作区上,将电子邮件客户端放在第三个工作区上等等。使用键盘快捷方式执行此操作。按 <SUPER>+num 切换到工作区 num 。

还可以使用工作区来控制多监视器环境,其中每个监视器都有个初始工作区。如果切换到该工作区,则切换到该监视器,而无需让手离开键盘。

上述切换工作区 <SUPER>+num ,在 树莓派Raspberry Pi 400 就是 树莓派 图标按钮加上数字键。

i3 中还有另一种特殊类型的工作空间:the scratchpad(便笺簿)。它是一个不可见的工作区,通过按快捷方式显示在其他工作区的中间。这是一种访问您经常使用的窗口或程序的方便方式,如电子邮件客户端或音乐播放器。

备注

arch linux文档 - i3 (简体中文) 对使用方法有非常详细说明,特别是配置方法可以参考,后续实践。

备注

Fedora操作系统镜像 提供了 Fedora Linux with the i3 tiling window manager ,方便安装和使用。

参考