分类 troubleshooter 下的文章

wine程序的全局快捷键设置,以微信为例

问题

wine环境目前已经很完善了,配合arch的AUR使用起来非常方便。但自己在win环境下早已习惯的" ctrl+alt+w 呼出微信窗口 + 不用的时候直接关闭不占用桌面空间”并没有继承到linux环境下来

经查找到了一篇设置文章 使用deepin-Wine在ubuntu下安装QQ,TIM,微信等软件,以及deepin-wine的快捷键设置,似乎是解决了这个问题

但在使用过程中发现,经过这种方法呼出窗口的动作,会有0.5-0.8秒的延迟。既然都用上快捷键了,这么不跟手属实难受的很

继续查找解决方案,又找到一篇 How To Bind Global HotKeys to a WINE Program under Linux。这个方法几乎感觉不到延迟,遂记录在这里以供参考

思路

通过使用xdotool将全局快捷键映射给对应的进程

解决

首先确保xdotool正常安装。各包管理器均有

    Debian and Ubuntu: apt-get install xdotool
    Fedora: dnf install xdotool
    FreeBSD: pkg install xdotool
    macOS: brew install xdotool or sudo port install xdotool
    OpenSUSE: zypper install xdotool
    Archlinux: pacman -S xdotool

利用xdotool获取目标进程并将快捷键转发过去,这里以微信(WeChat.exe)为例

#/bin/bash
xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep WeChat.exe ) --name WeChat ) "ctrl+alt+w"

保存脚本到某位置,待用

根据桌面环境不同,后面的设置方式有所不同。

以xfce4为例

通过xfce4的键盘选项(Settings - Keyboard)设置快捷键

Screenshot_2022-01-16_15-43-04.png

以bspwm + sxhkd为例

添加快捷键到sxhkd(~/.config/sxhkd/sxhkdrc)

# wechat
ctrl + alt + w
    /home/dust/my_scripts/wechat_wine_active.sh

后续

使用这套方案而没有用deepinwine的现成脚本,主要是图快,没延迟。在需要映射大量快捷键的时候就显得笨拙了。不过可以从脚本的思路入手,将脚本中要获取的进程名,快捷键键位等做成脚本本身的可用参数。即可实现灵活使用和低延迟兼得

linux环境下使用笔记本触摸板有延迟(不“跟手”)的处理

症状

之前用chromebook pixel 2013的时候(archlinux with kernel 5.9.7)。触控板一直不太好用

表现就是在手刚按下并开始移动的时候总是感觉有点延迟

研究

在查阅了一系列资料后,发现类似现象在各种硬件各种发行版都有出现过,而且症状似乎各有不同

因为很难用语言描述这种问题。所以还是得自己try and error

在排除了 FingerLow / FingerHigh 相关参数,以及防误触 PalmDetect相关参数后。自己查到了原因

解决

synaptics里有两个属性:HorizHysteresis和VertHysteresis。直译过来就是横向/纵向的磁粘滞

尝试使用命令调整这两个参数测试一下

synclient VertHysteresis=0
synclient HorizHysteresis=0

后果然好使

别忘了写入到X环境的配置里,如

/etc/X11/xorg.conf.d/70-synaptics.conf

火狐移动版某些网页自动跳转到app url并“The address wasn’t understood”解决方法

比较典型的例子。在移动版火狐中,打开知乎某个地址,URL会被跳转为
zhihu://xxxxxx

浏览器就会显示类似如图界面:
CnMJOFrK0A.png

这个动作原本是为了在手机上已经安装了对应App的情况下,自动跳转到App内的
但如果没有/不想安装App的前提下,这种强行跳转会直接导致页面在移动端浏览器上无法查看

不过还好火狐移动版的内部设置里有可调节的选项

1. 和PC版火狐类似,移动版也可以打开浏览器设置。在地址栏中输入

about:config

2. 在查找内容中输入

external-

下面的设置选项中会自动筛选出所需内容。如图
QGFKU6QDSK.png

3. 找到network.protocol-handler.external-default。默认为True

点击Toggle将其改为False

这样就不会被跳转了
但也无法通过移动版火狐中的URL再跳转到手机App内
不过至少解决了没法查看的情况

关闭windows拖拽窗口晃动会最小化其他窗口的交互

平时用win的时候都是搭配windowGrid使用的。所以经常会有

拖住窗口 -> 空格激活grid对齐 -> 拖放

这样的操作。然而windows从win7开始加入了一个非常沙雕的交互操作,即 “拖住窗口晃动两下会让其他的窗口最小化”,而且还是默认开启。十分恶心

查了一下这个操作叫Aero Shake。引用SuperUser上的关闭方法

开始 -> 运行-> 输入‘gpedit.msc’打开组策略
用户配置 -> 管理模板 -> 桌面 -> 关闭 Aero Shake 窗口最小化鼠标手势 -> 启用

mmc_2018-11-25_14-03-40.png

解决。再也没有睿智的自动最小化打扰了

Chromebook安装linux后合上屏幕或休眠导致重开时重启的问题

症状:

Chromebook pixel 2013,安装gallium os或ubuntu(独立安装,不保留chrome os)
任何时候合上屏幕,或系统idle一定时间后进入休眠状态。之后重新唤醒设备会直接重启

原因:

根据这里的说法。此现象与chromebook kernel对tpm的处理有关。详情请看这里的讨论

解决方法:

修改grub配置文件

sudo vim /etc/default/grub

配置中找到此行:

GRUB_CMDLINE_LINUX_DEFAULT=

确保其参数中包含tpm_tis.force=1 tpm_tis.interrupts=0

修改后的效果类似:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash tpm_tis.force=1,tpm_tis.interrupts=0 acpi_osi=Linux"

保存退出后,更新grub。重启后即可

sudo update-grub