使用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
加载包的速度太慢
同上