Intel + Nvidia 双显卡配置

参考链接(英文):https://forum.manjaro.org/t/guide-install-and-configure-optimus-manager-for-hybrid-gpu-setups-intel-nvidia/92196

中文翻译:https://blog.kongjune.com/manjaro-prime/

几个问题:

  1. 什么是 optimus-manager

    optimus-manager 是在 Arch Linux 下的对 Ubuntu 的 nvidia-prime 解决方案的移植。optimus-manager-qtoptimus-manager 的图形化管理工具。

  2. 为什么不用大黄蜂方案?

    因为大黄蜂方案已经很多年没有维护了,兼容性有比较大的问题,而且性能也较差,无法充分发挥 nvidia 显卡的效能。旧版本的 manjaro 默认使用大黄蜂方案,而最新版的 manjaro 20 不再使用大黄蜂方案。

安装中文输入法

搜狗输入法仍然是 linux 下最好用的输入法,但在 manjaro 上 bug 不断,已经从官方仓库中移除。我不顾网上很多文章的劝阻强行安装,最后果然被坑,开机随缘启动,启动后还各种随缘乱码,受不了受不了。后来改用谷歌拼音,感觉不好用,没有词库也没有云联想。最后采用了 fcitx5 + fcitx5-chinese-addons,fcitx5-pinyin-zhwiki 和搜狗词库作为词库补充,虽然比不上搜狗输入法但也基本够用了。

arch wiki 上的参考链接:https://wiki.archlinux.org/index.php/Fcitx5_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

下面是我的总结以及遇到一些问题时的解决方法:

  1. 安装 fcitx-im 包组

    1
    $ yay -S fcitx-im
  2. 配置环境变量

    编辑 ~/.pam_environment 文件(没有就创建一个),添加以下内容:

    1
    2
    3
    4
    INPUT_METHOD  DEFAULT=fcitx5
    GTK_IM_MODULE DEFAULT=fcitx5
    QT_IM_MODULE DEFAULT=fcitx5
    XMODIFIERS DEFAULT=@im=fcitx5
  3. 设置开机自启

    1
    $ cp /usr/share/applications/fcitx5.desktop ~/.config/autostart/
  4. 安装输入法引擎 fcitx5-chinese-addons

    1
    $ yay -S fcitx5-chinese-addons
  5. 安装输入法模块

    1
    $ yay -S fcitx5-qt fcitx5-gtk
  6. 安装 fcitx5-pinyin-zhwiki 词库

    1
    $ yay -S fcitx5-pinyin-zhwiki

    这里有个坑,下载词库时会因为网络错误而中断,因为词库来源是中文维基百科,国内访问不到,所以需要手动下载。

    用编辑器打开 ~/.cache/yay/fcitx5-pinyin-zhwiki/src/fcitx5-pinyin-zhwiki-0.2.1/zhwiki-web-slang.py 文件,可以看到词库地址是 https://zh.wikipedia.org/w/api.php?action=parse&format=json&prop=wikitext&uselang=zh&formatversion=2&page=中国大陆网络用语列表

    词库地址

    复制到浏览器打开(记得fq),等加载完成后按 Ctrl + s 保存到桌面,命名为 api-result.json

    然后修改脚本,把

    1
    page = urllib.request.urlopen(_ZHWIKI_SOURCE_URL + urllib.parse.quote(_PAGE)).read()

    改为

    1
    2
    with open("/home/用户名/Desktop/api-result.json", "r") as fp:
    page = fp.read()
    改源码

    进入 ~/.cache/yay/fcitx5-pinyin-zhwiki 目录,安装:

    1
    2
    $ cd ~/.cache/yay/fcitx5-pinyin-zhwiki
    $ makepkg -rsi
  7. 安装图形化配置工具

    1
    $ yay -S fcitx5-configtool
  8. 配置 fcitx5

    打开配置界面:

    1
    $ fcitx5-configtool
    配置fcitx5

    点击右下角的 Add 按钮,将 Pinyin 添加进来,这里我已经添加好了。

    其他如快捷键、是否默认激活、是否在多个应用间共享状态、候选词数量等,都可以在左下角的 Configure global options 中进行配置。

    模糊音、词库(可以添加搜狗词库)等可以在这里配置:

    配置pinyin
  9. 点击 Configure addons,设置 CloudPinyin,将 backend 设为 baidu

  10. 主题和单行模式不再赘述,可以参考上面给出的参考链接。

  11. 重启,或注销重新登陆。

解决部分中文显示为异体(日文)的问题

如果系统语言设成了英文(或其他非中文),那么中文字体可能会显示为这个样子:

中文显示有问题

解决方法参考这篇文章

解决 debtap -u 速度慢的问题

使用 debtap 可以把 deb 格式的包转成 pkg.tar.zst,然后就可以用 pacman 安装了。

但第一次安装 debtap 后要先执行 debtap -u 同步数据库,国内速度非常慢。

解决方式:

编辑 /usr/bin/debtap

1
2
3
4
5
6
7
8
将:http://ftp.debian.org/debian/dists
替换为:https://mirrors.ustc.edu.cn/debian/dists

将:http://archive.ubuntu.com/ubuntu/dists
替换为:https://mirrors.ustc.edu.cn/ubuntu/dists

将:https://aur.archlinux.org/packages.gz
替换为:https://aur.tuna.tsinghua.edu.cn/packages.gz

忽略 debtap 的更新,防止每次更新后又要改一次:打开 Add/Remove Software,点击右上角三个点,选择 Preferences –> Advanced,在 Ignore upgrades for 中添加 debtap

忽略debtap的更新

安装配置旧版深度终端

以前在用 deepin v15 时,深度终端是我最喜欢的软件之一,功能强大又美观,所以我打算用深度终端替代 konsole 作为我的默认终端。

自 deepin v20 以后,deepin 团队不再维护原来的深度终端,开始开发新的深度终端,新版深度终端可以从 manjaro 官方仓库下载,版本号 5.2.x,但新版深度终端还没有适配其他发行版,所以在 manjaro 上无法正常显示,功能上也不及旧版深度终端,因此我打算手动安装旧版深度终端。上网查了一下,旧版深度终端最后的版本号是 5.0.0。

  1. 首先到 pkgs.org 上找到安装包:

    deepin-terminal-5.0

    下载与自己电脑架构对应的安装包。

  2. 用 debtap 将 deb 包转成 pkg.tar.zst 并用 pacman 安装:

    1
    2
    $ sudo debtap deepin-terminal_5.0.0+ds1-1_amd64.deb
    $ sudo pacman -U deepin-terminal-5.0.0.ds1-1-x86_64.pkg.tar.zst
  3. 安装 gnome-keyring,否则远程主机管理功能不可用:

    1
    $ yay -S gnome-keyring
  4. 忽略 deepin-terminal 的更新,否则又会提示更新到 5.2 版本。

  5. 打开系统设置 –> Personalization –> Applications –> Default Applications,将 deepin-terminal 设为默认终端:

    将deepin-terminal设为默认终端
  6. 打开系统设置 –> Workspace –> Shortcuts –> Custom Shortcuts,添加一个新的全局快捷键:

    添加全局快捷键

    Trigger 设为 Ctrl+Alt+T,挤掉原来的 Konsole,Action 设为 deepin-terminal,这样就能用 Ctrl+Alt+T 快捷键唤出深度终端了。

设置防火墙

netfilter、iptables、ufw 和 gufw:

  • netfilter:Linux 内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。netfilter 位于内核态(或称内核空间,kernel space)。
  • iptables:一个通过控制 netfilter 模块来管理网络数据包的流动与转送的应用软件,其功能不仅仅包括防火墙的控制出入流量,还有端口转发等等。iptables 位于用户态(或称用户空间,user space)。
  • ufw:全称 Uncomplicated FireWall(不是 Ubuntu FireWall),是 debian 系发行版中为了简化配置 iptables 而开发的一款工具。
  • gufw:ufw 的图形化管理工具。

