ArchLinux系统使用
图
ArchLinux系统默认是没有图形化界面的,同时很多的系统环境也没有,都需要用户根据需要手动安装,虽然这给用户带来了安装和使用上的难度,但是其可定制性也是很高的

Dwm

Dwm官网

文档

教程

特点

  • 使用纯C语言编写
  • 轻量,大概三千行代码
  • 易于改源码

安装

记得先安装xorg

git clone https://git.suckless.org/dwm

在dwm的文件夹下使用命令安装

sudo make clean install

注意:记得安装gcc、make,base-devel中有包含

在安装xorg后使用startx即可进入DWM环境,但是注意进入后没有终端和dmenu的情况下什么也做不了,可以使用model + shift + q退出dwm

如果安装了dmenu(pacman -S dmenu)使用model + p可以搜索应用,如st

如果想在登录后直接进入dwm,可在/etc/profile末尾加startx;,在用户下加会在启动终端报错误信息

默认快捷键

退出DWM:mod + shift + q
关闭窗口:mod + shift + c

窗口操作:

打开新终端:Alt + Shift + Enter
关闭一个窗口:Alt + Shift + C
窗口横向排列:Alt + D
窗口竖向排列:Alt + I
窗口位置互换:Alt + Enter
在窗口间切换:Alt + J 或 Alt + K
改变窗口的长度/比例:Alt + H 或 Alt + L
平铺模式:Alt + T
单窗口模式:Alt + M
浮动模式:Alt + F
窗口模式切换:Alt + 空格 或 Alt + Shift + 空格
多屏幕操作:

在主副屏之间移动焦点:使用Mod + < 或 Mod + >(其中Mod可能是另一个修饰键,如Alt或Win)
在主副屏之间移动窗口:使用Mod + Shift + < 或 Mod + Shift + >
自定义快捷键:例如,为截图工具设置快捷键,可以通过编辑配置文件来实现,如将Alt + Ctrl + A绑定到截图命令。

个人更改记录

static const char *tags[] = { "[1]浏览器", "[2]代理", "[3]终端", "[4]工作", "[5]娱乐", "[6]暂定", "[7]暂定", "[8]暂定", "[9]暂定" };
补丁:
dwm-alttab-20220709-d3f93c7.diff 可以让alt+tab只在当前标签下选择,方便了窗口模式

显示电量

~/.xinitrcexec dwm前加上

while true; do
# do some things
######################################################
#电池 
power=$(cat /sys/class/power_supply/BAT0/capacity)%
status=$(cat /sys/class/power_supply/BAT1/status)
if [[ $status == D* ]];then
    status='未充电'
else 
    status='充电中'
fi
xsetroot -name "$(date +"%F %R" ) [$status] $power "
sleep 2s
 
######################################################
# do some things end 
done &

显示亮度、电量、声音、时间

#set statusbar
while true
do
  #电量
  power=$(cat /sys/class/power_supply/BAT0/capacity)%
  status=$(cat /sys/class/power_supply/BAT1/status)
  if [[ $status == D* ]];then
    status='未充电'
  else 
    status='充电中'
  fi
  xsetroot -name "亮度 $(cat  /sys/class/backlight/nvidia_0/brightness)  [$status] $power  音量 $(amixer get Master | tail -1 | awk '{ print $5}' | tr -d '[]')  $(date +"%F %R")"
  sleep 1s   
done &

图

升级版本

#set statusbar
while true
do
  #电量
  power=$(cat /sys/class/power_supply/BAT0/capacity)%
  light=$(cat  /sys/class/backlight/nvidia_0/brightness)
  cpu=$(top -bn1 | sed -n '3p' | tr -s '[:space:]' | cut -d' ' -f2)
  mem=$(free -m | sed -n '2p' | tr -s '[:space:]' | cut -d' ' -f3)
  disk_total=$(df -hl | sed -n '5p' | tr -s '[:space:]' | cut -d' ' -f2)
  disk_use=$(df -hl | sed -n '5p' | tr -s '[:space:]' | cut -d' ' -f3)
  xsetroot -name "CPU $cpu%  Mem "$mem"MB  磁盘 $disk_use/$disk_total  亮度 $light  电量 $power  $(date +"%F %R")"
  sleep 1s   
done &

补丁

将补丁下载到dwm目录下,使用命令

patch < xxxx
  • alpha:状态条透明
  • awesomebar:状态栏显示打开的所有软件
  • fullscreen:全屏
  • autostart:自启动脚本,打完后在dwm.c中能指定启动脚本

解决Java程序不正常的问题

sudo pacman -S wmname
在~/.xinitrc中添加
wmname LG3D &

显示比列

创建并编辑vim ~/.Xresources

Xft.dpi: 125

st终端

st终端官网

从官网克隆源码

git clone https://git.suckless.org/st

编辑config.mk(好像不用编辑都行)

