Desktop File

如何编写 .desktop 文件

前言 在 Linux 系统中,经常会遇到一些软件只提供了可执行文件,而并没有提供可以通过包管理安装的途径,常见于 AppImage 封装的软件,这时候每次需要运行软件都需要通过终端来执行,非常麻烦。不过这个问题可以通过手动编写 .desktop 文件来解决,这样这些可执行文件就可以和其他软件一样拥有桌面图标。 用法 使用 vim 或其他文本编辑器直接编写 .desktop 文件后将其置于如下路径之一即可: /usr/share/applications/ /usr/local/share/applications/ ~/.local/share/applications/ 示例 来自 Arch Linux Wiki 的示例 [Desktop Entry] # The type as listed above Type=Application # The version of the desktop entry specification to which this file complies Version=1.0 # The name of the application Name=jMemorize # A comment which can/will be used as a tooltip Comment=Flash card based learning tool # The path to the folder in which the executable is run Path=/opt/jmemorise # The executable of the application, possibly with arguments....

一月 25, 2023 · Aimer Neige
Minecraft Java Edtion

如何搭建你自己的 Minecraft 服务器

阅前须知 本文章面向具有一定运维经验的用户,不面向小白 本文章介绍的 Minecraft 是 Java 版本的 Minecraft 本文章只介绍纯净服的搭建,不会说明如何安装 mod 如非特殊说明,本文中出现的 “我的世界” 均指代 Minecraft 的中文翻译,而不是由网易代理的 “我的世界” 准备 可供外部连接的服务器 基础 Linux 知识 安装 首先要确定你的服务器是否可以被外部连接 有公网 IP 如果你有公网 IP,可以直接使用你的主机作为服务器,相当于你有一台私有的云服务器。 没有公网 IP 如果你没有公网 IP,你需要购买一台云服务器,这样,你就拥有了一个可供外部连接的公网 IP。 如果你对服务器配置要求较高,本地也有闲置主机可以用来跑 Minecraft 服务器,可以通过 frp 将本地的主机穿透出去,以供外部连接。这样云服务器的配置就可以很低,只负责转发网络数据。 如果你对服务器的配置要求不高,也不想本地 24 小时开着一台机器,可以直接使用云服务器来跑 Minecraft 服务器。 至于你需要多高的配置来运行 Minecraft 服务器,可以参考 Wiki 的内容: 确保服务器可以被外部连接后,安装 Minecraft 下载服务器文件 在 官网 下载服务器运行所需的 jar 文件。 官方只提供最新版的文件,如果你需要历史版本,使用官方启动器下载。 运行服务器 直接使用官网的示例指令运行 jar 文件: java -Xmx1024M -Xms1024M -jar minecraft_server.1.19.3.jar nogui 如果你有更高的内存,可以修改 -Xmx1024M -Xms1024M 这一部分。...

一月 12, 2023 · Aimer Neige
Ubuntu qBittorrent-nox

在 Ubuntu 服务器上安装 qBittorrent-nox

在 Ubuntu 服务器上安装 qBittorrent-nox 更新系统 sudo apt update && sudo apt upgrade -y 导入 qBittorrent-nox 稳定版本的源 sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable -y 导入 qBittorrent-nox 非稳定版本的源(每夜版) sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-unstable -y 更新源 sudo apt update 安装 qBittorrent-nox sudo apt install qbittorrent-nox -y 创建用户和用户组 sudo adduser --system --group qbittorrent-nox # on fedora sudo groupadd qbittorrent-nox 将你添加到用户组中 sudo adduser your-username qbittorrent-nox # on fedora sudo usermod -aG qbittorrent-nox your-username 创建 service 文件 sudo vim /etc/systemd/system/qbittorrent-nox.service [Unit] Description=qBittorrent Command Line Client After=network....

十一月 11, 2022 · Aimer Neige
Fedora WeChat

在 Fedora 系统上安装微信