manjaro 默认没有安装 ufw 和 gufw,为了简化防火墙操作,我安装了 ufw:

1
$ yay -S ufw

启动防火墙:

1
$ sudo ufw enable

安装配置 Tim

  1. 安装 Tim

    1
    $ yay -S deepin-wine-tim
  2. 修改 dpi

    wine 并不会跟随系统一起缩放,需要单独修改 dpi,

    1
    $ env WINEPREFIX="$HOME/.deepinwine/Deepin-TIM" /usr/bin/deepin-wine winecfg

    会打开 wine 的配置界面,在 Graphics 里把 Screen resolution 设为 120。

    wine的dpi配置
  3. 切换到 deepin-wine 环境

    1
    $ sh /opt/deepinwine/apps/Deepin-Tim/run.sh -d
  4. 禁用 ipv6

    如果不禁用 ipv6,Tim 会接受不到图片和头像。

    • 临时禁用(立即生效):

      1
      $ sudo sh -c 'echo 1 >> /proc/sys/net/ipv6/conf/wlp3s0/disable_ipv6'
    • 开机禁用(永久禁用,重启生效):

      编辑 /etc/default/grub 文件,找到 GRUB_CMDLINE_LINUX_DEFAULT="xxx" 这一行,在引号里添加参数 ipv6.disable=1

      比如我原来的参数是这样:

      1
      GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor udev.log_priority=3"

      现在改为:

      1
      GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor udev.log_priority=3 ipv6.disable=1"

      最后更新 grub 使其生效:

      1
      $ sudo update-grub

安装配置微信

步骤与安装 Tim 类似。

  1. 安装微信

    1
    $ yay -S deepin-wine-wechat
  2. 修改 dpi

    1
    $ env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" /usr/bin/deepin-wine winecfg

    将 Graphics –> Screen resolution 设为 120。

  3. 切换到 deepin-wine 环境

    1
    $ sh /opt/deepinwine/apps/Deepin-WeChat/run.sh -d
  4. 记得启动微信后禁用自动更新

关于休眠功能

要使用休眠功能,必须有 swap 分区或者 swapfile,最好是 swap 分区。

如果能使用休眠功能,但重新开机后又什么都没有,跟关机一样,就查看 /etc/default/grub 文件,找到 GRUB_CMDLINE_LINUX_DEFAULT="xxx" 这一行,在引号里添加参数 resume=xxx。其中 xxx 是 swap 分区对应的块设备文件或 UUID,比如我的是 resume=/dev/sdb4

更新 grub 使之生效:

1
$ sudo update-grub

配置 grub 界面

  1. 修改主题

    www.pling.com 下载喜欢的 grub 主题,比如我的是 Tela

    解压、安装:

    1
    2
    3
    $ tar -xJvf Tela-1080p.tar.xz	# 解压
    $ cd Tela-1080p
    $ sudo ./install.sh # 安装
  2. 修改 grub 界面持续时间

    编辑 /etc/default/grub 文件,找到 GRUB_TIMEOUT=xx 这一行,xx 就是持续时间,单位为秒,改为自己想要的数字,比如我的是 GRUB_TIMEOUT=1 即持续 1s

  3. 更新 grub 使上述更改生效

    1
    $ sudo update-grub

安装配置 JDK

manjaro 20 默认没有安装 jdk 或 openjdk。

