你是否羡慕人家 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.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 &
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 官方打包的 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
当前用户添加到 libvirt
和 kvm
组,以便不需要使用 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 了: