Manjaro文档

更换国内源(可以在软件商店设置里修改)

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

修改aur源:

  • 原始地址https://aur.archlinux.org
  • 添加 AUR 源: yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save
  • 查看配置 yay -P -g或者直接查看 ~/.config/yay/config.json 文件内容。

fcitx5

安装

1
sudo pacman -S fcitx5-im fcitx5-chinese-addons
  • 其他一些软件包

    1
    2
    3
    4
    5
    6
    7
    fcitx5: 输入法基础框架主程序
    fcitx5-chinese-addons: 简体中文输入的支持,云拼音
    fcitx5-gtk: GTK程序的支持
    fcitx5-qt: QT5程序的支持
    fcitx5-pinyin-zhwiki: 肥猫制作的维基百万词库,没有版权风险, 放心使用
    fcitx5-configtool: 图形化配置工具
    kcm-fcitx5: KDE桌面环境的支持

打开系统设置在 设置–区域设置—输入法—添加输入法—拼音—配置—-在程序中显示与编辑文本——启用云拼音 返回 配置附加组件 Classic User Interface 选择主题

配置fcitx5的环境变量:

不要在 fcitx 运行时修改, 因为进程退出后会覆写所有配置文件 (大字才能醒目)

1
2
3
nano ~/.pam_environment
如果不生效,则使用
nano ~/.xprofile

写入以下内容(内容来自manjaro的wiki)

1
2
3
4
5
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=\@im=fcitx
SDL_IM_MODULE DEFAULT=fcitx
最后那行 SDL_IM_MODULE 是为了让一些使用特定版本 SDL2 库的游戏,比如 Dota2 能正常使用输入法。

使用wps的用户还需要编辑~/.xprofile添加以下内容(在新版中bug被修复了,但是如果有问题的话,可以尝试此方法)

1
export QT_IM_MODULE=fcitx5

自启动
在设置的开机里设置fcitx5自启动

输入法的默认设置:

1
2
3
4
5
Ctrl + Space 激活输入法
Shift 临时切换到英文
Ctrl + Shift 输入法间切换
-/= 向前/向后翻页
Shift + Space 全角、半角切换

全自动配置

安装 manjaro的源里的manjaro-asian-input-support

更新:

​ 2022-11-17

1
2
3
4
5
I recently updated manjaro, fcitx became completely unavailable, a PAM configuration service gave up ~/.pam_environment, so just rewrite it to ~/.xprofile look like this:
export INPUT_METHOD=fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

fcitx5主题文件

主题文件位置:~/.local/share/fcitx5/themes/

将下载的主题放进去,在设置面板里更改就可以了

deepin论坛里的一个主题

地址

百度网盘:链接: https://pan.baidu.com/s/13mn46NhmWRwQ4-Qmiufztg 提取码: 7yai 复制这段内容后打开百度网盘手机App,操作更方便哦

fcitx5-material-color 主题

  • 安装
1
yay -S fcitx5-material-color

然后修改配置文件 ~/.config/fcitx5/conf/classicui.conf

1
2
3
4
5
6
7
8
9
10
11
# 横向候选列表
Vertical Candidate List=False

# 禁止字体随着DPI缩放,避免界面太大
PerScreenDPI=False

# 字体和大小,可以用 fc-list 命令来查看使用
Font="Noto Sans Mono 13"

# 默认蓝色主题
Theme=Material-Color-Blue

pacman常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
pacman -Ss string             # 在包数据库中查询软件
pacman -S package_name # 安装软件

pacman -S extra/package_name # 安装不同仓库中的版本
pacman -Syu # 升级整个系统,y是更新数据库,yy是强制更新,u是升级软件
pacman -Si package_name # 显示软件的详细信息
pacman -Sc # 清除软件缓存,即/var/cache/pacman/pkg目录下的文件
pacman -R package_name # 删除单个软件
pacman -Rs package_name # 删除指定软件及其没有被其他已安装软件使用的依赖关系
pacman -Qs string # 查询已安装的软件包
pacman -Qi package_name # 查询本地安装包的详细信息
pacman -Ql package_name # 获取已安装软件所包含的文件的列表
pacman -U package.tar.zx # 从本地文件安装
pactree package_name # 显示软件的依赖树

manjaro的pamac命令

他是软件商店的命令版本,也是manjaro自己的包管理命令。类似于ubuntu的apt命令。

1
2
3
4
5
6
pamac search name #搜索
pamac info name #详细信息
pamac install name #安装软件
pamac remove name #卸载软件
pamac checkupdates #检查更新
pamac upgrade #安装更新

火狐

改善火狐或chrome滚动

  • 在火狐中搜索 Yet Another Smooth Scrolling WE扩展
  • chrome中搜索Chromium Wheel Smooth Scroller扩展

或者

  • 输入在火狐浏览器地址栏输入

    about:config
    搜索mousewheel
    其中 mousewheel.defalut.delta_multiplier_y越大,每次滚动一下
    滚轮,屏幕就滑动地越大。
    除此之外,推测durationMaxMs和durationMinMs参数是
    完成滚动的时间间隔,以毫秒计算,数值越小,单次滚动越快。factor
    和鼠标滚轮滚动时,屏幕滚动的加速度有关。

禁用webrtc

输入about:config**
搜索:media.peerconnection.enabled
设置成:false

注:测试网站:https://www.vpninsights.com/webrtc-leak-test

设置界面缩放

高分屏缩放,比如netease-cloud-music软件:
可以通过 env QT_SCREEN_SCALE_FACTORS=1.25 netease-cloud-music 启动来解决,也就是在启动文件里添加。

设置快捷键启动的方式:

设置 -> 快捷键 -> 自定义快捷键 -> 编辑 -> 新建 -> 全局快捷键 -> 命令/URL

设置触发器:设置为你习惯的快捷键 -> 动作:命令/URL这填:/usr/bin/flameshot gui

网络启停

开机后显示wifi不可用,鼠标放在网络图标上显示Networkmanager未运行,解决方法是在终端执行以下命令

1
2
systemctl restart NetworkManager.service
systemctl enable NetworkManager.service

ZSH

  • 替换shell
1
2
3
yay -Sy zsh  #安装zsh  manjaro现在默认就已经安装了zsh
chsh -l #列出现在安装的shell
chsh -s /bin/zsh # 设置zsh为默认 重启生效
  • 备注manjaro已经内置zsh,直接在kde设置里修改即可,ohmyzsh在manjaro也内置了,所以如果自己想折腾,可以直接去github把ohmyzsh克隆到任意位置使用。

PART 1 → oh-my-zsh

默认的 Zsh 配置有点麻烦。因此一个叫 robbyrussel 的用户在 GitHub 上制作了一个配置文件 oh-my-zsh,这是目前为止最流行的 Zsh 配置:

