Ion2入门指导
Ion是一个有趣的而且非主流(different)的Unix窗口管理器。它实现了一些比其他WM更加适合于人类操作的功能。
尽管Ion被设计于主要使用键盘而很少使用鼠标,但是我还是会开始于混合使用他们。高级用户可能更喜欢使用键盘来完成大部分工作。
我首先假设你可以使用apt-get或者其他方式将Ion安装上。使用Ion登入到X,你会发现一个很大的、空的屏幕。
你在这个屏幕中就可以使用Function键完成很多工作了。F1启动man帮助、F2启动xterm、F3用于启动其他应用程序(你也可以在命令行中启动其他程序)。如果你希望使用F3启动一个非GUI程序,使用":programname",这回打开一个xterm来做这个程序的容器。而F4是启动SSH会话。
在你打开多个窗口后,你会发现他们占满了整个屏幕。有三种方式存取其他窗口:
- 点击他们的标题栏
- 按下 "Mod1+K P" 或 "Mod1+K N" (向前和向后)
- 按下 "Mod1+K n" 立即跳转到nth窗口(?)
将窗口放到其他窗口后面叫做"tabbing"-犹如流行的FireFox浏览器那样。而在Ion中,我们把它叫做共享同一框架(frame)的窗口(window)。你可以移动当前框架,使用
"Mod1+K" 。
现在将这么多窗口放在屏幕上并不是很有效的工作方式。一个提高效率的方式是使用 "Mod1+S" 将框架分隔为两个,或者 "Mod1+K S"
。这项技术叫做平铺(tiling)。你可以将分隔的框架使用 "Mod1+K X"
组合到一个,两个小点的框架会被添加到一个结果框架中。在框架之间切换可以使用鼠标或者 "Mod1+N" 或 "Mod1+P"(垂直),或 "Mod1+Tab" 或
"Mod1+K Tab" (水平)。
你可以通过拖拽窗口的标题条将其在各个框架之间移动。框架可以通过拖放边框的方式改变大小。键盘用户一般使用 "Mod1+R" 然后到 "resize
mode" 。
有如其他窗口管理器,Ion有工作区的支持。使用F9开启一个新的工作区。Ion随后会问你工作区的类型,这里选择默认的。使用 "Mod1+Left" 、
"Mod1+Right" 和 "Mod1+n"(n=1..9) 用于在各个工作区之间移动。
你可以使用"tagging"来在各个工作区之间移动窗口,使用 "Mod1+T" ,然后添加到另外一个使用 "Mod1+K A" 。
如果你记得, "Mod1+Left" 和 "Mod1+Right" 用于切换前后工作区。我个人习惯于使用 "Mod1+n"
,而使用左侧Alt作为FireFox的"back"。
当然,这是可能的,你可以将其绑定为nil:
global_bindings {
kpress(DEFAULT_MOD.."Left", nil),
kpress(DEFAULT_MOD.."Right", nil),
}
ion2很聪明的可以记住你的工作习惯。我有个小的框架用来方gaim,而且我喜欢默认让gaim在那里启动,而不是跟着光标。这可以用 ion.lua
中的
winprop
指令实现。工作方式:每个X窗口都有"class"名和"instance"名。我查找到gaim的这个值通过 "xprop
WM_CLASS" ,然后点击运行的Gaim窗口。返回得到
"WM_CLASS(STRING)="gaim"","Gaim"。这里"gaim"是实例名,而"Gaim"是类。现在我给一个小框架叫做"gaimframe",通过按下"Mod1+F3",然后执行"querylib.query_renameframe(_)"。这会问我一个名字,然后我提供了一个,然后再将如下内容加入
ion.lua
winprop {
class="Gaim",
instance="gaim",
target="gaimframe",
}
这告诉ion2把拥有类名为"Gaim",实例名为"gaim"的所有窗口都拿到"gaimframe"窗口打开。
有如前段所讲,我们可以把所有gaim在一个框架中打开。现在我需要在启动时就在特定框架内自动载入一些xterm。
使用前面提到的winprop技术,我们可以在特定框架启动所有xterm。幸运的是xterm支持在命令行指定实例名和类名。我只需要简单的使用"xterm
-name foo"或"xterm -class bar",然后像前面一样指定他们的框架即可。
因为有太多的应用需要设置快捷键,所以干脆用一个F7提供一个快速启动菜单。可以直接从F12的代码中搞过来:
global_bindings {
kpress(SECOND_MOD .. "F7", make_bigmenu_fn("launchmenu")),
}
然后创建菜单,有如主菜单的F12,在 /etc/X11/ion2/ion-menus.lua
defmenu("launchmenu",{
menuentry("Mozilla Firefox",make_exec_fn("mozilla-firefox")),
})
分享到:
相关推荐
2. **缓存对齐**:为了提高数据访问效率,ION V2 heap会确保分配的内存块满足缓存对齐的要求,这对于硬件加速和数据传输至关重要。 3. **内存共享**:ION V2 heap支持跨进程的内存共享,允许多个驱动程序或者进程...
《ION GNSS 2016论文集2》是一份重要的学术资源,专注于全球导航卫星系统(GNSS)的研究和技术发展。ION GNSS是国际惯性导航学会(Institute of Navigation)主办的一年一度的全球定位系统会议,是全球GNSS领域的...
《ION7650用户使用手册》通过详尽的安全警示、安装指导和操作建议,不仅展现了ION7650作为专业级电力监测仪表的强大功能与复杂性,也强调了操作者必须具备的专业知识与谨慎态度。对于希望深入了解并充分利用ION7650...
2. Client:Ion 的使用者,用户空间和内核控件要使用 ION 的 buffer,必须先创建一个 client,一个 client 可以有多个 buffer,用 struct ion_buffer 表示。Client 是 ION 中的使用者,用于请求内存分配。 3. ...
赠送jar包:ion-java-1.0.2.jar; 赠送原API文档:ion-java-1.0.2-javadoc.jar; 赠送源代码:ion-java-1.0.2-sources.jar; 赠送Maven依赖信息文件:ion-java-1.0.2.pom; 包含翻译后的API文档:ion-java-1.0.2-...
《ION Setup 2.0软件使用详解》 ION Setup 2.0是深圳市中电电力技术有限公司开发的一款专用于ION仪表配置和管理的软件,它主要用于在WINDOWS操作系统下与ION系列仪表进行通信,进行参数设置、数据读取及管理。在...
ion_auth ion_auth数据库代码
标题 "Ion" 提到的是一个特定的资源,很可能是指一种字体系列或设计风格。在IT领域,"Ion" 字体可能被用作用户界面(UI)设计、网站设计、图形设计或者应用程序中的文本呈现,以提供清晰易读的视觉体验。这种字体...
ion2-calendar是一个专门为Ionic 2框架设计的日历插件,旨在提供高度可配置和可定制化的日期选择功能。这个组件允许用户在应用中方便地选择单个日期或日期范围,适用于各种日期相关的应用场景,如事件安排、预约系统...
Angular-ion-digit-keyboard-v2.zip,一个用于离子2应用的数字键盘插件。离子2数字键盘,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决...
##### 2. 应用场景 - **基础设施、工业与建筑领域** - 提高能源效率,降低能耗成本; - 为租户分摊能源费用; - 将能源成本分配到各个部门或流程中; - 减少峰值需求附加费; - 减轻功率因数罚款; - 保障电力...
ion:安卓异步网络和图片加载库 ion-2.1.6jar包
赠送jar包:ion-java-1.0.2.jar 赠送原API文档:ion-java-1.0.2-javadoc.jar 赠送源代码:ion-java-1.0.2-sources.jar 包含翻译后的API文档:ion-java-1.0.2-javadoc-API文档-中文(简体)版.zip 对应Maven信息:...
标题 "pjt_i2c.rar_ION" 暗示我们正在处理一个关于I2C通信协议实现的项目,这个项目可能使用了ION技术或与ION相关。在描述中提到,“source code of i2c implementation in spartan 3e starter kit”表明这是一个...
2. **精确定位技术**:论文可能会探讨如何提高定位精度,例如多频段接收、精密星历、增强系统(如EGNOS、WAAS)的应用,以及相对定位和差分GPS技术。 3. **信号处理**:涉及GNSS信号捕获、跟踪、解调及数据解析的...
2. **WheelView**: Android社区中存在一些开源库,如`WheelView`,它们提供了滚轮选择器的功能。开发者可以集成这些库,定制滚轮样式,包括日期格式、字体大小和颜色等。 3. **RecyclerView**: 另一种实现方式是...
2.ion_client_destroy:释放一个客户端及绑定在它上面的所有ion handle ion handle是ION中的一种数据结构,每个ion handle映射到一个buffer中,每个buffer关联一个heap。也就是说一个客户端可以操作多块buffer。 ...
运用ion.rangeSlider实现进度条效果,资源为使用的ion.rangeSlider的文档;
2. **事件监听**:通过绑定不同的事件(如点击、滚动等),ion.sound可以在特定用户交互时触发声音播放,增强用户感知和体验。 3. **音频预加载**:为了减少延迟和提高用户体验,ion.sound可以预先加载音频文件,...