分类 折腾=-= 下的文章

https://fcitx-im.org/wiki/Hall_of_Shame_for_Linux_IME_Support
里面最恶心的一条:Some preedit text might be typed in to input box
一些预编辑文本可能会被输入到输入框中,hzh
2024-12-16T13:41:30.png
以下表格为部分摘录并不完整


点击展开/隐藏

NameVersionUpstream bug reportDescriptionWorkaround
FirefoxAt least since 3.6https://bugzilla.mozilla.org/show_bug.cgi?id=641445Cannot input in flash within plugincontainer by XIMUse im module, or set dom.ipc.plugins.enabled.libflashplayer.so to false in about:config
FirefoxSeems since 10https://bugzilla.mozilla.org/show_bug.cgi?id=787943
https://bugs.freedesktop.org/show_bug.cgi?id=39367
Menu sometimes cannot popup correctly with XIMUse im module
FirefoxAt least 8https://bugzilla.mozilla.org/show_bug.cgi?id=699022Caret position not get reported when there is no preedit.
FirefoxAt least since 50https://bugzilla.mozilla.org/show_bug.cgi?id=1182596Firefox reset input method when it is not needed.
ChromiumFixed in 45http://code.google.com/p/chromium/issues/detail?id=113805Chromium put preedit text in primary clipboard
Chromium http://code.google.com/p/chromium/issues/detail?id=142823Some preedit text might be typed in to input boxUse im module
GTK33.0 - 3.1.5https://bugzilla.gnome.org/show_bug.cgi?id=645993XIM works badly.Use im module
Opera10.0 - 10.50 Cannot input with IM

解决方案

为什么不使用ibus? 因为ibus-rime在我的设备环境下不弹出候选词框,除非你是盲僧否则没必要尝试。

Fedora41 Fcitx输入法配置

参考了:
安装Fcitx5
Fedora 38: Wayland/KDE 系统设定与 fcitx5/rime 输入法
Fedora配置Rime中州韵输入法
输入env一看默认配置写了xim,而且KDE设置里直接改选Fcitx5压根不生效,整套默认配置就是依托答辩,操作系统的输入法做到开箱即用对于中国人来说还是很难。😅
为了确保与我相同环境的人(Fedora41 KDE wayland)一定能在配置后用上正常的rime输入法,除非你知道自己在做什么否则完全按照我的方案来。
下面的配置方式是过盈式的,一些包可能会默认自动进行部分原本需要手动设置的参数。

安装必要的软件包

sudo dnf install \ 
  fcitx5 \
  fcitx5-{autostart,configtool} \
  fcitx5-{gtk,qt} \
  fcitx5-{rime,chinese-addons} \
  fcitx5-table-{extra,other}

写入配置文件

cat > ~/.config/plasma-workspace/env/im.sh <<'EOF'
#fcitx5
export INPUT_METHOD=fcitx5
export XMODIFIERS=@im=fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
EOF

接下来重启,现在你已经可以使用Fcitx5-rime了!

这个问题出现在几天前,我从互联网寻找了很多解决方案,包括但不限于:卸载重装CS2/Steam 或者两个都卸载重装,删除部分文件并校验游戏完整性,但是这些方案对我都不奏效。
最后在客服的帮助下我找到了这个:https://steamcommunity.com/app/221410/discussions/0/4027969835237318998/

主要内容就是:
sudo sysctl -w vm.max_map_count=16777216
设置每个进程可以拥有的最大虚拟内存映射数量。
通过cat /proc/sys/vm/max_map_count我可以看到当前我的内核参数里这个值是65530
我觉得这可能确实有点用,因为我曾经在尝试用Proton 运行DayZ时调整过该参数,修改后确实能让DayZ跑起来。
然后实践证明没什么卵用。

本来我不想换手机,但是最近被设备权限导致的一些问题恶心到了。痛定思痛,务必把设备权限拿回自己的手里,简单查询了一下确定OnePlus Ace3V 可以解锁Bootloader lock且价格合适之后我就下单花了1455买了,昨天买今天到,顺丰效率很高。
随机赠送了充电头和红色USB A2C线材,充电器型号为:VCBAOBCH ,手机代号:JHPC
到手后立即

sudo apt install adb fastboot 
adb reboot bootloader
fastboot flashing unlock

解锁完整个人都舒了口气,接下来迁移旧机数据,随后备份init.img 再刷入KernelSU即可将权限拿回自己手里。

问题原因

Linux(包括 Debian 12)默认将硬件时钟(RTC)设置为 UTC 时间(协调世界时),而 Windows 11 则会将硬件时钟视为 本地时间(Local Time)。因此,当你从 Windows 切换到 Debian 时,Linux 会将硬件时钟视为 UTC,并根据你的时区调整显示时间;同样,从 Debian 切换到 Windows 时,Windows 会将硬件时钟视为本地时间,从而导致时间显示错误。

要解决这个问题,你可以选择以下两种方法之一:要么让 Linux 也使用本地时间,要么让 Windows 使用 UTC 时间。

解决方案一:将 Linux 设置为使用本地时间

如果你更常使用 Windows,或者更习惯 Windows 处理本地时间的方式,你可以让 Debian 12 也将硬件时钟视为本地时间。这样在切换操作系统时,时间显示将保持一致。

步骤

  1. 在 Debian 12 中执行以下命令,将硬件时钟设置为本地时间:

    timedatectl set-local-rtc 1 --adjust-system-clock
  2. 运行以下命令,验证设置是否生效:

    timedatectl
  3. 你应该在输出中看到类似以下内容:

    RTC in local TZ: yes

这意味着你的 Linux 系统现在会使用本地时间,而不是 UTC 时间。

注意事项

虽然这种方法简单有效,但可能会对依赖于 UTC 时间的服务产生影响。例如,一些日志系统或时间同步服务可能会在这种设置下产生错误的时间戳。因此,如果你在 Linux 下运行这些服务,请谨慎选择该方案。

解决方案二:将 Windows 设置为使用 UTC

如果你更常使用 Linux 或者希望遵循 UTC 时间的国际标准,可以选择让 Windows 11 使用 UTC 时间。这样,两个操作系统都将以 UTC 为基础进行时间显示,避免冲突。

步骤

  1. 按下 Win + R,输入 regedit,并按回车,打开 Windows 注册表编辑器。
  2. 导航到以下路径:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
  3. 在右侧区域,右键单击空白区域,选择 新建 > DWORD(32位)值,并将其命名为 RealTimeIsUniversal
  4. 双击该值,将其数值数据设置为 1,然后点击 确定
  5. 重启 Windows 使更改生效。

注意事项

这种方法对 Windows 的使用几乎没有影响,特别是如果你不依赖 Windows 的时间戳精确性(如对本地时间的依赖较少)。Windows 和 Linux 都会以 UTC 为基准,保证两个系统时间一致。

总结

在双系统中纠正时间错误有两种解决方法,分别是让 Linux 使用本地时间 或者 Windows 使用 UTC 时间。根据你日常使用的操作系统以及对时间精度的需求,你可以选择适合你的方案:

  • 如果你更常使用 Windows,选择 解决方案一
  • 如果你更常使用 Linux,或者希望两个系统都基于 UTC 时间,选择 解决方案二

这样,无论你在两个系统之间如何切换,都能确保时间显示正确。


必看:NvidiaGraphicsDrivers ——Debian Wiki

启用专有/争议存储库

命令忘了,手动编辑吧=-=手动编辑是不可能的,一行命令能解决我为什么要再打开编辑器?
sudo apt-add-repository non-free
sudo apt-add-repository contrib
你还可以使用--remove参数禁用某个存储库,比如main

安装驱动

sudo apt install nvidia-driver firmware-misc-nonfree

启用wayland

使用NVIDIA驱动程序启用内核模式设置

echo 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX nvidia-drm.modeset=1"' | sudo tee /etc/default/grub.d/nvidia-modeset.cfg
sudo update-grub
## 避免休眠问题
sudo apt install nvidia-suspend-common  #可能已被安装
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service

验证是否已启用PreserveVideoMemoryAllocations NVIDIA模块参数

cat /proc/driver/nvidia/params | grep PreserveVideoMemoryAllocations
我们希望他输出1
这时候你大概还没有在安装后重启操作系统,所以这个文件压根还不存在。为了一劳永逸,你可以执行如下命令提前解决,反正多重复一次也没什么关系。
echo 'options nvidia NVreg_PreserveVideoMemoryAllocations=1' | sudo tee /etc/modprobe.d/nvidia-power-management.conf
sudo reboot #重启直接选择Wayland登录,如果你刚安装好的的操作系统没被你动过别的地方那么Wayland应该可用正常使用。

本文标题很长,但是没有废话:请再次确定你的设备情况是否与我相同
解决Debian12 N卡驱动更新到bookworm-backports 版本BIOS 使用dGPU(独显直连)模式时被迫从wayland切换到X11导致开机无法自动切换到KDE登录界面的问题

为什么我不得不使用X11

