/速查/

Fydetab Duo 折腾

TocHomeGithubInfo

买了一台 Fydetab Duo 折腾,配到哪写到哪,完全没有逻辑。

Android

如果能从sd卡启动android就好了

旋转屏幕可以使用Rotation

ArchLinux

Arch Linux如wiki上写的开箱即用。

换源

清华大学开源软件镜像站 Arch Linux ARM 软件仓库

输入法

gnome使用iBus

sudo pacman -S ibus-rime

重启后去系统设置里配置键盘即可。

YAY

See arch wiki yay

中文字体

刚安装好时缺字体,从这里抄一份字体清单。

sudo pacman -S --needed adobe-source-han-serif-cn-fonts wqy-zenhei noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra

软件包

 sudo pacman -S --needed git firefox syncthing nvim vim neovim-qt wl-clipboard inkscape gimp fish ibus ibus-rime eog evince texlive texlive-lang

Gnome 插件

安装

pacman -S gnome-browser-connector

在Firefox打开Gnome Extensions,安装对应firefox插件。

  • Screen Rotate
  • TouchUp
  • Caffine

Mathematica ARM

Mathematica为树莓派提供了一个免费非商用版本。因为树莓派是arm的,所以这个deb包实际可以运行在其他linux arm机器中。your-diary 编写了一个安装脚本,虽然好像年久失修,我无法运行,但是可以手动按其中的步骤安装,大体就只是

  1. 下载deb包
  2. 解压deb包得到里面的data
  3. 将里面的文件复制到/opt
  4. 创建符号链接到/usr/bin

这个软件包自带给树莓派的授权,所以其他linux机器会导致鉴权失败无法启动,因此需要手动把Licensing文件夹删除。其位于

/opt/Wolfram/WolframEngine/{version}/Configuration/

下。然后自行激活。(可以参考 https://tiebamma.github.io/InstallTutorial/ )

然后一个方便的desktop文件自然是极好的:

[Desktop Entry]
Version=1.0
Type=Application
Name=Mathematica
Comment=Wolfram Mathematica Computational System
Exec=/opt/Wolfram/WolframEngine/14.3/Executables/Mathematica %F
Icon=/path/to/icon
Terminal=false
Categories=Education;Science;Math;
Keywords=mathematica;math;wolfram;calculation;
MimeType=application/mathematica;application/x-mathematica;
StartupNotify=true

命名为Mathematica.desktop然后放到/usr/share/applications中。

让触控笔防误触

使用触控笔时gnome不会阻止手继续戳屏幕,所以可以编写一个脚本让检测到笔悬浮时禁用触摸屏。

脚本有依赖:

sudo pacman -S python-evdev
#!/usr/bin/env python3
import evdev
import threading
import sys
import time
import os
from select import select

# ================= 配置 =================
# 抬笔后延迟多久恢复触控 (秒)
RESTORE_DELAY = 3
# =======================================

touch_device = None
stylus_device = None
restore_timer = None
is_grabbed = False

def find_devices():
    """自动查找触控屏和手写笔"""
    devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
    t_dev = None
    s_dev = None

    for dev in devices:
        # 根据名字匹配设备,忽略大小写
        name = dev.name.lower()
        if "touchscreen" in name:
            t_dev = dev
        elif "stylus" in name:
            s_dev = dev
    
    return t_dev, s_dev

def enable_touch():
    global is_grabbed
    if not is_grabbed or touch_device is None:
        return
    
    try:
        # 解除独占,恢复触控
        touch_device.ungrab()
        is_grabbed = False
        print("✅ 触控屏已恢复")
    except Exception as e:
        print(f"Error ungrabbing: {e}")

def disable_touch():
    global is_grabbed, restore_timer
    
    # 如果有恢复计时器在跑,取消它
    if restore_timer:
        restore_timer.cancel()

    if is_grabbed:
        return

    try:
        if touch_device:
            # 独占设备,屏蔽触控
            touch_device.grab()
            is_grabbed = True
            print("🚫 触控屏已禁用 (笔进入范围)")
    except Exception as e:
        # 设备可能被拔出或正被其他程序独占
        print(f"Error grabbing: {e}")

def schedule_restore():
    global restore_timer
    if restore_timer:
        restore_timer.cancel()
    # 启动定时器
    restore_timer = threading.Timer(RESTORE_DELAY, enable_touch)
    restore_timer.start()

def main():
    global touch_device, stylus_device

    # 必须以 root 运行
    if os.geteuid() != 0:
        print("错误: 请使用 sudo 运行此脚本")
        sys.exit(1)

    print("正在搜索设备...")
    touch_device, stylus_device = find_devices()

    if not touch_device:
        print("❌ 找不到触控屏 (Touchscreen)")
        sys.exit(1)
    if not stylus_device:
        print("❌ 找不到手写笔 (Stylus)")
        sys.exit(1)

    print(f"Found Touchscreen: {touch_device.name} ({touch_device.path})")
    print(f"Found Stylus:      {stylus_device.name} ({stylus_device.path})")
    print("\n服务已启动,按 Ctrl+C 退出...")

    # 循环监听手写笔事件
    try:
        # select() 允许我们阻塞等待,直到有事件发生,不占用 CPU
        while True:
            r, w, x = select([stylus_device.fd], [], [])
            for fd in r:
                for event in stylus_device.read():
                    # BTN_TOOL_PEN (code 320) 是标准的笔接近信号
                    # value 1 = 进入感应区, value 0 = 离开感应区
                    if event.type == evdev.ecodes.EV_KEY and event.code == evdev.ecodes.BTN_TOOL_PEN:
                        if event.value == 1:
                            disable_touch()
                        elif event.value == 0:
                            schedule_restore()
                            
    except KeyboardInterrupt:
        print("\nStopping...")
        if is_grabbed:
            enable_touch()
    except OSError as e:
        print(f"\n设备连接丢失: {e}")

if __name__ == "__main__":
    main()

配套的systemd控制文件:

[Unit]
Description=Auto Disable Touchscreen on Stylus Proximity
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/python /path/to/palm_rejection.py
Restart=on-failure

[Install]
WantedBy=multi-user.target

将service文件放到 /etc/systemd/system/palm_rejection.service 。 然后启用它:sudo systemctl enable --now palm_rejection.service

Fyde OS

Android 子系统

似乎在chrome://flags里打开Enable custom ARCVM memory size可以优化某些占内存软件的体验

  • 其下面的小猫猫代理可以系统范围的使用,包括Crostini
  • 通过KDE connect 可以和电脑互联

Crostini

  • Syncthing 连不上局域网设备?我还是用Android上的Syncthing-fork吧
  • 共享的文件夹在/mnt/chromeos下,通过ln -s可以方便的访问

Debian

包都太老了不好用

Archlinux

安装

安装A

安装B

注意需要好的互联网连接!

中文输入法 Fcitx5

Arch Wiki

似乎需要在~/.sommelierrc内设置

/usr/bin/fcitx-autostart

但我的/usr/bin下没看到fcitx-autostart

自动启动,并配置环境变量

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

安装好后可能没法通过快捷键开启,但可以通过fcitx-remote临时测试,再编辑配置文件设置好键位

GTK应用用不了输入法?为什么呢

2025/11/29
目录