Skip to content

Manjaro-I3 Basic Install

Manjaro-I3 系统基本安装

操作系统安装的是 manjaro-i3-21.1.2-minimal,语言为简体中文

一. 基本操作

1
2
3
4
5
6
7
$ sudo pacman -S  package # 安装
$ sudo pacman -R  package # 删除单个软件包,保留其全部已经安装的依赖关系
$ sudo pacman -Rs package # 除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系
$ sudo pacman -Ss package # 查找软件
$ sudo pacman -Sc         # 清空并且下载新数据
$ sudo pacman -Syu        # 升级所有软件包
$ sudo pacman -Qs         # 搜索已安装的包

二. 基础配置

系统安装部分较为简单,与常规 Linux 安装无差异,请自行百度

2.1 替换国源

1)配置中国的 mirrors,在 终端 执行下面的命令从官方的源列表中对中国源进行测速和设置

$ sudo pacman-mirrors -i -c China -m rank

2)为 Manjaro 增加中文社区的源来加速安装软件,在 /etc/pacman.conf 中添加 archlinuxcn 源,末尾加上:

1
2
3
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

3)安装 archlinuxcn-keyring 包以导入 GPG key,否则的话 key 验证失败会无法安装并安装 base-devel 工具包,最后同步更新系统:

1
2
3
$ sudo pacman -Syy
$ sudo pacman -S archlinuxcn-keyring base-devel
$ sudo pacman -Syyu

2.2 安装 yay

Yay 是用 Go 编写的 Arch Linux AUR 包管理工具。具体可以查看 Arch Wiki

$ sudo pacman -S yay
$ yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save # 配置镜像源
$ yay -P -g                                              # 配置文件位于 ~/.config/yay/config.json 

# 基本操作
$ yay -S package   # 从 AUR 安装软件包
$ yay -Rns package # 删除包
$ yay -Syu         # 升级所有已安装的包
$ yay -Ps          # 打印系统统计信息
$ yay -Qi package  # 检查安装的版本

2.3 安装 ZSH

Zsh 是一款功能强大的 Shell 软件,既可以作为交互式终端来使用,也可以作为脚本语言解释器来使用

$ cat /etc/shells      # 查看系统所有shell
$ chsh -s /usr/bin/zsh # 更改默认shell为zsh

# 安装ohmyzsh
$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

# 安装插件
# zsh-syntax-highlighting:语法高亮
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM}/plugins/zsh-syntax-highlighting
# autosuggestions:记住用过的命令
$ git clone git://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
# autojump:文件目录跳转
$ sudo pacman -S autojump
$ source /usr/share/autojump/autojump.zsh

# 修改主题,这里使用的主题是powerlevel10k,详细信息可从Github找到
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

$ sudo vim ~/.zshrc                       # 修改配置文件
ZSH_THEME="powerlevel10k/powerlevel10k"   # 更改ZSH_THEME
plugins=(git                              # 更改plugins
       zsh-autosuggestions
       zsh-syntax-highlighting
       sudo
       extract
       autojump
     )
# 字体显示模糊 
export LC_ALL=en_US.UTF-8
export LANG=EN_US.UTF-8
# 文末添加
eval $(thefuck --alias)
$ source ~/.zshrc                         # 刷新配置,打开终端按提示进行配置即可

注:使用vim编辑时提错E437: terminal capability "cm" required

1
2
3
4
5
6
# 临时方法
export TERM=xterm
# 永久修改
$ sudo vim /etc/profile
$ sudo vim ~/.zshrc
export TERM=xterm

2.4 安装字体

# 安装常用的中文字体
$ sudo pacman -S ttf-roboto noto-fonts ttf-dejavu powerline powerline-fonts powerline-vim
# 文泉驿
$ sudo pacman -S wqy-bitmapfont wqy-microhei wqy-microhei-lite wqy-zenhei
# 思源字体
$ sudo pacman -S noto-fonts-cjk adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts
# 其它字体
$ sudo pacman -S ttf-font-awesome ttf-font-icons ttf-font-logos ttf-roboto-mono awesome-terminal-fonts nerd-fonts-complete ttf-fireflysung firefox-i18n-zh-cn thunderbird-i18n-zh-cn gimp-help-zh_cn man-pages-zh_cn && fc-cache -fv && locale-gen