X11INC = /urs/include/X11
X11LIB = /urs/include/X11

粘贴复制

ctrl + shift + c
ctrl + shift + v

补丁(st版本:st-0.9.2(可官网手动下载)):

注意:先删除config.def.h,然后将补丁文件放置在st目录下,使用patch < xxx并输入config.h就能修改源文件打补丁,再重新编译安装sudo make clean install

  • scrollback:可滚动
  • alpha:透明度(st-alpha-0.8.5.diff)
  • anysize:全屏(st-anysize-0.8.4.diff)
  • dracula:更改配色

字体修改

图

记得安装字体

sudo pacman -S adobe-source-code-pro-fonts

系统资源查看

sudo pacman -S htop
htop

安装aur

aur网站

克隆代码后安装

makepkg -si

ranger

终端下的文件管理器,sudo pacman -S ranger,直接使用ranger即可

生成配置文件

ranger --copy-config=all

位于~/.config/ranger/rc.conf

设置显示隐藏文件和图片

set preview_images true
set preview_images_method w3m

图片的显示需要安装w3m

挂载磁盘

如果是NEFS格式的磁盘需要先下载

sudo pacman -S ntfs-3g

然后使用mount /dev/sda1 ~/doc即可临时挂载,重启后失效

想开机有效需要编辑/etc/fstab

/dev/sda1 /home/fan/doc ntfs-3g users,uid=1000,gid=100,fmask=0113,dmask=0002,locale=zh_CN.utf-8 0 0

然后可以正常挂载和使用

壁纸

使用feh可以查看图片和设置壁纸

sudo pacman -S feh
feh --bg-scale ~/Downloads/bg.jpg

可以设置在~/.xinitrc中启动有效

feh --bg-scale ~/Downloads/bg.jpg &

透明化支持

需要安装xcompmgr,然后设置开机自启

编辑~/.xinitrc加上

xcompmgr &

屏幕亮度调节

# 查看屏幕亮度最大值
cat  /sys/class/backlight/xxxxxx/max_brightness
# 当前亮度
cat  /sys/class/backlight/nvidia_0/brightness
# 屏幕亮度调到100
echo 100 > /sys/class/backlight/xxxxxx/brightness

cat /sys/class/backlight/nvidia_0/brightness
sudo chmod +777 /sys/class/backlight/nvidia_0/brightness
sudo echo 70 > /sys/class/backlight/nvidia_0/brightness

多屏显示

Arch文档

查看显示器:

# 详细
xrandr -q
# 简单
xrandr -q | grep connected

扩展输出到其他显示器

xrandr --output HDMI-1-1 --auto

关闭和开启某显示器

xrandr --output VGA1 --off
xrandr --output VGA1 --auto

双屏显示

xrandr --output eDP-1 --left-of HDMI-1-1 --auto
xrandr --output eDP-1 --right-of HDMI-1-1 --auto

设置分辨率

xrandr -s 1280x800

好像可以设置刷新率

解决自己笔记本刷新率造成的撕裂问题

# 查看输出设备
xrandr -q
# 选择输出设备
xrandr --output DP-2 --mode 2560x1600 --rate 165.00

注意:如需开机启动生效,需要配置到.xinitrc中,最好靠前些

xrandr --output DP-2 --mode 2560x1600 --rate 165.00 &

触摸板配置

Arch Wiki触摸板

VScode以root权限运行

sudo code --user-data-dir="~/.vscode" 70-synaptics.conf // 无效

sudo code --no-sandbox --disable-gpu-sandbox --user-data-dir=/root/.vscode/ .bashrc

JDK

解压JDK压缩包

配置/etc/profile

# JDK
export JAVA_HOME=/home/fan/work/jdk8
export PATH=$PATH:$JAVA_HOME/bin

顺便记录下环境变量的添加方式

#通过修改profile文件:
vim /etc/profile
export PATH=$PATH:/usr/local/bin
#生效方法:source或重启
#有效期限:永久有效
#用户局限:对所有用户

安装windows字体

系统字体目录/usr/share/fonts

在该目录下创建字体文件夹,然后将下载的字体放进去

sudo chmod 644 sim*    # 更改字体权限
sudo mkfontscale       # 创建字体的fonts.scale文件,用来控制字体旋转缩放
sudo mkfontdir         # 创建字体的fonts.dir文件,用来控制字体粗斜体产生
sudo fc-cache          # fc-cache扫描字体目录并生成字体信息的缓存,然后应用程序就可以立即使用这些新安装的字体

查询已安装的字体使用fc-list

解决浏览器出现乱码问题

在安装了中文字体后,依然后出现乱码的问题,这是编码问题,而当前的chrome不支持直接修改编码,都是自动识别,但是chrome识别不准,出现乱码,安装插件charset更改编码即可

Github Charset

下载源码解压安装,在chrome插件中导入

安装nvidia驱动

