文章中涉及的命令,请在阅读完文章后酌情执行!

Ubuntu 安装记录(持续更新)

作者 Breky    发布于    分类    标签

邪教教徒不好做,以前用的 Manjaro,改邪归正,用 Ubuntu 了。这篇文章记录在使用过程中遇到的问题。

2023年4月3日 更新

关于输入法

Manjaro 系统没装中文输入法,安装了 FcitxElementaryOS 时自带的 ibus 系统图标有问题,也换成了 Fcitx,但是 Ubuntu 22.04 LTS 中自带的 ibus 很好,就没再装。

Sublime-text 4 激活

  1. 备份 sublime_text(路径为 /opt/sublime_text/sublime_text) 文件
  2. 进入 Hexed 网站
  3. 打开 sublime_text 文件
  4. 搜索 807805000f94c1 并替换为 c64005014885c9
  5. 导出 sublime_text 文件并修改文件属性为 755chmod 755 sublime_text
  6. 将导出的 sublime_text 复制或移动到 /opt/sublime_text 目录中(sudo cp/mv

参考: 激活sublime text4

Sublime-text 代码片段功能

sublime-text 的代码片段(snippet)可以实现输入几个特定字符后按 tab 键转化为指定的内容。

例如,写 Hexo 博客文章时,需要写 yaml 头文件,每篇文章都要写,很麻烦。使用 snippet,就使其变得简单了很多。具体过程如下:

新建代码片段。单击工具 => 插件开发 => 新建代码片段,文件内容如下:

1
2
3
4
5
6
7
8
9
<snippet>
<content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<!-- <tabTrigger>hello</tabTrigger> -->
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->
</snippet>

修改转化内容。Hello, ${1:this} is a ${2:snippet}. 这行内容修改为想要的内容。

指定触发字符。去掉 <tabTrigger> 标签两边的注释符号(<!---->

最后选个合适的名字,保存在默认目录(~/.conf/sublime-text/Packages/User)中即可。当然为了方便管理,在默认目录中新建个目录,将所有自定义的 snippet 文件(.sublime-snippet)都保存里面也可以。

我用的一个 snippet 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<snippet>
<content><![CDATA[
---
title: ${1: }
date: ${2: }
author: Breky
categories: ${3: }
tags: ${4: }
---
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>mdt</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.markdown</scope> -->
<description>YAML Title</description>
</snippet>

解释:在任意文件中输入 mdt 然后按 tab 键,mdt 转化为

1
2
3
4
5
6
7
---
title: ${1: }
date: ${2: }
author: Breky
categories: ${3: }
tags: ${4: }
---

光标默认在 ${1: } 位置上,输入完其上的内容后,再依次按 tab 键,依次跳到 ${2: }, ${3: }, ${4: } 位置上。

其他问题。其他博主有强调过,需要使用 <scope> 标签来指定使用范围,比如 <scope>source.python</scope> 是说当前的 snippetpython 环境中才生效。但是我改成 <scope>source.md</scope> 或者 <scope>source.markdown</scope>,在 .md 或者 .markdown 文件中都不能生效。最后只能不指定使用范围,在所有文件中都可以用,才可以在 markdown 文件中使用。

参考: Sublime Text Snippets(代码片段)功能

关于 AppImage 格式的软件

AppImage 格式的软件几乎可以在任何 Linux 系统中都可以运行,并且不需要给系统安装任何软件所需依赖,因为它自带。

对于 Manjaro 系统,给 AppImage 格式软件添加可执行权限后,在终端输入 ./xxx.AppImage 直接运行。

Ubuntu 22.04 LTS ,因为缺少 AppImage 运行环境,不能直接运行。又但是,它自带所有运行时所需依赖,所以它可以像 Win 系统中的绿色软件一样,解压后找到可执行文件即可运行。

具体过程:

解压 AppImage 文件:

1
2
3
4
5
cd /path/to/xxx.AppImage

chmod 755 xxx.AppImage

./xxx.AppImage --appimage-extract

修改 .desktop 文件。解压完成后,同目录下会有一个子目录(目录名不确定,以 appFolder 为例),子目录中有 xxx.desktop 文件,修改其中的 Exec (子目录中的可执行文件,一般与 AppImage 文件同名或是 AppRun 文件)和 Icon(子目录中的 .png 文件)的值(都需要绝对路径)。

创建启动图标。~/.loacl/share/applications 目录中新建 xxx.desktop 文件的软链即可以在启动器(不知道叫什么,就是系统的所有软件)中找到软件的启动图标。

1
2
3
# 新建软链
cd /path/to/xxx.AppImage/appFolder # 可以省略,创建软链需要用绝对路径
ln -s /path/to/xxx.AppImage/appFolder/xxx.desktop /home/usrname/.local/share/applications/xxx.desktop # username 为用户名

举个栗子。

Motrix 为例。Motrix-1.6.11.AppImage 文件路径为 /home/breky/Applications/Motrixbreky 是用户名。

执行 ./Motrix-1.6.11.AppImage --appimage-extract 命令后得到的子目录名改成了 runtime,原名忘了叫啥了。

runtime folder

图中标号 3 的文件为启动图标,修改后的内容如下:

1
2
3
4
5
6
7
[Desktop Entry]
Name=Motrix
Exec=/home/breky/Applications/Motrix/runtime/motrix --disable-gpu-sandbox %U
Terminal=false
Type=Application
Icon=/home/breky/Applications/Motrix/runtime/motrix.png
Categories=Network

ExecIcon 两项的值分别指向图中标号为 2 和 标号为 4 的文件,Exec 也可以指向图中标号为 5 的 AppRun 文件。

创建启动图标软链,命令为:

1
ln -s /home/breky/Applications/Motrix/runtime/motrix.desktop /home/breky/.local/share/applications/motrix.desktop

之后,在 home/breky/.local/share/applications/ 目录中会有 motrix.desktop 文件的软链。

.local/share/applications

最后,单击下图红圈内的图标,就可以找到了。

win+a

完成,哦耶。

单击后不能运行的情况:

  1. Exec 的值不对。使用绝对路径并认真核对。
  2. runtime 目录中的 motrix.desktop 文件需要勾选 允许执行文件右键 => 属性 => 权限 就能看到了)。
  3. runtime 目录中的 motrix(可执行文件)和 motrix.desktop 文件需要添加执行权限(chmod +x motrix/motrix.desktop)。
  4. 再不行,在终端直接运行 ./motrix,查看错误提示,根据提示逐一修复。(一般不会,但 motrix 需要添加选项 --disable-gpu-sandbox %U)。

参考:

  1. Arch Linux - AppImage
  2. 什么是AppImage