oh-my-zsh 项目地址(不要吝啬你的 Star)

如果你不想看官方的安装说明,请看这里:

第一步 → 把 oh-my-zsh 项目 Clone 下来:

1
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

第二步 → 复制 .zshrc

1
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

第三步 → 更改你的默认 Shell

1
chsh -s /bin/zsh

现在,你会看到你的命令提示符变了。

zsh的配置文件存在当前用户目录中的.zshrc文件,如果你发现切换了shell之后,以前的配置的环境变量不生效了,可以打开 .zshrc文件,找到:

1
2
# User configuration
source ~/.bash_profile

指定配置的环境变量文件,之后运行:

1
source .zshrc

前往 oh-my-zsh 的 Wiki 就可以看到大多数 oh-my-zsh 的内置主题以及它们的截图。如果你看中的其中的一款,可以重复上面的步骤,编辑~/.zshrc,并更改ZSH_THEME=”xxx”。

比如你看中了 ys 主题(我的最爱),你可以把 ZSH_THEME 改成 “ys”,然后回到终端,执行 source ~/.zshrc 命令。

P.S. 这些主题都保存在 “~/.oh-my-zsh/themes” 目录中

  • powerlevel10k主题

    1
    2
    3
    1. 安装 
    git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
    2. 傻瓜式配置 终端中输入 p10k configure
    • 安装完 powerlevel10k 后你可能会发现有乱码,这是因为你终端字体不支持那么多的字符,这就需要使用扩展字体了。

PART 3 → 插件

oh-my-zsh 的自带插件都储存在 "~/.oh-my-zsh/plugins" 目录中,如果你希望安装一个插件,可以在 "~/.zshrc" 的 plugins=(xxx, xxx, ...) 这一行里加入插件名称

如果你需要安装第三方插件和主题,你可以在 "~/.zshrc" 的某一行(比如末尾)加入 source /path/to/plugin

比如你希望添加一个 zsh-syntax-highlighting 插件 ↓
1
2
source ~/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# 这里要根据你自己的输入目录,而不是抄我的,否则然并卵

​ kde主题文件位置

要么在根目录的usr目录下,要么就在home的.config目录下。

要删除主题,先把当前使用的主题换成默认的主题,然后根据下面的目录删除即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  AURORAE_DIR="/usr/share/aurorae/themes"
SCHEMES_DIR="/usr/share/color-schemes"
PLASMA_DIR="/usr/share/plasma/desktoptheme"
LOOKFEEL_DIR="/usr/share/plasma/look-and-feel"
KVANTUM_DIR="/usr/share/Kvantum"
WALLPAPER_DIR="/usr/share/wallpapers"
或者
AURORAE_DIR="$HOME/.local/share/aurorae/themes"
SCHEMES_DIR="$HOME/.local/share/color-schemes"
PLASMA_DIR="$HOME/.local/share/plasma/desktoptheme"
LOOKFEEL_DIR="$HOME/.local/share/plasma/look-and-feel"
KVANTUM_DIR="$HOME/.config/Kvantum"
WALLPAPER_DIR="$HOME/.local/share/wallpapers"

注:
/home/hzt/.local/share/plasma/desktoptheme 这是存放plasma主题
/home/hzt/.local/share/plasma/look-and-feel/ 存放全局主题
/home/hzt/.local/share/plasma/plasmoids/ 存放插件
/usr/share/sddm/ sddm主题位置

重启桌面

1
2
kquitapp5 plasmashell    # 退出kde桌面
kstart5 plasmashell

问题:

ctrl+f2进入tty,中文显示为方块

解决方法:安装fbterm

错误: Cannot find the fakeroot binary. ==> 错误: Cannot find the strip binary

解决方法:因为没安装 fakeroot、binutils 等打包基本工具,所以sudo pacman -S --needed base-devel 装一下。


使用数位板

1.查看系统信息中的内核版本,根据内核版本安装linux-header

2.安装aur源中的驱动:yay -S digimend-drivers-git-dkms


蓝牙

安装manjaro-bluetooth

如果不能接收文件,

更改kde设置-蓝牙-配置-接收文件选项 为接受信任设备或总是接受

关闭watchdog

根据 维基百科:看门狗定时器

由于系统的关键任务(即服务器)或缺少电源重置(即嵌入式设备),许多用户需要此功能。 因此,在某些情况下,此功能是良好操作所必需的。 另一方面,普通用户(例如台式机和笔记本电脑)不需要此功能,可以将其禁用。

要禁用看门狗定时器(包括软件和硬件),请附加 nowatchdog 到您的启动参数。

要检查新配置,请执行以下操作:

1
# cat /proc/sys/kernel/watchdog

或使用:

1
# wdctl
  • 附加启动参数到grub

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    如果要禁用watchdog,需要在内核启动选项里面添加一个参数:

    nowatchdog

    添加的方法是修改 /etc/default/grub 文件加上这个参数(用什么编辑器都可以,只要有root权限修改)

    sudo nano /etc/default/grub

    找到其中包含 GRUB_CMDLINE_LINUX_DEFAULT 的一行,等号后面的字符串里面加个空格,加上nowatchdog就行了,比如:

    本来是

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash foo=bar"

    改成

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash foo=bar nowatchdog"

    修改完毕之后
    在终端中调用 update-grub

禁用看门狗后,您也可以 选择 避免加载负责硬件看门狗的模块。 通过 列入黑名单 将相关模块 ,例如 iTCO_wdt.

注意: 一些用户 报告 nowatchdog 参数不能按预期工作,但是他们已通过将上述模块列入黑名单而成功禁用了看门狗(至少是硬件之一)。

这两种操作都会加快启动和关闭的速度,因为只加载了一个模块。 另外,禁用看门狗定时器可以提高性能并 降低功耗

有关 请参见 [3] , , [4] , [5] 和 [6] 更多信息 。

将硬件列入黑名单

在内核模块的上下文中,黑名单是一种防止内核模块加载的机制。 例如,如果不需要关联的硬件,或者如果加载该模块会导致问题,这可能会很有用:例如,可能有两个内核模块试图控制同一硬件,然后将它们一起加载会导致冲突。

有些模块作为 initramfs 的一部分装入。

mkinitcpio -M 会显示所有自动检测到到模块:要阻止 initramfs 装入某些模块,可以在 /etc/modprobe.d中将它们加入黑名单。并应在映像生成过程中通过modconf挂钩将其添加。

运行 mkinitcpio -v 会显示各种钩子(例如 filesystem 钩子, SCSI 钩子等)装入的模块。如果您的HOOKS 数组中没有 modconf 钩子(例如,和默认配置不同)则请将该”.conf”文件添加到/etc/mkinitcpio.conf中的FILES数组中。一旦您将其列入黑名单,请重新生成 initramfs,然后重新启动。

