KDE Connect —— 让 Android 手机成为 KDE 桌面的一部分

此文章最初发布于 LinuxStory

最近一年我都在使用KDE,这里分享一个无意间在Google Play商店上看到的App:KDE Connect。

KDE Connect项目致力于让设备间能够互相通信。例如,利用KDE Connect你可以在你的电脑上接受到来自手机的通知,或者将手机用作是桌面电脑的远程输入设备。为此,KDE Connect中实现了一个网络安全通信协议,并且可以在此之上开发各类插件。目前KDE Connect为KDE、Android和黑莓开发了客户端,很快也会支持iPhone。  ——来自KDE.org

功能

当装有KDE Connect的电脑和手机处于同一个局域网中,它们就可以通过KDE Connect进行互相通信。在KDE桌面的系统托盘中有一个KDE Connect的图标,上面显示这当前手机的电量和目前手机所有的通知。当手机收到通知时,KDE桌面也会弹出相应的桌面通知。

除此之外,在KDE桌面上也可以利用KDE Connect无缝地访问手机(/sdcard)中的文件,也可以互相推送文件。这一功能也集成进了Dolphin文件管理器中。

手机也可以通过KDE Connect对KDE桌面进行控制,例如移动鼠标光标、控制音乐播放等。值得一提的是,当手机收到来电时,KDE Connect会弹出桌面通知并暂停音乐播放,这样就不用在接电话的时候手忙脚乱地关闭音乐播放器了。

当然Android手机也可以在系统的分享菜单中找到KDE Connect,藉此在手机上看到的不错的东西可以非常方便地在桌面上打开。同时KDE Connect也会在设备间同步剪贴板内容。

1227759436

安装

在Linux上利用软件包管理程序就可以安装KDE Connect(不过需要满足相应的依赖,GNOME用户可能需要安装很多来自KDE的软件包)。
如果使用的并非KDE桌面,你还需要额外安装indicator-kdeconnect。Ubuntu用户推荐使用这个PPA来安装。

如果不使用图形界面的话,可以向KDE Connect的守护进程传入“-platform offscreen”命令行参数(例如killall -9 kdeconnectd; /usr/lib/libexec/kdeconnectd -platform offscreen)

Android手机上的安装直接通过Google Play商店即可。没有梯子的也可以通过酷安下载安装。

配置

配置非常简单。当Android手机和KDE桌面处于同一个局域网时,在KDE Connect界面中它们可以看到对方,此时只需要配对即可使用。如果因为防火墙等原因无法自动访问,你可以在Android手机上的KDE Connect中直接输入桌面电脑的IP进行配对(当然也可以更改防火墙配置)。

之后就可以尽情享受KDE Connect带来的方便了!

lnav

在最开始的时候……

2019年1月前往印度高通出差,出差期间使用的是 MacBook Pro 进行调试。

每天需要看很多 log,平时在 Windows 上使用 TAT 进行 log 分析,但是在 macOS 上暂时不知道应该用什么看,就想着能不能找一个 vim/emacs 的 log 分析/过滤插件,不过一直没找到合适的;后来就直接找有没有对应的程序,于是就找到了这个 Log NAVigator。

不过不怎么会用,help 页比较长,而且 format 也难写,就懒得看,于是束之高阁……

接下来的故事……

2019年6月前往韩国三星出差,出差期间使用的依然是这台 MacBook Pro……

不过不一样的是,当时 macOS Catalina 和 iPadOS 13已经开始公测了(有 SideCar,用过的人都知道),就想着可以自带多屏办公了,还是多用用 macOS 来看代码分析问题……

所以就算是硬着头皮开始摸索着用 lnav。

当时用的功能仅限于 filter-in/filter-out,而且还不知道该怎么删过滤器,所以就看了两眼文档,不过感觉这个命令还是好麻烦啊,还要把那个正则重新写一遍(现在看来简直蠢萌)……

后来……

后来就发现可以用 <TAB> 快捷操作过滤器,感觉这个工具就不那么难用了(明明是开始的时候我太懒了好吗)……

就在刚刚!

我又看了一下帮助页,这个工具简直就是个神仙工具啊!

在使用 format 对 log 成功解析之后,各种高亮就出来了,然后配合 SQL 语句,就可以开始各种过滤。

这也太厉害了吧!

最后附上文档(当然,在 lnav 里用 ":help" 命令也可以查看帮助文档)。

https://lnav.readthedocs.io/

关于KDE Connect

2015年的时候我写过一篇文章,关于KDE Connect。
时至今日,我依然在使用这款软件——不仅仅是因为好用。
由于新客户端的加入,扩展了这款app(或者说是协议)的生态和使用场景。不得不说,这款app为多设备协作提供了更多可能。

新加入的客户端有:

不过遗憾的是,目前iOS和Windows这两个主流平台还没有这款app进行适配。

红黑树(一):概念

(摘自维基百科)红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在 O(log n) 时间内做查找,插入和删除,这里的 n 是树中元素的数目。

红黑树的性质

红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:
1. 节点是红色或黑色。
2. 根是黑色。
3. 所有叶子都是黑色(叶子是NIL节点)。
4. 每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点。)
5. 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。

红黑树的应用(欢迎评论中补充)

内核中的CFS调度算法
STL::map