标签归档:macOS

macOS 单独为鼠标或触控板开启自然滚动

macOS 系统配置“自然滚动”,虽然鼠标和触控板都可以配置,但是两个控制是同步的,更改任意一个另一个都会跟着动。

一直是这样,也没有要更改的意思。

使用 LinearMouse 这个软件可以实现单独为触控板开启自然滚动,鼠标不开启自然滚动。

对于我来说,操作自然多了。简单记录一下。

Refs

Surge 从零开始配置

Surge for macOS 基于 这份 修改。

# Surge 的规则配置手册: https://manual.nssurge.com/

[General]
loglevel = notify
# 从 Surge iOS 4 / Surge Mac 3.3.0 起,工具开始支持 DoH
doh-server = https://doh.pub/dns-query, https://dns.alidns.com/dns-query
# https://dns.alidns.com/dns-query, https://13800000000.rubyfish.cn/, https://doh.360.cn/dns-query, https://dns.google/dns-query
dns-server = 223.5.5.5, 114.114.114.114
tun-excluded-routes = 0.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.168.0.0/16, 192.88.99.0/24, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/4, 255.255.255.255/32
skip-proxy = localhost, *.local, injections.adguard.org, local.adguard.org, captive.apple.com, guzzoni.apple.com, 0.0.0.0/8, 10.0.0.0/8, 17.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.168.0.0/16, 192.88.99.0/24, 198.18.0.0/15, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/4, 240.0.0.0/4, 255.255.255.255/32

wifi-assist = true
allow-wifi-access = true
wifi-access-http-port = 6152
wifi-access-socks5-port = 6153
http-listen = 0.0.0.0:6152
socks5-listen = 0.0.0.0:6153

external-controller-access = 请指定密码@0.0.0.0:6170
replica = false

tls-provider = openssl
network-framework = false
exclude-simple-hostnames = true
ipv6 = true

test-timeout = 4
proxy-test-url = http://www.gstatic.com/generate_204
geoip-maxmind-url = https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb

[Replica]
hide-apple-request = true
hide-crashlytics-request = true
use-keyword-filter = false
hide-udp = false

# -----------------------------
# Surge 的几种策略配置规范,请参考 https://manual.nssurge.com/policy/proxy.html
# 不同的代理策略有*很多*可选参数,请参考上方连接的 Parameters 一段,根据需求自行添加参数。
#
# Surge 现已支持 UDP 转发功能,请参考: https://trello.com/c/ugOMxD3u/53-udp-%E8%BD%AC%E5%8F%91
# Surge 现已支持 TCP-Fast-Open 技术,请参考: https://trello.com/c/ij65BU6Q/48-tcp-fast-open-troubleshooting-guide
# Surge 现已支持 ss-libev 的全部加密方式和混淆,请参考: https://trello.com/c/BTr0vG1O/47-ss-libev-%E7%9A%84%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5
# -----------------------------

[Proxy]
ProxyHTTP = http, 1.2.3.4, 443, username, password
ProxyHTTPS = https, 1.2.3.4, 443, username, password
ProxySOCKS5 = socks5, 1.2.3.4, 443, username, password
ProxySOCKS5TLS = socks5-tls, 1.2.3.4, 443, username, password
ProxySS = ss, 1.2.3.4, 8000, encrypt-method=chacha20-ietf-poly1305, password=abcd1234
ProxyTrojan = trojan, 192.168.20.6, 443, password=password1
ProxySnell = snell, 1.2.3.4, 8000, psk=password

[Proxy Group]
Proxy = select, ProxyHTTP, ProxyHTTPS, ProxySOCKS5, ProxySOCKS5TLS, ProxySS, ProxyTrojan, ProxySnell

[Rule]
# 自定义规则
## 您可以在此处插入自定义规则

# 实用规则片段集
# RULE-SET,https://cdn.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Surge/Basic/Apple-News.list,Proxy
RULE-SET,https://cdn.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Surge/Basic/Apple-proxy.list,Proxy
RULE-SET,https://cdn.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Surge/Basic/Apple-direct.list,DIRECT
RULE-SET,https://cdn.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Surge/Basic/CN.list,DIRECT
RULE-SET,https://cdn.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Surge/Basic/common-ad-keyword.list,REJECT-TINYGIF
RULE-SET,https://cdn.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Surge/Basic/foreign.list,Proxy
RULE-SET,https://cdn.jsdelivr.net/gh/Hackl0us/SS-Rule-Snippet@master/Rulesets/Surge/App/social/Telegram.list,Proxy
RULE-SET,LAN,DIRECT

# 最终规则
GEOIP,CN,DIRECT
FINAL,Proxy,dns-failed

[URL Rewrite]
# 请开启 MITM 并在域名中加入 www.google.cn
^https?://(www.)?(g|google).cn https://www.google.com 302

