Arch Linux小问题解决(更新版)


关于终端代理问题

首先需要有代理的条件,例如trojan、v2ray、shadowsocks、WireGuard等等

其次是进行终端代理,其实可以使用shell专用代理工具,例如:proxychains、tsocks、redsocks等等,举例不依赖第三方工具~/.bashrc进行代理

[!IMPORTANT]

127.0.0.1:7890(本地IP+端口)

1. HTTP 代理

最常见、兼容性最好(wget、curl、git、npm 都支持)

1
2
3
4
5
6
7
8
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export all_proxy="http://127.0.0.1:7890"

# 建议也加上大写(部分程序只认大写)
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export ALL_PROXY=$all_proxy

用在 HTTP/HTTPS 请求,但对纯 TCP 流量(SSH、数据库连接)没法代理

2. HTTPS 代理

其实和 HTTP 代理写法一样,区别在于协议头写 https://,表示 代理本身和客户端之间是 TLS 加密的

1
2
3
export http_proxy="https://127.0.0.1:8443"
export https_proxy="https://127.0.0.1:8443"
export all_proxy="https://127.0.0.1:8443"

用得比较少,通常是企业环境或公司网关需要安全代理时

3. SOCKS 代理

支持更多协议(HTTP/HTTPS、SMTP、SSH 等 TCP 都能走),但是部分软件原生不支持

1
2
3
export http_proxy="socks5://127.0.0.1:1089"
export https_proxy="socks5://127.0.0.1:1089"
export all_proxy="socks5://127.0.0.1:1089"
  • socks5h://:和 socks5:// 的区别在于 是否由代理端解析域名

    • socks5:// → 本地先解析 DNS,再发 IP 给代理
    • socks5h:// → 让代理解析域名,更隐私,避免 DNS 泄露
    1
    export all_proxy="socks5h://127.0.0.1:1089"

最后让终端 重新加载你刚刚修改过的 ~/.bashrc

1
source ~/.bashrc

代理就生效了,不管是yay、pacman、apt、yum等都是走127.0.0.1:1089网络数据

用 Proxychains 方式(命令前缀拦截)

arch安装:

1
sudo pacman -S proxychains-ng

ubuntu安装:

1
sudo apt install -y proxychains

编辑 /etc/proxychains.conf配置文件,在文件最底部修改,代理类型及端口

1
socks5 127.0.0.1 1089

proxychains.conf - 通用稳定配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 严格链:所有请求必须通过代理
strict_chain

# 代理 DNS,避免 DNS 泄漏(不同条件下是要注释掉的)
proxy_dns

# 使用 10.x.x.x 来伪造 DNS 映射,避免 224.x.x.x 出错
remote_dns_subnet 10

# 超时时间(毫秒)
tcp_read_time_out 15000
tcp_connect_time_out 8000

# 输出模式(默认显示连接日志,可改为 quiet_mode 静默)
#quiet_mode

[ProxyList]
# SOCKS5 代理(推荐,支持 UDP、Git 等)
socks5 127.0.0.1 1089

# 如果还需要 http 代理,可以加:
# http 127.0.0.1 1089

用法:

1
2
proxychains curl ipinfo.io
proxychains git clone https://github.com/xx/xx.git

优点:不用全局改环境变量;

缺点:对 GUI 程序不一定好使

[!WARNING]

如果是对yay进行代理我建议还是用~/.bashrc(效果最佳)

1
export ALL_PROXY="socks5h://127.0.0.1:1089"

透明代理(iptables / tun2socks)把系统所有流量透明转发到 SOCKS5 代理

  • 用 clash / v2ray / sing-box 提供 tun 模式
  • 或者用 redsocks + iptables
  • 或者 tun2socks

这种方式不需要在 ~/.bashrc 写 export,因为所有 TCP 流量已经被劫持


pip报错

在使用pip过程中,会提示以下提示,说明pip不支持~/.bashrc这种代理

1
2
3
4
5
$ pip install pipenv 
ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.

**[**notice**]** A new release of pip available: 22.3 -> 25.1.1
**[**notice**]** To update, run: pip3 install --upgrade pip

需注释上面的代理,并用pip安装一个软件包:PySocks,先使用proxychains等工具的代理方式解决,如下

1
proxychains pip install PySocks

PySocks解决缺少 SOCKS 支持的问题

现在可以恢复~/.bashrc中设置的代理信息,正常pip install pipenv即可


PATH设置

添加如下命令,即可全局使用hexo clean、hexo server、hexo generate等等命令

[!IMPORTANT]

PATH=后面以自己路径为主

1
export PATH=$HOME/src/myblog/node_modules/hexo/bin:$PATH

scrcpy安卓控制

1
export PATH=/opt/hsprogram/broker/scrcpy-linux-x86_64-v3.3.1:$PATH

7z解压缩

1
export PATH=/opt/hsprogram/binary/7z:$PATH

不同版本的python

1
export PATH=$HOME/src/python311/bin:$PATH
1
export PATH=$HOME/src/python310/bin:$PATH