使用/etc/modprobe.d/中的文件

/etc/modprobe.d/ 中创建 .conf 文件,使用 blacklist 关键字屏蔽不需要的模块,例如如果不想装入 pcspkr 模块:

1
2
3
/etc/modprobe.d/nobeep.conf
# Do not load the 'pcspkr' module on boot.
blacklist pcspkr

注:blacklist 该命令会将一个模块列入黑名单,因此不会自动加载该模块,但是如果另一个未列入黑名单的模块依赖该模块或手动加载该模块,则可能会加载该模块。

要避免这个行为,可以让 modprobe 使用自定义的 install 命令,而不是像往常一样将模块插入内核,因此您可以通过以下方式强制模块始终无法加载:

1
2
3
4
/etc/modprobe.d/blacklist.conf
...
install MODULE /bin/true
...

这样就可以 “屏蔽” 模块及所有依赖它的模块。

1
2
3
也就是在/etc/modprobe.d我创建watchdog.conf文件,写入下面两行
blacklist iTCO_wdt
blacklist iTCO_vendor_support

停用 watchdog

关机时提示:watchdog: watchdog0: watchdog did not stop! 在台式机和笔记本上安装 Manjaro 时可以停用 watchdog 模块
提高性能#Watchdogs

许多用户由于其系统的关键任务角色(即服务器)或缺乏电源重置(即嵌入式设备)而需要此功能。 因此,在某些情况下,良好的操作需要此功能。 另一方面,普通用户(即台式机和笔记本电脑)不需要此功能,可以禁用它。

按照 archlinux wiki 上的方法,在启动参数中添加 nowatchdog 不能停用 watchdog

注意:一些用户报告 nowatchdog 参数没有按预期工作,但他们通过将上述模块列入黑名单,成功禁用了看门狗(至少是硬件)。

另一种方法是在内核启动参数中添加 modprobe.blacklist=iTCO_wdt 来禁用 watchdog 模块。
编辑 /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT 后添加 modprobe.blacklist=iTCO_wdt 保存退出后执行 sudo update-grub 来应用配置。

编辑 /etc/default/grub并附加 modprobe.blacklist=iTCO_wdtGRUB_CMDLINE_LINUX_DEFAULT线

内核参数#GRUB
静音关机。 看门狗:看门狗0:看门狗没有停止!

开关机显示/dev/nvme0n1p5: clean, … files, …blocks

1.在论坛里有提及这个问题

1
2
3
这两条命令显示一些日志信息
journalctl -b -g nvme0n1p
journalctl -b -u 'systemd-fsck*'

2.实际上根据

得到结论:系统在检查硬盘有没有问题,显示/dev/nvme0n1p5: clean就表示没有问题,所以没必要理会这条信息

调整swap分区使用率

在内核版本为5.8之前,swappiness范围在0-100,内核大于5.8,范围是0-200。

总的说来,swappiness值越小,越尽可能的使用内存而不是交换分区。

1
2
sysctl -q vm.swappiness 显示当前设置
sudo sysctl -w vm.swappiness=10 临时设置为10

To set the swappiness value permanently, create a sysctl.d(5) configuration file. For example:

永久的调整该设置,创建下面的配置文件

1
2
/etc/sysctl.d/99-swappiness.conf
vm.swappiness=10

failed to start pkgfile database update

查看pkgfile-update.servicepkgfile-update.timer,我猜测这个任务会每天相隔6小时执行,开机和关机时会因为错过任务而补偿执行,但是开机和关机时没有网络,所以执行失败。在系统设置面板的systemed里找到并修改pkgfile-update.timer,修改为开机后15分钟执行,相隔1天重复执行,就不会看到错误信息了。
这是修改后的pkgfile-update.timer文件。

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=pkgfile database update timer

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
Persistent=no

[Install]
WantedBy=multi-user.target

软件源里没有grub-customer

去官网下载

trim

检测 SSD 是否支持 TRIM

可以通过 /sys/block 下的信息来判断 SSD 支持 TRIM, discard_granularity 非 0 表示支持。

1
2
3
4
# cat /sys/block/sda/queue/discard_granularity
0
# cat /sys/block/nvme0n1/queue/discard_granularity
512

也可以直接使用 lsblk 来检测,DISC-GRAN (discard granularity) 和 DISC-MAX (discard max bytes) 列非 0 表示该 SSD 支持 TRIM 功能。

1
2
3
4
5
6
7
8
9
# lsblk --discard
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 0B 0B 0
├─sda1 0 0B 0B 0
├─sda2 0 0B 0B 0
└─sda3 0 0B 0B 0
sr0 0 0B 0B 0
nvme0n1 512 512B 2T 1
nvme1n1 512 512B 2T 1

网上也有文章介绍通过 hdparm 来检测,不过我在 Intel P4500 SSD 测试没有返回该信息。

1
2
# hdparm -I /dev/sda | grep TRIM
* Data Set Management TRIM supported (limit 1 block)

注意:

虽然连续 TRIM是 SSD 的一个选项(尽管不推荐),但不应向NVMe 设备发出Discards

在使用ext4LVM 的典型设置中,默认情况下禁用Discards,但其他文件系统可能需要明确禁用Discards。

英特尔作为一家设备制造商,建议不要在文件系统级别启用Discards,而是建议定期 TRIM方法,或者fstrim手动应用。[3]

  • Intel Optane SSD 不同于 NAND, 使用了 write-in-place 技术, 没有垃圾回收,没有 trim。而 Intel P4500、P4600 系列的 NVMe SSD 都是 NAND 产品,主动 trim 可以优化性能并延长寿命,特别是写频繁场景:

For NAND SSD:
mount -t xfs -o noatime,nodiratime,discard,nobarrier /dev/nvme0n1 /data/nandssd
The noatime/nodiratime parameters reduces the updates to the access time structures on disk.
The “discard” parameter tells the SSD to use the NVMe “TRIM” transaction to inform the SSD on “free space”.
The “nobarrier” parameter informs the OS that the drive supports a power-protected write buffer…and the OS can relax ordered writes on filesystem updates.
There have been some very recent changes in the XFS filesystem code that are now ignoring this option.
That appears to change some of the performance results…I need to go back and measure what the impacts are.
For Optane SSD:
mount -t xfs -o noatime,nodiratime,nodiscard,nobarrier /dev/nvme${i}n1 /data/optssd${i}
We changed “discard” to “nodiscard”. That is because “discard” does not provide any performance benefit on Optane.
Because Intel supports a “zeros” discard policy…(reads to unallocated data items returns zeros rather than random data)…the Optane drives were doing an extra erase of the memory when it handled a NVME TRIM transaction. Not good.