References

运行在 macOS 中的 Linux —— multipass 方案

multipass 用于编排虚拟 Ubuntu 实例

下载 pkg 安装。

$ multipass find

$ multipass launch ubuntu

$ multipass list

$ multipass info <VM Name>

$ multipass shell <VM Name>

$ multipass exec <VM Name> -- lsb_release -a

$ multipass stop <VM Name>

$ multipass delete <VM Name>

$ multipass purge

Reference

运行在 macOS 中的 Linux —— OrbStack 方案

OrbStack) 是在 macOS 上运行 Docker 容器和 Linux 机器的快速、轻量级和简单的方式。它是一个超级充电版 WSL 和 Docker 桌面替代品,所有这些都在一个易于使用的应用程序中实现。

GitHub:https://github.com/orbstack

而 macOS 上的 Docker Desktop 原本就是饱受诟病,慢,重,资源消耗巨大。 OrbStack 的出现就是为了解决这个问题。

除了好用的 GUI,OrbStack 也提供了一些管理命令 orbctl,可以直接在命令行使用。

orbctl help
orb -m ubuntu -u root
orb -m ubuntu -u root uname -a

orb 命令还提供了其他一些特性,比如可以在虚拟机中 push 或 pull 来传输文件。

Reference

macOS 使用 dd 制作 USB 启动盘

安装操作系统时,当前常用的方式是获取操作系统对应的 ISO 文件,并制作 U 盘启动盘,使用 U 盘引导系统进行安装。

当使用 MacOS 时,可以很方便的利用系统自带工具,完成上述工作,具体步骤如下。

首先获得操作系统镜像,推荐从官方进行下载 ISO 类型的镜像,下载到的文件名如 Win10_20H2_v2_Chinese(Simplified)_x64.iso、ubuntu-20.04.1-desktop-amd64.iso、CentOS-7-x86_64-DVD-2003.iso 等。

之后通过以下步骤制作启动盘

# 使用 diskutil 查看 U 盘设备 ID
$ diskutil list
...
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   *15.5 GB    disk2
...

# 取消 U 盘挂载,否则在后续操作中可能会提示资源忙,无法进行启动盘制作
# 注意使用上面查询到的设备 ID,本例中为 /dev/disk2,一定注意不要写错
$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

# 使用 dd 将操作系统镜像写入 U 盘
# if=file 代表要写入的源文件路径
# of=file 代表要写入的目标文件,此处为代表 U 盘的设备 ID,但注意,命令中使用的是 rdisk2 而不是 disk2,也可以使用 disk2,区别稍后再讲
# bs=n 代表同时设置输入输出的块大小,n 代表字节数,默认为 512,可以使用 b/k/m/g 等字母后缀代表不同的单位,如下面命令代表每个块大小为 1048576(1m) 字节
# 写入时间较长,过程中没有任何输出,最终成功结束时会输出统计信息
$ sudo dd if=/Users/alphahinex/Downloads/CentOS-7-x86_64-Minimal-2003.iso of=/dev/rdisk2 bs=1m
1035+0 records in
1035+0 records out
1085276160 bytes transferred in 415.019150 secs (2615003 bytes/sec)

写入完成后,会弹出 此电脑不能读取您插入的磁盘。 的提示,直接点 忽略 或 推出 即可,不要点 初始化…。

也可以使用 diskutil 将 U 盘弹出:

$ diskutil eject /dev/disk2
Disk /dev/disk2 ejected

制作好的启动盘,在 Mac 或 Windows 上都无法查看其中内容,但并不影响使用。

References

macOS 清理时间机器快照

安装 Asahi Linux 发现磁盘可用空间为 0,查阅文档发现是时间机器的问题。

We're going to resize this partition:
  APFS [Macintosh HD] (245.11 GB, 6 volumes)
  Total size: 245.11 GB
  Free space: 132.23 GB
  Available space: 0 B
  Overhead: 94.23 GB
  Minimum total size: 245.11 GB (100.00%)

开启时间机器后系统会自动进行本地快照,这将会占满所所有可用空间,需要手动清理一下:

$ tmutil listlocalsnapshots /
$ sudo tmutil deletelocalsnapshots # For example, 
$ sudo tmutil deletelocalsnapshots 2021-06-26-123740
# Once you see the statement "Delete local snapshot" followed by the date and time stamp, the local snapshot has been deleted.

Reference

Parallels m1 安装 arch 虚拟机并配置 KDE 和辅助程序

最近在探索 m1 MacBook 下运行 linux 虚拟机的可能性,计划未来在 linux 虚拟机下完成所有开发工作,parallels desktop 天然提供了 debian/ubuntu/fedora 等 linux 发行版支持,但是在我个人使用场景中还是多少有些问题。