visual-studio-code设置JSON配置文件

在 VS Code 内部设置代理:

按 Ctrl + Shift + P → 输入 Preferences: Open Settings (JSON) → 加上:

1
2
3
4
5
{
"http.proxy": "socks5h://127.0.0.1:1089",
"https.proxy": "socks5h://127.0.0.1:1089",
"http.proxyStrictSSL": false
}

这样 VS Code 扩展市场、内置请求都会走代理。

国内镜像源:

华为云:

1
2
3
4
5
6
7
{
"extensionsGallery": {
"serviceUrl": "https://vscode.cdn.azure.cn/gallery/",
"cacheUrl": "https://vscode.cdn.azure.cn/gallery/",
"itemUrl": "https://marketplace.visualstudio.com/items"
}
}
OpenVSX 市场:手动下载插件
1
https://open-vsx.org/extension/esbenp/prettier-vscode

搜索对应的插件下载即可

导入:VS Code → 扩展...安装 VSIX


在 Arch + Wayland(尤其 KDE/Plasma 6)的环境里,fcitx5 偶尔会出现“预编辑(拼音串/候选框)跑到左上角、按空格也进不到输入框”的现象,根因通常是:

  1. 应用或合成器和输入法之间的 Wayland “text-input” 协议/光标位置上报不一致;
  2. 某些应用(Chromium/Electron 系)没正确启用 Wayland IME 支持;
  3. XWayland 程序与 Wayland IM 桥接有 bug。这些都会导致预编辑位置回退到 (0,0),也就是左上角。

下面给你一套定位与修复清单(按优先级),全部在 Wayland 会话下操作:


一、基础配置
  • 使用fcitx5必备的包:

    1
    sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-configtool

    并确保环境变量已设置(建议放到 ~/.config/environment.d/fcitx5.conf)(最干净)

    1
    2
    3
    4
    5
    GTK_IM_MODULE=fcitx
    QT_IM_MODULE=fcitx
    XMODIFIERS=@im=fcitx
    SDL_IM_MODULE=fcitx
    GLFW_IM_MODULE=ibus

    放在(/etc/environment )中也是可以的(全局生效)

    fcitx5fcitx 在 Arch 环境里效果一样,因为 fcitx5 的模块名就是 fcitx,但最好保持一致(推荐都用 fcitx,官方 Wiki 也是这么写的),避免有些程序只认旧值。

    上面三项(GTK/QT/XMODIFIERS)是最关键的。官方与 ArchWiki 都明确要求。做完重登 Wayland 会话

  • 在 KDE「系统设置」→「键盘」→「虚拟键盘」里把输入法启动器设为 Fcitx 5 Wayland launcher(有些系统默认没选对)。

二、专治“左上角乱跳”的常见场景

A. Chromium / Electron 家族(Chrome/Brave/Edge、VS Code、Obsidian、Discord 等)
这些程序经常是罪魁祸首:默认没完全打开 Wayland 的 IME 支持,导致预编辑位置错乱或根本进不去输入框

  • 启动参数加上:

    1
    --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

    你可以在对应的 .desktop覆盖里写入(放 ~/.local/share/applications/*.desktop),比如 VS Code 的 Exec= 行末尾追加上面的参数;或直接用命令行启动测试

  • 这类问题在 Chromium 的 issue tracker 里也有记录:在非 GNOME 合成器下,text-input-v3 下候选框首次可能会在左上角显示(典型复现)。更新版本或加上面的 flags 往往能改善

  • Electron 生态对 Wayland IME 的支持是逐步补齐的,很多应用需要上面的 –enable-wayland-ime

B. Firefox / GTK4 应用
一般“开箱即用”,少见左上角问题;若你切换了 Ozone/Wayland 与 GTK4 模块混用,可能会影响候选框定位,官方建议不要同时--enable-wayland-ime--gtk-version=4 两套路径混搭

C. 原生 Wayland 应用但不正确上报光标位置
一些应用没把光标位置(cursor location)传给 IME,导致候选/预编辑窗口固定到左上角;这是应用端的 bug,需要等应用修(例如 Rnote 曾有这个问题)

D. XWayland 程序(X11 应用跑在 Wayland 下)
KDE 有已知报告:长时间使用/频繁切换输入法后,输入法不跟随光标或提交不到目标控件。如果你主要受影响的是 X11 程序,尽量换用该程序的原生 Wayland 版或更新 Plasma/kwin


Wayland在混合显卡下sddm无法正常启动(先看Archwiki早启动)

[!IMPORTANT]

没有问题时可跳过(建议设置早启动看看效果)

补齐依赖(默认layer-shell-qt存在)

1
sudo pacman -S  layer-shell-qt layer-shell-qt5 

编辑如下

1
sudo vim /etc/sddm.conf.d/10-wayland.conf
1
2
3
4
5
6
[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1 --inputmethod maliit-keyboard


Arch Linux小问题解决(更新版)
http://huishao.net/2025/08/10/archlinux小问题解决/
作者
huishao
发布于
2025年8月10日
许可协议