我会安装两个 jdk,oracle-jdk8 和 oracle-jdk11。将 jdk8 设为默认 jdk,在除了 vscode 的其他地方使用 jdk8,在 vscode 中使用 jdk11(因为现在 vscode 不支持 jdk11 以下的版本了,jdk11 是 jdk8 之后的第一个 LTS 版本)

  1. 安装 jdk8

    oracle.com 手动下载 .tar.gz 格式的 jdk8 的安装包

    下载jdk8

    放在 ~/Downloads 目录下。然后打开终端执行:

    1
    $ yay -S jdk8
  2. 安装 jdk11

    oracle.com 手动下载 .tar.gz 格式的 jdk11 的安装包

    下载jdk11

    放在 ~/Downloads 目录下。然后打开终端执行:

    1
    $ yay -S jdk11
  3. 将 jdk8 设为默认 jdk

    1
    $ sudo archlinux-java set java-8-jdk

    所有 jdk 默认安装在 /usr/lib/jvm 目录下:

    jdk安装目录

    除了 jdk 目录外,可以看到有两个符号链接 defaultdefault-runtime,这两个链接指向当前默认的 jdk,archlinux-java set 命令其实就是改变了这两个文件的指向。

  4. 配置环境变量

    编辑 /etc/profile 文件,添加下面几行:

    1
    2
    3
    4
    5
    # set for java
    unset _JAVA_OPTIONS
    export JAVA_HOME=/usr/lib/jvm/default
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

安装配置 maven

  1. 安装 maven

    1
    $ yay -S maven
  2. 配置环境变量

    编辑 /etc/profile 文件,添加下面几行:

    1
    2
    3
    # set for maven
    export MAVEN_HOME=/opt/maven
    export PATH=$PATH:$MAVEN_HOME/bin
  3. 换阿里云源

    编辑 /opt/maven/conf/settings.xml 文件,找到 <mirrors></mirrors> 标签,在里面添加:

    1
    2
    3
    4
    5
    6
    <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    <mirrorOf>central</mirrorOf>
    </mirror>

    添加完后是这个亚子:

    maven阿里云源

安装 MySQL

MySQL 被 oracle 收购后,开发者们担心某一天 MySQL 会成为一个非开源的收费软件,因此很多人开始基于 MySQL 的分支开发类 MySQL 的 RDBMS,到目前为止,主要有两个久经考验的 RDBMS 分别为:Percona server for MySQL 和 MariaDB。

这里我选择安装 Percona server for MySQL,因为根据官方的说法,这是最接近 Oracle MySQL Enterprise 的版本,选择这个可以帮助我学习 MySQL。

安装配置过程参考这篇文章

arch/manjaro 默认安装 8.0 版本,这个版本有密码安全度检测机制,设置的密码必须包含大小写字母、数字、符号。对我来说这个 RDBMS 只是用来练手,不需要太复杂的密码,所以参考这篇文章 取消密码强度限制,然后设置简单密码。

安装设置 flameshot

flameshot 是一款功能强大但易于使用的屏幕截图软件,它不仅能截图,更能对截图进行充分的编辑、涂画、标记、具备的功能更强于QQ截图,对我来说它唯一的缺点就是不支持窗口截图。

  1. 安装 flameshot

    1
    $ yay -S flameshot
  2. 设置 flameshot

    打开 flameshot 的设置页:

    1
    $ flameshot config

    在 Interface 中启用 flameshot 的所有功能。

    在 General 中,设置开机自启、隐藏托盘图标和消息提示:

    设置flameshot
  3. 设置全局快捷键:系统设置 –> Workspace –> Shortcuts –> Custom Shortcuts,添加一个全局快捷键,Trigger 设为 Ctrl+Alt+A(我的),Action 设为 flameshot gui

flameshot 常用命令:

  1. 打开捕捉界面

    1
    $ flameshot gui
  2. 打开捕捉界面并设置存储位置,保存时不会弹出保存对话框,直接保存到指定位置

    1
    $ flameshot gui -p ~/Desktop
  3. 延时截图,单位为毫秒

    1
    $ flameshot gui -d 5000
  4. 截取全屏

    1
    $ flameshot full
  5. 打开配置界面

    1
    $ flameshot config

