飞蚊话 发布的文章

视频点此

如果你想在手机和电脑之间互传文件,你会怎么做?

电脑端查看手机的短信、电话、应用通知等,你会怎么做?

反之,手机查看电脑端通知,你会怎么做?

如果你躺在床上用电脑看剧,都要准备什么东西放在身边?

只需要一个程序就够了。

KDE Connect是KDE桌面环境的一个配套小插件,但与其说是一个电脑手机同步的工具,我更偏向于将其描述为一个促使电脑手机完全融合操作的小程序。接下来具体看看如何安装和使用。

一、安装

电脑端,只需要安装kdeconnect即可。Win、OS X也兼容。如果你是完全安装状态的KDE桌面,那么这个插件应该默认就是安装好的。而且可能只有KDE桌面支持全部功能。

手机端,下载KDE Connect工具并安装。仅支持安卓,你可以通过play商店安装。同时,之后使用的时候可能需要你允许一些权限,按照提示操作即可。

接下来,手机和电脑连入同一个局域网中,并启动各自的程序,手机端便可以看见电脑端的入口了。第一次启动会申请配对,电脑端同意即可。

至此,手机和电脑便关联起来了。

二、功能

它有很多功能可供使用,我最常用的就是文件互传。手机传电脑,只需要点击文件传输,然后选择文件发送,很快电脑端便会弹出已保存的通知,你只需要去往你的家目录的下载文件夹查收即可。电脑端传输则更为方便,文件管管理器打开到需要的文件,右键-通过KDE Connect 发送到,文件便被发送过去了。

另一个——或者说另一对常用的功能就是远程输入和多媒体控制。手机端点击远程输入,你的手机就变身成为电脑的触摸板了。如果需要输入内容,则只需点击右上的键盘图标,这时你的手机又会变成电脑的键盘。这里需要注意一下,中文是输入不了的,所以如果需要输入中文的话,需要利用电脑的输入法,也就是手机输入英文字母,从而触发电脑上面的中文输入法输入中文。

我会更多的使用触摸板这个功能,这样我就可以赖在床上遥控电脑放片子或者播音乐了。不过放音乐的话,还有更方便的多媒体控制功能。一旦开始播放音乐,便可以切换到多媒体控制标签。在这里,你可以进行上下曲切换、暂停播放、快进快退以及音量调整控制。其中,暂停播放和音量控制同样可以用在视频软件,或者正在放视频的Chrome中。对于音量调节,分成了两部分。上面有下拉列表的一项是分应用调节。比如你同时打开了网易云和Chrome,那么通过上面的音量调整,你就可以分别对这两个应用的音量进行调节。相对应的,下面的音量便对应了全局音量。

我感觉同样很有使用价值的功能就是剪切版共享。只需要在电脑和手机端打开剪贴板同步功能后,就可以随意的复制粘贴了——无论是电脑复制手机粘贴,还是手机复制电脑粘贴。

KDE Connect还有一些其他功能。比如手机端的Slide Show,点开只有两个按钮。通过这个功能可以控制幻灯片的播放。又比如手机端的执行命令,你可以一键执行事先在电脑端设置的命令。举个例子:经过下列操作之后,我就可以一键关机。

  • 电脑端右键托盘图表 - KDE Connect设置
  • 点击已连接的设备,右侧列表点击执行命令的设置按钮,弹出窗口
  • 名称随意,比如关机,右侧输入关机命令poweroff,确定

现在,进入手机端的执行命令,就可以看到一个名为关机的项目,点击,你的电脑就被关闭了。

