使用 Home Assistant 控制 Logitech Unifying 频道

前言

自入手 MX Master 2S 起就对罗技的 Unifying 优联系列颇为钟爱,后来也把键盘换成了魔改 K375s 的 DIY 键盘。优联的 Flow 在双机双屏的情况下频道切换十分自如,但相较而言在双机共用一屏的时候因为手动切换频道的按键在鼠标底部就显得十分不便了。

此时购买带 KVM 的 HDMI 切换器使两台电脑共用一个接收器算是比较简单粗暴的办法,但因为听到不少关于此类切换器可能会在使用中遇到各种Bug迟迟没有下手。

于是我便想,有没有一种方法可以用命令来切换键鼠的频道,从而进一步设定调用规则来实现双机一屏的自动切换呢?想着想着我便找到了这个项目 marcelhoffs/input-switcher。经过 2 天的测试算是得到了一个相对满意的结果,特此记录一下。

Read More...

让 macOS 更好地合并同名文件夹

以往我在 Windows 下整理 NAS 上的文件时,遇到需要合并的同名文件夹时,只需要简单地把其中一个拖入到另一个文件夹所在的目录中。如若没有遇到同名文件冲突的情况,那么整个过程会在一瞬间完成,它时十分符合操作直觉的。

但在 macOS 下想要像这样合并两个文件夹却是意外地困难。

在 macOS 下,Finder 默认只为同名文件夹冲突提供了“停止”与“替换”两个选择,无须怀疑,这里的“替换”并没有字面之外意思。而在一番搜索后,不难会发现苹果设置了一个可以用 opt 键触发的隐藏的“合并”按钮。

但这个“合并”始终是以拷贝的形式进行的,这意味着每一次合并文件夹的时候 Finder 都会制造一次毫无意义的磁盘写入。而这份无意义的写入所造成的影响对于 NAS 用户来说,则会被传输协议、磁盘性能、网络带宽等因素进一步放大,最后从无意义进化成了一种折磨

对此,如果不愿意选择那些更迎合 Windows 使用习惯的第三方文件管理器的话,使用跟 Finder 高度耦合的 Automator 来跑一个合并行为更接近 Windows 的脚本可以算是一个折中办法。

Automator 能够很方便得透过 Finder 获取所选文件的路径,同时它也能调用 Finder 的弹窗选择器来手动选择一个路径来作为变量使用。像是这样:

upload successful

Read More...

在EdgeOS安装ZeroTier

EdgeOS更新2.0固件后底层系统从Debian7直升到了Debian9,现在已经可以直接通过ZeroTier官方提供的Linux安装脚本进行安装了。

安装ZeroTier

EdgeOS默认的apt源在国内的连接已经非常困难,非常容易因连接超时导致安装失败,建议自行替换国内镜像源。

1
sudo -i curl -s https://install.zerotier.com | sudo bash

安装成功后你将得到一个ZeroTier的Client ID。 接着用ZeroTier官网申请的网络ID来加入网络即可。

1
sudo zerotier-cli join [NETWORK-ID]

保护配置文件

为防止因固件升级导致配置文件丢失,我们可以把ZT的配置文件移动到/config/scripts再软连接回到原路径,这样在每次更新固件后重新执行一遍软连接就可以轻松恢复配置。

1
mv /var/lib/zerotier-one /config/scripts/ ln -s /config/scripts/zerotier-one

映射网络接口(可选)

EdgeOS无法识别ZeroTier的接口(ZT0),因此ZT0不会反映到EdgeOS的WEBUI上面。但即便如此,ZeroTier依然能够正常工作。 如果你闲得蛋疼,路由器上又正好有空闲的网口没地方用,那么可以来试一下把zt0映射到eth(0~4)上面。 在/var/lib/zerotier-one下创建一个devicemap文件,内容如下(将X替换成你闲置的那个口,下略)

1
<zerotiernetworkid>=ethX

重启ZeroTier

1
/etc/init.d/zerotier-one restart

这时ifconfig下的ethX应该已经对应zt0的接口信息了。

1
2
set interfaces ethernet ethX description "ZeroTier [NETWORK-ID]"
commit save

通过IPv6连接你的Plex服务器

目前国内IPv6的推进速度已经相当不错,对于有家庭服务器需求的用户来说,获取一个不知道能用多久的公网IPv4可能已经远远超过了获得原生IPv6的难度。 长期受到无公网IP的我拿到IPv6后想到的第一件事就是试试能不能透过公网连接自家的PLEX库。

前期工作