首先确定显卡型号

lspci -k | grep -A 2 -E "(VGA|3D)"

然后安装驱动

sudo pacman -S nvidia
sudo pacman -S nvidia-open

编辑/etc/default/grup更改内核模式

# 更改此行
GRUB_CMDLINE_LINUX_DEFAULT="quite splash nvidia-drm.modeset=1"

编辑/etc/mkinitcpio.conf添加模块

# 第一行更改
MODULES=(nvidia nvidia nvidia_modeset nvidia_uvm nvidia_drm)

然后重新生成,构建

sudo mkinitcpio -p linux

然后sudo reboot重启,然后使用nvidia-smi查看是否安装成功

注意:测试发现安装sudo pacman -S nvidia-open不需要配置也可以,比较方便

vim

配置,针对当前用户在在配置.vimrc,全局配置文件在/etc/vim/vimrc

syntax on                     " 设置语法高亮                                                                                                                                                                              
set nu                        " 设置行数显示
set tabstop=2                 " 设置tab缩进长度
set autoindent                " 设置自动缩进,适用所有类型文件
set cindent                   " 针对C语言的自动缩进功能,在C语言的编程环境中,比autoindent更加精准
set cursorline                " 突出显示当前行

操作方式

普通模式:esc
编辑:i或a
保存退出(普通模式):wq
强制退出(普通模式):q!
复制一行(普通模式):yy
粘贴(普通模式):p

触摸板调整

sudo pacman -S xf86-input-synaptics

wiki文档

教程文档

编辑sudo vim /usr/share/X11/xorg.conf.d/70-synaptics.conf文件,直接添加以下代码即可

Section "InputClass"
        Identifier "touchpad"
        Driver "synaptics"
        MatchIsTouchpad "on"
                Option "TapButton1" "1"
                Option "TapButton2" "3"
                Option "TapButton3" "0"
                Option "VertEdgeScroll" "on"
                Option "VertTwoFingerScroll" "on"
                Option "HorizEdgeScroll" "on"
                Option "HorizTwoFingerScroll" "on"
                Option "VertScrollDelta" "-112"
                Option "HorizScrollDelta" "-114"
                Option "MaxTapTime" "125"
EndSection



Section "InputClass"
       Identifier "touchpad"
       Driver "synaptics"
       MatchIsTouchpad "on"
              Option "TapButton1" "1"
              Option "TapButton2" "3"
              Option "TapButton3" "2"
              Option "VertEdgeScroll" "on"
              Option "VertTwoFingerScroll" "on"
              Option "HorizEdgeScroll" "on"
              Option "HorizTwoFingerScroll" "on"
              Option "CircularScrolling" "on"
              Option "CircScrollTrigger" "2"
              Option "EmulateTwoFingerMinZ" "30"
              Option "EmulateTwoFingerMinW" "6"
              Option "FingerLow" "30"
              Option "FingerHigh" "50"
          Option "VertScrollDelta" "-80"
              Option "HorizScrollDelta" "-60"
              Option "MaxTapTime" "125"
 EndSection

安装JetBrains Mono字体

JetBrains Mono官网下载字体,解压到/home/fan/.local/share/fonts

然后使用fc-cache -fv安装,可以使用fc-list查看已经安装的字体

在ST终端中使用需要在config.h中更改为monospace并重新编译安装sudo make clean install

声音

/lib/firmware/intel/sof
sudo pacman -S sof-firmware

https://segmentfault.com/a/1190000002918394

https://www.cnblogs.com/exmyth/p/17541159.html

https://wiki.archlinuxcn.org/wiki/ALSA

根据以上的测试,耳机可以,笔记本自带不行

Archlinux连接HDMI分屏后没声音:https://blog.csdn.net/weixin_43802844/article/details/122052678

pacman -S alsa-firmware alsa-tools pulseaudio-alsa

https://blog.51cto.com/u_16236295/10423953

https://worktile.com/kb/ask/433193.html

查看声卡设备:cat /proc/asound/cards
设置声音:amixer set Master 50%

alsamixer命令来控制音量

查看系统所有信息

sudo pacman -S inxi
inxi -F

https://www.jianshu.com/p/05bf79b1878b

配置代理

根据放心云的Linux教程进行配置,然后就可以使用了,

wget https://github.com/Kuingsmile/clash-core/releases/download/1.18/clash-linux-amd64-v1.18.0.gz
gunzip clash-linux-amd64-v1.18.0.gz
chmod +x clash-linux-amd64-v1.18.0

# 下面行换自己的
curl "https://sub.speed17sub.com/api/v1/client/subscribe?token=xx&flag=clash" > clash.yaml

./clash-linux-amd64-v1.18.0 -f clash.yaml

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
curl ipinfo.io # 查看出口IP

但是Chrome浏览器需要手动指定代理才可以

google-chrome-stable  --proxy-server="127.0.0.1:7890"