通过这个命令,我们可以快速启动一些命令,从而免去了远程控制鼠标看不清屏幕的尴尬。比如打开网易云音乐(netease-cloud-music),打开Youtube(google-chrome-stable https://www.youtube.com/)等等。总之命令就是你在终端启动程序时候需要输入的内容。

还有很多的可交互项目,手机端可以点击右上角 - 插件设置,电脑端可以在设置页面查看。

总之,KDE Connect这个工具,麻雀虽小,五脏俱全。根据你自己的需要进行配置,让你的手机和电脑根据你自己的要求进行协作,便捷生活,成为你真正的生产力提升助手。

视频点此

“Linux不能玩游戏!”

就我真想给你一巴掌……

哦,如果你只是玩儿腾讯游戏,那就把这一巴掌打回来吧还是……

今天就简单的来聊聊Gaming on Linux.

其实我经常会提到一句话:

你对Linux的认识还停留在十年前。

游戏就是一个很明显的例子。就连我往期内容也有人说不能玩游戏。如果你也是这么认为的,那推荐去看看Steam Play的那期内容,你会对这个问题有一个新的认识。

不过,还有一些不在Steam内的游戏,有没有办法玩耍呢?

有。而且还能让你在一个平台管理你所有平台的游戏。这就是Lutris。接下来主要介绍一下它的安装过程。

先来参照 https://github.com/lutris/lutris/wiki/Installing-drivers将显卡驱动的包补全。这地方就显示出来pop OS作为游戏系统的优势了:它把显卡的相关包都实现做了配置,你大可跳过显卡这一步。

接下来安装Lutris和相关包。因为是开源程序,所以直接通过源来一键安装即可:

pacman -S dxvk wine-staging lutris
  • dxvk: DX到vulkan的翻译层
  • wine-staging:有些发行版叫winehq-staging。而且有些发行版不包含这个包,需要去winehq官网对照步骤增加源

安装好这些之后,再前往https://github.com/lutris/lutris/wiki/Wine-Dependencies安装剩余的一些可选依赖。到此,lutris就可以正常运作了。不过,还有一些额外的配置,虽然配不配两可,但配置之后可以提升百分之二三十的性能。来看看。

  • 安装gamemode:Debian源里边会存在,arch分支则通过aur安装。包名就叫gamemode
  • 查找库文件路径:无论通过文件管理器还是命令,只要找到libgamemodeauto.so.0,将完整路径复制备用。
    查找文件的命令find /usr -name 'libgamemode*'
  • 现在,打开Lutris,点击左上图标- Preferences,切换到System Options,在Enviroment variables增加一项

    • Key = LD_PRELOAD
    • Value = 前面复制的路径

到此,gamemode配置完成。如果你还想进一步优化性能,可以参考https://github.com/lutris/lutris/wiki/Performance-Tweaks的最后两节,在上述位置中增加变量。

在上述全局配置完毕后,如果想再进一步提升性能,则可以选择tkg版本的wine,这个系列的wine启用了ESync,对性能的提升同样不容小觑。但若发挥ESync的效果,需要对系统内核进行一下调整。

  • 通过命令ulimit -Hn可以查看当前系统是否已经启用ESync。只要返回的数值不小于524288,那么就无需继续配置了。(systemd 240以后的版本默认是启用的)否则继续操作
  • 编辑/etc/systemd/system.conf,在结尾增加DefaultLimitNOFILE=524288
  • 编辑/etc/systemd/user.conf,在结尾增加DefaultLimitNOFILE=524288
  • 重启,再通过命令ulimit -Hn验证,应该就完成了

还有一些其他的配置,如果你想的话,可以去https://github.com/lutris/lutris/wiki/阅读。

到此,一个系统显卡双调优的、几乎支持全平台的游戏主机产生了。在lutris里,你可以导入你的Steam列表、GOG列表、甚至是你的KDE内置小游戏都可以被导入其中。自然,你也可以通过这个软件安装一些Steam平台以外的Windows游戏。安装也很简单:

  • 前往lutris官网
  • 切换到Games标签页
  • 搜索你想安装的游戏,进入其页面
  • 点击Install

然后,什么都不用管了,lutris会自动配置、下载、安装。

借这个机会,再来说两个关于显卡的问题。

第一、显卡加速组件。

更多的会是opencl和cuda这两种。如果你是英伟达显卡,那么cuda不会像win的驱动那样随安装包附带,需要另行安装。而cuda对驱动版本有对应关系,所以如果你需要cuda,那最好就不要从英伟达官网下载驱动,直接通过源来安装即可(以archlinux为例):pacman -S nvidia cuda

opencl同样如此。但因为AMD和Intel的驱动均为开源驱动(或者说是不需要闭源驱动。因为开源性能更强),驱动版本和opencl包总是同步更新的所以这两个平台无需考虑版本对应问题,直接通过源来安装即可:

pacman -S opencl-headers
pacman -S opencl-mesa lib32-opencl-mesa

至于英伟达,与cuda一样,不要手工从官网下载驱动安装,因为这样一来驱动版本可能会跟不上opencl的版本造成版本不对应。所以一切组件均通过源安装即可:pacman -S opencl-nvidia lib32-opencl-nvidia # 这里假设nvidia驱动已经从源安装

第二、英伟达驱动更新后,库连接被打破

如果你是从源里边安装的驱动,一般不会出现这种问题。但出现这种问题也无需担心,只需要通过ln -s手工建立软连接即可。

视频点此

这其实是从看板的一个问题引出来的。这个问题其实可能不是很常见,但与字体相关的一个问题却经常会看到:

Linux下面的中文排版和Word中不同。

这是误解,还是冷知识呢?还请你看过今天的内容后自行决断吧。

先来了解一个概念:版权。版权亦称“著作权”,指作者或其他人(包括法人) 依法对某一著作物享受的权利。根据规定,作者享受下列权利: (1) 以本名、化名或以不署名的方式发表作品; (2)保护作品的完整性; (3) 修改已经发表的作品; (4) 因观点改变或其他正当理由声明收回已经发表的作品,但应适当赔偿出版单位损失; (5) 通过合法途径,以出版、复制、播放、表演、展览、摄制片、翻译或改编等形式使用作品; (6) 因他人使用作品而获得经济报酬。上述权利受到侵犯,作者或其他版权所有者有权要求停止侵权行为和赔偿损失。

上面的话来自百度百科。放到现实中说就是:我可以用,你也可以用,但是咱都别随便就四处分发拷贝。如果想传播,那至少也要获得许可。

微软的那些字体就是如此。所以你能明白为什么Linux下面的中文排版会混乱了吗?没错,发行版们不拥有Windows系统下面那些字体的版权,所以只能用开源字体做替代,因而就不能保证版式相同了。

但,这能拿出来作为Linux的一项弱势吗?

显然,如果你拥有自己的大脑,你应该可以意识到:既然版式打乱的原因是字体缺失,那么让Linux拥有Windows字体不就可以解决了?

没错,就是这么一层窗户纸,却挡住了很多人的眼睛。所以接下来看看Arch下面如何补全Windows字体吧。

复制

我不相信有这个问题的人电脑里面没有一个Windows系统,所以直接进入Win的系统盘/Windows/fonts,将文件拷贝到/usr/share/fonts,然后打开终端,输入fc-cache -fv刷新缓存。再打开文档,你就会发现自己的创造性思维是多么的缺乏了。

不过注意哦,如果你的文档是在Office 2007里边编辑的,那么因为07版本的docx结构有问题,打开依然会是混乱的版式。但这是07版office的问题,同样的文档放到office2010、13、16、365下面同样是混乱的。所以如果使用07版office,保存成不带x扩展名的文档才是让文档拥有兼容性的方法。

在Linux下面,还有一种字体安装方法,就是如同安装软件那样,直接通过源来安装。这有一个明显的好处:全自动部署,无察觉的自动更新。但很显然,这只能安装开源的字体,对于微软旗下的字体并不适用。不过Linux下面(我)最常用的中文字体文泉驿就可以这么安装。直接搜索 wqy-microhei,安装就行了。

AUR

对于Arch分支,无论多么刁钻的需求,AUR都能满足你。就像微软字体这种有版权限制的东西,你同样可以通过AUR完成安装。无论用命令还是图形界面,安装ttf-ms-fonts即可。

同样的,看板的nerd-font字体亦可以通过AUR安装。搜索nerd-font,安装需要的即可。我不推荐安装完整包,一,太大;二,太慢。就像看板描述的那样:

首先我尝试了aur下载nerd-font-dejavu-complete。提示raw.github...443 connectre refuse。生成ssh key后,还是443。放弃了。。

这是AUR的一个弊端所在。因为是用户维护,所以下载链接一般只有一个,而且多数是在国外。想这个描述的,显然这是因为网络问题导致的下载失败,与ssh的关系不大。

但raw.github这个网址是github的,它虽然慢,但其实并不是不能连上。所以索性就坡下驴,卡在哪儿就手工操作哪儿,让程序绕过去就得了呗。怎么做?

AUR说白了就是一个执行脚本,所以只需要打开pkgbuild,把里边的下载内容复制到浏览器进行下载,然后再安装就可以了。不过看板说不起作用我测试之后还真没发现,可能是中文编码占用了一些特殊符号的位置而我虚拟机没装中文的缘故?

当然,卡住的地方有时不是网络,而是很长时间不更新导致的依赖缺失——这也是用户维护的有一个大缺陷。就像看板里边的这个问题.

跟前面一样,就坡下驴安装法:哪儿错补哪儿。

我选择qt5编译的版本。因为KDE就是qt构成的,这样不但安装的依赖少一些,还能避免莫名其妙的错误。

先来看touchegg-qt5的AUR页面。评论提到连接换了。不过最后更新日期就在评论时间的1小时后,所以有理由相信这个问题已经被解决了。所以直接安装。

这时候会发现,它的依赖geis也是AUR安装,所以现在来geis的AUR页面看看。

最后更新在17年,而19年有评论需要补充依赖,所以当安装器询问是否要编辑geis的pkgbuild时,选择是,并增加xorg-server保存。

而geis又要从AUR安装grail,再看grail的AUR页面。可见最后的评论说找不到inputproto,看上方的依赖列表,这个包已经改名xorgproto-git,所以当安装器询问是否编辑grail的pkgbuild时,选择是,将inputproto修改成xorgproto-git,保存。

到此,过时的AUR都已经修复完成,安装就可以正常进行了。

当然,相对于touchegg,我更推荐libinput-gestures这个软件,因为如果你有archlinuxcn源,可以直接安装,而且AUR上面也有人为它制作了图形界面,非常好用。只需要AUR安装libinput-gesture-qt,然后通过命令sudo gpasswd -a $USER input将用户加入input组,注销再登录即可设置使用了。

这次没有直接针对看板的问题说解决方法,因为主要还是想让你能体会出来就坡下驴的解决方法是怎么用的。这个方法不止是针对Linux安装程序,硬件问题、软件崩溃都可以通过这个方法进行排查。所以就坡下驴这个解决问题的思路才是我做这个主题的目的所在。正因此,很多地方的细节我并没有说,也不打算去说。都说出来了,你的思路就被限制住了。曾经我在KDE美化的那个主题下面就说过,希望你可以Stay Creative.

视频点此

又到了激动人心的看板回复环节了!

今天来看这个.

我早就做过一个视频,就是说Steam已经开始针对类Unix系统开发Proton套件了,很多Windows专属的游戏都不再是Win专属的东西了。所以如果你是正版的Wallpaper Engine,直接从Steam里边安装呗…

然后就能发现,它依然用不了。因为它没有模拟Aero的组件。

所以,借着这个机会,来简单盘点一下Linux下的这些Wallpaper Engine。

注意哦,我是Archlinux,所以这其中的一些软件在其他的发行版下面可能需要自己手动编译安装,就没有这么方便了。


一、KDE壁纸

没想到吧,KDE自带动态壁纸插件。你只需在桌面轻点右键—配置桌面,在壁纸标签下点击获取新插件…,安装Smart Video Wallpaper或者Animated Image Wallpaper,待安装完成后将壁纸类型选择二者之一,调好设置即可。

同理,Gnome下应该也有类似的壁纸插件,自己找寻吧。找不到也别来我,因为我也不用Gnome,我也不是很清楚。

二、komorebi

一个强大的动态壁纸,具体可以参考它的github

在其他分支可能需要你对照github来自己编译安装,不过如果你是Arch分支的用户,那么通过AUR或者archlinuxcn源来直接获取。完成后启动,自己调整吧。


图片来自github

三、Variety

这个应该已经收录在很多发行版上了,所以基本上都是一键安装的状态。

但相对于上面的,这个动态壁纸会显得逊色一些。不过它的自定义性却更高。但我感觉它的原理是固定间隔合成壁纸,然后再切换桌面的壁纸。因为在KDE上你会发现,如果启用了桌面时钟,那么每当时间变更时,桌面壁纸都会有一个黑场过渡。


还有一些其他的软件可以时间动态桌面,包括这个工具,根据教程可以实现将Wallpaper Engine的壁纸移植到linux下应用。不过我没有测试过,有兴趣的可以尝试一下。

视频点此

其实对于Arch这种如此高自定义性的安装盘,用命令来安装才应该是最简单的方法。但如果你无论如何也不相信的话,那就试试这个不需要记忆指令的问卷式Arch安装程序吧。

一、联网,设置中国镜像源

其实只需要联网就行了,但由于通过安装程序更改镜像源会先行同步一次源,这时候同步的速度简直不要太慢,所以还是推荐先手工把镜像源换到中国,然后之后跳过镜像源选择即可。至于怎么换,参照手工安装,编辑/etc/pacman.d/mirrorlist即可。

二、获取脚本,安装

wget archfi.sf.net/archfi    # 获取archfi​
chmod +x archfi    # 增加脚本的可执行权限​
./archfi   # 运行脚本​

三、综合上面两步骤的方法

如果你连这都嫌麻烦,那在联网后直接使用我提供的脚本,就能综合上面两步,直接进入到archfi的界面:curl https://arch.bwsl.wang | sh

以前就听说过这个工具。但当时整体看上去部署好麻烦,而且我的工具又并不是不稳定,再加上当时看这玩意儿要想做到只转发境外又很麻烦,所以也就一直没在意过它。但最近越来越发现,我的努比亚仿佛天生就屏蔽ss的流量,所以感觉可能还是换一换工具能好一些。说干就干,开始迁移

介绍

V2Ray是近几年十分流行的网络工具,其功能强大,用途不限于如此,但因其能有效跨越而广为人知。有如下大放异彩的特点:

  • 开源。是Project V的核心工具,源代码开源;
  • 多协议支持。传输层支持TCP、mKCP、WebSocket等,上层协议支持Socks、ss、以及自定义的VMess等;
  • 可同时支持多个入站和出站协议,每个协议独立工作;
  • 多平台支持。原生支持Windows、Linux、MacOS三大常用平台,安卓、iOS两大移动平台有丰富的第三方工具;
  • 隐蔽性。流量可伪装成网页流量,更难被检测和干扰。

一句话总结:更好更强大,但更难上手和用好。

部署

现在已经有一键脚本。直接使用即可(Linux)。

curl -L -s https://install.direct/go.sh | bash

安装完成后,配置文件为/etc/v2ray/config.json,其中,”inbounds”下的这几项信息需要记录:port(端口)、clients中的id(用户id)和alterId(额外id),它们将在配置客户端时用到。

在VPS中放行上面提到的port,然后启动服务:

systemctl enable v2ray
systemctl start v2ray

即可使用。

但当前是没有什么伪装措施的,或者说,仅仅是使用了默认的vmess方法进行“混淆”。一旦检测到,那么必然就会露馅。所以接下来进行进一步的“打扮”。

伪装

通过一个正常的网站进行伪装,一来可以合理的解释为什么会有数据传送到这个ip上;二来可以走一层cdn,进一步伪装服务器ip和真实的作用;三来可以套上一层https,数据包就又加密了一次;四来,如果你的vps被屏蔽了,套上cdn还能让你的vps起死回生。

但这需要你有一个域名。

至于解析和cdn,我选择通过cloudflare来实现。当然也可以用其他的,比如直接使用域名商的域名解析。使用cf的好处在于可以直接提供cdn和https,省去了另行配置cdn和申请域名签名的步骤。

当然,如果有更好的cdn服务商就不要用cloudflare了…都快用烂了。

先将域名解析配置好。一级域名肯定是你自己的(比如是123.com)至于使用哪个二级域名无所谓(比如v.123.com,接下来以这个域名为例),或者直接使用主域名也可以。注意把cf的小云彩点亮以使用cdn功能——嫌慢的话就点灭,但https需要你为域名申请一个证书。

切换到SSL/TLS标签,将加密模式切换到Flexible;切换到Edge Certificates子标签,启动Always user HTTPS

至此,cf设置完成,接下来设置服务器。

进入到你服务器的宝塔面板(我一直在用宝塔面板,如果你使用单纯的环境,相信接下来的东西你也是会配置的),进行如下操作:

  1. 新建上述域名的网站。静态站还是动态站无所谓,反正有一个网站就行,这个网站也可以正常使用。比如说浏览器访问是你公司的wiki站点,实际上在提供v2ray服务
  2. 确定后,打开该站点的设置页—配置文件,在结尾的}前增加下述代码(开头是location 不知道为啥l总是显示不出来)

    location /v2ray { #使用软件访问v.123.com/v2ray,会连接到v2ray服务,浏览器访问则返502错误。这里的路径可以自定义
           proxy_redirect off;
        proxy_pass http://127.0.0.1:12345;   #v2ray的端口。应该与前边提到的port相同
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $Host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    其实就是反代,直接在网站设置的反向代理标签设置也可以。

  3. 修改前边生成的config.json,在inbounds下增加相关的配置,最终类似于这样:

     "inbounds": [{
        "port": 12345,
        "protocol": "vmess",
        "settings": {
          "clients": [
            {
              "id": "xxxxx",
              "level": 1,
              "alterId": 64
            }
          ]
        },   #上面的都是自动生成的,不必修改
        "streamSettings": {     # 载体配置段,设置为websocket
            "network": "ws",
            "wsSettings": {
              "path": "/v2ray"  # 与nginx中的路径保持一致
            }
          },
        "listen": "127.0.0.1" # 出于安全考虑,建议只接受本地链接
      }],

    注意:json文件不支持注释,上述配置中”#”号及后续内容都要删掉。

  4. 配置无误后,重启v2ray服务:systemctl restart v2ray

接下来浏览器访问域名,确定是https访问,并且出现首页内容,而URL输入映射到v2ray的地址(如前面假设的 v.123.com/v2ray),返回 Bad Request,则几乎可以说明配置完成了。接下来就到客户端了。

使用

Win和手机端的软件网上有很多,所以这里只说设置的内容

  • 地址/address:前边设置的域名(这里的例子应该写 v.123.com)
  • 端口/port:443
  • id:inbounds中的id
  • 额外id/alterId:inbounds中的alterId
  • 加密方式/Security:auto
  • 传输协议/network:ws
  • 伪装类型/type:none
  • 伪装域名留空
  • path:前边在nginx中设置的路径(这里的例子应该写/v2ray)
  • 启用tls传输

至于Linux,archlinuxcn源提供qv2ray,自带流量区分,即只处理出境流量。安装使用这个软件即可,设置同上。