`
gashero
  • 浏览: 966866 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ion2入门指导

阅读更多

 

Ion2入门指导

译者: 日期: 原文:
gashero
2008-11-24
http://modeemi.fi/~tuomov/ion/docs/guidedtour.html

Ion是一个有趣的而且非主流(different)的Unix窗口管理器。它实现了一些比其他WM更加适合于人类操作的功能。

尽管Ion被设计于主要使用键盘而很少使用鼠标,但是我还是会开始于混合使用他们。高级用户可能更喜欢使用键盘来完成大部分工作。

1   入门

我首先假设你可以使用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" 。

2   工作区

有如其他窗口管理器,Ion有工作区的支持。使用F9开启一个新的工作区。Ion随后会问你工作区的类型,这里选择默认的。使用 "Mod1+Left" 、 "Mod1+Right" 和 "Mod1+n"(n=1..9) 用于在各个工作区之间移动。

你可以使用"tagging"来在各个工作区之间移动窗口,使用 "Mod1+T" ,然后添加到另外一个使用 "Mod1+K A" 。

3   更多高级配置

3.1   重新绑定快捷键

如果你记得, "Mod1+Left" 和 "Mod1+Right" 用于切换前后工作区。我个人习惯于使用 "Mod1+n" ,而使用左侧Alt作为FireFox的"back"。

当然,这是可能的,你可以将其绑定为nil:

global_bindings {
    kpress(DEFAULT_MOD.."Left", nil),
    kpress(DEFAULT_MOD.."Right", nil),
}

3.2   指定特定程序总是在某个框架中

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"窗口打开。

3.3   在启动时就使用xterm填充框架

有如前段所讲,我们可以把所有gaim在一个框架中打开。现在我需要在启动时就在特定框架内自动载入一些xterm。

使用前面提到的winprop技术,我们可以在特定框架启动所有xterm。幸运的是xterm支持在命令行指定实例名和类名。我只需要简单的使用"xterm -name foo"或"xterm -class bar",然后像前面一样指定他们的框架即可。

3.4   添加"快速启动"菜单

因为有太多的应用需要设置快捷键,所以干脆用一个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")),
})

4   更多脚本

Ion支持六安来进行扩展,参考: Ion: Configuring and extending with Lua

 

1
0
分享到:
评论

相关推荐

    ion_heap.rar_ION_V2 _heap

    2. **缓存对齐**:为了提高数据访问效率,ION V2 heap会确保分配的内存块满足缓存对齐的要求,这对于硬件加速和数据传输至关重要。 3. **内存共享**:ION V2 heap支持跨进程的内存共享,允许多个驱动程序或者进程...

    ION GNSS 2016论文集2

    《ION GNSS 2016论文集2》是一份重要的学术资源,专注于全球导航卫星系统(GNSS)的研究和技术发展。ION GNSS是国际惯性导航学会(Institute of Navigation)主办的一年一度的全球定位系统会议,是全球GNSS领域的...

    ION7650用户使用手册

    《ION7650用户使用手册》通过详尽的安全警示、安装指导和操作建议,不仅展现了ION7650作为专业级电力监测仪表的强大功能与复杂性,也强调了操作者必须具备的专业知识与谨慎态度。对于希望深入了解并充分利用ION7650...

    ION基本概念.docx

    2. Client:Ion 的使用者,用户空间和内核控件要使用 ION 的 buffer,必须先创建一个 client,一个 client 可以有多个 buffer,用 struct ion_buffer 表示。Client 是 ION 中的使用者,用于请求内存分配。 3. ...

    ion-java-1.0.2-API文档-中英对照版.zip

    赠送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 Setup 2.0是深圳市中电电力技术有限公司开发的一款专用于ION仪表配置和管理的软件,它主要用于在WINDOWS操作系统下与ION系列仪表进行通信,进行参数设置、数据读取及管理。在...

    ion_auth数据库

    ion_auth ion_auth数据库代码

    Ion

    标题 "Ion" 提到的是一个特定的资源,很可能是指一种字体系列或设计风格。在IT领域,"Ion" 字体可能被用作用户界面(UI)设计、网站设计、图形设计或者应用程序中的文本呈现,以提供清晰易读的视觉体验。这种字体...

    ion2calendar一个可配置与可选择范围日期的ionic2日历组件

    ion2-calendar是一个专门为Ionic 2框架设计的日历插件,旨在提供高度可配置和可定制化的日期选择功能。这个组件允许用户在应用中方便地选择单个日期或日期范围,适用于各种日期相关的应用场景,如事件安排、预约系统...

    Angular-ion-digit-keyboard-v2.zip

    Angular-ion-digit-keyboard-v2.zip,一个用于离子2应用的数字键盘插件。离子2数字键盘,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决...

    ION 7300 Meter 型錄

    ##### 2. 应用场景 - **基础设施、工业与建筑领域** - 提高能源效率,降低能耗成本; - 为租户分摊能源费用; - 将能源成本分配到各个部门或流程中; - 减少峰值需求附加费; - 减轻功率因数罚款; - 保障电力...

    ion-2.1.6jar包

    ion:安卓异步网络和图片加载库 ion-2.1.6jar包

    ion-java-1.0.2-API文档-中文版.zip

    赠送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

    标题 "pjt_i2c.rar_ION" 暗示我们正在处理一个关于I2C通信协议实现的项目,这个项目可能使用了ION技术或与ION相关。在描述中提到,“source code of i2c implementation in spartan 3e starter kit”表明这是一个...

    ION GNSS 2016论文集1

    2. **精确定位技术**:论文可能会探讨如何提高定位精度,例如多频段接收、精密星历、增强系统(如EGNOS、WAAS)的应用,以及相对定位和差分GPS技术。 3. **信号处理**:涉及GNSS信号捕获、跟踪、解调及数据解析的...

    Android防Ion日期滚轮

    2. **WheelView**: Android社区中存在一些开源库,如`WheelView`,它们提供了滚轮选择器的功能。开发者可以集成这些库,定制滚轮样式,包括日期格式、字体大小和颜色等。 3. **RecyclerView**: 另一种实现方式是...

    ION内存管理.doc

    2.ion_client_destroy:释放一个客户端及绑定在它上面的所有ion handle ion handle是ION中的一种数据结构,每个ion handle映射到一个buffer中,每个buffer关联一个heap。也就是说一个客户端可以操作多块buffer。 ...

    ion.rangeSlider整理文档

    运用ion.rangeSlider实现进度条效果,资源为使用的ion.rangeSlider的文档;

    前端项目-ion-sound.zip

    2. **事件监听**:通过绑定不同的事件(如点击、滚动等),ion.sound可以在特定用户交互时触发声音播放,增强用户感知和体验。 3. **音频预加载**:为了减少延迟和提高用户体验,ion.sound可以预先加载音频文件,...

Global site tag (gtag.js) - Google Analytics