我通过backports更新到了最新的Nvidia driver 版本:
NVIDIA Driver Version:535.183.06
NVML Version:12.535.183.06
这个版本即使设置nvidia_drm.modeset=1 wayland登录仍然会卡在黑屏+鼠标的界面动弹不得。
即使时过去的Stable版本驱动可使用wayland,也不可避免出现多窗口时闪屏的问题且无法修复。
所以我不得不使用x11。

解决问题

sudo nvidia-settings
选择X Server Display Configuration
确定此页面配置信息无误后点击右下角Save to X Configuration File
点击保存即可。
接下来关机重启X11登录试试吧!

今天下午从下班开始陆续收到某不知SEO站点广告机器人发送的七八条垃圾评论,令我感到极度恶心。遂搜索评论验证插件,最终决定使用CaptchaPlus
该插件支持 hCaptcha 和Turnstile,看网友评论效果不错。
今天开始试装,如无法发送评论请通过mastodon或matrix联系我,链接在关于页面。

准备工作

一个Canokey Pigeon,本地gpg密钥。(推荐主密钥+子密钥,仅将子密钥转移到Canokey里。)
如果你还没有准备好GPG密钥,请参考使用GPG 生成SSH密钥替代密码进行SSH登录认证 & 续期GPG密钥

阅读官方文档/社区案例

CanoKeys 使用文档
Canokey 签名和认证应用指南——Dejavu’s Blog
我在Debian12上使用非root账户 依赖systemd,因此需要创建并修改以下文件:

sudo nano /etc/udev/rules.d/69-canokeys.rules
# GnuPG/pcsclite
SUBSYSTEM!="usb", GOTO="canokeys_rules_end"
ACTION!="add|change", GOTO="canokeys_rules_end"
ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42d4", ENV{ID_SMARTCARD_READER}="1"
LABEL="canokeys_rules_end"

# FIDO2/U2F
# note that if you find this line in 70-u2f.rules, you can ignore it
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42d4", TAG+="uaccess", GROUP="plugdev", MODE="0660"

# make this usb device accessible for users, used in WebUSB
# change the mode so unprivileged users can access it, insecure rule, though
#SUBSYSTEMS=="usb", ATTR{idVendor}=="20a0", ATTR{idProduct}=="42d4", MODE:="0666"
# if the above works for WebUSB (web console), you may change into a more secure way
# choose one of the following rules
# note if you use "plugdev", make sure you have this group and the wanted user is in that group
#SUBSYSTEMS=="usb", ATTR{idVendor}=="20a0", ATTR{idProduct}=="42d4", GROUP="plugdev", MODE="0660"
SUBSYSTEMS=="usb", ATTR{idVendor}=="20a0", ATTR{idProduct}=="42d4", TAG+="uaccess"

修改后
sudo udevadm control --reload-rules && sudo udevadm trigger

安装必要的依赖

sudo apt install libpcsclite1 pcscd scdaemon
否则在执行:gpg --card-status 查看智能卡状态时会出现如下错误
gpg: 从 ‘scdaemon’ 获取版本时出现错误: 没有智能卡守护进程gpg: OpenPGP 卡不可用:没有智能卡守护进程

依赖正常安装后先查看本地密钥列表
xfox@JiaoLoong5-76s:~$ gpg --list-keys

/home/xfox/.gnupg/pubring.kbx

pub rsa4096 2022-10-09 [SC] [有效至:2028-01-31]

  7CF9D5312AC4AF470A6F83E052DD030D36987CE3

uid [ 未知 ] x fox mailto:axfox@foxmail.com
sub rsa4096 2022-10-09 [E] [有效至:2025-10-08]
sub ed25519 2024-02-01 [A] [有效至:2028-01-31]

开始转移

转移后的本地计算机的密钥将消失,如果你希望他仍然存在必须提前导出备份)
gpg --expert --edit-key yourmail@mail.com/指纹
key 1 # 勾选第一个子密钥(勾选后回显内容里可见被勾选密钥前有一个*
keytocard #写入以上勾选的一个密钥
key 1 # 取消勾选
重复以上操作将你需要转移到Canokey的所有子密钥迁移进去。
此时输入save 即可保存你的操作。

特别注意 LOOK at ME!

官方文档要求你修改~/.gnupg/scdaemon.conf 但是,你不应该完全按照docs写的那样操作!

pcsc-driver /usr/lib/libpcsclite.so #Debian用户无需此行!系统缺省路径即为正确路径,如果一定要填写,务必按照你的硬件架构填写正确的库文件路径!
card-timeout 5 #你不写也不是不能用
disable-ccid  #Debian12/13无需此行!仅在GnuPG版本超过2.4的发行版上启用!

省流: Debian用户别去改~/.gnupg/scdaemon.conf