Continuous TRIM(连续修剪)

Note: There is no need to enable continuous TRIM if you run fstrim periodically. If you want to use TRIM, use either periodic TRIM or continuous TRIM.

  • 如果您fstrim定期运行,则无需启用连续 TRIM 。如果要使用 TRIM,请使用周期性 TRIM 或连续 TRIM。

Instead of issuing TRIM commands once in a while (by default once a week if using fstrim.timer), it is also possible to issue TRIM commands each time files are deleted instead. The latter is known as the continuous TRIM.

  • 除了偶尔发出 TRIM 命令(如果使用fstrim.timer,则默认为每周一次),也可以在每次删除文件时发出 TRIM 命令。后者被称为连续TRIM。

Warning: Before SATA 3.1 all TRIM commands were non-queued, so continuous trimming would produce frequent system freezes. In this case, applying #Periodic TRIM less often is better alternative. Similar issue holds also for a number of devices, see ata_device_blacklist in Linux source code, for which queued TRIM command execution was blacklisted due to serious data corruption. In such case, depending on the device, the system may be forced to send non-queued TRIM commands the SSD instead of queued TRIM. See Wikipedia:Trim_(computing)#Disadvantages for details.

  • SATA 3.1之前,所有 TRIM 命令都是非排队的,因此连续修剪会产生频繁的系统冻结。在这种情况下,较少应用#Periodic TRIM是更好的选择。类似的问题也适用于大量的设备,见ata_device_blacklistLinux的源代码,为此排队TRIM指令的执行被列入黑名单,由于严重的数据损坏。在这种情况下,根据设备,系统可能会被迫向 SSD 发送非排队的 TRIM 命令,而不是排队的 TRIM。有关详细信息,请参阅Wikipedia:Trim_(computing)#Disadvantages

Note: Continuous TRIM is not the most preferred way to issue TRIM commands among the Linux community. For example, Ubuntu enables periodic TRIM by default [7], Debian does not recommend using continuous TRIM and Red Hat recommends using periodic TRIM over using continuous TRIM if feasible [8].

  • 在 Linux 社区中,连续 TRIM 并不是发布 TRIM 命令的首选方式。例如,Ubuntu 默认启用周期性 TRIM [7],Debian 不建议使用连续 TRIM,Red Hat 建议在可行的情况下使用周期性 TRIM 而不是使用连续 TRIM [8]

Using the discard option for a mount in /etc/fstab enables continuous TRIM in device operations:

  • 在 /etc/fstab 中使用挂载的discord选项可在设备操作中启用连续 TRIM:
1
/dev/sda1  /           ext4  defaults,discard   0  1

Note: Specifying the discard mount option in /etc/fstab does not work with an XFS / partition. According to this thread, it has to be set using the rootflags=discard kernel parameter.

  • 在 /etc/fstab 中指定丢弃挂载选项不适用于 XFS / 分区。 根据这个线程,它必须使用 rootflags=discard 内核参数进行设置。

On the ext4 filesystem, the discard flag can also be set as a default mount option using tune2fs:

  • 在 ext4 文件系统上,discard也可以使用tune2fs将该标志设置为默认挂载选项
1
# tune2fs -o discard /dev/sdXY

Using the default mount options instead of an entry in /etc/fstab is particularly useful for external drives, because such partition will be mounted with the default options also on other machines. This way, there is no need to edit /etc/fstab on every machine.

  • 使用默认挂载选项而不是 /etc/fstab 中的条目对于外部驱动器特别有用,因为这样的分区也将使用默认选项挂载到其他机器上。 这样,无需在每台机器上编辑 /etc/fstab

Note: The default mount options are not listed in /proc/mounts.

Periodic TRIM(定期修剪)

The util-linux package provides fstrim.service and fstrim.timer systemd unit files. Enabling the timer will activate the service weekly. The service executes fstrim(8) on all mounted filesystems on devices that support the discard operation.

  • 所述UTIL Linux的包提供fstrim.servicefstrim.timer systemd单元文件。启用计时器将每周激活服务。该服务在支持丢弃操作的设备上的所有已安装文件系统上执行fstrim(8)

The timer relies on the timestamp of /var/lib/systemd/timers/stamp-fstrim.timer (which it will create upon first invocation) to know whether a week has elapsed since it last ran. Therefore there is no need to worry about too frequent invocations, in an anacron-like fashion.

  • 计时器依赖于/var/lib/systemd/timers/stamp-fstrim.timer(它将在第一次调用时创建)的时间戳来了解自上次运行以来是否已经过去了一周。因此,无需担心以类似 anacron的方式调用过于频繁。

To query the units activity and status, see journalctl. To change the periodicity of the timer or the command run, edit the provided unit files.

  • 要查询单位活动和状态,请参阅journalctl。要更改计时器或命令运行的周期,请编辑提供的单元文件。

fstrim

util-linux 中自带了 fstrim 工具(Discard unused blocks on a mounted filesystem.),平常用 -a 选项(-a, –all trim all mounted filesystems that are supported)比较多,可以自动检测硬盘是否支持 trim 功能,并在已挂载文件系统上执行 trim。

使用:

1
2
3
# sudo fstrim -a -v  
/: 18.2 GiB (19515346944 bytes) trimmed on /dev/nvme0n1p5
/boot/efi: 224.7 MiB (235589632 bytes) trimmed on /dev/nvme0n1p1

更多用法查看manpage

启用 TRIM(fstrim)

要在 有systemd的系统中启用 TRIM,请在终端中输入以下命令:

1
sudo systemctl enable fstrim.timer

释放内存

Kernels 2.6.16 and newer provide a mechanism to have the kernel drop the page cache and/or inode and dentry caches on command, which can help free up a lot of memory. Now you can throw away that script that allocated a ton of memory just to get rid of the cache…

To use /proc/sys/vm/drop_caches, just echo a number to it.

To free pagecache:

1
# echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

1
# echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

1
2
echo 3 > /proc/sys/vm/drop_caches
echo 3 | sudo tee /proc/sys/vm/drop_caches //与上面一个作用

This is a non-destructive operation and will only free things that are completely unused. Dirty objects will continue to be in use until written out to disk and are not freeable. If you run “sync” first to flush them out to disk, these drop operations will tend to free more memory.

日志管理

1
2
3
4
sudo journalctl --disk-usage                #查看日志大小
sudo journalctl --vacuum-time=5d #超过5天的自动删除
sudo journalctl --vacuum-size=500M #超过500M的自动删除
sudo rm /var/lib/systemd/coredump/* #崩溃日志,文件不多,也不大,删不删随你

清空 /var/log/journal 文件的方法

1、用echo命令,将空字符串内容重定向到指定文件中

echo “” > system.journal

说明:此方法只会清空一次,一段时间后还要再次手动清空很麻烦,这里可以用以下命令让journalctl 自动维护空间

2、journalctl 命令自动维护文件大小

1)只保留近一周的日志

journalctl –vacuum-time=1w

2)只保留500MB的日志

journalctl –vacuum-size=500M

3)直接删除 /var/log/journal/ 目录下的日志文件

rm -rf /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1

问题与分析解决

执行 journalctl 命令时报错:Error was encountered while opening journal files: Input/output error

1
2
# journalctl --vacuum-time=1w
Error was encountered while opening journal files: Input/output error

问题分析:日志文件损坏

解决方法:删除之前的日志,并重启 journalctl 服务

mv journal/f9d400c5e1e8c3a8209e990d887d4ac1 journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122

systemctl restart systemd-journald.service

查看 /var/log/journal/ 日志目录如下:

1
2
3
#ll /var/log/journal/
drwxr-sr-x 2 root systemd-journal 4096 Jan 22 11:26 f9d400c5e1e8c3a8209e990d887d4ac1
drwxr-sr-x+ 2 root systemd-journal 12288 Jan 14 15:37 f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122

然后,再执行 journalctl 限制日志的命令:

1
2
3
4
# journalctl --vacuum-time=1w
Vacuuming done, freed 0B of archived journals on disk.
# journalctl --vacuum-size=500M
Vacuuming done, freed 0B of archived journals on disk.

pgp密钥管理

删除密钥

删除密钥有三个选项:–delete-keys、–delete-secret-keys和–delete-secret-and-public-key。
–delete-keys表示从公钥钥匙圈上删除密钥,也就是一同删除公钥和对应的私钥。在分批模式(batch mode)下,密钥必须使用指纹表示,或者使用–yes选项。
–delete-secret-keys表示从私钥钥匙圈上删除密钥。
–delete-secret-and-public-key和–delete-keys一样,但是如果私钥存在的话,会先移除私钥。在分批模式下,密钥必须使用指纹表示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
❯ gpg --list-keys #列出自己添加的密钥
/home/kiylx/.gnupg/pubring.kbx
------------------------------
pub rsa4096 2009-07-05 [SC]
8C470B2A0B31568E110D432516281F2E007C98D1
uid [ 未知 ] Francois Marier <fmarier@gmail.com>
uid [ 未知 ] Francois Marier <francois@fmarier.org>
uid [ 未知 ] Francois Marier <fmarier@alumni.uwaterloo.ca>
uid [ 未知 ] Francois Marier <francois@debian.org>
sub rsa4096 2009-07-05 [E]

❯ gpg --delete-keys 8C470B2A0B31568E110D432516281F2E007C98D1 #删除密钥的公钥和私钥
gpg (GnuPG) 2.2.32; Copyright (C) 2021 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


pub rsa4096/16281F2E007C98D1 2009-07-05 Francois Marier <fmarier@gmail.com>

要从钥匙环里删除这个密钥吗?(y/N) y

plasmashell

可以直接在krunner中运行按 alt+F2 打开 krunner

1
2
3
4
5
6
# kde4
killall plasmashell && kstart plasmashell
kquitapp5 plasmashell && kstart plasmashell
# kde5
killall plasmashell && kstart5 plasmashell
kquitapp5 plasmashell && kstart5 plasmashell

重启plasmashell脚本

脚本文件内容

具体内容:

1
2
3
4
#bash

#! /bin/bash
kquitapp5 plasmashell && kstart5 plasmashell
  • 命名:restart_kde,注意,没有后缀名

脚本放进环境变量(以上面kde_restart为例)

赋权

使用文本工具或者vim进行编写,编写完成后对其进行运行权限的赋权:

1
sudo chmod +x restart_kde

复制至bin文件夹

将脚本文件移至path中指定的系统变量路径,可放至/usr/local/sbin/usr/local/bin/usr/bin中。

移动命令:

1
sudo cp restart_kde /usr/bin

除了系统目录,也可以自己创建存放脚本的目录

复制至自定义目录

1.在任意位置创建任意目录:比如~/存档/Linux/bin

2.然后修改环境变量export PATH=$PATH:路径

  • bash

    1
    2
    3
    4
    #m打开.bashrc文件
    nano ~/.bashrc
    添加下面一行
    export PATH=$PATH:~/存档/Linux/bin
  • zsh

    1
    2
    3
    4
    #打开.zshrc文件
    nano ~/.zshrc
    添加下面一行
    export PATH=$PATH:~/存档/Linux/bin

使用方法

  • KRunnerAlt+Space唤醒,确保KRunner拥有执行命令的功能
  • 输入restart_kde即可

安装多个JDK

我这里先安装的 jdk8-openjdk,后安装 jdk16

sudo pacman -S jdk-openjdk 默认就是16版本

安装 jdk16时提示:

1
2
3
4
Default Java environment is already set to 'java-8-openjdk'
See 'archlinux-java help' to change it
when you use a non-reparenting window manager,
set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh

切换 JDK 版本

使用archlinux-java命令切换JDK 版本

archlinux-java help

1
2
3
4
5
6
7
8
archlinux-java <COMMAND>

COMMAND:
status List installed Java environments and enabled one
get Return the short name of the Java environment set as default
set <JAVA_ENV> Force <JAVA_ENV> as default
unset Unset current default Java environment
fix Fix an invalid/broken default Java environment configuration

set <JAVA_ENV> 就是设置默认环境的方法

  • set 之前
1
2
3
4
java -version                                                                            1 ↵ ──(六,10月09)─┘
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
  • set之后
1
2
3
4
java -version                                                                                ──(六,10月09)─┘
openjdk version "16.0.2" 2021-07-20
OpenJDK Runtime Environment (build 16.0.2+7)
OpenJDK 64-Bit Server VM (build 16.0.2+7, mixed mode)

ranger

配置

  1. 配置文件

    首先复制配置文件到主目录:

    1
    ranger --copy-config=all

然后自己到~/.config/ranger中配置各种选项即可

  1. 配置ranger
    在~/.config/ranger中有ranger的配置文件.
    找到文件scope.sh中, 在externsions部分注释掉不想预览的文件类型, 在那行上面添加”#”注释掉即可. ranger在预览rar等压缩包时会运行得比较慢.
    rc.conf保存着快捷键的说明

  2. 自动挂载U盘等外部存储位置,需要安装usbmount:

1
2
sudo apt-get install usbmount
sudo vim /etc/usbmount/usbmount.conf

MOUNTOPTIONS那行添加user即可使普通用户也对挂载的U盘拥有写权限, 如下:
MOUNTOPTIOS="rw,user,noatime,nodiratime"

快捷键

下面列出常用操作的快捷键

? 查看帮助

浏览:

1
2
3
4
5
6
7
8
9
H   后退
L 前进
gg 跳到顶端
G 跳到底端
gh go home
gn 新建标签
f 查找
/ 搜素
g 快速进入目录

编辑:

1
2
3
4
5
6
7
8
9
10
11
12
space   选择
uv 取消选择

yy 复制
dd 剪切
pp 粘贴
delete 删除
cw 重命名
A 在当前名称基础上重命名
I 类似A, 但是光标会跳到起始位置
Ctrl-f 向下翻页
Ctrl-b 向上翻页

书签:

1
2
3
m       新建书签
` 打开书签
um 删除书签

标签:

1
2
3
4
gn / C-n        新建标签
TAB / S-TAB 切换标签
A-Right, A-Left 切换标签
gc / C-w 关闭标签

排序:

1
2
3
4
5
6
7
on/ob   根据文件名进行排序(natural/basename)
oc 根据改变时间进行排序 (Change Time 文件的权限组别和文件自身数据被修改的时间)
os 根据文件大小进行排序(Size)
ot 根据后缀名进行排序 (Type)

oa 根据访问时间进行排序 (Access Time 访问文件自身数据的时间)
om 根据修改进行排序 (Modify time 文件自身内容被修改的时间)

其他:

1
2
3
4
zh      显示隐藏文件

zp 打开/关闭文件预览功能
zP 打开目录预览功能
1
2
3
pl      粘贴绝对路径的链接
pL 粘贴相对路径的链接
phl 硬链接

批量改名:

批量选择文件后, 键入命令:bulkname, 会打开编辑器, 其中的文件名编辑后保存退出, 再次打开操作确认编辑, 然后就批量改名了, 如果想取消批量改名, 在确认时把文件内容删除即可.

任务管理:

在执行某些操作(比如复制一个大文件)时不能立即完成, 这在 ranger 中就是一个任务. 你可以停止, 启动某个任务, 也可以对某个任务设置优先级.

w: 打开/关闭任务视图. 在w打开的任务视图中:
dd: 终止一个任务
J: 降低当前任务的优先级
K: 提升当前任务的优先级

其他:

  • zf 过滤器(如过滤pdf文件, zf+pdf,回车) S 在当前目录打开终端 z(*) 改变设置, 表示在弹出选项中的选择 o() 改变排序方式 ! / s 使用shell命令(!shell -w ls -hl %s,%s代表当前被选中的文件)

    使用ranger命令(3? 查看可用命令) :set colorscheme snow 设置颜色模式

快速预览

安装以下程序可以实现快速预览:

1
2
3
4
5
6
elinks, html
highlight,text/code
img2txt,image
atool,压缩包
pdf2text,pdf
medinfo,audio/video

字体调整

提示: 中文用户在安装思源cjk全集或者noto-cjk全集后,部分文字显示为日文异形字体,可参看Arch Linux Localization (简体中文)#修正简体中文显示为异体(日文)字形 进行解决。

字体安装和配置

noto-fonts-cjk-Google Noto CJK 字体, 提供简体中文、繁体中文、日文、韩文一致的设计和外观。它是基于是adobe-source-han-sans-otc-fonts重贴的商标。所以选择一个安装。

安装的字体

1
2
3
4
5
6
例如
sudo pacman -S ttf-roboto noto-fonts ttf-dejavu
文泉驿
sudo pacman -S wqy-bitmapfont wqy-microhei wqy-microhei-lite wqy-zenhei
思源字体
sudo pacman -S adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts
  • 思源字体(不安装cjk版本,仅安装cn版本,避免火狐异体字问题):

    • adobe-source-han-serif-cn-fonts
    • adobe-source-han-sans-cn-fonts
  • 文泉驿正黑

    • wqy-zenhei - 文泉驿正黑体,黑体 (无衬线) 的中文轮廓字体,附带文泉驿点阵宋体 (也支持部分日韩字符)。
    • wqy-bitmapfont - 文泉驿点阵宋体 (衬线) 中文字体。
  • 文泉驿微米黑

  • windows字体

​ 把windows的字体复制到~/.local/share/fonts/WindowsFonts目录下

配置font

  • 修改~/.config/fontconfig/fonts.conf配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
原理就是把某些符合条件的字体请求映射到我们定义的字体
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<fontconfig>
<dir>~/.fonts</dir>
<dir>~/.local/share/fonts/</dir>
<!--
Artificial oblique for fonts without an italic or oblique version
-->
<match target="font">
<!-- check to see if the font is roman -->
<test name="slant">
<const>roman</const>
</test>
<!-- check to see if the pattern requested non-roman -->
<test target="pattern" name="slant" compare="not_eq">
<const>roman</const>
</test>
<!-- multiply the matrix to slant the font -->
<edit name="matrix" mode="assign">
<times>
<name>matrix</name>
<matrix>
<double>1</double>
<double>0.2</double>
<double>0</double>
<double>1</double>
</matrix>
</times>
</edit>
<!-- pretend the font is oblique now -->
<edit name="slant" mode="assign">
<const>oblique</const>
</edit>
<!-- and disable embedded bitmaps for artificial oblique -->
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
<!--
Synthetic emboldening for fonts that do not have bold face available
-->
<match target="font">
<!-- check to see if the weight in the font is less than medium which possibly need emboldening -->
<test name="weight" compare="less_eq">
<const>medium</const>
</test>
<!-- check to see if the pattern requests bold -->
<test target="pattern" name="weight" compare="more_eq">
<const>bold</const>
</test>
<!--
set the embolden flag
needed for applications using cairo, e.g. gucharmap, gedit, ...
-->
<edit name="embolden" mode="assign">
<bool>true</bool>
</edit>
<!--
set weight to bold
needed for applications using Xft directly, e.g. Firefox, ...
-->
<edit name="weight" mode="assign">
<const>bold</const>
</edit>
</match>
<!-- 自定义开始-->
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
<match>
<test name="family" qual="any">
<string>serif</string>
</test>
<edit binding="strong" name="family" mode="prepend">
<string>Noto Serif</string>
</edit>
</match>
<match target="pattern">
<test name="family" qual="any">
<string>sans-serif</string>
</test>
<edit binding="strong" name="family" mode="prepend">
<string>Roboto</string>
</edit>
</match>
<match target="pattern">
<test name="family" qual="any">
<string>monospace</string>
</test>
<edit binding="strong" name="family" mode="prepend">
<string>DejaVu Sans Mono</string>
</edit>
</match>
<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>WenQuanYi Micro Hei Mono</string>
</edit>
</match>
<!--WenQuanYi Zen Hei -> WenQuanYi Micro Hei -->
<match target="pattern">
<test name="family" qual="any">
<string>WenQuanYi Zen Hei</string>
</test>
<edit binding="same" name="family" mode="assign">
<string>WenQuanYi Micro Hei</string>
</edit>
</match>
<match target="pattern">
<test name="family" qual="any">
<string>WenQuanYi Zen Hei Lite</string>
</test>
<edit binding="same" name="family" mode="assign">
<string>WenQuanYi Micro Hei Lite</string>
</edit>
</match>
<match target="pattern">
<test name="family" qual="any">
<string>WenQuanYi Zen Hei Mono</string>
</test>
<edit binding="same" name="family" mode="assign">
<string>WenQuanYi Micro Hei Mono</string>
</edit>
</match>
<!-- 自定义结束-->
<match target="font">
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="hintstyle" mode="assign">
<const>hintslight</const>
</edit>
</match>
</fontconfig>

修正简体中文显示为异体(日文)字形

  • 上面安装了windows字体,要禁用或删除windows字体中的Candara字体,因为它会显示异体字。


安装的 Noto Sans CJK 或 adobe-source-han-sans-otc-fonts(思源黑体)或 adobe-source-han-serif-otc-fonts(思源宋体)后,在某些情况下(框架未定义地区)汉字字形与标准形态不符,例如门、关、复等字字形与规范中文不符。

这是因为每个程序中可以设置不同的默认字体,比如 Arial 或者 Tohamo,而这些字体的属性由 fontconfig 控制,其使用顺序是据地区代码以 A-Z 字母表顺序成默认排序,由于 ja-JPzh_{CN,HK,SG,TW} 之前,故优先显示日文字形。

提示: Chromium/Chrome/Firefox 浏览器的设置中可单独设置字体,例如将字体选项调成 Noto xxx CJK SC。

可选用以下方法解决(以简体中文为例):

  • 只安装 cjk 中的简体中文字体,例如思源黑体简体中文包 adobe-source-han-sans-cn-fontsadobe-source-han-serif-cn-fonts 或者 noto-fonts-scAUR。

  • locale.conf 中添加 LANG=zh_CN.UTF-8,以将简体中文设置为默认语言。由于对 Locale 定义了框架内地区(即 CJK 优先度),使得默认的优先级被忽略。

  • 手动调整优先级,将中文字形调整到日文字形之前。[3]/etc/fonts/conf.d//etc/fonts/conf.avail/ 下创建文件,例如 64-language-selector-prefer.conf,也可以修改或创建 ~/.fonts.conf或在~/.config/fontconfig/conf.d/创建后缀为.conf的文件(仅对该用户生效)。例如针对noto-fonts-cjk的规则,写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK JP</family>
</prefer>
</alias>
</fontconfig>

如果安装的是 adobe-source-han-sans-otc-fonts,写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Source Han Sans SC</family>
<family>Source Han Sans TC</family>
<family>Source Han Sans HW</family>
<family>Source Han Sans K</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Source Han Sans SC</family>
<family>Source Han Sans TC</family>
<family>Source Han Sans HW</family>
<family>Source Han Sans K</family>
</prefer>
</alias>
</fontconfig>

注意,如果你是在 /etc/fonts/conf.avail 目录下创建的 xml 文件,则将该 xml 文件软链接到 /etc/fonts/conf.d 下,例如:

1
# ln -s /etc/fonts/conf.avail/64-language-selector-prefer.conf /etc/fonts/conf.d/64-language-selector-prefer.conf

然后更新字体缓存即可生效:

1
# fc-cache -fv

执行以下命令检查,如果出现 NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular" 则表示设置成功:

1
# fc-match -s | grep 'Noto Sans CJK'

kde 美化

安装kde的一些小工具

  • kdialog 某些shell脚本会用他显示一些提示信息
  • kmousetool 自动点击,解放你的鼠标
  • kipi-plugins 是gwenview的插件集合

安装主题管理

1
sudo pacman -S kvantum-qt5

主题位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AURORAE_DIR="$HOME/.local/share/aurorae/themes"//窗口装饰元素
PLASMA_DIR="$HOME/.local/share/plasma/desktoptheme"//plasma样式
LAYOUT_DIR="$HOME/.local/share/plasma/layout-templates"//
LOOKFEEL_DIR="$HOME/.local/share/plasma/look-and-feel"总体的预览/全局主题
SCHEMES_DIR="$HOME/.local/share/color-schemes"//颜色
KVANTUM_DIR="$HOME/.config/Kvantum"
WALLPAPER_DIR="$HOME/.local/share/wallpapers"
$HOME/.local/share/icons/ //存放鼠标或图标
$HOME/.local/share/plasma/plasmoids/ 存放插件
$HOME/.local/share/kwin/scripts/ kwin插件
以上目录如果没有就自行创建。

壁纸位置在/home/kiylx/.local/share/wallpapers 更改为此文件夹下的文件就可以改壁纸
1.更换登录壁纸 :菜单-系统设置-工作区-工作空间行为-锁屏-外观-接下来选取你喜欢的图片即可
2.更换锁屏壁纸 :菜单-系统设置-工作区-工作空间行为-锁屏-外观-接下来选取你喜欢的图片即可
3.更换登录屏幕的壁纸:菜单-系统设置-工作区-开机和关机-登录屏幕-接下来选取你喜欢的动画即可
4.更换开机动画:菜单-系统设置-工作区-开机和关机-欢迎屏幕
5.设置双击打开文件夹,单击选择:菜单-系统设置-工作区-工作空间行为-常规行为-点击行为

重启plasmashell

直接杀死并重启

1
2
3
4
5
killall plasmashell    # 杀死 kde plasma 的进程
# kde4
kstart plasmashell # 重新启动 plasma 桌面会话
# kde5
kstart5 plasmashell # 重新启动 plasma 桌面会话

退出并重启

1
2
3
4
5
kquitapp5 plasmashell    # 退出kde桌面
# kde4
kstart plasmashell # 重新启动 plasma 桌面会话
# kde5
kstart5 plasmashell # 重新启动 plasma 桌面会话

主题推荐

图标

papirus-icon
Tela-icon
adwaita-plus
adwaita

鼠标指针:

mac样式

整体样式

应用程序样式

dock栏

  • latte dock
  • cairo-dock

顶栏

  • applet-window-appmenu

    提供了顶栏的全局菜单,比自带的好用

    应用商店搜索plasma5-applets-window-appmenu-git

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    github: https://github.com/psifidotos/applet-window-appmenu
    调用 sh install.sh安装,安装之前应该查看INSTALLATION.md安装编译环境,但是可以在
    应用商店查找plasma5-applets-window-appmenu-git,安装别人做好的。
    构建依赖:
    [2021-08-14T22:20:17+0800] [ALPM] installed plasma5-applets-window-appmenu-git (0.7.1.r0.gcdbc943-1)
    [2021-08-14T22:19:48+0800] [ALPM] installed extra-cmake-modules (5.84.0-1)
    [2021-08-14T22:19:48+0800] [ALPM] installed cmake (3.21.1-1)
    [2021-08-14T22:19:47+0800] [ALPM] installed libuv (1.42.0-1)
    [2021-08-14T22:19:47+0800] [ALPM] installed jsoncpp (1.9.4-1)
    [2021-08-14T22:19:47+0800] [ALPM] installed rhash (1.4.2-1)
  • applet-window-buttons

    提供窗口管理按钮

    1
    2
    3
    github:https://github.com/psifidotos/applet-window-buttons
    上面的菜单使用应用商店安装好后,编译环境还没被卸载,可以直接clone这个applet-window-buttons库下来,调用sh install.sh安装这个button插件

  • 顶栏显示应用的标题和图标

    应用商店自行安装

    或手动安装:

    克隆仓库

    1
    git clone https://github.com/psifidotos/applet-window-title.git

    由于此插件使用QML编写,所以可以直接使用命令装入插件

    1
    2
    cd applet-window-title
    plasmapkg2 -i .

插件

kwin脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git clone https://github.com/zzag/kwin-effects-yet-another-magic-lamp.git
cd kwin-effects-yet-another-magic-lamp
git branch -a //查看远程分支
git checkout Plasma/5.23 //切换到与kde桌面版本符合的分支
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

ps:卸载
查看克隆文件夹里的
kwin-effects-yet-another-magic-lamp/build/install_manifest.txt文件,删除文件中记载的位置的文件

applet

  • 日历插件plasma5-applets-eventcalendar,可直接在应用商店搜索

    github地址

dolphin插件

位置:`~/.local/share/kservices5/ServiceMenus/`

ufw防火墙

archwiki

安装

  1. 安装gufw

  2. 启动ufw服务,但不要启动iptables服务和ip6tables服务ufw依赖它,但启动iptables服务和ip6tables服务,会造成冲突。archwiki

    1
    2
    3
    4
    5
    6
    7
    8
    如果iptables和ip6tables服务是启动的,要禁用并停止他们
    systemctl disable iptables #禁用iptables服务
    systemctl disable ip6tables #禁用ip6tables服务
    systemctl stop iptables #停止
    systemctl stop ip6tables #他

    systemctl start ufw #启动ufw服务
    sudo ufw enable #启动ufw

额外应用

  • ufw-extras

    添加一些额外的ufw预配置应用程序:

    预配置文件在/etc/ufw/applications.d文件夹

github地址

1
pamac install ufw-extras
  • plasma-firewall

    kde设置里查看和管理防火墙

1
pamac install plasma-firewall

问题

1 ERROR: problem running ip6tables错误

  • 安装iptables-nft替代默认的iptables。链接1

  • 当然这个问题可以修改配置文件,禁用ipv6解决。 链接2

    1
    2
    sudo nano /etc/default/ufw
    IPV6=yes 改为 IPV6=no
  • 但我觉得可能是启用了ip6tables服务的问题。

    ​ 因为我遇到这个问题的时候,我还不知道有ip6tables服务,看上面两个博客确实能解决问题。之后看archwiki时提示要禁用iptables服务和ip6tables服务,这时候我才发现我之前只禁用了iptables服务但ip6tables服务一直是启用的。

2

UFW(iptables)规则的匹配基于规则出现的顺序,

一旦匹配某个规则,检查便会停止。因此,如果某个规则允许访问TCP端口22(如使用udo ufw allow 22),
后面另一个规则指示拦截某个IP地址(如使用 ufw deny proto tcp from 202.54.1.1 to any port 22)。
最终,允许访问TCP端口22的规则会被使用,而后一个拦截黑客IP地址 202.54.1.1 却没有被使用。
这都是由于规则的顺序造成的。为避免这类问题,
你需要编辑 /etc/ufw/before.rules文件,
在“# End required lines”之后”Block an IP Address”添加规则。

1
2
3
4
5
6
7
8
9
10
11
12
在/etc/ufw/before.rules文件添加规则之后生效

# End required lines

# Block spammers

-A ufw-before-input -s 123.125.71.0/24 -j DROP
-A ufw-before-input -s 220.181.108.0/24 -j DROP

保存并关闭文件。***,让防火墙重新加载配置信息:

sudo ufw reload

在单独的用户帐户下运行 Wine

  1. 新建一个用户:guest

  2. 将新建的用户guest添加到xorg的权限列表:

    1
    2
    3
    xhost +SI:localuser:guest  添加
    xhost -SI:localuser:guest 移除
    xhost 打印列表
  3. 最后,你可以通过以下命令来运行Wine,该命令使用env来启动Wine,并加入它所期望的环境变量。

    1
    sudo -u guest env HOME=/home/guest USER=guest USERNAME=guest LOGNAME=guest wine arguments

    可以使用如下的shell脚本,使用Wine运行Windows应用程序的过程自动化:

    1
    2
    3
    4
    5
    6
    7
    /usr/local/bin/runaswine  存放位置,文件名

    shell脚本内容:

    #!/bin/zsh
    xhost +SI:localuser:guest
    sudo -u guest env HOME=/home/guest USER=guest USERNAME=guest LOGNAME=guest wine "$@"

    Wine程式可以被通过以下指令启动:

    1
    runaswine "C:\path\to\application.exe"

    为了在每次以其他用户身份运行Wine时不被要求输入密码,可以在sudoers文件中加入以下条目。*mainuser* ALL=(guest) NOPASSWD: ALL。更多信息见Sudo#Configuration

    建议以Wine用户身份运行winecfg,并在配置窗口的 “桌面集成 “部分删除Wine用户主目录以外的所有目录绑定,这样,使用Wine运行的程序就无法读取特殊用户主目录以外的任何文件。

    请记住,如果使用了PulseAudio,那么在以这种方式运行的Wine程序中,音频可能将无法发挥作用。请参阅 PulseAudio/Examples#Allowing multiple users to share a PulseAudio daemon 以了解关于允许Wine用户访问主用户的PulseAudio daemon的信息。

tty

  • Ctrl+alt+F1~F6 登录其他用户
  • 在终端中使用W查看登录的用户
  • 使用pkill -kill -t tty2(此处tty2是从上面的命令w查询得到的用户登录tty)命令强制某用户登出

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!