# 桌面乱码问题:修改conky_main乱码,将Bitstream Vera字体替换成anti
$ sudo vim /usr/share/conky/conky_maia
:%s/Bitstream Vera/anti/

字体模糊发虚 1. 先系统设置生成 ~/.config/fontconfig/fonts.conf 2. mod+z – Settings – Qt5 settings – 标签栏” 字体” – 创建”fonts.conf” (可以前置选择好自己的字体再创建,下为参考参数)

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

<fontconfig>

    <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
        <its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
    </its:rules>

    <description>Manjaro Font Config</description>

    <!-- Font directory list -->
    <dir>/usr/share/fonts</dir>
    <dir>/usr/local/share/fonts</dir>
    <dir prefix="xdg">fonts</dir>
    <dir>~/.fonts</dir> <!-- this line will be removed in the future -->

    <!-- 自动微调 微调 抗锯齿 内嵌点阵字体 -->
    <match target="font">
        <edit name="autohint"> <bool>false</bool> </edit>
        <edit name="hinting"> <bool>true</bool> </edit>
        <edit name="antialias"> <bool>true</bool> </edit>
        <edit name="embeddedbitmap" mode="assign"> <bool>false</bool> </edit>
    </match>

    <!-- 英文默认字体使用 Roboto 和 Noto Serif ,终端使用 DejaVu Sans Mono. -->
    <match>
        <test qual="any" name="family">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
            <string>Noto Serif</string>
        </edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family">
            <string>sans-serif</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
            <string>Roboto</string>
        </edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family">
            <string>monospace</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
            <string>DejaVu Sans Mono</string>
        </edit>
    </match>

    <!-- 中文默认字体使用思源宋体,不使用 Noto Sans CJK SC 是因为这个字体会在特定情况下显示片假字. -->
    <match>
        <test name="lang" compare="contains">
            <string>zh</string>
        </test>
        <test name="family">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Source Han Serif CN</string>
        </edit>
    </match>
    <match>
        <test name="lang" compare="contains">
            <string>zh</string>
        </test>
        <test name="family">
            <string>sans-serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Source Han Sans CN</string>
        </edit>
    </match>
    <match>
        <test name="lang" compare="contains">
            <string>zh</string>
        </test>
        <test name="family">
            <string>monospace</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Noto Sans Mono CJK SC</string>
        </edit>
    </match>

    <!-- 把Linux没有的中文字体映射到已有字体,这样当这些字体未安装时会有替代字体 -->
    <match target="pattern">
        <test qual="any" name="family">
            <string>SimHei</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>Source Han Sans CN</string>
        </edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family">
            <string>SimSun</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>Source Han Serif CN</string>
        </edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family">
            <string>SimSun-18030</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>Source Han Serif CN</string>
        </edit>
    </match>
    <!--
    <match target="pattern">
        <test qual="any" name="family">
            <string>Microsoft YaHei</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>Source Han Sans CN</string>
        </edit>
    </match>
    -->

    <!-- Load local system customization file -->
    <include ignore_missing="yes">conf.d</include>
    <!-- Font cache directory list -->
    <cachedir>/var/cache/fontconfig</cachedir>
    <cachedir prefix="xdg">fontconfig</cachedir>
    <!-- will be removed in the future -->
    <cachedir>~/.fontconfig</cachedir>

    <config>
        <!-- Rescan in every 30s when FcFontSetList is called -->
        <rescan> <int>30</int> </rescan>
    </config>

</fontconfig>

2.5 目录修改

先将中文目录名称修改成英文,再修改配置文件信息

1
2
3
4
5
6
7
8
9
$ vim ~/.config/usr-dirs.dirs
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

2.6 输入法

fcitx 是 Free Chinese Input Toy for X 的缩写,国内也常称作小企鹅输入法,是一款 Linux 下的中文输入法