安装 VMware Workstation Pro 15

  1. 先去 VMware 官网 下载。

  2. 添加执行权限并以 sudo 身份运行:

    1
    2
    $ sudo chmod +x ./VMware-Workstation-Full-15.5.1-15018445.x86_64.bundle
    $ sudo ./VMware-Workstation-Full-15.5.1-15018445.x86_64.bundle
  3. 完成后会有快捷方式,点击快捷方式打开安装程序。

  4. 如果提示安装 linux-headers,就先退出,安装 linux-headers 后再打开

    1
    2
    $ uname -r	# 查看内核版本,我的是 Linux5.6
    $ yay -S linux56-headers # 安装与内核版本对应的 linux-headers
  5. 如果提示安装 vmmon 和 vmnet,而且安装失败时

    先退出,创建一个 sh 脚本,写入以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #!/bin/bash
    VMWARE_VERSION=`vmware-installer -l | grep workstat | awk '{print $2}' | awk 'BEGIN {FS="."}{print "workstation-"$1"."$2"."$3}'`
    TMP_FOLDER=/tmp/patch-vmware
    rm -fdr $TMP_FOLDER
    mkdir -p $TMP_FOLDER
    cd $TMP_FOLDER
    git clone https://github.com/mkubecek/vmware-host-modules.git
    cd $TMP_FOLDER/vmware-host-modules
    git checkout $VMWARE_VERSION
    git fetch
    make
    sudo make install
    sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
    sudo ln -s /lib/x86_64-linux-gnu/libz.so.1
    /usr/lib/vmware/lib/libz.so.1/libz.so.1
    sudo /etc/init.d/vmware restart

    sudo 身份执行:

    1
    $ sudo sh xxx.sh
  6. 重新打开快捷方式,会弹出安装界面,根据提示安装即可。

    VMware Workstation Pro 15 序列号:YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8

  7. 安装一些依赖,否则有些功能不能用,比如虚拟机与宿主机之间复制文件:

    1
    $ yay -S open-vm-tools gtkmm gtkmm3

用 trash-cli 代替 rm

rm 命令太危险了,很容易误删文件,为了防止误删,我用 trash-cli 提供的 trash 命令代替 rm,用 trash 命令删除文件实际上是把文件放入了回收站。

  1. 安装 trash-cli

    1
    $ yay -S trash-cli
  2. 设置 alias

    编辑 ~/.zshrc 文件,添加下面两行:

    1
    2
    alias rm='trash'
    alias rmdir='trash'

    重启终端生效。

系统缩放 125%

方式一:

打开系统设置 –> Appearance –> fonts –> Fonts,将 Force font DPI 设为 120(原来是 96,96 x 125% 就是 120)。

方式二:

打开系统设置 –> Hardware –> Display and Monitor –> Display configuration,将 Global scale 设为 125%。

实际上方式二也是通过修改字体 DPI 的方式进行缩放,所以两种方式是一样的。

开机解锁小键盘

打开系统设置 –> Hardware –> Input Devices –> Keyboard,将 NumLock on Plasma Startup 设为 Turn on

NumLock-TurnOn

美化

参考这个视频:https://www.youtube.com/watch?v=DX_gQTQLUZc&list=PL9RW9IKYO96DODIz2dLoSzcafG0AhxrEY&index=2&t=0s&pbjreload=101

这个视频将 manjaro 配置得像 Mac 一样。我没有完全按照这个视频配置,比如我保留了原来的 dock,因为 Mac 的 dock 虽然好看但效率较低。最后放张图:

美化

软件推荐