在 Fedora 系统上运行微信 安装 wine sudo dnf install wine 调整缩放比例 输入下面的指令打开 winecfg winecfg 在 Graphics 一栏中调整合适的 dpi 以保证有舒适的使用体验。(4k 屏幕,192 dpi) 下载并配置字体 依次执行如下指令即可 sudo dnf install cabextract sudo dnf install winetricks winetricks corefonts gdiplus riched20 riched30 下载并安装微信 直接下载官方的 exe 安装包(在网页下载也是一样的) wget https://dldir1.qq.com/weixin/Windows/WeChatSetup.exe 使用 wine 启动微信 wine ./WeChatSetup.exe 接下来按照 Windows 的安装逻辑点击下一步安装好微信 安装结束后可以删除安装包 修改语言设置 修改这个文件 vim ~/.local/share/applications/wine/Programs/WeChat/WeChat.desktop 调整 Exec 这一部分,添加如下环境变量 env LC_ALL="zh_CN.UTF8" 最终结果应该是这样(注意路径) [Desktop Entry] Name=WeChat Exec=env LC_ALL="zh_CN.UTF8" env WINEPREFIX="/home/aimer/.wine" wine C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start\\ Menu\\\\Programs\\\\WeChat\\\\WeChat.lnk Type=Application StartupNotify=true Path=/home/aimer/....

十一月 10, 2022 · Aimer Neige
Golang embed

Golang embed

前言 在写项目的时候,有时候不可避免地要处理静态文件,如果将源码直接作为软件提供问题不大,使用相对路径读取这些静态文件就可以了。但是如果项目作为库向外公布显然不可行,使用相对路径是读取不到文件的,而使用绝对路径却会带来更大的问题:因为不同的人使用,路径绝对不可能完全一致的。如果要求用户在指定路径下放置这些依赖的静态文件,虽然可行但是会给用户带来很大的困扰,而且这样的实现方式显然不够优雅。这时候,将这些静态文件一起打包进可执行文件似乎是一个完美的解决方案,那么如何实现呢?最简单的方法是硬编码,将静态文件以文本或字节数组的形式直接编入源代码,go 也有一些库帮你自动生成代码,比如 go-bindata。很明显,这个库已经终止维护了,这是因为在 go 1.16 版本,官方发布了 embed 完美地解决了这个问题。本文简要介绍 embed 的一些基础用法。 embed 假设我们有一个文件 hello.txt Hello World! Hello go embed! 我们要写一个程序读取其中的内容并输出到终端: // file: main.go package main import ( "fmt" "os" ) func main() { s, err := os.ReadFile("./hello.txt") if err != nil { panic(err) } fmt.Println(string(s)) } 很简单,不是吗? ➜ tree . . ├── go.mod ├── hello.txt └── main.go 0 directories, 3 files ➜ go build main.go ➜ ./main Hello World! Hello go embed!...

八月 13, 2022 · Aimer Neige
go image processing

Go 图像处理基础