$ sudo pacman -S fcitx5-im
$ sudo pacman -S fcitx5-chinese-addons
$ sudo pacman -S fcitx5-rime
$ sudo pacman -S fcitx5-configtool
$ sudo nano ~/.pam_environment
# 添加以下内容
INPUT_METHOD  DEFAULT=fcitx5
GTK_IM_MODULE DEFAULT=fcitx5
QT_IM_MODULE  DEFAULT=fcitx5
XMODIFIERS    DEFAULT="@im=fcitx5"
# 配置环境变量
$ sudo vim ~/.xprofile
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx
fcitx5 &

$ sudo vim ~/.i3/config
# Autostart applictions
exec --no-startup-id fcitx

2.7 挂载外盘

挂载 samba (按需配置),因有多台 PC/Server 设备,为了 Win/Linux 之间互联,可略过

1
2
3
4
5
6
7
$ yay -S samba
$ mkdir -p /home/username/share
# 挂载并设置自启
$ smbclient //server-ip/share -U servername
$ sudo mount -t cifs -l //server-ip/share /home/username/share -o username=servername,password=serverpassword
$ sudo vim /etc/fstab
$ //server-ip/share /home/username/share cifs defaults,username=servername,password=serverpassword 0 0

2.8 日常工具

建议安装各自所需的,没必要全部安装

$ yay -S google-chrome                            # 浏览器
$ vim ~/.config/mimeapps.list                     # 默认值
:%s/userapp-Pale Moon/google-chrome-stable/
$ vim ~/.i3/config                                # 快捷建
bindsym $mod+F2 exec google-chrome-stable
$ vim ~/.profile                                  # 环境变量
export BROWSER=/usr/bin/google-chrome-stable
-------------------------------------------------------------
$ yay -S switchhosts                              # github访问加速,选择.appimage版本
- 标题:任意
- 类型:Remote
- URL: https://cdn.jsdelivr.net/gh/521xueweihan/GitHub520@main/hosts
- 自动刷新时间:第一次添加可以先选择1 minute,有了规则以后,就可以选择1 hour
-------------------------------------------------------------
$ sudo pacman -S unrar unzip p7zip file-roller    # 压缩软件
$ sudo pacman -S timeshift                        # 备份工具
$ yay -S wps-office wps-office-mui-zh-cn wps-office-fonts ttf-wps-fonts  # wps-office
$ sudo pacman-S netease-cloud-music               # 网易音乐
$ yay -S picgo                                    # 图床工具
$ sudo pacman -S screenkey                        # 屏幕键盘
$ sudo pacman -S typora                           # 编辑工具
$ sudo pacman -S net-tools                        # 网络工具
$ sudo pacman -S aria2 filezilla                  # 下载工具
$ yay -S xmind                                    # 思维导图
$ sudo pacman -S foxitreader bookworm             # pdf&电子书
$ sudo pacman -S wireshark-qt                     # 抓包工具
$ yay -S remmina freerdp                          # 远程桌面
$ sudo pacman -S mpv vlc                          # 播放器

2.9 开发工具

$ sudo pacman -S vim                              # vim
$ sudo pacman -S git                              # git
$ git config --global user.name "username"
$ git config --global user.email "usermail"
$ ssh-keygen -t rsa -c "usermail"
-------------------------------------------------------------
$ sudo pacman -S nodejs npm yarn                  # nodejs & npm & yarn
$ npm config set registry https://registry.npm.taobao.org
$ sudo npm install -g hexo-cli                    # hexo-blog
-------------------------------------------------------------
$ sudo pacman -S jdk8-openjdk jdk11-openjdk       # java
$ sudo archlinux-java set java-8-openjdk          # 版本转换
-------------------------------------------------------------
$ sudo pacman -S maven                            # maven
配置文件路径 `/opt/maven/conf/settings.xml`
-------------------------------------------------------------
$ sudo pacman -S python-pip                       # pip
$ pip install --user thefuck                      # thefuck
# 下载慢时可更换源
$ mkdir ~/.pip
$ nano ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
-------------------------------------------------------------
$ yay -S pycharm                                  # pycharm
$ yay -S visual-studio-code-bin                   # VScode
$ yay -S jetbrains-toolbox                        # Jetbrains 全家桶管理工具(包含Android Studio)
$ sudo pacman -S make cmake                       # 编译器
$ sudo pacman -S clang                            # C
$ sudo pacman -S golang                           # Go
$ sudo pacman -S atom                             # Atom
$ sudo pacman -S gitkraken                        # Gitkraken

三. 系统优化

系统优化包含于桌面美化之类,请各自选择是否适合自身

3.1 磁盘优化

$ sudo systemctl enable fstrim.timer 

3.2 Zsh 主题

1)zsh 修改主题(系统内置主题)

$ vim ~/.zshrc
# 把默认的agnoster改为新的主题名称即可
ZSH_THEME="agnoster"
$ source ~/.zshrc

# 插件
$ cd ~/.oh-my-zsh/custom/plugins/
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
$ git clone https://github.com/zsh-users/zsh-autosuggestions
# 修改配置文件
plugins=(
    git
    zsh-autosuggestions
    zsh-syntax-highlighting
)

2)zsh 修改主题(系统外置主题)

更换没有的主题:powerlevel9k Powerlevel10k

# 旧版本与新版本,现以9k为例
$ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
$ git clone https://github.com/romkatv/powerlevel10k ~/.oh-my-zsh/custom/themes/powerlevel10k
$ sudo vim ~/.zshrc
ZSH_THEME="powerlevel9k/powerlevel9k"
#自定义提示符内容,具体请查看github
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(dir time root_indicator)
POWERLEVEL9K_MODE='nerdfont-complete'
POWERLEVEL9K_TIME_FORMAT='%D{%H:%M}'

# ==== Theme Settings ====
# PowerLevel9k
# 左侧栏目显示的要素(指定的关键字参考官网)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context dir vcs)
# 右侧栏目显示的要素
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs time virtualenv)
#新起一行显示命令 (推荐!极其方便)
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
#右侧状态栏与命令在同一行
POWERLEVEL9K_RPROMPT_ON_NEWLINE=true
#缩短目录层级
POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
#缩短目录策略:隐藏上层目录中间的字
#POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle"
#添加链接上下链接箭头更方便查看
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="↱"
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="↳ "
# 新的命令与上面的命令隔开一行
#POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
# Git仓库状态的色彩指定
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='blue'
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='black'
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='yellow'
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='black'
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='red'
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='black'

3.3 安装 alacritty

alacritty 是一款仿终端工具,下载安装后,根据自需求进行配置即可,配置可参考 i3 配置文件

1
2
3
4
$ sudo pacman -S alacritty
$ sudo vim ~/.i3/config
# start a terminal 修改默认终端
bindsym $mod+Return exec alacritty

配置自定义

alacritty 配置文件 与 i3 配置文件类似,若 .config 目录下没有 alacritty 目录则自行创建,并将上述配置文件根据自身版本复制过来

1
2
3
4
5
6
7
$ sudo mkdir ~/.config/alacritty
$ sudo cp /home/usrname/Downloads/alacritty.yml ~/.config/alacritty/

# 例子:桌面背景透明化
$ sudo vim ~/.config/alacritty/alacritty.yml
# Background opacity 背景不透明度
background_opacity: 0.5

3.4 安装 Feh

背景壁纸自动刷新

