Skip to content
shorinkiwata edited this page Jun 17, 2026 · 52 revisions

这部分是一些有用但是被我弃用的东西,以及一些参考。

pacman常用命令

可以安装pacman的GUI。

sudo pacman -S pamac

常用命令:

  • 下载包但不安装
sudo pacman -Sw
  • 删除包,同时删除不再被其他包需要的依赖
sudo pacman -Rns
  • 查询包
sudo pacman -Ss
  • 列出所有已安装的包
sudo pacman -Qe
  • 列出所有已安装的依赖
sudo pacman -Qd
  • 清理包缓存
sudo pacman -Sc
  • 列出孤立依赖包
sudo pacman -Qdt
  • 清理孤立依赖包
sudo pacman -Rns $(pacman -Qdtq)
  • 无视依赖关系强制删除某个包
sudo pacman -Rdd

timeshift

sudo pacman -S timeshift 
sudo systemctl enable --now cronie.service 

自动生成快照启动项

sudo pacman -S grub-btrfs inotify-tools
sudo systemctl enable --now grub-btrfsd.service 

修改服务配置

sudo systemctl edit grub-btrfsd.service 
[Service]
ExecStart=
ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto

重启服务

sudo systemctl daemon-reload
sudo systemctl restart grub-btrfsd.service

ulauncher

ulauncher是一个启动器,支持模糊搜索,用gtk编写,支持python脚本

yay -S ulauncher    

然后设置一个自定义快捷键,命令写ulauncher-toggle,如果使用gnome的rounded corner扩展记得添加ulauncher进黑名单。

ulauncher最好用的是它的扩展功能,安装非常方便。打开设置进extensions页面,点击左侧的discover extensions就可以找到。

ulauncher扩展

我安装的扩展:

flathub manager 可以从ulauncher管理flatpak软件

emoji 可以快捷复制emoji

process murderer可以快捷杀死进程

youtube search快捷从youtube搜索内容

github search快捷从github搜索内容

appimage launcher快捷打开指定目录里的appimage文件(记得在设置里指定存放appimage的路径,需要使用从/开始的绝对路径)

ulauncher主题美化

浏览器搜索 ulauncher theme,存放路径在~/.config/ulauncher/user-themes

这个主题应该是最适合gnome默认主题的

steam子卷

我不想快照复制steam游戏,因为这会占用大量的硬盘空间,可以创建一个和@home平级的@steamgames子卷让创建@home快照的时候排除steam的游戏。

  1. 挂载根分区硬盘到/mnt下任意位置

    sudo mount --mkdir -o subvolid=5 /dev/nvme1n1p2 /mnt/btrfs_root #记得替换为自己对于的硬盘名称
    
  2. 创建@steamgames子卷

    sudo btrfs subvolume create /mnt/btrfs_root/@steamgames
    
  3. 禁用子卷的写时复制

    sudo chattr +C /mnt/btrfs_root/@steamgames
    
  4. 取消挂载

    sudo umount /mnt/btrfs_root
    
  5. 移动并备份现有steamapps文件夹

    mv ~/.local/share/Steam/steamapps ~/.local/share/Steam/steamapps.bak
    
  6. 创建新的steamapps文件夹作为挂载点

    mkdir -p ~/.local/share/Steam/steamapps
    
  7. 配置fstab文件

    sudo vim /etc/fstab
    
  8. 复制粘贴fstab里面根分区的那一行

    # /dev/nvme1n1p2
    UUID=92a83c41-105d-4983-9536-2492d024bb52       /               btrfs           rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=/@  0 0
    

    粘贴到底部,把 / 修改为steamapps的路径/home/shorin/.local/share/Steam/steamapps,把subvol=/@改成subvol=/@steamgames。修改后是这样的:

    # steamgames subvolume
    UUID=92a83c41-105d-4983-9536-2492d024bb52       /home/shorin/.local/share/Steam/steamapps     btrfs           rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=/@steamgames  0 0
    
  9. 刷新systemd缓存

    sudo systemctl daemon-reload
    
  10. 手动挂载fstab新条目

    sudo mount -a
    
  11. 修改权限(记得替换成自己的用户名)

    sudo chown shorin ~/.local/share/Steam/steamapps/
    
  12. 把刚刚备份的文件移回原位

    mv ~/.local/share/Steam/steamapps.bak/* ~/.local/share/Steam/steamapps/
    
  13. 清理残留

    rm -r ~/.local/share/Steam/steamapps.bak
    

现在创建home目录的快照就不会记录steam的游戏库了。对lutris也可以进行同样的操作。如果被识别成外部设备出现在文档管理器的挂载列表里面,就在fstab的那一连串逗号隔开的参数里添加x-gvfs-hide

ibus

参考:Rime - Arch Linux 中文维基 | 可选配置(基础篇) | archlinux 简明指南 | RIME · GitHub

已知问题:amber-ce(后面星火应用商店的部分会用到)里安装的qt应用无法使用ibus输入法

  1. 安装ibus-rime
sudo pacman -S ibus ibus-rime rime-ice-pinyin-git 
yay -S ibus-mozc
ibus是ibus输入法的基本包
ibus-rime是中州韵
rime-ice是雾凇拼音输入法方案,实测比万象拼音方案好用
ibus-mozc是日语输入法
  1. 在gnome的设置中心 > 键盘 > 添加输入源 > 汉语,里面找到rime添加,如果没有的话登出一次

  2. 编辑配置文件设置rime的输入法方案为ice雾凇拼音

    vim ~/.config/ibus/rime/default.custom.yaml
    

    如果没有文件夹的话自己创建。mkdir ~/.config/ibus/rime/创建文件夹,touch default.custom.yaml创建文件。写入以下内容:

    patch:
      # 这里的 rime_ice_suggestion 为雾凇方案的默认预设
      __include: rime_ice_suggestion:/
    

    默认使用super+空格切换输入法,可以在设置里修改。第一次切换至rime输入法需要等待部署完成。

  3. 安装扩展自定义ibus

    商店搜索extension安装蓝色的扩展管理器,或者用命令安装

    flatpak install flathub com.mattjakeman.ExtensionManager
    

    安装两个扩展:

  • 删除ibus输入法
  1. 系统设置>键盘 移除输入源

  2. 删除包

    yay -Rns ibus-mozc ibus ibus-rime rime-ice-pinyin-git
    
  3. 删除残留

    sudo rm -rfv ~/.config/ibus /usr/share/rime-data
    
  4. 登出

rEFInd

sudo pacman -S refind
refind-install
  • 启动项记忆

    编辑esp里的refind.conf文件

    sudo vim /efi/EFI/refind/refind.conf
    

    写入default_selection +,意思是记住启动项选择。也可以"+,vmlinuz"设置优先级。

  • 手动启动项

    设置menuentry{}

    menuentry "Arch Linux" {
     icon /EFI/refind/icons/os_arch.png
     volume ****************
     loader /@/boot/vmlinuz-linux-zen
     initrd /@/boot/initramfs-linux-zen.img
     options "root=UUID=54f285eb-8140-48df-81f8-2b03cb976fc0 rw rootflags=subvol=@ zswap.enabled=0 rootfstype=btrfs loglevel=5"
     enabled
    }
    

    icon设置图标路径,路径从esp的根目录开始而不是从linux的根目录开始。

    volume设置分区,不能用UUID,要用PARTUUID,使用sudo blkid获取。

    loader指定内核路径

    initrd指定initramfs和ucode的路径

    options ""指定启动项参数

    enabled表示启用这个entry,disabled是禁用。

  • 美化

    在/efi/EFI/refind/目录下新建一个themes文件夹

    sudo mkdir -p /efi/EFI/refind/themes
    

    然后浏览器搜索自己喜欢的git clone下来放到到刚刚创建的文件夹里

    然后编辑配置文件

    sudo vim /efi/EFI/refind/refind.conf
    
    include themes/**********/theme.conf
    
  • 隐藏启动项

    可以在refind的引导界面按delete键盘隐藏启动项。

    或者编辑配置文件用dont_scan_dirs=指定要排除的目录。

    dont_scan_dirs=/@/boot,EFI/****
    

用archinstall安装gnome后的一些清理

sudo pacman -R gnome-contacts gnome-maps gnome-music totem gnome-characters gnome-connections evince gnome-logs malcontent gnome-system-monitor gnome-console gnome-tour yelp simple-scan htop sushi gnome-user-docs epiphany 

TLP相关

(power-profiles-daemon已经足够了,故弃用)

sudo pacman -S tlp tlp-rdw 
yay -S tlpui

设置方法参考官方文档Settings — TLP 1.8.0 documentation

这里给一个现代电脑的通用设置:

processor选项卡中

CPU DRIVER OPMODE 
AC active
BAT active

CPU SCALING GOVERNOR 
AC schedutil
BAT powersave

CPU ENERGY PERF POLICY
AC balance_performance
BAT power

CPU BOOST
AC on
BAT off

PLATFORM PROFILE
AC balanced
BAT low-power

MEM SLEEP
BAT deep
  • 开启服务
sudo systemctl enable --now tlp

ananicy-cpu资源调用优化

影响steam下载速度,弃用

yay -S ananicy-cpp cachyos-ananicy-rules-git
sudo systemctl enable --now ananicy-cpp.service

更换CachyOS源

Optimized Repositories | CachyOS

(因严重软件安装异常问题弃用)

如果你渴望极致的性能优化,可以使用CachyOS的源。

ps:谨慎更换cachyos的内核linux-cachyos,内核恐慌(kernel panic)的概率会很大。

  • 安装

    curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz
    tar xvf cachyos-repo.tar.xz && cd cachyos-repo
    sudo ./cachyos-repo.sh
    
  • 重启电脑

  • 移除

    curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz
    tar xvf cachyos-repo.tar.xz
    cd cachyos-repo
    sudo ./cachyos-repo.sh --remove
    
  • 重启电脑

zen浏览器

yay -S zen-browser zen-browser-i18n-zh-cn

更改tty字体大小

sudo pacman -S terminus-font
ls /usr/share/kbd/consolefonts
sudo setfont ter-v32n
  • 永久生效
sudoedit /etc/vconsole.conf
FONT=ter-v32n
sudo systemctl restart systemd-vconsole-setup

wayland compositor 剪贴板

yay -S clipse clipse-gui

wf-recorder

sudo pacman -S wf-recorder

示例:

wf-recorder -c h264_vaapi -d /dev/dri/renderD128 --audio --file=test.mp4 -F scale_vaapi=format=nv12:out_range=full:out_color_primaries=bt709

让flatpak应用gtk主题

flatpak override --user --filesystem=~/.themes
flatpak override --user --filesystem=xdg-config/gtk-4.0
flatpak override --user --env=GTK_THEME=adw-gtk3-dark

限制amdCPU功耗

ryzenadj

snapper命令行快照回滚

据官方文档说,可能会导致系统异常,但我没遇到过。

  • 使用快照进行恢复

    `1..0`这里的`1`是要使用的快照的序号。`0`代表当前状态,快照会比对两者之间的差别然后撤销所有的更改。
    
    ```
    snapper -c root undochange 1..0 
    ```
    
    ```
    reboot
    ```
    

B站5000粉不到开播

安装这个油猴脚本,然后在直播间开播,获取到推流码之后用obs开播

B站推流码获取工具

字体设置

archwiki_fontconfig

字体主要分三类:

  1. 非衬线字体(sans-serif)

    主要用于界面文字之类的场景。

  2. 等宽字体(monospace)

    主要用于编程开发、终端之类的场景。

  3. 衬线字体(serif)

    主要用于文书编辑之类的场景。

以下是一个fontconfig的示例,设置了三种字体类型具体使用哪些字体,可以解决大多数字体异常。fontconfig的位置在~/.config/fontconfig/fonts.conf,编辑配置文件后还需要运行fc-cache -fv刷新字体缓存。

PS:这里示例中的serif衬线字体使用的是sans-serif非衬线字体的字体。因为真正用到serif的时候通常会手动选择(比如使用wps进行文档编辑的时候),serif使用sans-serif的字体可以避免某些网站(例如bilibili直播)将本该是非衬线字体的内容显示为衬线字体导致大幅影响阅读体验。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>

    <match target="font">
        <edit name="antialias" mode="assign"><bool>true</bool></edit>
        <edit name="hinting" mode="assign"><bool>true</bool></edit>
        <edit name="hintstyle" mode="assign"><const>hintslight</const></edit>
        <edit name="rgba" mode="assign"><const>rgb</const></edit>
        <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
    </match>

    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Noto Sans</family>
            <family>Noto Sans CJK SC</family>
            <family>Adwaita Sans</family>
        </prefer>
    </alias>

    <alias>
        <family>serif</family>
        <prefer>
            <family>Noto Sans</family>
            <family>Noto Sans CJK SC</family>
            <family>Adwaita Sans</family>
        </prefer>
    </alias>

    <alias>
        <family>monospace</family>
        <prefer>
            <family>JetBrains Mono</family>
            <family>JetBrains Maple Mono</family>
            <family>Adwaita Mono</family>
        </prefer>
    </alias>

</fontconfig>


tuigreet

极速,基于greetd的纯tty tui显示管理器(如果进入tuigreet之后还有日志输出会导致tuigreet的tui错位)。

  1. 安装

    sudo pacman -S --noconfirm --needed greetd greetd-tuigreet
    
  2. 简单配置

    sudo vim /etc/greetd/config.toml
    
    [terminal]
    # 绑定到 TTY1
    vt = 1
    
    [default_session]
    # 使用 tuigreet 作为前端
    # 自动扫描 /usr/share/wayland-sessions/,支持时间显示、密码星号、记住上次选择
    command = "tuigreet --time --user-menu --remember --remember-user-session --asterisks"
    user = "greeter"
    
  3. 启用greetd

    systemctl enable greetd
    

ly显示管理器

  1. 安装

    sudo pacman -S ly
    
  2. 启用

    这里的tty1可以是任意tty

    systemctl enable ly@tty1
    
  3. 简单配置

    有一个很酷的代码雨动画背景可以开。

    sudo vim /etc/ly/config.ini
    
    其他内容...
    
    animation = matrix
    
    其他内容...
    
    

Grub在btrfs文件系统的最佳配置方法

原理:grub装进esp,grub.cfg生成在/boot/grub。编辑esp里的grub.cfg让其在启动时读取/boot/grub/grub.cfg。这样/boot/grub/grub.cfg可以被快照回档,esp/grub/grubenv因为在esp的FAT文件系统上,在系统初期也可以被写入。

  1. 删除链接

    如果你的/boot/grub是指向esp里的grub的链接,请删除后创建真实的目录。

    sudo rm -rf /boot/grub
    
    sudo mkdir -p /boot/grub
    
  2. 查找根分区的UUID

    findmnt / -n -o UUID
    

    findmnt /列出跟根目录挂载信息

    -n隐藏标题

    -o UUID只输出UUID

  3. 编辑存根

    sudo vim /efi/grub/grub.cfg
    

    手动输入 UUID 有点折磨,可以运行 sudo findmnt / -n -o UUID > /efi/grub/grub.cfg 把 UUID 直接覆盖写入 ESP 中的 grub.cfg

    此处的/efi应为你实际的esp位置。

    删除所有内容,只需要写以下内容:

    # 设置root环境变量为实际的根分区设备
    search --fs-uuid --no-floppy  --set=root 你的Btrfs分区UUID
    
    # 读取根分区中的grub.cfg文件
    configfile /@/boot/grub/grub.cfg
    

    search --fs-uuid <你的Btrfs分区UUID>通过uuid搜索分区。

    --no-floppy跳过软盘设备。

    --set=root将搜索到的第一个设备设置为root

    root是grub的环境变量之一,默认值是grub所在的设备。我的grub安装在了esp,那root的值就是esp的设备名。我们为了btrfs回档要把grub.cfg存在btrfs文件系统里,所以要手动指定root的值为btrfs文件系统所在的设备。

    configfile读取配置文件。/@/boot/grub/grub.cfg是配置文件目录,不指定设备的话默认在root环境变量指定的设备上查找此目录。

  4. 配置快照启动项grub-btrfs

    安装了 grub-btrfs 快照启动项功能的情况下才需要进行这步的编辑。

    grub-btrfs.cfg是快照启动项的配置文件。grub寻找此文件时查的目录由prefix变量指定,这个变量代表的是grub的安装位置。我的grub安装在esp,所以prefix的值是/efi/grub,也就是说grub查找快照启动项的配置文件时的完整路径是/efi/grub/grub-btrfs.cfg。但是快照启动项的配置文件默认被生成到/boot/grub/grub-btrfs.cfg而不是/efi/grub/grub-btrfs.cfg,所以我们要修改grub-btrfs的配置文件指定grub在/boot/grub里寻找快照启动项的配置文件。

    sudo vim /etc/default/grub-btrfs/config
    

    找到下面这段内容:

    # GRUB_BTRFS_GBTRFS_SEARCH_DIRNAME="\${prefix}"
    

    改成:

    GRUB_BTRFS_GBTRFS_SEARCH_DIRNAME="/@/boot/grub"
    

    注意,/@必须是你实际的根子卷。

  5. 生成grub.cfg

    sudo grub-mkconfig -o /boot/grub/grub.cfg
    

大功告成。现在对启动流程来说至关重要的grub.cfg就在快照的范围里啦,回档的时候引导也会跟着一起回档,除非btrfs文件系统本身坏掉,否则系统99.9%的情况下都不会再挂啦。

opencode使用本地ollama或lmstudio模型

vim ~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama-lan": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (LAN)",
      "options": {
        "baseURL": "http://192.168.0.13:11434/v1",
	"apiKey": "ollama"
      },
      "models": {
        "qwen3-coder-next:q4_K_M": {
          "name": "Qwen3 Coder Next"
        }
      }
    },
    "lmstudio-lan": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LM Studio (LAN)",
      "options": {
        "baseURL": "http://192.168.0.13:1234/v1"
      },
      "models": {
        "qwen3-coder-next": {
          "name": "Qwen3 Coder Next"
        }
      }
    }
  }
}

内存大页1G和2MB切换的问题

内存大页的默认目录位置是/dev/hugepages,这个挂载点是在系统初始化的时候自动挂载上的,默认单页大小是2MB,可以通过启动参数调整默认的页大小。

default_hugepagesz=1G hugepagesz=1G hugepages=16

default_hugepagesz=1G 设置没有指定内存大页大小时的默认大小

hugepagesz=1G 在开机时初始化1GB内存大页的管理机制

hugepages=16 是需要的内存大页的数量

问题在于/dev/hugepages不可能同时是2MB又是1GB,所以需要自定义内存大页目录,将2M和1G分别存储在不同的目录,做到同时使用。

编辑/etc/fstab

hugetlbfs_2M /dev/hugepages_2M hugetlbfs pagesize=2M,mode=1777 0 0
hugetlbfs_1G /dev/hugepages_1G hugetlbfs pagesize=1G,mode=1777 0 0

hugetlbfs_2M只是一个名字;/dev/hugepages_2M挂载点;hugetlbfs指定文件系统是内存大页;pagesize=2M指定大页大小;mode=1777权限,

这样就同时存在1G和2M的内存大页系统,可以同时申请,同时使用。/dev/hugepages由系统管理,我们只动自己自定义的,于是避免了切换时会产生的各种问题。

/sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages是操作1G大页数量的接口。把1048576改成2048就是操作2M大页数量的接口。和sysfs这个关键词有关,我没学过Linux,不懂。

辨别软件是运行在xwayland还是wayland

可以使用xorg-xeyes或者xorg-xlsclients

xeyes的话,打开之后在窗口移动鼠标,如果眼睛在动就是xwayland,不动就是wayland。

xlsclients的话,在输出列表里的就是xwayland,不在的就是wayland。

btrfs扩容和缩小

扩容可以在系统运行的时候进行

在进行扩容和缩容操作之前要先明确一个概念:块设备。lsblk -p列出的每一个/dev开头的分区都是一个块设备,文件系统只认块设备,不看这个块设备是在你的硬盘1上还是在硬盘2上又或者在你的移动U盘上。

分两种情况:调整大小(resize)添加(add)

  • resize

    如果是单个硬盘上的连续空间,使用此方法(单个硬盘但是空间不连续,可以使用gparted移动分区)。

    原理是先调整物理分区大小,再调整btrfs文件系统大小。

    1. cfdisk调整物理分区大小

      sudo cfdisk /dev/nvme0n1
      

      /dev/nvme0n1替换为你实际的块设备名称

      选中更改尺寸 resize扩容分区(直接回车会自动合并连续的空闲空间);然后选择写入 Write,输入yes,回车保存更改;退出 Quit退出cfdisk。

    2. 调整btrfs文件系统大小

      btrfs命令由btrfs-progs提供

      sudo btrfs filesystem resize max /
      

      filesystem resize调整文件系统大小

      max / 将根目录所在文件系统扩容至最大物理硬盘空间

    3. 确认

      df -h /
      

      通过大小一那列可以看到扩容成功。

    • 减少硬盘空间

      缩小的话只需要将过程反过来,先缩小文件系统大小再缩小分区大小。

      先用df -h /确认可用空间;然后用btrfs调整大小:

      sudo btrfs filesystem resize -10G /
      

      resize -10G /将文件系统缩小了10G

      这里还可以指定缩小到多少G,例如缩小到50G就是 resize 50 /

      现在用df -h /就可以看到大小变小了,记住这个数值后用cfdisk的resize功能缩小分区大小就行。

  • add

    如果是多个硬盘上的块设备,使用此方法(未分配空间需要先新建为块设备)。

    原理是将新的块设备加入当前文件系统,btrfs文件系统会智能在多个块设备之间存储数据。

    1. 添加块设备

      sudo btrfs device add /dev/vda2 /
      

      /dev/vda2替换为你实际用来扩容的新块设备名称

      device add /dev/vda2 /添加/dev/vda2到根目录所在文件系统

    2. 确认

      df -h /
      

      可以看到空间已经变大。

      btrfs filesystem show /
      

      可以看到该文件系统下有多个块设备。

    • 减少硬盘空间

      把新增的块设备移除即可(要确保移除之后的剩余空间足够存下两个块设备上已有的数据):

      sudo btrfs device remove /dev/vda2 / 
      

      现在再用btrfs filesystem show /,输出结果里就没有那个设备了。

  • swap分区(交换分区)

    跨多个设备的文件系统不能使用交换文件,如果你配置了交换文件的话必须更换为交换分区,方法如下:

    1. 删除swapfile

      swapoff命令关闭现有的交换文件,然后编辑/etc/fstab删除交换文件的自动挂载,再用rm命令删除交换文件。

    2. 腾出空间

      用上面缩容的方法腾出一块空间用作交换分区。

    3. 格式化

      使用cfdisk把腾出的空间新建为块设备,type选择Linux Swap。然后用mkswap命令格式化。

    4. 启用和自动挂载

      使用swapon命令现在启用交换分区。然后使用lsblk -f获取swap分区的UUID;编辑/etc/fstab加上如下内容:

      UUID=你的swap分区的UUID  none  swap  defaults 0 0 
      
  • 在跨设备的情况下缩容

    sudo btrfs filesystem show /
    

    示例输出:

    Label: none  uuid: 7f989f8d-d2ce-4c91-9cf3-db687089ce4e
    Total devices 2 FS bytes used 629.31GiB
    devid    1 size 879.00GiB used 514.02GiB path /dev/nvme0n1p2
    devid    2 size 931.51GiB used 486.00GiB path /dev/nvme1n1
    

    记录自己要缩小的硬盘的devid,在上面的示例输出中我想要缩容的/dev/nvme0n1devid是1。

    devid指定设备,其他的就和单设备缩容差不多了:

    sudo btrfs filesystem resize 1:-75G /
    
    cfdisk /dev/nvme0n1
    > resize 
    > 879G
    > write
    > yes
    > exit
    
    sudo btrfs filesystem resize 1:max /
    # 我前面预留了一些空间,所以这里再max一次补全
    

vim/nvim切换模式时自动切换中文输入法

  • vim

    .vimrc写入

    " === fcitx5 状态切换与恢复 ===
    let g:fcitx_state = 1
    autocmd InsertLeave * let g:fcitx_state = system("fcitx5-remote")[0] | call job_start("fcitx5-remote -c")
    autocmd InsertEnter * if g:fcitx_state == '2' | call job_start("fcitx5-remote -o") | endif
    autocmd VimEnter * call job_start("fcitx5-remote -c")
    
    
  • ~/.config/nvim/init.lua写入

    -- fcitx5 状态切换与恢复
    local fcitx_st = ""
    vim.api.nvim_create_autocmd("InsertLeave", { callback = function() fcitx_st = vim.fn.system("fcitx5-remote"); vim.fn.jobstart("fcitx5-remote -c") end })
    vim.api.nvim_create_autocmd("InsertEnter", { callback = function() if fcitx_st:match("2") then vim.fn.jobstart("fcitx5-remote -o") end end })
    vim.api.nvim_create_autocmd("VimEnter", { callback = function() vim.fn.jobstart("fcitx5-remote -c") end })
    
    

niri-shorin-fork-git

这是我的niri分支。

新增了以下几个功能:

  • 晃动鼠标放大

    cursor {
        shake-to-enlarge {
            //off
            grow
            grow-speed 0.01
            threshold 2000
            hold-duration-ms 1500
            zoom-factor 5
        }
    }
    
  • 屏幕放大

    magnifier {
        // off
        zoom-factor 3
        //track-cursor false 
        //scale-cursor false
    }
    
    binds{
        Mod+Alt+WheelScrollUp   { adjust-magnifier-zoom 0.2; }
        Mod+Alt+WheelScrollDown { adjust-magnifier-zoom -0.2; }
        Mod+Shift+Z         { toggle-magnifier; }
    }
    
  • 网格概览

    grid-overview {
        gap 16
        padding {
            left 64
            right 64
            top 48
            bottom 48
        }
        grid-all-monitors true
    }
    
    binds {
        Mod hotkey-overlay-title="切换网格总览界面 toggle grid overview" repeat=false { toggle-grid-overview; }
    }
    
  • 截图支持stdout

    niri msg action screenshot --stdout
    
  • 支持单独给mod键绑定功能

    Mod hotkey-overlay-title="切换网格总览界面 toggle grid overview" repeat=false { toggle-grid-overview; }
    
  • 热角

    gesture {
    
        hot-corners {
            bottom-left { grid-overview }
        }
    }
    
  • 窗口规则

    window-rule {
    
        match is-floating=true
        ignore-grid-overview true
    }
    
  • grid和overview打开后中键直接关闭窗口。

  • grid和overview中hjkl切换聚焦,聚焦窗口在边缘时依旧往边缘切换聚焦会切换工作区。

Linux Mint

CachyOS

Arch Linux

其他内容


Clone this wiki locally