从openbox了解Linux桌面相关知识
OpenBox是什么?
Openbox 是运行于搭载X11的GNU/Linux上的轻巧窗口管理器,Openbox 以GPL协议方式开放源代码,是免费自由软件。Openbox基于Blackbox,后者被认为原始窗口管理器之一(即代码自有)。
总言之:openbox是窗口管理器
如果不用窗口管理器,会怎么样?
如果linux下,没有窗口管理器,程序也能正常运行。
但明显的变化,就是没有“标题栏”,程序也不能用鼠标进行拖动。
还有明显的变化,按“Start+D”也不能返回到桌面了
由此可见,这些都跟窗口管理器有关,而不是你自己程序控制的。
或换句话,如果你觉得“标题栏”不符合你的程序风格,并不是通过程序本身代码修改,而是通过配置窗口管理器的参数去配置
实际上,我们可以归纳总结下:
你的程序显示界面
UI库(像qt)
窗口管理器(像openbox)
视窗系统(像x11)
硬件驱动
如下图:
![](/assets/blank.gif)
openbox有哪些优点?也就是,我们什么时候应该用
- 速度非常快,资源占用极少。(适合嵌入式,也就意味着可能存在一些考虑不周的情况)
- 可高度定制化,能够对应用程序加以灵活控制。(配置灵活,的确挺好,而且很好理解)
- 能够绑定键盘和鼠标。比如,你可以为程序设定启动快捷键,也可以为最小/大化窗口设置热键。对于鼠标,同样如此。
- 具有自动启动脚本,能够随机自动启动各种程序。
- 主题资源丰富,与 *box 类视觉样式兼容。Openbox 的外观是简约而不简单。
- 支持会话,可深入 GNOME、KDE、Xfce 等桌面环境使用。换句话说,Openbox 可替代这些桌面环境中默认的窗口管理器,而其他桌面组件仍旧保持原样。
另外,本质上源码也比较少,如果出现一些问题,也可以通过修改源码的方式,也会容易一些
好了,openbox介绍也差不多。我们来了解下,openbox精华部分,配置
配置文件在
/etc/xdg/openbox/有几个xml
可以看下
menu.xml
首先,让我们来创建一个一级菜单。要定义一个菜单,我们需要使用
<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>
值得一提的是,命令可以附带路径或选项参数。
几个特殊的菜单项目
在此,我们介绍几个较为特殊的菜单项目:
分隔线:可以使用
<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桌面相关知识相关推荐
- Linux网络相关知识(七)
Linux网络相关知识(七) 1.简述osi七层模型和TCP/IP五层模型 OSI七层模型 OSI七层模型的划分 应用层(Application).表示层(presentation).会话层(sess ...
- Linux 系统相关知识记录
==========================Linux 系统相关========================= 问题:找不到动态链接库 办法:配置动态链接地址 export LD_LIBR ...
- Linux网络相关知识
2019独角兽企业重金招聘Python工程师标准>>> 10月25日任务 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfil ...
- Linux服务器相关知识记录
Linux服务器 windows远程连接linux服务器 无图形界面 包括图形界面 文件传输 服务器休眠设置 Linux桌面快捷方式的创建(Linux打开Ansys方法) Xftp远程连接出现中文乱码 ...
- Linux认证相关知识,RHCE认证考试具体知识详解
一. RH033 RedHat Linux 基础课程 RH033 课程说明: 课程描述: 适用于Linux的新使用者,他们希望了解并掌握基本知识,以顺利使用他们自己的Red Hat Linux系统.完 ...
- Linux Raid相关知识
一.基本原理 RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列.简单地说, RAID 是由多个独立的高性能磁盘驱动器组成 ...
- 07 Linux操作系统相关知识
Linux 一.安装虚拟机与Centos 6.7 1.安装VMware 2.安装Centos 6.7 二.Linux命令 1.远程传输软件SecureCRTPortable介绍 2.Linux简介 3 ...
- Linux crypto相关知识的汇总 Linux加密框架crypto对称算法和哈希算法加密模式
参考链接 Linux加密框架中的算法和算法模式(二)_家有一希的博客-CSDN博客 对称算法 分组算法模式 ECB模式 ECB模式下,明文数据被分为大小合适的分组,然后对每个分组独立进行加密或解密 如 ...
- Linux系统性能相关知识学习
目录 0.Windows中性能相关的内容 1.网络通信 2.CPU・内存 3.1.循环往指定目录放入文件 ( 文件会被Splunk引擎传送走.并删除. 如果文件生成的过快,就会产生滞留) 3.2.不 ...
最新文章
- PCL:PCL可视化显示点云
- LeetCode MySQL 1853. 转换日期格式(日期格式化)
- SAP HANA数据库安装
- 5G/NR 学习笔记 - RAR随机接入过程
- linux脚本 校准时区,shell脚本校准系统和bios时间
- 求字符串长度(复习)
- vue延迟渲染组件_做一个可复用的 echarts-vue 组件(延迟动画加载)
- 谷歌chrome浏览器打不开网页,但是其他浏览器可以打开怎么办?
- paypal快速支付流程图
- team explorer_Team Explorer 2017独立安装程序的退还
- 品牌对比 蜜雪冰城 VS 喜茶
- Android车机初体验
- 呀,葵花宝典![IT项目经理成长晋升记2]
- android studio 两个工程 引用同一个库,一个可以,另一个不可以
- 802.11n 技术简结
- Linux磁盘无法umount的问题
- python+Anaconda3+pycharm完整的下载安装过程及配置过程
- 太原理工大学c语言期末试卷及答案,太原理工大学人工智能复习题 试题 答案概要...
- PCI、PCI-X、PCI-E、PCI-E Card、Mini PCI-E、M.2、Add-in Card 它们有啥区别?这些概念你搞清楚了吗?
- uiautomator2 半自动发布视频脚本
热门文章
- 软件测试OA办公自动化系统测试方案
- 速卖通平台关于欧洲EPR详细规则解析
- 将DVD视频转成IPAD支持的格式
- 【大数据哔哔集20210117】Kafka 的高可靠性是怎么实现的
- 重学《动手学深度学习》 —— 深度学习简介(第一章)笔记
- python读写-datas.数据集和csv文件-预处理kddcup99
- 能力强的项目经理是怎么催活儿的?(内附项目管理软件推荐)
- 【JavaScript 逆向】网易易盾滑块逆向分析
- java中rtsp转m3u8_NGINX+ffmpeg 实现 大华摄像头视屏转流RTSP转RTMP或M3U8
- Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.Configurati