1
2
3
4
$ sudo pacman -S feh
$ sudo vim ~/.i3/config
# 首先创建背景目录,并设置每次启动 feh 自动随机选取壁纸作桌面
exec --no-startup-id feh --randomize --big-fill /usr/share/backgrounds/*.jpg 
# 如上述不成功可尝试方法二
$ vim ~/shell/wallpic.sh
#!/bin/sh

while true; do
    find /usr/share/backgrounds -type f \( -name '*.jpg' -o -name '*.png' \) -print0 |
        shuf -n1 -z | xargs -0 feh --bg-scale
    sleep 15m
done
$ chmod +x wallpic.sh
# 设置开机自启脚本
exec_always --no-startup-id ~/shell/wallpic.sh

注:两种方法最后都使用 $mod+shift+r 重启 i3 就可以了

关于 feh 配置背景不生效问题,虽然设置了 feh 桌面背景,但每次开机启动还是默认桌面背景,原因在于在 ~/.i3/config 配置文件中可知,manjaro-i3 默认使用 nitrogen 来管理桌面背景的,配置文件在 ~/.config/nitrogen ,可根据需要进行修改

1
2
3
4
[xin_-1]
file=/usr/share/backgrounds/i3_default_background.jpg
mode=5
bgcolor=#002A36

3.5 安装 flameshot

截图软件安装并设置快捷键

1
2
3
4
5
6
$ sudo pacman -S flameshot
$ sudo vim ~/.i3/config
# 添加截图快捷方式
bindsym Print --release exec /usr/bin/flameshot gui
for_window [class="flameshot"] floating enable 
exec --no-startup-id flameshot

3.6 终端透明

1
2
3
4
5
6
7
$ sudo pacman -S picom
$ sudo vim ~/.i3/config
exec_always --no-startup-id picom
$ sudo vim ~/.config/picom.conf
# Opacity
inactive-opacity = 0.7;
active-opacity = 0.9;

3.7 关闭时间

关闭桌面上左下角提示及右上角时间:桌面上的信息都由 conky 服务提供,关闭 conky 服务并重置配置文件即可

1
2
3
4
5
6
7
$ sudo kill -9 $(ps aux | grep conky | awk '{print $2}')
$ sudo cd /usr/share/conky
$ sudo mv conky_maia conky_maia.bak
$ sudo mv conky_1.10_shortcuts_maia conky_1.10_shortcuts_maia.bak
# 将下行进行注释
$ sudo vim ~/.i3/config
exec --no-startup-id start_conky_maia

3.8 配置显示

首先要使用 xrandr 命令查看显示器参数,根据实际情况修改

1
2
3
4
5
6
7
$ sudo vim ~/.i3/config
xrandr --output HDMI-1 --same-as DVI-D-1 --auto           # 双屏幕显示相同的内容--克隆
xrandr --output HDMI-1 --same-as DVI-D-1 --mode 1280x1024 # 指定外接显示器的分辨率
xrandr --output HDMI-1 --right-of DVI-D-1 --auto          # 外接显示器,设置为右侧扩展
xrandr --output DVI-D-1 --off                             # 关闭显示器
xrandr --output HDMI-1 --auto --output DVI-D-1 --off      # 打开HDMI-1接口显示器,关闭DVI-D-1接口显示器
xrandr --output HDMI-0 --primary                          # 设置主屏幕

四. 快捷键

i3wm 快捷键,详细可参考 官网

$mod + Enter             启动虚拟终端
$mod + A                 焦点转义到父窗口上
$mod + S                 堆叠布局
$mod + W                 标签布局
$mod + E                 默认布局
$mod + SpaceBar          焦点在平铺式/浮动式转换
$mod + D                 启动 dmenu
$mod + H                 水平分割窗口
$mod + V                 垂直分割窗口
$mod + J                 焦点往左窗口移
$mod + K                 焦点往下窗口移
$mod + L                 焦点往上窗口移
$mod + ;                 焦点往右窗口移
$mod + Shift + Q         杀死当前窗口的进程
$mod + Shift + E         退出 i3
$mod + Shift + C         当场重新加载 i3config, 无需重启
$mod + Shift + R         重启 i3 (还重新加载了 i3config, 又没有退出过程)
$mod + Shift + J         窗口左移
$mod + Shift + K         窗口下移
$mod + Shift + L         窗口上移
$mod + Shift + :         窗口右移
$mod + Shift + SpaceBar      窗口在平铺式/浮动式转换
$mod + <数字键>              切换window
$mod + shift + <数字键>      将当前程序发送到指定window
$mod + F                     全屏

$mod+F2                      打开浏览器
$mod+F3                      打开资源管理器
$mod+9                       锁屏
$mod+0                       电源菜单