这里只写介绍,不写安装方法,基本上都能用 yay 安装,极少数复杂点的在网上也有大把教程。

  • Timeshift

    系统备份工具。预装软件,如果没有装一定要装上,在进行危险操作之前先备份一下系统,一不小心搞崩还能恢复。同时建议开启定期备份,虽然 manjaro 比 arch 稳定,但还是有滚挂的可能性。

  • oh-my-zsh

    不用说,装机必备。

  • fd

    用 rust 编写的文件搜索工具,旨在成为 find 的替代品,比 find 快得多。

  • fzf

    目前最快的模糊搜索工具,用 golang 编写。可以搭配 fd 来搜索文件,还能模糊搜索历史命令等等。

  • uTools

    uTools是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    当你熟悉它后,能够为你节约大量时间,让你可以更加专注地改变世界。

    以上介绍来自官网,感觉介绍地不是很全面。

    uTools 是一个快速启动软件,但快速启动只是它最基本的功能,强大的插件生态才是让我对它爱不释手的原因,通过安装各种各样的插件,uTools 的功能会非常强大。

  • electron-ssr

    基于 electron 开发的图形化 ssr 管理工具。

  • CopyQ

    强大的剪贴板管理工具。

  • kdiff3

    文本对比工具。可以集成到 Dolphin 文件管理器中。

  • XMind 2020

    基于 electron 开发的好用、高颜值的思维导图软件。

    果核剥壳破解版

  • Stacer

    系统监视和优化工具。可以用它查看 cpu、内存、磁盘、网络 使用情况,管理进程和服务,管理开机启动项,管理软件包等等。

  • Bleachbit

    垃圾清理工具。

  • balenaEtcher

    预装软件。U盘启动盘制作工具。

  • psensor

    硬件温度监控工具,能监控 CPU、内存、硬盘、显卡等硬件,并在温度超过指定值时发出警报。

  • Visual Studio Code (vscode)

    装机必备。由微软开发,跨平台且开放源代码的代码编辑器,支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段和代码重构等。原生支持前端开发,通过安装插件可以支持各种语言的开发。

  • IntelliJ IDEA

    不用说,java 开发神器。Jetbrains 出品,必属精品。

  • Dbeaver

    DBeaver 是一个基于 Java 开发、免费开源的通用数据库管理和开发工具,可以运行在各种操作系统上,支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQL Server、Sybase、MS Access、Teradata、Firebird、Derby 等等。商业版本更是可以支持各种 NoSQL 和大数据平台:MongoDB、InfluxDB、Apache Cassandra、Redis、Apache Hive 等。

  • plantuml

    用代码“写” UML 图。安装配置教程

  • Typora

    基于 electron,所见即所得的 markdown 编辑器。

  • wps-office

    我觉得是 linux 下最好用的 office 了,其他 office 要么丑的不忍直视,要么不能与 ms-office 兼容,要么操作起来与 ms-office 偏差太大。

    安装 wps-office 时需要安装配套的字体 ttf-wps-fonts。

  • baidunetdisk

    linux 下的百度网盘客户端,据说不限速,或者限速没有 windows 版那么厉害。我用着也感觉挺好,速度挺快。

  • xdm (xdman)

    全名 Xtreme Download Manager,Linux 下最快的下载神器。

    安装 xdm 后可以安装对应的浏览器插件,这样浏览器在下载东西时就可以调用 xdm 进行下载了。

  • Filezilla

    FileZilla 客户端是一个快速可靠的、跨平台的 FTP,FTPS 和 SFTP 客户端。具有图形用户界面和很多有用的特性。

  • simplescreenrecorder

    我用过的最好的录屏工具,使用简单,录制清晰,产生的文件也很小。

  • peek

    gif 录制工具。

  • wireshark

    神器,免费开源的网络数据包分析软件。安装配置方法参考 arch wiki

  • Burpsuite

    Burp Suite 是一个用于测试 Web 应用程序安全性的图形化工具。可以用来抓包以及。。

  • genymotion

    安卓模拟器,基于 virtualbox。可以被 Android Studio 调用。

  • virtualbox

    开源、高性能、轻量级的虚拟机软件。

  • ZY-Player

    基于 electron 的跨平台桌面端视频资源播放器,简洁无广告,免费高颜值。支持很多网站,资源很全面。

  • deepin-screensaver-pp

    屏保主题。