国光的 Ubuntu Hyprland 桌面优化记录(弃坑!)
2024-9-10 09:27:3 Author: www.sqlsec.com(查看原文) 阅读量:3 收藏

你是否羡慕人家 Arch Linux 那酷炫的平铺式桌面,现在不必再自卑了,使用目前最新的 Ubuntu 也是可以做到通用酷炫的效果。那么准备好电脑,跟着本文开始行动起来吧!

硬件介绍

最近家电下乡各种优惠补贴很多,国光我也忍不住剁手下单了一台性价比很高的笔记本,机械革命无界15X 暴风雪版本,默认是 32 + 1TB 的配置,我也自行升级了一下,目前详细的配置如下:

组件 型号
CPU AMD Ryzen™ 7 8845HS 8大核16线程 最大睿频 5.1Ghz
GPU AMD Radeon™ 780M(GTX 1060级别)
电池 99Wh 超大电池
内存 48GB 双 24GB DDR5 5600Mhz
SSD1 出厂自带的英睿达 P3 Plus PCIe4.0 1TB
SSD2 西数 SN770 PCIe 4.0 2TB
屏幕 15.3 寸 16:10 比例 2560x1600分辨率 120Hz 400nits IPS
网卡 Intel WiFi6 AX200 160Mhz + 裕太微千兆有线网卡 YT6801

系统简介

Ubuntu 是一个非常老牌经典的 Linux 发行版,Ubuntu 对 Linux 初学者非常友好,同时稳定性也很棒,受众广泛,相关资料众多,由于打算体验最新的 Hyprland 桌面,所以本次就使用了最新的 Ubuntu 24.10 每日更新版本,虽然听上去好像不是很稳定,但是退一步说,它就算再不稳定也是 Ubuntu,和 Arch Linux 那种滚动式更新比起来,还是小巫见大巫了。

磁盘划分

由于我这个笔记本硬盘充实,所以这里选择的双系统方案,腾出了接近 1TB 的空间来单独安装 Ubuntu:

给这么大的空间可以看出这次我不是只想玩玩而已,是真的想把这台 Ubuntu 变成生产力操作系统的。

因为 Ubuntu 安装引导已经很人性化,所以这里国光我不打算写双系统安装过程了,后面直接讲解一些关键的操作。

触控手势

Ubuntu 24.10 默认使用的是 GNOME 桌面,非常经典简约同时对触控板手势操作也非常友好。所以还是很有必要介绍一下默认的 GNOME 触控板手势的.

手势 说明
双指捏合 图片、网页等放大缩
双指滚动 模拟鼠标滚轮上下滚动
三指左右移动 工作区左右切换
三指上移 调出工作区视图
三指上移再上移 打开应用中心控制台
三指上移再上移然后下移 回到工作区视图
三指上移再上移然后下移再下移 回到桌面视图

更新服务

最新的 Ubuntu 还处于测试版本,所以大多数的源速度都不是很快,这个时候需要我们手动去打开「软件和更新」,然后手动点击「选择最佳服务器」:

网卡驱动

默认情况下 Ubuntu 是我这个笔记本的以太网卡驱动的,好在官网提供了驱动的下载链接:

以太网网卡芯片-裕太微电子股份有限公司

驱动安装很简单,安装好编译驱动的依赖,然后直接执行脚本就行了:

sudo apt udpate
sudo apt install make
sudo apt install gcc-13
./yt_nic_install.sh

基础安装

本次使用的 https://github.com/JaKooLit/Ubuntu-Hyprland 项目来辅助我们一键安装,安装前先把基础的工具安装好:

# 将系统所有包更新到最新
sudo apt update & sudo apt upgrade

# 安装基础工具
sudo apt install git curl wget vim -y

代理工具(建议)

考虑到网络问题,可以先局域网找个可以出网的代理,然后借助 proxychains4 工具来让项目走代理

# 安装代理工具 proxychains4
sudo apt install proxychains4

# 编辑配置代理
sudo vim /etc/proxychains4.conf

最后解决好代理问题后就可以正常走我们的安装流程了:

# bash 全局走代理
proxychains4 bash

# 下载并执行安装脚本
git clone --depth=1 -b 24.10 https://github.com/JaKooLit/Ubuntu-Hyprland.git ~/Ubuntu-Hyprland-24.10
cd ~/Ubuntu-Hyprland-24.10
chmod +x install.sh
./install.sh

注意:执行脚本不需要使用 sudo 或者 root 权限用户来执行,直接普通用户直接执行即可。

下面是我执行脚本的一些选项,大家仅供参考:

# 我的电脑没有 N 卡
Do you have any nvidia gpu in your system?  n

