KDE下完美的Unity桌面体验,扔掉active window control
psifidotos 的 applet-window 系列完全实现unity当年风采
熟悉我对Linux
桌面态度的人都知道我个人是很推崇当年Ubuntu
的Unity
桌面的全局菜单的整合功能的,其有着能把窗口标题栏以及窗口按钮和全局菜单整合为一体的功能,能够大大节省屏幕的纵向空间而不影响使用菜单以及查看窗口标题和使用窗口按钮。在我个人看来,Ubuntu
的Unity
桌面简直就是Linux
桌面环境的最强代表,直到它退出历史舞台。
至今我仍然向往那种能够有效率节省屏幕空间的功能却苦于没有什么桌面能够原生支持,但是,在我转向了archlinux+KDE
之后便发现了此事有所转机。
一开始我是使用KDE
的一个名为active window control
的插件进行使用,它能够将窗口标题栏和顶栏进行结合,但是全局菜单需要使用KDE
的原生全局菜单插件,并且其使用起来并不是很友好,不过它也能够在一定程度上节省了屏幕的纵向空间,所以也能够勉强够用,但是使用起来并不是很开心。
但是在KDE
桌面的强大的可定制化插件的支持下,由psifidotos所编写的applet-window
系列插件能够配合Plasma KDE
桌面来完美来达成‘这一愿想。
要实现Unity
桌面的功能需要安装他写的三个插件:
- applet-window-title
- applet-window-buttons
- applet-window-appmenu
说明:archlinux+KDE
(原理上来说manjaro+KDE
也可以)在安装好桌面后还需要安装cmake
和extra-cmake-modules
,一般在安装了这两个编译依赖之后如果还是编译不成功请在评论区说明清楚哦。
安装并配置三个插件
applet-window-title
github地址点击此处
克隆仓库
git clone https://github.com/psifidotos/applet-window-title.git
由于此插件使用QML
编写,所以可以直接使用命令装入插件
cd applet-window-title
plasmapkg2 -i .
- 图示
至此applet-window-title
安装完毕
applet-window-buttons
github地址点击此处
克隆仓库
git clone https://github.com/psifidotos/applet-window-buttons.git
因为该插件使用C++
进行编写,所以需要进行编译安装
cd applet-window-buttons
sh install.sh
- 图示
基本上如果没有编译依赖缺失的话可以一路编译下去然后自动安装
至此applet-window-buttons
安装完毕
applet-window-appmenu
github地址点击此处
克隆仓库
git clone https://github.com/psifidotos/applet-window-appmenu.git
同样因为该插件使用C++
进行编写,所以需要进行编译安装
cd applet-window-appmenu
sh install.sh
- 图示
基本上如果没有编译依赖缺失的话也是可以一路编译下去然后自动安装
至此applet-window-appmenu
安装完毕
配置
- applet-window-title
- applet-window-buttons
- applet-window-appmenu
后记
现在基本上已经能够得到和Unity
桌面那样的机制体验了,舒服。
impressionyang
- Angular开发实践(六):服务端渲染
- Leetcode-Easy 657. Judge Route Circle
- 洛谷P1138 第k小整数
- Leetcode-Easy 796. Rotate String
- 2017.10.23解题报告
- Leetcode-Easy 461.Hamming Distance
- 洛谷P1439 最长公共子序列(LCS问题)
- Leetcode-Easy 575. Distribute Candies
- 洛谷P2115 [USACO14MAR]破坏Sabotage
- 修改nw.js的exe文件使其请求管理员权限
- Leetcode-Easy 728. Self Dividing Numbers
- Leetcode-Easy 412. Fizz Buzz
- 洛谷P2678 跳石头
- 洛谷P2863 [USACO06JAN]牛的舞会The Cow Prom
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- HTML标记语言学习笔记
- 明知 | TypeScript 结合 egg.js 基本使用
- 入门 | egg.js 入门之egg-jwt
- 3大利器推荐,帮你写出规范漂亮的python代码
- 【Docker】修改docker镜像存储的路径
- conda报错
- docker安装和使用
- JAVA-常量及常量池
- 解决哈希冲突的常用方法分析
- 03 Confluent_Kafka权威指南 第三章: Kafka 生产者:向kafka写消息
- kafka生产者和消费者的基本操作
- 05 Confluent_Kafka权威指南 第五章: kafka内部实现原理
- 关于leetcode第718题求长度最长的公共子数组的解析
- JAVA类加载过程&主动引用和被动引用
- 关于leetcode第56题合并重复区间的解析