公益项目
镜像站、订阅转换、KMS 等公益项目
镜像站、订阅转换、KMS 等公益项目
Patreon 赞助福利
以 Archlinux 为例,其他发行版请自行调整命令。 0. (可选)安装 proton-ge-custom GE-Custom 相较于官方版本有以下优势: 包含更多游戏特定补丁 更新的 WINE 版本 更多实验性功能 更好的媒体编解码支持 额外的游戏兼容性修复 编译时间比较长,需要耐心等待。 yay -S proton-ge-custom 如果没有这个需求可以直接使用 Steam 自带的 proton。 1. 将游戏添加到 Steam Steam 菜单中点击 游戏 -> 添加非 Steam 游戏到我的库中,并完成相应设置。 如果要使用其他 proton 版本,可以在 兼容性 中指定。 2. (可选)安装运行库 有一些游戏需要 VC++ 或者 .net 运行库,无法直接运行,则需要安装对应运行库。 建议使用 protontricks 来操作,会比较方便。 yay -S protontricks 安装完成后启动 protontricks,在游戏列表中选择盗版游戏(你需要先将游戏添加到 Steam 中才能在列表中看到),protontricks 启动时会多次弹出警告信息,无视即可。 选择 选择默认的 Wine 容器 并确认。 此时可以选择 安装 Windows DLL 或组件 来自动安装,也可以选择 Run an arbitray executable 来指定运行其他的 exe 文件。 ...
Clevo 电脑的风扇调度真的是吵得要死,之前一直用 Windows 系统,用 Ryzen Master 降压来控制 CPU 温度,间接降低转速。 现在换到 Linux 系统,不好好配置一下实在受不了。 我在 Google 上翻了半天,找到了一堆 Github 仓库,试了几个都不好用,最后发现 AUR 仓库里已经有大佬整理了好用的包(我太爱 pacman 和 aur 了!)。 https://aur.archlinux.org/packages?K=clevo 安装驱动 yay -S clevo-drivers-dkms-git 安装控制中心 yay -S tuxedo-control-center-bin Tuxedo 是一家位于德国奥格斯堡的计算机制造商。该公司专门生产预装 Linux 操作系统的台式电脑和笔记本电脑。 在安装了上面的驱动之后就可以通过 Tuxedo 的控制面板来设置各种调度参数了。
sync.Once 用于确保某个函数只执行一次,无论有多少个 goroutine 尝试执行它。它有一个方法 Do(f func()),传入需要执行的函数。 基本用法示例: package main import ( "fmt" "sync" ) func main() { var once sync.Once done := make(chan bool) // 模拟多个 goroutine 调用 for i := 0; i < 10; i++ { go func(x int) { // once.Do() 传入的函数只会执行一次 once.Do(func() { fmt.Printf("只执行一次: %d\n", x) }) // 这行每个 goroutine 都会执行 fmt.Printf("goroutine %d 完成\n", x) done <- true }(i) } // 等待所有 goroutine 完成 for i := 0; i < 10; i++ { <-done } } 常见使用场景: 单例模式: type Singleton struct{} var ( instance *Singleton once sync.Once ) func GetInstance() *Singleton { once.Do(func() { instance = &Singleton{} }) return instance } 一次性初始化: type Config struct { settings map[string]string once sync.Once } func (c *Config) Load() { c.once.Do(func() { // 加载配置的代码 c.settings = make(map[string]string) c.settings["key"] = "value" }) } 延迟关闭资源: type Connection struct { once sync.Once quit chan struct{} } func (c *Connection) Close() { c.once.Do(func() { close(c.quit) }) } 错误处理: type ErrorHandler struct { once sync.Once err error } func (e *ErrorHandler) HandleError(err error) { e.once.Do(func() { e.err = err // 只处理第一个错误 fmt.Println("处理错误:", err) }) } sync.Once 的特点: ...
如果你在非 Windows 端使用 RDP 协议远程控制一台登录微软账号的 Windows,那么连接时输入的用户名可能不是你的微软账号(邮箱),也不是去掉邮箱后缀后的剩余部分,更不是 Administrator,而是其他值,可以在被控端执行 echo %USERNAME% 查看,这个值虽然是自己设置的,但是系统设置里完全找不到,我试了半天真是有被气到。
fcitx5 输入法不可用 在桌面环境的设置中设置虚拟键盘为 fcitx 5 配置 ~/.config/<flags>.conf 文件 大部分常用包都会读取 ~/.config/ 目录下的 flags 文件,例如: visual-studio-code-bin 读取 ~/.config/code-flags.conf google-chrome 读取 ~/.config/chrome-flags.conf 基于 electron 包的程序读取 ~/.config/electron-flags.conf 或 ~/.config/electron<electron主版本号>-flags.conf 配置内容为 --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto --enable-wayland-ime
本文针对 Turing (NV160/TUXXX) 及之后型号的显卡,可以通过 lspci -k | grep -A 2 -E "(VGA|3D)" 查看显卡型号 在 Linux 平台下 Nvidia 的驱动分为 3 种 nvidia/nvidia-dkms Nvidia 官方闭源驱动 nvidia-open/nvidia-open-dkms Nvidia 官方半开源驱动 nouveau 第三方开源驱动 官方驱动不论是闭源还是半开源,在游戏方面的性能都远好于第三方开源驱动。 带有 dkms 后缀的版本与不带的版本区别在于,不带后缀的版本用于 linux 标准内核,而带后缀的版本用于其他内核。 问题及解决方案 官方内核 在驱动更新到 555 主版本号之后会出现 KDE Plasma 动画卡顿和掉帧的情况,这是由于 Nvidia 官方引入的 GSP(RISC-V 处理器) 不稳定导致的。 在目前的驱动版本(560)中该问题仍然存在,可以通过禁用 GSP 解决,但是只有闭源驱动可以禁用 GSP,半开源驱动无法实现。 具体解决方法为添加内核参数 nvidia.NVreg_EnableGpuFirmware=0 添加内核参数的方法有很多需要根据使用的引导方式确定,具体可以查看 ArchWiki 此处给出 Systemd 引导的配置方法 $ nano /boot/loader/entries/<日期>_<引导名>.conf 添加下方内容 options nvidia.NVreg_EnableGpuFirmware=0 保存后重启即可。 第三方开源内核 第三方开源内核不会导致 KDE Plasma 卡顿的问题,但是会导致无法调节屏幕亮度,可以通过增加内核参数 acpi_backlight=none 解决。