国光的 Ubuntu Hyprland 桌面优化记录
你是否羡慕人家 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
Hyprland 安装
基础安装
本次使用的 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 | 编辑桌面整体布局配置 |
Hyprland 配置
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.ttf、MesloLGS NF Bold.ttf、MesloLGS NF Italic.ttf、MesloLGS 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 &
Waybar
快捷键
Warbar 是在 Hyprland 环境下工作非常棒的顶部状态栏,可定制性非常高。此次脚本自带的相关快捷键如下:
快捷键 | 说明 |
---|---|
Super + Alt + B | 更换 Waybar 布局 |
Super + Ctrl + B | 更换 Waybar 样式 |
默认搭配
我的搭配如下:[Top & Bot] SummitSplit 布局 + [Transparent] Crystal Clear 样式,这样国光个人认为结合了 macOS 和 Windows 的特性,使用起来效率会更高一点:
外观定制
当然这个默认搭配虽然效果已经很不错了,但是还是有很多优化空间,下面是国光我具体的配置内容。
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 官方打包的 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
开发环境
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
安全环境
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
虚拟环境
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
这样就可以正常抓包测试了。