几天在浏览 archWiki 时发现社区提供了一个直接可用的 parallels Deskto 虚拟机模版,可以用来快速配置 linux 开发环境,比较省时省力,在这里介绍几个关键步骤。

获取 arch linux 虚拟机模版

这里下载 Arch Linux Parallels Desktop 虚拟机模版。

下载完毕后解压,使用 Parallels 打开即可。

在 对应的 README 文件中可以看到默认的用户名和密码。

如果一切顺利,启动虚拟机,即可看到一个配置好的 arch linux。

安装 KDE 桌面

# 根据需要配置镜像后进行
# 建议配置 ustc arch arm 镜像后继续
pacman -Syyu # 升级系统中全部包
pacman -S sudo vim xf86-video-vesa 

# 创建非 root 账号
useradd -m -G wheel -s /bin/bash myusername
passwd myusername
# 最后记得赋予新用户 sudo 权限

# 安装 kde plasma 桌面
pacman -S plasma-meta konsole dolphin 
# plasma-meta 元软件包、konsole 终端模拟器和 dolphin 文件管理器
pacman -S plasma-wayland-session xdg-desktop-portal
sudo pacman -S packagekit-qt5 packagekit appstream-qt appstream # 确保 Discover(软件中心)可用,需重启
systemctl enable sddm
systemctl start sddm  # 直接启动显示管理器

# 安装中文字体
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei # 安装几个开源中文字体。一般装上文泉驿就能解决大多 wine 应用中文方块的问题
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra # 安装谷歌开源字体及表情
sudo pacman -S kdeconnect # 安装 KDE Connect,可以用智能手机控制 KDE

安装 Parallels Tools

实测默认无法通过 Parallels 菜单栏的安装 Parallels Tools 来安装辅助工具,需要手动挂载安装。

前往 /Applications/Parallels Desktop.app/Contents/Resources/Tools 文件夹,找到 prl-tools-lin-arm.iso 文件,手动挂载到虚拟机中,运行安装即可。

效果展示

以上描述了几个需要特别注意的点,之后按照需要配置系统即可:

搭载 Apple Sillicon 芯片的 MacBook 目前软件生态还有待完善,虚拟化方面,我尝试了 UTM、VMware Fusion 和 Parallels Desktop 三种虚拟化桌面软件,以及 Debian/Fedora/Ubuntu 等系统。

体验下来 Parallels Desktop 比较省时省力,系统方面貌似 Arch 和 Debian 下 aarch64 的软件生态相对完善,如果有时间建议都尝试一下选择适合自己的。

体验下来我个人更倾向 Arch Linux,KDE 支持比较好,软件生态也相对更好。不管选择什么,记得日常配置多打快照,避免哪一天滚挂了。

相比于 macOS,linux 下的 aarch64 软件生态相对更好些,特别是开源软件和终端下常用的软件,未来我是打算将所有开发和终端操作全部放在 linux 虚拟机中使用了。

参考文献

Paralles Desktop 修改虚拟机用户密码

最近在使用 Paralles Desktop 过程中,发现一旦忘记用户密码,是一件挺麻烦的事情。尝试各种方法打不开 grub 启动菜单。

后来发现可以使用其提供的命令工具修改用户密码,很好用,在此记录:

# 首先获取虚拟机 UUID
$ prlctl list
UUID                                    STATUS       IP_ADDR         NAME
{fdf05394-dc61-4d07-b6e5-e81ef5277a64}  running      -               Ubuntu 22.04 ARM64

# 设定用户密码
$ prlctl set fdf05394-dc61-4d07-b6e5-e81ef5277a64 --userpasswd 
<USERNAME>:<PASSWORD>
Authentication tokens updated successfully.
Success. The operation was successfully completed.

The VM has been successfully configured.

参考文献

m1 MacBook 安装 asahi linux 磁盘调整失败解决

尝试在 MacBook Air m1 安装 asahi linux ,在磁盘分区过程遭遇报错,具体过程没有留下来,是类似这样的报错:

error: doc-id tree: record exists for doc-id 64, file-id 9665861 but no inode references this doc-id

大致解决是要进恢复模式,之后使用急救程序尝试修复。

尝试后发现还是报错,后来在 asahi linux 的 github 找到一个类似问题,使用下列方法解决:

I had a similar issue, where /dev/disk3s5 had warnings that wouldn’t go away, and I solved it as follows:

Boot into recovery and open a terminal
`diskutil unmountdisk /dev/disk3`
`fsck_apfs /dev/disk3` (and hit y in response to the various prompts)

I believe unmounting was the important part.

之后磁盘分区就不报错了。

参考文献: https://github.com/AsahiLinux/asahi-installer/issues/88#issuecomment-1095019173