# 建议安装这个 GTK 主题
Install GTK themes (required for Dark/Light function)? y

# 建议配置蓝牙
Do you want to configure Bluetooth? y

# 建议安装 Thunar 文件管理器
Do you want to install Thunar file manager? y

# 不安装 SDDM,使用 GNOME 默认的 GDM 即可
Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme? n

# 建议安装桌面共享功能
Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS) y

# 建议安装 zsh shell 并配置 oh-my-zsh 美化主题
Install zsh & oh-my-zsh plus (OPTIONAL) pokemon-colorscripts for tty? y

# 建议安装 nwg-look 美化应用
Install nwg-look? (a GTK Theming app - lxappearance-like) WARN! This Package Takes long time to build! y

# 我不是华硕笔记本
Installing on Asus ROG Laptops? n

# 建议下载并安装预先配置的 Hyprland-dotfiles
Do you want to download and install pre-configured Hyprland-dotfiles? y

当然我们使用 proxychains4 代理安装脚本的时候,有时候还需要从拉取 go 的相关模块,也会卡主很久,所以这个时候终止脚本,重新配置一下 golang 的国内镜像源:

# 启用 Go Modules 功能
go env -w GO111MODULE=on

# 配置 GOPROXY 环境变量,以下三选一

# 1. 七牛 CDN
go env -w  GOPROXY=https://goproxy.cn,direct

# 2. 阿里云
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

# 3. 官方
go env -w  GOPROXY=https://goproxy.io,direct

这个时候再重新挂代理执行脚本,走一下安装流程,安安静静等待执行完成即可:

./install.sh

Clash 客户端 (建议)

我们还可以使用 Clash 客户端来访问谷歌等国外资产,本次使用的是 Github 上面比较高 star 的项目:

https://github.com/clash-verge-rev/clash-verge-rev

后面安装 Hyprland 的时候建议打开 Clash 的 Tun 模式,这样代理更简单透彻一点:

快照备份

建议安装配置 Timeshift 创建个快照,方便我们后面配置乱了可以恢复回去,安装很简单:

sudo apt update
sudo apt install timeshift

然后创建一个快照即可:

配置 SSH

# 安装 SSH Server
sudo apt install openssh-server

# 开机自动启动ssh命令
sudo systemctl enable ssh

# 关闭ssh开机自动启动命令
sudo systemctl disable ssh

显示器配置

首先查看以下我们的显示器名称:

# 列出所有显示器
hyprctl monitors all

Monitor eDP-1 (ID 0):
	[email protected] at 0x0
	.....

然后根据实际的使用情况,编辑我们的显示器配置:

vim ~/.config/hypr/UserConfigs/Monitors.conf

主要的配置内容如下:

# Monitors,分别表示 显示器名称 分辨率刷新率 起始位置 缩放
monitor=eDP-1,2560x1600@120,0x0,1.6

如果将 DP-1 放在 DP-2 的左侧,则这样配置:

monitor = DP-1, 1920x1080, 0x0, 1
monitor = DP-2, 1920x1080, 1920x0, 1

基础快捷键

快捷键 说明
Esc 关闭当前 App
Super + 回车 打开 Kitty 终端
Super + H 打开快捷键帮助页面
Super + Q 关闭活跃的窗口
Super + Shift + Q Kill 掉活跃的窗口
Super + A 打开所有桌面预览试图
Super + D 打开 App 启动器
Super + T 打开 Thunar 文件管理器
Super + S 打开 Google 搜索
Super + W 选择壁纸
Super + Shift + W 设置壁纸效果
Ctrl + Alt + W 随即更换壁纸
Super + Alt + B 更换 Waybar 布局
Super + Ctrl + B 更换 Waybar 样式
Super + Shift + N 打开通知中心
Super + PrtSc 全屏截图到剪贴板
Super + Shift + S 选择区域截图(swappy)
Alt + PrtSc 截取活动窗口
Ctrl + Alt + P 打开电源窗口(wlogout)
Ctrl + Alt + L 锁屏
Ctrl + Alt + Del 注销退出 Hyprland
Super + F 应用全屏 = F11
Super + Alt + L 切换 Dwindle 和 Master 的 Hyprland 布局
Super + Shift + F 将当前窗口置于最上层浮动展示
Super + Alt + F 将当前窗口置于最底层浮动展示
Super + Shift + B 切换毛玻璃模糊度
Super + Shift + G 打开或者关闭所有动画特效
Super + Alt + E 打开 rofi 表情包
Super + Alt + V 剪贴板管理
Super + E 编辑桌面整体布局配置
Super + Shift + 数字 将当前窗口移动到对应的工作区

zsh 优化

默认配置

这个 oh my zsh 的默认配置如下:

cat ~/.zshrc
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="xiong-chiamiov-plus"
plugins=( 
    git
    zsh-autosuggestions
    zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh

# Display Pokemon-colorscripts
# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos
pokemon-colorscripts --no-title -s -r

autojump 插件

安装快捷目录跳转插件:

sudo apt install autojump 

~/.zshrc 中配置:

plugins=( 
    git
    autojump 
    zsh-autosuggestions
    zsh-syntax-highlighting
)

其他功能配置

~/.zshrc 中添加配置:

# 关掉 URL 反斜杠转义
DISABLE_MAGIC_FUNCTIONS=true

# 禁用 on my zsh 自动更新
zstyle ':omz:update' mode disabled

powerlevel10k 主题

字体安装(推荐)

官网建议安装他们的字体,这个看自己的喜好吧,国光我觉得只要不是太丑的字体都不错的。

下载并安装以下官方推荐的四个 ttf 文件:

MesloLGS NF Regular.ttfMesloLGS NF Bold.ttfMesloLGS NF Italic.ttfMesloLGS NF Bold Italic.ttf

下载安装主题

首先将主题 git clone 到我们的主题目录下:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

~/.zshrc 中配置启用新的主题:

ZSH_THEME="powerlevel10k/powerlevel10k"

主题配置向导

重载 zsh 终端会自动进入 powerlevel10k 主题的配置向导:

zsh

根据向导的提示回答 y 或者 n 即可,下面是向导问的几个问题:

# 这看起来像菱形吗?
Does this look like a diamond (rotated square)?

# 这看起来像一个锁吗?
Does this look like a lock?

# 这看起来像一个向上的箭头吗?
Does this look like an upwards arrow?

# 这些图标都正常显示放在 x 之间,没有重叠吗?
Do all these icons fit between the crosses?

问完问题后选择终端前面的提示样式,国光我这里肯定选择了最酷炫的 Rainbow 样式:

编码这块推荐使用更标准先进的 Unicode 编码:

其他的设置细节根据大家自己的喜好来就行,国光我就不一一列举了:

如果期间又不小心配置错误的话,可以运行:

p10k configure

重新走一步配置向导。

解决告警问题

配置完主题后重新加载 zsh 会发现有告警信息:

发现原来是我们这一步配置有问题:

我们手动编辑 .p10k.zsh 配置文件:

root 使用 zsh

细心的小伙伴肯定会发现我们切换到 root 发现依然是 bash shell,这对于强迫症来说就有点难受了:

首先手动在 root 用户下将 zsh 设置为默认的 shell:

chsh --shell /bin/zsh

接着切换到普通用户,使用软连接,链接 我们普通用户 home下的的 zsh 配置:

sudo ln -s $HOME/.oh-my-zsh           /root/.oh-my-zsh
sudo ln -s $HOME/.zshrc               /root/.zshrc

基本上没问题了,但是依然提示了一些警告信息:

~/.zshrc 中添加配置即可关闭告警:

ZSH_DISABLE_COMPFIX=true

这样我们的 root 用户也可以丝滑的使用 zsh 啦:

Kitty 终端配置

字体配置

为了下面的 fastfetch 各个图标都正常显示,我们这里建议先提前把 Kitty 配置好字体。

带图标字体下载地址:Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher

以上面的 0xProtoNerdFont 字体为例,下载安装好之后,我们编辑 kitty 配置文件来启用这个字体:

vim /home/x-x/.config/kitty/kitty.conf

这类也可以自定义字体大小等配置:

基本使用

这套主题默认的 Kitty 的外观快捷键配置如下:

快捷键 说明
Ctrl + Shift + T 新建标签页
Ctrl + Shift + N 新建窗口
Ctrl + Shift + 左右方向键 切换标签页
Ctrl + Shift + Tab 切换标签页
Ctrl + Tab 切换标签页
Ctrl + Shift + Alt + T 设置标签页标题
Ctrl + Shift + 回车 分屏
Ctrl + Shift + Q 退出标签页
Ctrl + Shift + W 退出分屏
Ctrl + Shift + + 字体放大
Ctrl + Shift + - 字体缩小
Ctrl + Shift + F11 切换到全屏

日常工作操作的快捷键如下:

快捷键 说明
Ctrl + Shift + C 复制
Ctrl + Shift + V 粘贴
Ctrl + Shift + Esc 打开小猫 shell
Ctrl + Shift + Pgup/Pgdn 上下滚动翻页
Ctrl + Shift + K/上方向键 向上滚动
Ctrl + Shift + J/下方向键 向下滚动
Ctrl + Shift + Home 滚动到顶部
Ctrl + Shift + End 滚动到底部
Ctrl + Shift + Z 滚动到上一个命令
Ctrl + Shift + X 滚动到下一个命令

我的配置

编辑 kitty 的配置文件:

vim ~/.config/kitty/kitty.conf

我主要修改的配置如下:

# 配置更大的回滚历史记录
scrollback_lines 20000

fastfetch 配置

安装更新版本

因为 neofetch 官方停止维护了,大家也慢慢的转到了 fastfetch 平台,所以我们安装一下:

sudo apt install fastfetch

官方默认的样式如下,感觉效果还是差点意思呀:

备份原有配置

官方默认有 3 个 fastfetch 配置:

使用 fastfetch –config 即可查看各个配置情况:

fastfetch --config .config/fastfetch/config.jsonc 
fastfetch --config .config/fastfetch/config-v2.jsonc 
fastfetch --config .config/fastfetch/config-compact.jsonc

我们先把原来的配置文件夹都备份一下:

mv ~/.config/fastfetch ~/.config/fastfetch.bak

导入新的配置

为了方便大家使用,国光我单独搞了项目分享我的配置,方便大家去使用:

sqlsec/fastfetch: Awesome fastfetch terminal with pokemon 酷炫的 fastfetch (github.com)

使用也很简单:

# 进入 .config 目录
cd $HOME/.config

# 下载并解压然后删除
wget https://github.com/sqlsec/fastfetch/releases/download/v0.1/fastfetch-for-Linux.zip
unzip fastfetch-for-Linux.zip && rm fastfetch-for-Linux.zip

不同的 .jsonc 就是不同的预设方案,如果启用的话,将其重命名为 config.jsonc 即可切换为默认的预设方案:

触控板配置

基础配置

我的触控板基础配置~/.config/hypr/UserConfigs/UserSettings.conf如下,主要就改了自然滚动和滚动速率,这样使用体验和 macOS 很接近了:

touchpad {
  disable_while_typing = true
  # 开启自然滚动
  natural_scroll = true
  # 滚动幅度的设置为 0.2
  scroll_factor = 0.2
  clickfinger_behavior = false
  middle_button_emulation = true
  tap-to-click = true
  drag_lock = false
}

手势定制

编辑 ~/.config/hypr/UserConfigs/UserSettings.conf配置,修改的触控板手势如下:

gestures {
  workspace_swipe = true
  # 将触摸板手势改为 4 指
  workspace_swipe_fingers = 4
  # 触摸板手势的距离
  workspace_swipe_distance = 400
  workspace_swipe_invert = true
  workspace_swipe_min_speed_to_force = 30
  # 更改滑动灵敏度
  workspace_swipe_cancel_ratio = 0.1
  workspace_swipe_create_new = true
  # 关掉连续工作区滚动,防止滑多了
  workspace_swipe_forever = false
  #workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right
}

中文输入

因为目前 Fcitx5 完全支持 Wayland,所以首先我们要安装 Fcitx5 输入法框架及其相关依赖:

sudo apt update
sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-configtool fcitx5-frontend-gtk3 fcitx5-frontend-qt5 fcitx5-module-xorg fcitx5-module-wayland

安装好之后,默认使用 Ctrl + 空格或者使用 Shift 切换输入法,自带的 Firefox 此时应该可以正常使用中文输入法了。

将 fcitx5 输入法框架配置开机自启:

vim ~/.config/hypr/hyprland.conf

添加或修改以下内容:

exec = fcitx5 &

Hyprshot

这个主题自带使用的是 swappy 截图,整体也挺好用的,但是如果只是想只区域截图到剪贴板的话,这个 swappy 感觉使用起来就比较繁琐了,这个时候可以考虑使用 Hyprshot 来辅助使用。

官方项目地址为:https://github.com/Gustash/Hyprshot

安装很简单:

# 下载并给予执行权限
git clone https://github.com/Gustash/hyprshot.git Hyprshot
chmod +x Hyprshot/hyprshot

# 创建软链接
sudo ln -s $(pwd)/Hyprshot/hyprshot /usr/local/bin/hyprshot

然后手动绑定快捷键类调用 hyprshot 的区域截图并直接到剪贴板不保存文件:

vim ~/.config/hypr/UserConfigs/UserKeybinds.conf

关键的内容如下:

# Hyprshot
bind = $mainMod ALT_L, S, exec, hyprshot -m region --clipboard-on

Ulanucher

macOS 自带的 Command + 空格 很优雅的调出搜索框,不仅可以打开 APP 还可以调用计算器等,Linux 用户也不要过多羡慕,我们也可以实现类似的功能,只要借助 Ulauncher 即可。

官方的 Github 项目地址为:https://github.com/Ulauncher/Ulauncher/

设置完喜欢的 APP 后,我们同样需要手动绑定快捷键类来调用 Ulauncher:

vim ~/.config/hypr/UserConfigs/UserKeybinds.conf

关键的内容如下:

# Ulanucher
bind = $mainMod, SPACE, exec, gapplication launch io.ulauncher.Ulauncher

快捷键

Warbar 是在 Hyprland 环境下工作非常棒的顶部状态栏,可定制性非常高。此次脚本自带的相关快捷键如下:

快捷键 说明
Super + Alt + B 更换 Waybar 布局
Super + Ctrl + B 更换 Waybar 样式

默认搭配

我的搭配如下:[Top & Bot] SummitSplit 布局 + [Transparent] Crystal Clear 样式,这样国光个人认为结合了 macOS 和 Windows 的特性,使用起来效率会更高一点:

外观定制

当然这个默认搭配虽然效果已经很不错了,但是还是有很多优化空间,下面是国光我具体的配置效果。

具体的细节大家自行参考为的 waybay 配置文件吧。

我的配置打包文件下载地址:https://www.sqlsec.com/download/waybar.zip

Dock 栏

首先编译 nwg-dock-hyprland 项目:

git clone https://github.com/nwg-piotr/nwg-dock-hyprland.git
cd nwg-dock-hyprland
make get
make build
sudo make install

code-server

VSCode 网页版本,Linux 服务器安装这个的话可以很方便的管理操作我们的 Linux 系统。

安装方式,下载官方打包好的 Deb 包即可:Releases · coder/code-server

sudo apt instal gdebi
sudo gdebi code-server_4.92.2_amd64.deb

编辑配置文件来开启局域网监听 /root/.config/code-server/config.yaml

bind-addr: 0.0.0.0:8866
auth: password
password: xxxxxxxxx这里是你的密码xxxxxxxxxxxx
cert: false

使用 systemctl 管理 code-server 服务,编辑配置文件 vim /etc/systemd/system/code-server.service

内容如下:

[Unit]
Description=code-server
After=network.target

[Service]
Type=exec
ExecStart=/usr/bin/code-server
Restart=always
User=root

[Install]
WantedBy=default.target

这样就可以优雅的通过 systemctl 来接管 code-server 服务了:

# 查看 code-server 的状态
sudo systemctl status code-server

# 启动 code-server 服务
sudo systemctl start code-server

# 重启 code-server 服务
sudo systemctl restart code-server

# 停止 code-server 服务
sudo systemctl stop code-server

Chrome

直接浏览器访问 Google Chrome 网络浏览器 官网,下载官方打包好的 deb 安装包即可,使用 gdebi 可以很方便的安装:

sudo gdebi google-chrome-stable_current_amd64.deb

默认情况下 Chromium 系列是不走 Wayland 的,且输入法不正常,我们可以带着命令行手动运行一下 Chrome 让其走在正常的工作模式:

/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime

可以看到很明显缩放比例和输入法都正常工作了。

sudo vim /usr/share/applications/google-chrome.desktop

找到以 Exec 开头的行,并在命令后添加我们的参数,一共找到 3 行,均添加一下即可:

$ cat /usr/share/applications/google-chrome.desktop|grep Exec                                             
Exec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %U 
Exec=/usr/bin/google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime
Exec=/usr/bin/google-chrome-stable --incognito --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime

Microsoft Edge

Edge 官网直接下载打包好的 deb 包即可:Download Edge for Business

然后直接使用 gdebi 安装即可:

gdebi microsoft-edge-stable_128.0.2739.79-1_amd64.deb

安装好后和上面的 Chrome 一样,我们也需要对其进行配置才可以让它在 Wayland 下工作,且更好的支持中文输入法:

sudo vim /usr/share/applications/microsoft-edge.desktop

找到以 Exec 开头的行,并在命令后添加我们的参数,一共找到 3 行,均添加一下即可:

$ cat /usr/share/applications/microsoft-edge.desktop| grep Exec                                       
Exec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime %U
Exec=/usr/bin/microsoft-edge-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
Exec=/usr/bin/microsoft-edge-stable --inprivate --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

微信

腾讯官方已经做了原生微信了,目前搬运的项目地址为:lovechoudoufu/wechat_for_linux: wechat_for_linux;weixin_for_linux;wechat-beta;微信;linux原生微信 (github.com)

然后直接使用 gdebi 安装即可:

sudo gdebi wechat-beta_1.0.0.238_amd64_login.deb

默认显示感觉有点小,而且也不支持中文显示:

编辑配置文件:

sudo vim /usr/share/applications/wechat.desktop 

主要修改如下:

Exec=env QT_SCALE_FACTOR=1.5 GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" XMODIFIERS="@im=fcitx" /usr/bin/wechat --enable-wayland-ime %U

最终效果如下:

QQ

QQ 官方打包的 Linux 版本基本上很完美了,官网地址为:QQ Linux版-轻松做自己,直接下载打包好的 deb 包安装即可:

sudo gdebi xxxxx.deb

同样为了更好的体验和中文输入,我们需要编辑配置文件:

sudo vim /usr/share/applications/qq.desktop 

主要修改如下:

Exec=env GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" XMODIFIERS="@im=fcitx" /opt/QQ/qq --enable-wayland-ime %U

强制让 QQ 的图片查看器窗口走悬浮规则,编辑窗口配置文件:

sudo ~/.config/UserConfigs/WindowRules.conf

新增如下规则:

windowrulev2 = float, title:QQ
windowrulev2 = float, title:图片查看器

Typora

sudo vim /usr/share/applications/typora.desktop

主要修改内容如下:

Exec=typora --enable-features=UseOzonePlatform --ozone-platform=wayland --ozone-platform-hint=auto --enable-wayland-ime %U

网易云音乐

不知道什么时候网易云音乐官方居然下架了 Linux 的下载安装包,真的太令人失望了,好在经过本文下面的评论去网友 @like 的提醒,在麒麟的下载源里面找到了网易云音乐的 deb 包版本,我们直接下载即可:

https://software.openkylin.top/openkylin/yangtze/pool/all/netease-cloud-music_1.2.1_amd64.deb

或者直接下载官方当成的链接也行:

https://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb

直接安装:

sudo gdebi netease-cloud-music_1.2.1_amd64.deb

但是由于缺少 libgio-2.0.so.0 是无法直接打开的,把文件复制到 /opt/netease/netease-cloud-music/libs/ 下:

sudo cp libgio-2.0.so.0 /opt/netease/netease-cloud-music/libs/libgio-2.0.so.0

修改网易云的启动命令脚本:

sudo vim /opt/netease/netease-cloud-music/netease-cloud-music.bash 

主要在倒数第二行加入:

cd /lib/x86_64-linux-gnu/

虽然这样可以正常启动了,但是发现网易云音乐爆来网络相关的错误:

但是网上好像也没有人解决这个问题,就这样吧~ 虽然不能使用账号和密码登陆,但是可以直接微信扫码登录,虽然不能听每日推荐,但是登录成功的话,其他功能好像也都正常,就先这样吧:

YesPlayMusic

既然网易云音乐官方 Linux 平台摆烂,那我们不用也罢,大家可以试试看 YesPlayMusic,这是一个高颜值的第三方网易云播放器,Linux 下的体验也是很棒的:

白鸽~乌鸦~相爱~的~戏码~
只会~出现在~童话~

Python

主要安装一下 pyenv 环境:

curl https://pyenv.run | bash

安装完成后配置 zsh 变量:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

pyenv 安装好之后,安装 Python 也很简单:

# 查看已经安装的Python版本
➜ pyenv versions

# 查看当前的 Python 版本
➜ pyenv version

# 查看可安装的版本
➜ pyenv install -l

# 安装与卸载 pypy3.8-7.3.11
➜ pyenv install pypy3.8-7.3.11
➜ pyenv uninstall pypy3.8-7.3.11

版本切换确实很方便,所安装的版本都在 ~/.pyenv/versions 目录下:

# global 全局设置 一般不建议改变全局设置
➜ pyenv global <python版本>

# shell 会话设置 只影响当前的shell会话
➜ pyenv shell <python版本>
# 取消 shell 会话的设置
➜ pyenv shell --unset

# local 本地设置 只影响所在文件夹
➜ pyenv local <python版本>

pyenv 的 global、local、shell 的优先级关系是:shell > local > global

Node.js

类似于 pyenv 一样,这里我们安装 Node.js 使用的是 nvm 进行多版本 NodeJS 管理。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

基本的用法如下:

# 查看当前 node 的版本
nvm version 

# 安装最新稳定版 node
nvm install stable

# 列出所有远程服务器的版本
nvm ls-remote

# 安装指定版本
nvm install v18.16.1
nvm install <version>

# 列出所有已安装的版本
nvm ls

# 卸载指定的版本
nvm uninstall <version>

# 切换使用指定的版本node
nvm use <version>

# 显示当前的版本
nvm current

# 使用 node 6.10.3 运行 app.js
nvm run 6.10.3 app.js

# 在当前 shell 设置默认的 node 版本
nvm alias default 8.1.0

Hexo

有了 Node.js 了,自然就可以安装 Hexo 了,国光的这个博客就是 Hexo 搭建的,所以对于我来说 Hexo 还是挺重要的。

# 安装 Hexo
npm install hexo-cli -g

Hexo 的基础命令:

hexo clean # 清除缓存
hexo g     # 生成静态文件
hexo s     # 启动 Hexo 服务

Burp Suite

首先在 BP 官网下载最新的 Pro 安装包:

chmod +x burpsuite_pro_linux_v2024_8_1.sh
./burpsuite_pro_linux_v2024_8_1.sh

全部默认回车安装下去就行:

下载最新版本的注册机,拷贝到 BP 的安装目录下:

mv BurpLoaderKeygen_v1.17.jar ~/BurpSuitePro

直接运行注册机:

~/BurpSuitePro/jre/bin/java -jar ~/BurpSuitePro/BurpLoaderKeygen_v1.17.jar

点击Run,输入许可证然后选择手动激活即可:

为了日后方便使用,直接修改~/BurpSuitePro/BurpSuitePro.vmoptions, 增加以下参数:

--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED
-javaagent:BurpLoaderKeygen_v1.17.jar
-noverify

发现在 hyprland 下 BP 的鼠标有点大,不过我们可以添加 env XCURSOR_SIZE=24 参数来解决鼠标变大的问题:

#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Name=Burp Suite Professional
Exec=env XCURSOR_SIZE=24 "/home/x-x/BurpSuitePro/BurpSuitePro" %U
MimeType=application/x-extension-burp;
Icon=/home/x-x/BurpSuitePro/.install4j/BurpSuitePro.png
Categories=Application;
StartupWMClass=install4j-burp-StartBurpc

Docker

Ubuntu 24.10 每日更新版本目前还无法使用 Docker 官方的脚本来安装,且无法安装 Docker Desktop,不过没关系,自带的 APT 里面的包也可以直接安装 Docker:

sudo apt install docker.io
sudo apt install docker-registry
sudo apt install docker-doc
sudo apt install docker-compose

# 将当前用户赋予 docker 的操作权限
sudo usermod -aG docker `whoami`

安装完成后重启即可使用 Docker。

ZeroTier

这里提到了 Docker,顺便直接讲一下 ZeroTier 的搭建吧,本文主要讲解一下如何在同一个系统下,使用双 planet 来运行两个 ZeroTier,而且不冲突,像这种单机多 planet 的情况,估计网上也没人折腾,但是国光这里还是研究成果了,下面简单说下一方法,懂得人都懂。

首先我们需要借助 xubiaolin/docker-zerotier-planet: 一分钟私有部署zerotier-planet服务 (github.com) 项目来搭建自己的 ZeroTier 中转服务器,每个自己的私服都有自己对应的 planet 文件,我们使用不同的 planet 文件即可连接不同的 ZeroTier 服务。

首先我们本地需要安装好官方的 ZeroTier 客户端:

curl -s https://install.zerotier.com | sudo bash

安装完成后,使用直接设置开机自启然后加入网络即可:

# 设置 zerotier 开机自启
systemctl enable zerotier-one.service

# 备份官方的 planet 文件
mv /var/lib/zerotier-one/planet /var/lib/zerotier-one/planet.bak

# 下载替换你的 plant
xxxxxxx 此处省略 xxxxxxxx

# 启动 zerotier 服务
systemctl start zerotier-one.service

另一个客户端我们使用 Dockre 版本的:

docker run --name zerotier-one --device=/dev/net/tun --net=host --cap-add=NET_ADMIN --cap-add=SYS_ADMIN -v /home/x-x/Tools/zerotier/:/var/lib/zerotier-one -d zyclonite/zerotier

其中 /home/x-x/Tools/zerotier/ 设置为你自己的本地文件夹。

因为两个 ZeroTier 的客户端端口会有冲突,必定只能运行 1 个,所以我们需要手动修改 Docker 的端口为其他端口:

vim /var/lib/zerotier-one/local.conf

这里国光我修改为了 9333 端口:

设置完成后就可以同时使用 2 个 ZeroTier 的不同 planet 了 :

最后记得设置一下容器的开机自启:

docker update --restart unless-stopped zerotier-one 

QEMU-KVM

QEMU 是 Linux 下原生的虚拟化方案,体验还是非常非常丝滑的,Ubuntu 安装的话也比较简单:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils virt-manager  virt-viewer

启动和启用 libvirt 服务:

sudo systemctl enable libvirtd
sudo systemctl start libvirtd

当前用户添加到 libvirtkvm 组,以便不需要使用 root 权限进行管理:

sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $(whoami)

重启系统生效功能更改。

总的来说 KVM 的虚拟机虽然和 macOS 下的 PD 流畅度还是没法比,但是也不错了:

Waydroid 模拟器

安装教程

Waydroid 使用 Linux 命名空间(user、pid、uts、net、mount、ipc)在容器中运行完整的 Android 系统,并在任何基于 GNU/Linux 的平台(arm、arm64、x86 x86_64)上提供 Android 应用程序。

sudo apt install curl ca-certificates -y
curl https://repo.waydro.id | sudo bash

提示:

[!] Distribution "oracular" is not supported

手动把 oracular 添加到安装脚本里面:

再次运行:

chmod +x install.sh
sudo ./install.sh

执行完成后直接安装即可:

sudo apt install waydroid -y

国光这里选择了 GAPPS 带谷歌框架的版本类型,在点击 Download 前建议 Clash 开启 TUN 模式下载安装:

安装完成的效果如下:

显示界面

默认显示的界面有点胖胖的,很不舒服,我们可以修改 hyprland 的配置文件来自定义启动界面大小:

waydroid prop set persist.waydroid.width 506

重启 waydroid 生效:

waydroid session stop

ARM 转译

这个模拟器虽然很丝滑,但是默认情况下是没法跑 ARM APK 的,而国内很少有原生的 x86 APP,所以还是有必要安装一下 ARM 相关的转译的依赖的。

# 下载拷贝项目
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_scrip

# 使用 3.8.20 的 pyenv 虚拟环境
pyenv local 3.8.20

# 更新一下最新的 pip
python -m pip install --upgrade pip -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 

# 安装脚本相关的依赖
python -m pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

运行脚本:

sudo -i
python main.py

命令行图形化界面我的选项供大家参考:

这样就可以正常打开我们常用的 APP 了:

基本用法

# 当前会话关机
waydroid session stop

# 重启 waydroid 服务
sudo systemctl restart waydroid-container.service 

开发测试

# 安装 adb 开发工具
apt install adb

# 安装 apk 包
waydroid app install  /xxx/xxx/xx.apk

# adb 使用 IP 连接 (关于本机查看)
adb connect 192.168.x.x:5555

手动安装 BP 证书:

# 对 BP 证书进行转换
openssl x509 -inform DER -in cacert.der -out cacert.pem

# 计算 BP 证书 hash
cert_hash=$(openssl x509 -subject_hash_old -in cacert.pem | head -1)

# 创建证书文件夹
sudo mkdir -p /var/lib/waydroid/overlay/system/etc/security/cacerts/

# 导入证书
sudo cp cacert.pem /var/lib/waydroid/overlay/system/etc/security/cacerts/${cert_hash}.0

或者借助 waydroid_script 项目,直接导入证书也可以:

sudo python3 main.py install mitm --ca-cert cacert.pem

接着手动将模拟器设置本地的代理:

adb shell settings put global http_proxy "ip:port" 

如果取消代理则使用下面命令:

adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port
adb shell settings delete global http_proxy

这样就可以正常抓包测试了。

Genymotion

基本安装

Genymotion 下载安装很简单,直接官网下载对应的安装包即可,记得注册一下对应的账号,虽然是免费版本的,表面上不支持开启 root 权限:

实际上手动进 adb 发现还是可以直接切换到 root 用户的:

ARM 转译

这个模拟器虽然很丝滑,但是默认情况下是没法跑 ARM APK 的,而国内很少有原生的 x86 APP,所以还是有必要安装一下 ARM 相关的转译的依赖的。

本次转译借助:https://github.com/niizam/Genymotion_A11_libhoudini 项目来实现,下面是一些操作细节:

打开 Android 11 模拟器,下面直接在命令行下操作

# 进入 adb 切换 root 用户,将系统根目录挂载为可读写
adb shell
su
mount -o rw,remount /

# 写入内容
echo 'ro.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.product.cpu.abilist64=x86_64,arm64-v8a
ro.vendor.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist64=x86_64,arm64-v8a
ro.odm.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.odm.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.odm.product.cpu.abilist64=x86_64,arm64-v8a
ro.dalvik.vm.native.bridge=libhoudini.so
ro.enable.native.bridge.exec=1
ro.enable.native.bridge.exec64=1
ro.dalvik.vm.isa.arm=x86
ro.dalvik.vm.isa.arm64=x86_64
ro.zygote=zygote64_32' | tee -a /system/build.prop >> /system/vendor/build.prop

从官方的 Release 页面下载 system.zip,直接拖入到模拟器中,根据提示直接确认刷入:

刷入完成后直接重启模拟器即可。

这样就可以正常打开我们常用的 APP 了:


文章来源: https://www.sqlsec.com/2024/09/hyprland.html
如有侵权请联系:admin#unsafe.sh