探索未来桌面管理的无限可能:nwm——Node.js驱动的动态窗口管理器
nwmTiling window manager for X11 written in Node.js项目地址:https://gitcode.com/gh_mirrors/nw/nwm
在寻找一款能够提升效率,实现智能桌面布局的神器吗?让我们一同走进nwm,这个由Node.js编写的动态窗口管理器。它不仅仅是一个工具,更是一种创新的工作流方式,适用于Ubuntu, ChromeOS, Arch, Debian和Ubuntu等多个系统。
究竟是什么让nwm如此独特?
- 更新到1.3.x:现在支持Node
4.0.x
和0.12.x
! - 广泛兼容性:Ubuntu, ChromeOS, Arch, Fedora, Debian
- 动态平铺管理,可自定义主窗口大小
- 支持多显示器(Xinerama)
- 工作区间/虚拟桌面(默认0-9)
- 多种布局模式:垂直平铺,水平平铺,网格,全屏
- 每个工作区间可以拥有自己的布局
- 所有配置均通过JavaScript定义,C++/C编写的核心库与Node.js事件交互
新特性1.1.0版:简化了安装流程,添加了'nwm'命令行工具,并引入了新的~/.nwm-user
加载机制,便于个性化定制。
安装nwm
要开始你的nwm之旅,首先确保系统中有xterm
和python
,并安装以下开发包:
- Ubuntu (14.04/12.04/10.04), Debian (6 stable):
sudo apt-get install libx11-dev libxinerama-dev
- ChromeOS:参考chromeos.md指南
- Arch:
sudo pacman -S xterm libxinerama
,如果需要,请设置python2
为默认Python版本 - Fedora:(待更新)
然后使用npm全局安装nwm:
npm install -g nwm
启动时使用nwm
命令,并在登录管理器中将nwm添加至会话选项。
自定义nwm体验
从1.1.0版本开始,nwm提供了一个~/.nwm-user.js
或~/.nwm-user/index.js
文件,让你可以轻松自定义键盘快捷键和整体行为。如果没有找到该文件,系统将自动使用默认的nwm-user-sample.js
启动窗口管理器。
教程与实践
观看这段YouTube教程,了解如何在nwm中快速操作。
启动程序
启动一个终端:Win + Shift + Enter
,再次按同一组合键添加第二个终端。
切换布局
按下Win + Space
可在不同布局间切换。
聚焦移动
将鼠标悬停于目标窗口上方,或使用Win + j/k
进行焦点移动。
使用工作区间
每个显示器有9个工作区间,编号1-9。切换工作区间:Win + [数字]
;移动当前窗口至其他区间:Win + Shift + [数字]
。
调整窗口大小
右侧窗口为主窗口。Win + H/F10
缩小主窗口,Win + L/F11
扩大主窗口。每个工作区间的主窗口大小可独立设置。
重排窗口
Win + Tab
将聚焦窗口设为主窗口。
关闭窗口
Win + Shift + c
关闭当前窗口。
多屏幕操作
使用Win + Shift + ,/.
将焦点窗口移动至相邻屏幕。
键盘快捷键
查阅完整快捷键列表以了解更多功能。
自定义快捷键与扩展功能
修改nwm-user-sample.js
来自定义快捷键,甚至编写新的布局。利用nwm-user创建自定义配置包,用Git克隆至~/.nwm-user
并通过npm install
安装。
示例
{
key: 'Return', // 输入键启动xterm
modifier: ['shift'],
callback: function(event) {
child_process.spawn('xterm', ['-lc'], { env: process.env });
}
}
简单三步自定义快捷键:
- 基本键(如这里的'Return')。
- 按键修饰符(如'Shift'或'Ctrl')。
- 回调函数。
跨平台,跨设备
无论是Windows、Mac还是Linux,只需一台带有X11服务的机器,nwm都能在多个显示器上大展拳脚,赋予你强大的窗口管理和生产力提升。
总结
nwm以其强大的自定义性和智能化的布局设计,提供了全新的桌面管理体验。无论你是开发者、设计师还是普通用户,都可以在nwm中找到符合个人习惯的高效工作环境。赶快尝试并加入nwm社区,一起探索更多可能性吧!
现在就启动你的nwm之旅,开启全新的桌面管理时代!
nwmTiling window manager for X11 written in Node.js项目地址:https://gitcode.com/gh_mirrors/nw/nwm