exwm 的使用

使用exwm窗口管理器

exwm 是一个基于emacs編辑器的平铺窗口管理器

建议直接看插件和Emacs官方文挡,这里只是安利一些插件

环境

系统

  • 可以安装X 和 emacs 的所有 类unix 系统
  • 无登陆管理器 (使用startx)
  • 完备的X环境 (wayland不保证可以正常使用)

Emacs

  • 带有图形界面的版本
  • 建议安装26.1及以上版本

开始安装

创建emacs init文件

$ touch ~/.emacs

添加国内源

在 emacs init 文件加入:

;; 设置软件源
(setq package-archives
      '(("gnu"   . "https://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
	("melpa" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
(package-initialize)

刷新包目录

刷新包目录:

在emacs中执行

M-x package-refresh-contents RET

安装exwm:

在emacs中执行:

M-x package-install RET exwm RET

安装配置:

在 emacs init 文件中追加:

;; EXWM 窗口管理器
(require 'exwm)
(require 'exwm-config)
(exwm-config-default)

关闭一些用不到的东西:

在 emacs init 文件中追加:

;; 无栏
(menu-bar-mode -1) ;; 关闭菜单栏
(scroll-bar-mode -1) ;; 关闭滚动栏
(tool-bar-mode -1) ;; 关闭工具栏

;; 关闭启动提示
(setq inhibit-startup-screen t)
(setq inhibit-splash-screen t)

安装辅助插件:

which-key 快截键提示

功能:按到一半的快截键忘了的话它会提示你

在emacs中执行:

M-x package-install RET which-key RET

安装配置:

在 emacs init 文件中追加:

;; which-key 按键提示
(which-key-mode 1)

使用:

比如我按了 Ctrl +x , 等待一秒后它会提示下面的所有快截键

powerline 美化

功能:把默认的那个丑的一匹的MODELINE美化一下

在emacs中执行:

M-x package-install RET powerline RET

安装配置:

在 emacs init 文件中追加:

;; powerline MODELINE美化
(powerline-default-theme)

base16-theme 主题集

功能:一个主题集,用来美化丑的一匹的默认主题

在emacs中执行:

M-x package-install RET base16-theme RET

安装配置: (比如使用spacemacs主题)

在 emacs init 文件中追加:

;; 主题设置
(load-theme `base16-spacemacs)

pyim 输入法

功能: 用来在emacs中输入中文

在emacs中执行:

M-x package-install RET pyim RET

安装配置:

在 emacs init 文件中追加:

;; pyim 中文输入法
(require 'pyim)
(setq default-input-method "pyim")
(setq pyim-page-tooltip 'posframe)
(setq pyim-default-scheme 'quanpin) ;; 比如我使用全拼
(global-set-key (kbd "C-\\") 'toggle-input-method) ;; 使用 Ctrl + \ 作为切换输入法状态的按键

使用:

在缓冲区使用 Ctrl + \ 快截键切换中文输入

新版很快很快,就像加了特技一样…duang ~~

在EXWM中使用Emacs内置输入法

新版exwm已经添加了将emacs输入法使用于应用程序的功能:

这个功能意味着exwm可以不强制依赖于外部输入法输入中文或其他语言

启用:

在emacs init文件中加入:

(require 'exwm-xim)
(exwm-xim-enable)
(push ?\C-\\ exwm-input-prefix-keys)   ;; 使用Ctrl + \ 切换输入法

在startx中启用exwm

    $ cp ~/.emacs.d/elpa/exwm-0.22.1/xinitrc ~/.xinitrc

启用emacs-xim

将默认xinitrc 中的注释取消:

export XMODIFIERS=@im=exwm-xim
export GTK_IM_MODULE=xim
export CLUTTER_IM_MODULE=xim
  • xinitrc 最后一行必须是 exec emacs , 添加内容请在文件中间加

使用:

在emacs打开的程序使用 Ctrl + \ 然后输入中文

emacs 中的音乐播放器前端EMMS

功能: 播放音乐

http://www.gnu.org/software/emms/

安装:

M-x package-install RET emms RET

配置:

在emacs init文件添加:

(require 'emms-player-mplayer)
(setq emms-player-list '(emms-player-mplayer)) ;; 使用mplayer 命令作为后端
(emms-mode-line-enable) ;; 当前的播放会显示在modeline

使用:

M-x emms RET 文件夹 RET ;; 播放文件夹下面所有歌曲
M-x emms-next RET ;; 播放下一首

emacs中的pdf查看器pdf-tools

功能: 在emacs 中看pdf

安装:

M-x package-install RET pdf-tools RET

使用:

C-x C-f PDF文件

ivy minibuffer 补全

我也没搞懂他主页,自行google吧

功能: 提供更好的 minibuffer 补全

安装:

M-x package-install RET ivy RET
;; 禁用EXWM默认的ido然后启用ivyminibuffer补全
(ido-mode nil)
(ivy-mode 1)

使用:

在打开minibuffer时会出现可用的补全,使用Ctrl + p Ctrl + n来切换

使用exwm

运行exwm

在tty登陆用户并

$ startx

简单使用

打开一个程序:

S+& 程序命令 RET
  • S+& 是指 Super(Windows徽标键+Shift+7)

比如打开sakura终端

S+& sakura RET

将一个窗口全屏:

C+c C+f
  • 大致可以理解为 C+c 是exwm指定的前缀,C+f (f 可以理解为 fullscreen 的缩写)

将一个全屏窗口恢复原来状态:

S+r

将一个窗口关闭:

C+x k 窗口名 RET
  • 窗口名不用一个字一个字敲,exwm把窗口认为缓冲区,输入前缀后TAB补全

在不同的窗口之间切换

C+x b 窗口名 RET
  • 窗口名不用一个字一个字敲,exwm把窗口认为缓冲区,输入前缀后TAB补全

在不同工作区之间切换

exwm 支持多工作区, 并吧每个工作区分配一个frame,每个frame下分配buffer作为窗口

切换到第一个工作区:

S+0

切换到第二个工作区:

S+1

切换到第十个工作区:

S+9

在窗口中使用输入法:

打开窗口并:

Ctrl + \

然后输入中文

截图:

启动后:

Chromium:

窗口分割:


按键提示:

中文输入:

窗口分割居中:

多个窗口分割:

Music!:

ivy:

一些问题的解决方案

pyim 运行缓慢

可能是磁盘IO太慢

解决方法:

使用vmtouch 将整个 .emacs.d 缓冲到内存里面

$ vmtouch -t ~/.emacs.d

加载包的速度太慢

同上


服务器资源由ZeptoVM赞助

Partners Wiki Discord