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>

从openbox了解Linux桌面相关知识相关推荐

  1. Linux网络相关知识(七)

    Linux网络相关知识(七) 1.简述osi七层模型和TCP/IP五层模型 OSI七层模型 OSI七层模型的划分 应用层(Application).表示层(presentation).会话层(sess ...

  2. Linux 系统相关知识记录

    ==========================Linux 系统相关========================= 问题:找不到动态链接库 办法:配置动态链接地址 export LD_LIBR ...

  3. Linux网络相关知识

    2019独角兽企业重金招聘Python工程师标准>>> 10月25日任务 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfil ...

  4. Linux服务器相关知识记录

    Linux服务器 windows远程连接linux服务器 无图形界面 包括图形界面 文件传输 服务器休眠设置 Linux桌面快捷方式的创建(Linux打开Ansys方法) Xftp远程连接出现中文乱码 ...

  5. Linux认证相关知识,RHCE认证考试具体知识详解

    一. RH033 RedHat Linux 基础课程 RH033 课程说明: 课程描述: 适用于Linux的新使用者,他们希望了解并掌握基本知识,以顺利使用他们自己的Red Hat Linux系统.完 ...

  6. Linux Raid相关知识

    一.基本原理 RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列.简单地说, RAID 是由多个独立的高性能磁盘驱动器组成 ...

  7. 07 Linux操作系统相关知识

    Linux 一.安装虚拟机与Centos 6.7 1.安装VMware 2.安装Centos 6.7 二.Linux命令 1.远程传输软件SecureCRTPortable介绍 2.Linux简介 3 ...

  8. Linux crypto相关知识的汇总 Linux加密框架crypto对称算法和哈希算法加密模式

    参考链接 Linux加密框架中的算法和算法模式(二)_家有一希的博客-CSDN博客 对称算法 分组算法模式 ECB模式 ECB模式下,明文数据被分为大小合适的分组,然后对每个分组独立进行加密或解密 如 ...

  9. Linux系统性能相关知识学习

    目录 0.Windows中性能相关的内容 1.网络通信 2.CPU・内存 3.1.循环往指定目录放入文件  ( 文件会被Splunk引擎传送走.并删除. 如果文件生成的过快,就会产生滞留) 3.2.不 ...

最新文章

  1. PCL:PCL可视化显示点云
  2. LeetCode MySQL 1853. 转换日期格式(日期格式化)
  3. SAP HANA数据库安装
  4. 5G/NR 学习笔记 - RAR随机接入过程
  5. linux脚本 校准时区,shell脚本校准系统和bios时间
  6. 求字符串长度(复习)
  7. vue延迟渲染组件_做一个可复用的 echarts-vue 组件(延迟动画加载)
  8. 谷歌chrome浏览器打不开网页,但是其他浏览器可以打开怎么办?
  9. paypal快速支付流程图
  10. team explorer_Team Explorer 2017独立安装程序的退还
  11. 品牌对比 蜜雪冰城 VS 喜茶
  12. Android车机初体验
  13. 呀,葵花宝典![IT项目经理成长晋升记2]
  14. android studio 两个工程 引用同一个库,一个可以,另一个不可以
  15. 802.11n 技术简结
  16. Linux磁盘无法umount的问题
  17. python+Anaconda3+pycharm完整的下载安装过程及配置过程
  18. 太原理工大学c语言期末试卷及答案,太原理工大学人工智能复习题 试题 答案概要...
  19. PCI、PCI-X、PCI-E、PCI-E Card、Mini PCI-E、M.2、Add-in Card 它们有啥区别?这些概念你搞清楚了吗?
  20. uiautomator2 半自动发布视频脚本

热门文章

  1. 软件测试OA办公自动化系统测试方案
  2. 速卖通平台关于欧洲EPR详细规则解析
  3. 将DVD视频转成IPAD支持的格式
  4. 【大数据哔哔集20210117】Kafka 的高可靠性是怎么实现的
  5. 重学《动手学深度学习》 —— 深度学习简介(第一章)笔记
  6. python读写-datas.数据集和csv文件-预处理kddcup99
  7. 能力强的项目经理是怎么催活儿的?(内附项目管理软件推荐)
  8. 【JavaScript 逆向】网易易盾滑块逆向分析
  9. java中rtsp转m3u8_NGINX+ffmpeg 实现 大华摄像头视屏转流RTSP转RTMP或M3U8
  10. Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.Configurati