前言 Go 语言的官方包 image 和 image/color 定义了非常多的类型,涵盖了很多的图像处理基础内容,本文简单介绍这些库中的基本概念和使用方法。 常见类型介绍 Colors Colors 是一个接口,它的代码如下: type Color interface { // RGBA returns the alpha-premultiplied red, green, blue and alpha values // for the color. Each value ranges within [0, 0xffff], but is represented // by a uint32 so that multiplying by a blend factor up to 0xffff will not // overflow. // // An alpha-premultiplied color component c has been scaled by alpha (a), // so has valid values 0 <= c <= a....

八月 12, 2022 · Aimer Neige
Rust Logo

[转载] Rust 大佬给初学者的学习建议

本文章转载自 Rustt 简介 当我开始学习 Rust 的时候,我犯了一个错误,那就是先读《The Rust Programming Language》。虽然这是一本非常好的资料,但让新手一开始就阅读这本 20 个章节的书籍,简直令人望而生畏,大多数人还没开始就放弃了。没有人会让一个刚开始学习 JavaScript 或者 Python 的人去阅读一本 20 个章节的书籍。Rust 学习曲线非常陡峭的,但只要循序渐进的学习一定也能学有所成。 摘要 如果你是一个完完全全的 Rust 小白,想要在一天中尽可能多的学习 Rust,那我推荐你去阅读 fasterthanlime 的《半小时快速了解 Rust》,然后完成 Rustlings 项目中的练习。 如果你已经学过 Rust 的基本语法,你可以试着做一下 Exercism.io 网站上的 Rust 部分。如果你遇到了问题,你可以在 Google 或者 StackOverflow 上寻求帮助。我推荐你花点时间来简单的阅读和浏览一下《Rust Standard Library Docs》,它是一个很棒的学习资料,里面有一些简单且实用例子去帮助你更好的使用 Rust 的标准库。《Rust by Example》也是一本高质量的参考资料,你可以通过他快速的学习 Rust 的语法和特性。如果你想要更深入的理解 Rust 的某一个概念,那么我推荐你在《The Rust Programming Language》这本书中寻找相关的章节去阅读。尤其推荐在 Exercism.io 上进行练习。在完成每个题目之后,你可以查看其他所有人的题解,可以按点赞数排序来找到通俗易懂并且巧妙的题解。这是一种很棒的学习方式。 此时,你可能已经是一个高级的初学者,能够找到属于自己的学习路线。但,如果你还需要更多的指导并想要尝试用 Rust 来写一些简单的程序,我推荐你试一着做一下 Advent of Code 2018 Calendar 上的练习。为什么推荐你做 2018 年的题目呢?因为当你做完了这个练习,你可以和 BurntSushi 提供的答案( BurntSushi’s Advent of Code 2018 Rust solutions)进行对比。BurntSushi 写的 Rust 代码整洁、可读性强、通俗易懂。阅读一个有经验的 Rustacean 的代码将会使你受益无穷。...

六月 29, 2022 · Aimer Neige
Server Setup

如何配置新购置的 Linux 服务器

更新系统 # Debian apt update # Fedora dnf update 安装常用工具 # Debain apt install -y neofetch htop tree ncdu ranger zsh vim neovim git curl wget net-tools # Fedora dnf install -y neofetch htop tree ncdu ranger zsh vim neovim git curl wget util-linux-user 创建 sudo 用户 # Debian adduser aimerneige usermod -aG sudo aimerneige # Fedora useradd -G wheel aimerneige passwd aimerneige 测试 root 权限 su - aimerneige sudo cat /etc/shadow 配置 SSH 连接密钥 # 在你的本地环境执行这条指令 ssh-copy-id aimerneige@server 测试连通性 ssh aimerneige@server 禁用 root 和密码登录 sudo vim /etc/ssh/sshd_config 将 PermitRootLogin 修改为 no 可以禁用 root 用户登录 将 PasswordAuthentication 修改为 no 可以禁用密码登录 设置 sudo 免密码 sudo visudo 在末尾添加如下内容...

五月 17, 2022 · Aimer Neige
Fedora Windows

在 wsl 下安装 fedora 35

安装 wsl2 使用管理员身份开启 windows terminal. 执行如下指令: wsl.exe --install 等待安装完成后在开始菜单执行重启(Restart) Warning 注意是在开始菜单选择 Restart 而不能是选择 Shut Down 关机之后手动开机。 安装过程中系统会自动下载 Ubuntu 的子系统,重启后会弹出 ubuntu 的命令行初始界面,输入用户名和密码即可开始使用 ubuntu 子系统。 执行下面的指令设置 wsl 默认版本为 wsl2: wsl --set-default-version 2 安装其他版本的子系统 如果你想要其他版本的子系统,可以执行如下指令获取可通过 wsl 指令直接安装的发行版列表: wsl --list --online 返回数据类似下面这样: The following is a list of valid distributions that can be installed. Install using 'wsl --install -d <Distro>'. NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling openSUSE-42 openSUSE Leap 42 SLES-12 SUSE Linux Enterprise Server v12 Ubuntu-16....

四月 9, 2022 · Aimer Neige
Find Command On Cool Retro Term

find 指令的基本用法

什么是 find 正如它的名字一样,find 指令用于查找文件。 Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 来源: 菜鸟教程 The find command in UNIX is a command line utility for walking a file hierarchy. It can be used to find files and directories and perform subsequent operations on them. It supports searching by file, folder, name, creation date, modification date, owner and permissions. By using the ‘-exec’ other UNIX commands can be executed on files or folders found....

三月 12, 2022 · Aimer Neige