从openbox了解Linux桌面相关知识

OpenBox是什么?

Openbox 是运行于搭载X11的GNU/Linux上的轻巧窗口管理器,Openbox 以GPL协议方式开放源代码,是免费自由软件。Openbox基于Blackbox,后者被认为原始窗口管理器之一(即代码自有)。

总言之:openbox是窗口管理器

如果不用窗口管理器,会怎么样?

       如果linux下,没有窗口管理器,程序也能正常运行。

       但明显的变化,就是没有“标题栏”,程序也不能用鼠标进行拖动。

        还有明显的变化,按“Start+D”也不能返回到桌面了

由此可见,这些都跟窗口管理器有关,而不是你自己程序控制的。

或换句话,如果你觉得“标题栏”不符合你的程序风格,并不是通过程序本身代码修改,而是通过配置窗口管理器的参数去配置

实际上,我们可以归纳总结下:

你的程序显示界面

       UI库(像qt)

  窗口管理器(像openbox)

       视窗系统(像x11)

       硬件驱动

如下图:

 

openbox有哪些优点?也就是,我们什么时候应该用

  1. 速度非常快,资源占用极少。(适合嵌入式,也就意味着可能存在一些考虑不周的情况)
  2. 可高度定制化,能够对应用程序加以灵活控制。(配置灵活,的确挺好,而且很好理解)
  3. 能够绑定键盘和鼠标。比如,你可以为程序设定启动快捷键,也可以为最小/大化窗口设置热键。对于鼠标,同样如此。
  4. 具有自动启动脚本,能够随机自动启动各种程序。
  5. 主题资源丰富,与 *box 类视觉样式兼容。Openbox 的外观是简约而不简单。
  6. 支持会话,可深入 GNOME、KDE、Xfce 等桌面环境使用。换句话说,Openbox 可替代这些桌面环境中默认的窗口管理器,而其他桌面组件仍旧保持原样。

另外,本质上源码也比较少,如果出现一些问题,也可以通过修改源码的方式,也会容易一些

好了,openbox介绍也差不多。我们来了解下,openbox精华部分,配置

配置文件在  

/etc/xdg/openbox/

有几个xml
可以看下

menu.xml 

  1. 首先,让我们来创建一个一级菜单。要定义一个菜单,我们需要使用 <menu> 标签。该标签具有 id、label、以及 execute 属性:

    • id:每一个菜单项目都必须指定一个唯一的 id,以用来区分其他菜单项目。
    • label:用来描述一个菜单的名称。
    • execute:执行一个命令,常用于创建动态菜单。

    例如,我们可以将 Openbox 的 Root 菜单定义如下:<menu id="root-menu" label="Openbox Root Menu"> ... </menu>

    如果一个菜单中没有任何项目,我想是不能称其为真正的菜单吧。所以,我们还需要为菜单创建具体的菜单项目。要定义菜单项目,我们可以使用 <item> 标签。与 <menu> 标签一样,<item> 标签也具有描述菜单项目名称的 label 属性。我们试着扩展上面的例子:

        <menu id="root-menu" label="Openbox Root Menu">
        <item label="URxvt">
        ...
        </item>
        ...
        </menu>
    
    

    现在,我们已经有了一个名为 URxvt 的菜单项目。根据该名称的命名初衷,我们当然希望通过该菜单项目能够启动 URxvt 终端程序。要完成这个任务,我们需要使用 <action> 标签。该标签主要用来执行一个操作,比如启动程序。<action> 标签具有 name 属性。我们继续扩展先前的例子:

        <menu id="root-menu" label="Openbox Root Menu">
        <item label="URxvt">
        <action name="Execute">
        ...
        </action>
        </item>
        ...
        </menu>
    
    

    该例中 name 属性已经包含了“Execute”值,其作用是启动一个程序。

    我想,你已经猜到接下来我们需要做什么了。要启动程序,没有具体的命令是不行的。这可以通过 <command> 标签来完成。我们仍以前面的例子来说明:

        <menu id="root-menu" label="Openbox Root Menu">
        <item label="URxvt">
        <action name="Execute">
        <command>urxvt</command>
        </action>
        </item>
        ...
        </menu>
    
    

    值得一提的是,命令可以附带路径或选项参数。

  2. 几个特殊的菜单项目

    在此,我们介绍几个较为特殊的菜单项目:

    • 分隔线:可以使用 <separator> 标签在菜单项目间绘制一条分隔线。<separator> 标签同样具有 label 属性。需要注意的是,因为 <separator> 标签没有具体的内容,所以在关闭该标签时,应照下面的方式进行:

      <separator />
      
      

      这是另一个例子,包含 label 属性:

      <separator label="tools" />
      
      
    • 重新配置 Openbox:使用该菜单项目的好处是,当你对 Openbox 的配置文件进行修改后,不必注销系统便可即时生效。该菜单项目定义如下:

      <item label="Reconfigure">
      <action name="Reconfigure" />
      </item>
      
      

      注意,这里 <action> 标签的关闭方式与 <separator> 一样。

    • 重新启动 Openbox:

      <item label="Restart">
      <action name="Restart" />
      </item>
      
      
    • 退出 Openbox:

      <item label="Exit">
      <action name="Exit" />
      </item>
      
      
    • 注销会话:

      <item label="Session Logout">
      <action name="SessionLogout" />
      </item>
      
      

      注意,需要启动带会话支持的 Openbox 才有效。

rc.xml

<keybind key=”W-d”>
<action name=”ToggleShowDesktop”/>
</keybind>
b. rc.xml中的”截屏”快捷键, 截取当前窗口, ctrl+Print Screen

<keybind key=”C-Print”>
<action name=”Execute”>
<command>scrot -s “/home/allblue/pictures/scrot/cut-%m.%d-%H%M%S.png”</command>
</action>
</keybind>
全屏载取, Print Screen

<keybind key=”Print”>
<action name=”Execute”>
<command>scrot “/home/allblue/pictures/scrot/screen-%m.%d-%H%M%S.png”</command>
</action>
</keybind>
c. rc.xml多媒体快捷键设置
音量放大

<keybind key=”XF86AudioRaiseVolume”>
<action name=”Execute”>
<command>amixer set Master 5%+ unmute</command>
</action>
</keybind>
静音

<keybind key=”XF86AudioMute”>
<action name=”Execute”>
<command>amixer set Master toggle</command>
</action>
</keybind>
打开主页

<keybind key=”XF86HomePage”>
<action name=”Execute”>
<command>firefox</command>
</action>
</keybind>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值