首先是配置路由器给局域各网客户机分配地址,不同路由系统对IPv6的自动化配置程度有所差异,我的Ubnt ER-X就属于比较麻烦的那种,好在官方论坛已经有比较详尽的配置示范。 仅仅配置完路由器后还无法通过IPv6测试,打开WIN10的防火墙,添加一条入站规则放行ICMPv6后一切显示正常。

Read More...

Embuary中文字体乱码修复

Embuary是我比较喜欢的一个Kodi皮肤,在我看来是kodi众多皮肤中仅有的几个符合现代审美的皮肤之一。

界面基本承袭Emby UI的设计语言,搭配Kodi + Emby这样的融合方案可谓是天衣无缝,虽然当初站了Plex的队,不过自己修改一下配色的话跟Plex也是挺搭的。 此皮肤原生支持Arial字体用于显示中、日等文本,但有一部分文字会显示成口口,打开一些其他插件更是口得一塌糊涂。

作者已在新版皮肤中修复此问题(仅限Kodi v18)

Read More...

在Debian Stretch上通过Steam进行游戏串流

Steam在Linux下已经有不少游戏,但这可不是我用它的理由。

Steam的家庭流式传输可以使某台PC上的游戏画面以流媒体的形式传输到同网络下另一台装有Steam的设备上,并接受该设备反馈的按键信息。并且在画面损失和延迟控制方面平衡的相当好。

由于是它的本质是流媒体传输,因此对接受端的硬件要求非常低,只需一台能安装Steam且能流畅播放H264编码视频的机子而已(HTPC绝配)。

Read More...

在Debian Strech上开启Miredo

Miredo是Debian/Ubuntu上的类Teredo服务,通常可以用它来访问一些ipv6的网络,除此之外,每台Miredo的客户机都可以分到一个2001开头的ipv6 。

这个ipv6对于内网的BT软件是否有实质性的帮助一直都没有确切的说法,但使用Miredo一段时间后观察数据流量,可以发现确实从它上面走了一些流量,可见它虽然帮助不大,但聊胜于无。

Debian的官方源自带Miredo,所以

1
apt install miredo

查看网卡信息

1
ifconfig

出现名为teredo的接口即表示安装成功 若出现RTNETLINK permission denied的错误提示 则需要在sysctl.conf的末尾下添加以下几项

1
2
3
4
vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

保存退出重启,这时会遇到另外一个问题。Miredo的默认启动优先级要高于域名解析服务,于是它在每次开机的时候都会因为无法正常解析中继服务器的域名而导致启动失败。

最简单的办法是将这个地址改成IP

1
vim /etc/miredo.conf

将原有的地址注释掉,添加一条

1
ServerAddress 83.170.6.76

保存重启后,检查Miredo运行状况

1
service miredo status

一切正常 。

在OMV4上安装Transmission并开启自动下载

OMV4的插件库上暂时没有任何BT下载器,虽然使用DOCKER安装一样很方便,但Transmission本身有非常优秀的GUI远端控制,配置完后几乎不需要再去使用WEBUI来管理,因此这里直接通过CLI安装了。

Debian的官方源本身提供Transmission,所以只需

1
apt-get install transmission-daemon

安装完毕后先中止服务,接着修改的它的配置文件

1
2
service transmission-daemon stop
vim /etc/transmission-daemon/settings.json

确保相关设置为以下参数以启用远端管理

1
2
3
4
5
"rpc-enable" = true,
"rpc-password" = yourpassword,
"rpc-port" = 9091 (or customport),
"rpc-username" = transmission (or customname),
"rpc-whitelist" = "\*",

在末尾添加watch相关参数以开启自动下载(非末尾项须逗号结尾)

1
2
"watch-dir": "PATH/TO/Watch”,
"watch-dir-enabled": true

保存并退出,重启Transimission应该就能用Transmission Remote GUI连接上了。 此时可直接通过Remote修改其他数值。

在Debian Stretch上安装OMV 4

原先兼职做NAS的HTPC已经接近服役一年,由于近期4K HDR的视频渐渐开始多了起来,Win10 的秋季更新也几乎同一时间提供了HDR的支援,这台基于Ubuntu的AllInOne一体机显然不再是优秀的HTPC方案,于是决定逐步将HTPC与NAS这两样需求分离开来。

OMV(OPENMEDIAVAULT)是基于Debian的NAS系统,对于原本就习惯使用Debian的人来说,与其说它是一个系统,不如说它是一套针对NAS应用的WEB管理组件而已,这跟我原先使用的Ubuntu+Webmin的组合并无本质上的不同。

Read More...