前言
arch的中文百科,很多时候能派上用场,或者善用bing和AI。
https://wiki.archlinuxcn.org/wiki/Wayland
下面这是我用的系统。
https://endeavouros.com/
劝退
-
如果对linux没有执着,建议还是用windows。linux作为非商业的系统,很多软件只会出win版和mac版本。linux系统分裂,兼容性难解决,最重要的是,用户还少。GUI方面的bug,比windows只多不少。
-
如果对wayland没有执着,建议使用X11,使用wayland面对很多软件都有兼容性问题,而且面对一些个人开发者的软件,这些问题是无法解决的。wayland的兼容性问题不是你一个个人用户能够解决的,你只能为了wayland做自身需求的妥协。很多软件在wayland上无法设定快捷键。
chrome我还能忍忍,因为我开浏览器就是一整天,但是vscode和cursor启动也会变慢。难以忍受。
https://linux.cn/article-16520-1.html
https://fcitx.cn/post/using_fcitx5_on_wayland/
英伟达显卡,在wayland下与才chrome发生了一些奇妙的兼容性问题,导致chrome启动异常慢,设置中找到图形加速
并关掉,可以起到掩耳盗铃的作用。
性能bug
UI方面经常有透过窗口看到底下的情况,以及黑屏,花屏(比如改变窗口大小时有概率复现)等,如下图。
不清楚是不是显卡兼容性问题,反正问题是确实存在的。
还有一些窗口方面的问题,有时候点击任务栏某个应用,就是不弹出窗口(比如warp,有时候就出不来),或者窗口不在最顶上。
软件生态
软件生态的缺失。Adobe全家桶不支持linux,剪视频都不好剪,阿里云盘等一系列云盘不提供linux版本(百度提供了,表扬一下)。
- 网游/还有部分单机
- 剪视频(主流的剪辑软件PR以及国产的那些比如剪映,都没有linux版本)
- 解压软件,linux上没办法双击解压、以及记忆密码的功能(办法可能有,估计挺麻烦),windows上我使用bandizip实现。
还有一些压缩包以exe形式提供,虽然kde能直接解压,但是没跳出输密码的步骤,结果还是得wine。
如图,卡进度了
- 第三方软件不必多说,还有隐形的生态,搜索引擎上搜索linux的软件默认都是一些命令,找GUI程序会困难一些。
游戏
除了steam,不推荐你用wine去运行windows游戏,一旦出点问题就是纯浪费时间。
玩游戏需要套一层wine,steam还行,玩本地的游戏需要多浪费一些时间配置(可以用wine游戏助手,相对来说挺好用的),而且并不能兼容所有的游戏。
这个页面出来就要等个半天,我等了一个多小时后实在等不下去了。
双击点开exe,大概率跳出更新配置
运行wine游戏卡住后,拖动任务管理器变成这个样子。
网游尤其是腾讯系,就别想了,老老实实windows。
4399就更别想了。
玩玩steam是最省心的,毕竟商业公司。
理念
- 实用主义,能一行命令解决的不用两行命令,能直接安装的不从源码编译。开源一定是优点,闭源不算很大的缺点,如果闭源软件表现更优异,我会毫不犹豫地使用闭源软件。
- 符合个人直观感受,比如我青睐于键鼠,而不是纯键盘。
- 基于以上观点,能用热门的软件就不要用冷门的软件,热门的软件总是能找到更多的解决方案。
基础设施
蓝牙故障
不知为何,我在gui中打不开蓝牙,于是连不上鼠标。
使用如下命令,开机自启蓝牙。
systemctl enable bluetooth
# 立即启动蓝牙服务
systemctl start bluetooth
按键映射(X11)
用笔记本时会用到这个功能。
在我的笔记本上,f12是数字锁
,而这个功能我从来不用,却让我f12时需要按fn+f12两个键(我的笔记本不支持fn切换,他只能用组合键)。
yay -S xorg-xev
xev
会出现一个窗口,不必管他,按下要映射的按键,会出现提示。
我们要用到keycode,将其记下来,这个数字就代表这个按键。
如果怕看错了就多按几下,重复的肯定就是自己按的键了(没啥必要)。
以上是我的笔记本的f12按键,他默认映射数字锁。
先查一下f12的映射。
xmodmap -pke| grep -i f12
输出如下:
keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
只需把等号右侧的记住即可(按复制)。
micro ~/.Xmodmap
输入下面的,保存即可。
xmodmap ~/.Xmodmap
keycode 77 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
按键映射(Wayland和X11通用)
没错,上面的配置只对X11桌面有效,而我们用的是wayland(KWin)
https://wiki.archlinux.org/title/Input_remap_utilities
https://www.v2ex.com/t/875994
https://github.com/rvaiya/keyd
arch的百科里面,有提到如何修改按键映射。
arch可以使用yay直接安装keyd
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable --now keyd
使用下面的命令可以监听按键。
sudo keyd monitor
AT Translated Set 2 keyboard 0001:0001:700355d0 numlock down
AT Translated Set 2 keyboard 0001:0001:700355d0 numlock up
# 查看如何配置
man keyd
sudo micro /etc/keyd/default.conf
layer表示一种状态,比如按住ctrl。
id表示限制设备,id用星号就是全部键盘都这样映射。
[ids]
*[main]
numlock = f12
sudo keyd reload
shell
bash用起来不是那么地智能,比如按tab不会切换文件(而powershell都有这个功能)
这在文件名是中文的情况下,会降低效率。
安装zsh
yay -S zsh
https://www.haoyep.com/posts/zsh-config-oh-my-zsh/
默认的zsh不显示当前路径,很不方便,因此装上ohmyzsh。
sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"
要美化自己找教程,简洁就挺好的。
命令补全
https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
yay -S zsh-autosuggestions
打开~/.zshrc
,添加如下命令
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
终端文本编辑器
实在不行就用nano吧,如果没有心情去解决复制粘贴问题。
使用micro,默认快捷键就是和windows一样,ctrl+c,ctrl+v。
退出使用Ctrl+q(quit),很直观。
而且最nb的是,他可以在终端上直接用鼠标,简直不要太爽。
yay -S micro
复制粘贴问题(错误方法)
使用时遇到了问题,micro里面复制,到外面就没用了。必应一搜就找到解决办法了。
解决方法如下:
https://github.com/zyedidia/micro/issues/1365#issuecomment-819039335
micro
打开micro,按Ctrl+e,输入如下命令并回车
set clipboard terminal
复制粘贴问题(解决方法)
set clipboard internal
micro内部粘贴复制,可以用终端的粘贴快捷键来粘贴到里面,但是micro内部的复制无法影响到系统的剪切板
set clipboard terminal
内部复制可以到系统剪切板上,但是系统剪切板无法粘贴到micro内部
内部的Ctrl+V也没反应,只能用终端粘贴快捷键,比如Ctrl+Shift+V或者Shift+Insert这种。
set clipboard external
始终使用系统剪切板。有个比较无解的地方就是,使用sudo时,就不能读取系统的剪切板。
这个问题,可以使用终端的粘贴快捷键。比如Ctrl+Shift+V,始终使用这个快捷键进行粘贴,体验就会比较一致。(C和V对应)
https://forum.manjaro.org/t/micro-editor-cut-paste-behaviour/119035
正确做法如下
wayland需要安装复制的包
yay -S wl-clipboard
打开micro,按Ctrl+e,输入如下命令并回车(这个好像就是默认设置)
set clipboard external
可能有用的链接如下:
https://github.com/zyedidia/micro/blob/master/runtime/help/copypaste.md
文件查找
需要类似于windows上面everything的功能,虽然linux自带find,但是没有那么好用。
对我来说,图形界面的更直观,找到文件双击就能打开,有图标来区分文件类型,不需要记命令行等多种优势,另一方面,可能我用惯everyting了。
安装fsearch。
yay -S fsearch
输入法
输入法我主要使用全拼,因为平时并不需要打很多中文,而且全拼相对于双拼比较直观。
就好像我用惯了windows和vscode,一用vim就浑身不舒服。双拼和五笔对我来说都有很高的成本,而我又比较懒,不想学。
输入法分为多个模块,其中,首先最重要的是输入法引擎(主流引擎就fcitx和ibus两个)。
比较喜欢fcitx。
装输入法的时候,很迷惑为什么要装这么多软件包,因此去了解了一下,防止换了个系统就不会用了。而且看别人写的博客,有一些东西一笔带过了,但是总体也是很复杂,于是还是得自己折腾。
基础功能
- fcitx5-im
fcitx5-im包含以下软件包
fcitx5
fcitx5-configtool
fcitx5-gtk
fcitx5-qt
linux多数软件由qt和gtk构建GUI,用户期望无论他们正在使用的应用程序是基于哪种 GUI 库构建的,输入法的行为都是一致的。通过同时支持 Qt 和 GTK,Fcitx5-im 确保了这种一致性的用户体验。
因此建议直接装fcitx5-im,而不是一个个装。
- Fcitx5-rime
Fcitx5-rime是rime输入法提供的,由于rime在linux上是由fcitx提供的,因此是这个名字。
Fcitx5-rime可以看作是功能的增强,主要功能还是由fcitx提供,Fcitx5-rime只是添加了一些rime的功能。
既可以说自己用的是fcitx输入法,也可以说用的是rime输入法。
我用rime纯粹是因为linux上用这玩意的多,而输入法我不想多折腾。
3. fcitx5-chinese-addons
没什么好说的,这个软件包提供常用的中文输入方式,比如拼音、五笔之类的。
yay -S fcitx5-im fcitx5-rime fcitx5-chinese-addons
环境变量
根据桌面管理器(Desktop Explorer)和窗口管理器(Window Manager)需要配置不同的变量。
访问wiki以查看如何配置。
https://wiki.archlinuxcn.org/wiki/Fcitx5?rdfrom=https%3A%2F%2Fwiki.archlinux.org%2Findex.php%3Ftitle%3DFcitx5_(%25E7%25AE%2580%25E4%25BD%2593%25E4%25B8%25AD%25E6%2596%2587)%26redirect%3Dno#X11
我使用kde和wayland,只需要配置一个环境变量。
sudo micro /etc/environment
XMODIFIERS=@im=fcitx
不重启,设置里面是找不到输入法的,因此我不确定能否找到下面这个虚拟键盘选项。
打开设置,搜索虚拟键盘,选择fcitx5。
sudo reboot
词库
维基百科和萌娘百科的词库。
yay -S fcitx5-pinyin-zhwiki fcitx5-pinyin-moegirl
雾凇拼音,是一套rime配置。
https://github.com/iDvel/rime-ice
由于我前面一直没有修改rime配置文件,因此不用考虑什么覆盖配置、备份配置的问题,直接安装即可。
yay -S rime-ice-git
emoji
谷歌emoji,或者是说安卓。
yay -S noto-fonts-emoji
主题
https://github.com/hosxy/Fcitx5-Material-Color
我一般是不怎么在意主题的,奈何默认的外观实在是太丑了。
yay -S fcitx5-material-color
nano ~/.config/fcitx5/conf/classicui.conf
内容如下,和文档相比,我只改了一个主题颜色,用的橙色。
# 垂直候选列表
Vertical Candidate List=False# 按屏幕 DPI 使用
PerScreenDPI=True# Font (设置成你喜欢的字体)
Font="思源黑体 CN Medium 13"# 主题
Theme=Material-Color-Orange
恕我愚笨,没找到在哪里重启fcitx5。
# 直接结束进程,他会自动重启,然后shell程序会一直换行,可以使用ctrl+C退出。
pkill fcitx5
rime配置
改配置时,他里面的按键是用英文命名,而不是字符。比如逗号叫comma。
https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md#八其它
~/.local/share/fcitx5/rime
下,创建文件default.custom.yaml
。
内容如下
patch:# 仅使用「雾凇拼音」的默认配置,配置此行即可__include: rime_ice_suggestion:/# 以下根据自己所需自行定义,仅做参考。# 针对对应处方的定制条目,请使用 <recipe>.custom.yaml 中配置,例如 rime_ice.custom.yaml__patch:# 关闭以词选字,没有用的功能key_binder/select_first_character: ""key_binder/select_last_character: ""key_binder/bindings/+:# 方括号换页。- { when: paging, accept: bracketleft, send: Page_Up }- { when: has_menu, accept: bracketright, send: Page_Down }# 每页的长度"menu/page_size": 6# 关闭【方案选单】快捷键,一个用不到的功能居然要占用我的快捷键,Ctrl+`打开终端的快捷键被占去了switcher/hotkeys:
下面可以看到雾凇的默认配置路径。
基于雾凇改的另一款。
https://github.com/gaboolic/rime-frost
其他
rime的配置地址如下,如果你没有进行任何配置,rime这个目录需要你自己创建。
~/.local/share/fcitx5/rime/
其他rime配置文件:
https://github.com/wongdean/rime-settings
Wayland
wayland和fcitx5兼容性
https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
Chrome加过参数后,会出现花屏的现象,也有启动慢的问题。
b站这个验证页面点不动。
wayland和Electron
需要关闭图形加速。wayland、英伟达显卡和Chrome,兼容性不太行。
启动加上如下参数。
--disable-gpu --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
我是直接换x11了,wayland这样搞,显卡都废了
切换回X11
切换回x11后,Ghostty终端中,无法使用快捷键切换输入法,与Kitty终端的问题并不相同,我尝试了kitty并设置环境变量后,他正常运行了,然而Ghostty却不是。
https://github.com/ghostty-org/ghostty/issues/882
我厌倦了去找issue,我看了半天并没有我想要的答案,看样子他们提出的issue是wayland上面的,我在wayland时期确实没有遇到这种问题,Konsole其实也够用了。
切换回X11后,需要照着前面输入法的环境变量重新设置,并重新登录以使其生效。
必备软件
微信
yay -S wechat
office
一般使用wps,毕竟linux上面不能使用微软的office。
wps国产软件,比较符合使用习惯。
有人推荐永中和onlyoffice,但是我建议还是直接wps。
onlyoffice是开源的,除此之外就没什么
注意wps-office是国际版,页面全英文,加个后缀-cn就是中文版。
https://wiki.archlinuxcn.org/wiki/WPS_Office
剪切板管理工具
KDE自带的Klipper稍微可以用一用。
支持图片保存到剪切板。
之前在windows使用CopyQ来管理剪切板,他可以分多个标签,因此有时key起到快速输入的效果。
我没有剪切板同步的需求。
https://www.bilibili.com/opus/1012253233964384288
- CrossPaste,不知为何图片没有进入剪切板。
- 剪切助手,无linux端
- SyncClipboard,问题如图
- 柠檬 Push,纯同步,linux无GUI。
- 快贴,好像也是没有GUI。
- ProjectSend,功能不对。
- EcoPaste,不支持wayland。
- PasteBarApp,不支持linux。
- 1clipboard,不支持linux。
CopyQ,我在windows上面一直用。
在发现CopyQ的快捷键不起作用后,我放弃了wayland。
可选软件
常用工具
yay -S cmake clang
lutris,wine
https://arch.icekylin.online/app/common/daily.html#🍷-wine
用这个网址提供的wine安装命令执行失败了,建议用wine游戏助手(lutris国内版)
sudo pacman -S wine zenity
sudo pacman -S lib32-libpulse
黑屏、花屏的现象都会出现。
有时候就是不弹出窗口(之前能运行),如果玩玩植物大战僵尸之类的小游戏还是没什么问题的。
百度网盘
少有的提供linux版本的网盘。
yay -S baidunetdisk-bin
进度显示有点问题,有时候不会动。
zed(不推荐)
zed打开设置,以下格式配置代理。
https://github.com/zed-industries/zed/discussions/7525
"proxy" : "http://yourProxyURL.com:8080"
终端
https://www.cnblogs.com/PeterJXL/p/18418016
-
tabby(不推荐)
因为有eletron的以来,这玩意的aur包要装很久。
装了半天,没装上。 -
Konsole
KDE自带的终端,中规中矩。 -
IShell
使用fcitx5中文输入法,打出来的字会变成三倍。
他提供的反馈渠道显示繁忙。
官网的反馈渠道更是404.
https://bugs.ishell.cc/bugs
有内置ai等功能,但是不太适合作为本地的终端。 -
windTerm和Xterminal。
都还不错,我在windows上使用过。 -
mobaxTerm(不推荐)
以前用这个,只有windows版本而且全英文。 -
kitty(不推荐)
默认文字间距很宽,看起来非常难受。
-
WezTerm(不推荐)
有点丑,比起Konsole感觉也没什么优势,而且还需要装上字体才能获得正常体验。 -
Blackbox
Gnome自带的,应该是和Konsole类似,比较平庸。 -
warp(推荐)
爽。
https://www.warp.dev/download
下载tar.zst格式
yay -U ./xxx.tar.zst
有时候放后台,再点进去弹不出来,不适合做常驻终端。
steam和显卡驱动
装steam之前,你应该解决显卡驱动问题。
我的这篇博客中解决了显卡问题,除了开机会黑屏一会儿,并无大碍。
https://www.cnblogs.com/oldsaltfish/p/18649056
装完驱动后,安装steam就行了。
yay -S stesm
steam用的少,下下来只为了测试显卡是否正常工作。
cursor
yay -S cursor-bin
安装Vscode。
yay -S visual-studio-code-bin
utools
提供一些工具,用得少,但是能解决问题就很爽。
为数不多的全平台工具。
wox也能在linux使用,喜欢开源的可以试试。
wox中快捷键不生效,搜不到自带软件,我很快就对他失去耐心了。
上面utools,下面wox
yay -S utools-bin
github-cli
yay -S github-cli
音乐
只有qq音乐提供了linux版本。
yay -S qqmusic-bin
github
Fine-grained personal access token,用于限制组织成员对组织内资源的访问。
https://github.net.cn/zh/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization#restricting-access-by-personal-access-tokens-classic
由于这个选项只有读仓库的权力(没有写),应该是用于提交PR,管理issue之类的其他权限。
无权限。
remote: Permission to OldSaltFish/cmd-with-rust.git denied to OldSaltFish.
致命错误:无法访问 'https://github.com/OldSaltFish/cmd-with-rust.git/':The requested URL returned error: 403
其他问题
apipost用不了,黑屏。
由于vscode的开源版用起来没有问题,所以应该是软件问题。
可以使用apifox。
https://apifox.com/
https://apifox.com/apiskills/api-test-tools/
尽量不要使用electron的应用。
跨平台应用
flatpak
nix
nix-env 主要用于管理和操作用户级别的软件包,提供了安装、卸载、更新等功能,并且支持回滚机制。
nix-shell 则专注于创建隔离的开发环境,使得开发者能够在不受系统其他部分干扰的情况下工作,特别适合多语言项目和复杂的依赖关系管理。
https://search.nixos.org/packages?channel=24.11&show=snipaste&from=0&size=50&sort=relevance&type=packages&query=snipaste
当我试着安装截图软件snipaste时,他报错如下:
➜ ~ nix-shell -p snipaste
error: getting status of '/nix/var/nix/daemon-socket/socket': Permission denied
➜ ~ sudo nix-shell -p snipaste
[sudo] dreamsoul 的密码:
error:… while calling the 'derivationStrict' builtinat <nix/derivation-internal.nix>:34:12:33|34| strict = derivationStrict drvAttrs;| ^35|… while evaluating derivation 'shell'whose name attribute is located at /nix/store/w74d7b6nqn0sx6vac9scwaszy17vj9n9-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:375:7… while evaluating attribute 'buildInputs' of derivation 'shell'at /nix/store/w74d7b6nqn0sx6vac9scwaszy17vj9n9-nixpkgs/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:422:7:421| depsHostHost = elemAt (elemAt dependencies 1) 0;422| buildInputs = elemAt (elemAt dependencies 1) 1;| ^423| depsTargetTarget = elemAt (elemAt dependencies 2) 0;(stack trace truncated; use '--show-trace' to show the full, detailed trace)error: Package ‘snipaste-2.10.3’ in /nix/store/w74d7b6nqn0sx6vac9scwaszy17vj9n9-nixpkgs/nixpkgs/pkgs/by-name/sn/snipaste/package.nix:27 has an unfree license (‘unfree’), refusing to evaluate.a) To temporarily allow unfree packages, you can use an environment variablefor a single invocation of the nix tools.$ export NIXPKGS_ALLOW_UNFREE=1Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,then pass `--impure` in order to allow use of environment variables.b) For `nixos-rebuild` you can set{ nixpkgs.config.allowUnfree = true; }in configuration.nix to override this.Alternatively you can configure a predicate to allow specific packages:{ nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["snipaste"];}c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add{ allowUnfree = true; }to ~/.config/nixpkgs/config.nix.
https://github.com/NixOS/nixpkgs/issues/109421
需要改root用户的配置文件来允许不自由的软件安装(因为用的是sudo)。
安装软件奇慢无比,而且命令行中会显示一大堆copy path,对使用软件没有任何帮助。
真是搞不懂为什么能这么慢,几乎是卡着不动了。
sudo nix-shell -p localsend
运行localsend没有反应,对nix失去耐心了。
markdown
yay -S obsidian
每个人写markdown的软件不一样,没什么好说的
flatpak和Appimage
flatpak等用到了再说,Appimage确实用得多。
还有一个nix。
体验
很多商业软件都只提供deb和rpm,幸好arch的第三方软件源非常强大。
-
截图功能
自带的截图软件Spectacle不太好用,比起windows的pixpin差远了。
没有贴图功能。可能需要使用flameshot,但是太丑了实在是,功能也只是勉强能用。
只能使用snipaste,希望pixpin早日做出linux版本。
snipaste没有录制gif的功能,也没有OCR。
客观比较的话,我体感上,pixpin比snipaste卡一些。
https://zh.snipaste.com/ -
yay真是太好用了,少打很多sudo。
-
微信的AppImage包体验不太好,幸好aur源里面有微信。
https://sh.alynx.one/posts/GNOME-IBus-Wayland-IME/
其他
Avalonia,使用Visual Studio开发跨平台应用。
生态有限,IDE工具繁重,建议还是不要用。
https://www.cnblogs.com/Fengyinyong/p/13346642.html
https://docs.avaloniaui.net/zh-Hans/docs/get-started/install
flutter
https://docs.flutter.cn/get-started/install/linux/desktop#install-the-flutter-sdk
yay -S jetbrains-toolbox
看别人的说法,直接使用官网的压缩包或者使用yay都有一定问题。因此可以使用toolsbox进行安装。
打包发布。
https://distributor.leanflutter.dev/zh-hans
提供了pacman的支持,但是没有给出文档。
https://github.com/leanflutter/flutter_distributor/pull/198