mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-25 23:11:02 +08:00
Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating
This commit is contained in:
commit
f2ab8ce217
@ -3,15 +3,18 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15186-1.html"
|
||||
|
||||
在你的 Linux 终端中享受经典的贪吃蛇游戏
|
||||
在你的 Linux 终端中玩经典的贪吃蛇游戏
|
||||
======
|
||||
这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。
|
||||
|
||||
还记得老式手机经典简单的贪吃蛇吗?我记得玩了几个小时。嘿,当时没有其他选择,对吧?智能手机仍未上市。而你所拥有的就是这个。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202210/28/091539oanrjizald7rzr7a.jpg)
|
||||
|
||||
> 这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。
|
||||
|
||||
还记得老式手机经典简单的贪吃蛇吗?我记得玩了几个小时。嘿,当时没有其他选择,对吧?智能手机仍未上市。而你所拥有的只有这个。
|
||||
|
||||
![Nokia 3310 中的旧版贪吃蛇游戏][1]
|
||||
|
||||
@ -23,7 +26,7 @@
|
||||
|
||||
### 安装 nSnake – Linux 终端的贪吃蛇
|
||||
|
||||
你可以使用以下方法通过终端安装[此游戏][4]。
|
||||
你可以使用以下方法通过终端安装 [此游戏][4]。
|
||||
|
||||
对于 Ubuntu、Linux Mint 或其他相关发行版:
|
||||
|
||||
@ -37,7 +40,7 @@ sudo apt install nsnake
|
||||
sudo dnf install nsnake
|
||||
```
|
||||
|
||||
对于 Arch Linux,此游戏可在 [Arch 用户仓库][5]中获得。你可以使用以下步骤安装它。
|
||||
对于 Arch Linux,此游戏可在 [Arch 用户仓库(AUR)][5] 中获得。你可以使用以下步骤安装它。
|
||||
|
||||
* [设置 Yay AUR 助手][6]
|
||||
* 然后打开终端并运行以下命令
|
||||
@ -46,34 +49,37 @@ sudo dnf install nsnake
|
||||
yay -S nsnake
|
||||
```
|
||||
|
||||
上面的命令会安装游戏的库存库版本,它可能不是最新的。但是,如果你想要最新版本,你可能需要通过 GitHub 编译源代码。我在本页末尾添加了编译说明供你参考。
|
||||
上面的命令会安装游戏的软件仓库版本,它可能不是最新的。但是,如果你想要最新版本,你可能需要通过 GitHub 编译源代码。我在本页末尾添加了编译说明供你参考。
|
||||
|
||||
### 玩游戏
|
||||
|
||||
玩游戏非常简单。在终端中输入 nsnake,这将启动游戏。
|
||||
玩游戏非常简单。在终端中输入 `nsnake`,这将启动游戏。
|
||||
|
||||
要立即退出,请按 q。
|
||||
要立即退出,请按 `q`。
|
||||
|
||||
以下是默认键绑定。
|
||||
|
||||
* 箭头键 - 移动蛇
|
||||
* q – 退出游戏
|
||||
* p – 暂停游戏
|
||||
* `箭头键` - 移动蛇
|
||||
* `q` – 退出游戏
|
||||
* `p` – 暂停游戏
|
||||
|
||||
你还可以通过主菜单以各种方式配置游戏。
|
||||
|
||||
![nsnake Linux 终端贪吃蛇设置][7]
|
||||
|
||||
完成了,享受吧!
|
||||
完成了,玩吧!
|
||||
|
||||
##### 编译
|
||||
### 编译
|
||||
|
||||
要编译最新版本,请在所有 Linux 发行版中使用以下命令。
|
||||
|
||||
哦,确保你已经安装了 `git` 和 `ncurses-devel`,它们是编译所需的包。
|
||||
|
||||
```
|
||||
git clone https://github.com/alexdantas/nSnake.gitcd nsnakemakemake install
|
||||
git clone https://github.com/alexdantas/nSnake.git
|
||||
cd nsnake
|
||||
make
|
||||
make install
|
||||
```
|
||||
|
||||
那么,你喜欢贪吃蛇游戏吗?与其他基于终端的游戏相比,你更喜欢它吗?在下面的评论框中与其他读者分享你的观点。
|
||||
@ -85,7 +91,7 @@ via: https://www.debugpoint.com/snake-game-linux-terminal/
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -3,23 +3,24 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "chai001125"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15189-1.html"
|
||||
|
||||
通过示例来学习 Bash base64 的编码和解码
|
||||
======
|
||||
你想了解 Base64 编码和解码的方法吗?在本教程中,我们使用 bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。
|
||||
|
||||
![][1]
|
||||
> 你想了解 Base64 编码和解码的方法吗?在本教程中,我们使用 Bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。
|
||||
|
||||
Base64 编码方法通过将二进制数据转换为文本,如此编码数据可以在任何通信媒体进行传输。这种编码方法主要用于电子邮件加密的过程。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202210/29/163350mde5lll86j6lspln.jpg)
|
||||
|
||||
总体而言,Base64 编码方法是一种二进制到文本的编码方案,以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势,尤其是对于那些能可靠支持文本内容的媒介。因此,Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。
|
||||
Base64 编码方法可以将二进制数据转换为文本,如此编码数据可以在任何通信媒介进行传输。这种编码方法主要用于电子邮件加密的过程。
|
||||
|
||||
根据 Base64 编码表,二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符,包含大写字母 A 到 Z,小写字母 a 到 Z,数字 0 到 9 ,以及符号 + 和 /,这些字符在传输和打印上十分便捷。
|
||||
总体而言,Base64 编码方法是一种二进制到文本的编码方案,以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势,尤其是对于那些能可靠地支持文本内容的媒介。因此,Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。
|
||||
|
||||
这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码后的 ASCII 字符恰好代表 6 位二进制值。
|
||||
根据 Base64 编码表,二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符,包含大写字母 `A` 到 `Z`,小写字母 `a` 到 `z`,数字 `0` 到 `9`,以及符号 `+` 和 `/`,这些字符在传输和打印上十分便捷。
|
||||
|
||||
这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码字符恰好代表 6 位二进制值。
|
||||
|
||||
![Base64 Index Table][2]
|
||||
|
||||
@ -33,21 +34,21 @@ Base64 编码方法通过将二进制数据转换为文本,如此编码数据
|
||||
base64 [OPTIONs] [INFILE] [OUTFILE]
|
||||
```
|
||||
|
||||
选项(Option):参照下面的表格,你可以提供任何的选项或组合多个选项。
|
||||
输入(INFILE):你可以从标准输入(如命令行)或文件中输入。
|
||||
输出(OUTFILE):你可以将输出重定向到标准输出,如终端或文件中。
|
||||
- 选项(`Option`):参照下面的表格,你可以提供任何的选项或组合多个选项。
|
||||
- 输入(`INFILE`):你可以从标准输入(如命令行)或文件中输入。
|
||||
- 输出(`OUTFILE`):你可以将输出重定向到标准输出,如终端或文件中。
|
||||
|
||||
| 选项 | 描述 |
|
||||
| :- | :- |
|
||||
| -e 或者 –encode | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 |
|
||||
| -d 或者 –decode | 此选项用于对标准输入的数据或从文件中读入的已 base64 编码数据进行解码。 |
|
||||
| -n 或者 –noerrcheck | 默认情况下,base64 在解码数据时,会自动检查是否有错误。你可以使用 –n 或 –noerrcheck 选项,在解码时忽略检查。 |
|
||||
| -i, –ignore-garbage | 此选项用于在解码时忽略非字母字符。 |
|
||||
| -u 或者 –help | 此选项用于获取有关使用此命令的信息。 |
|
||||
| `-e` 或者 `--encode` | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 |
|
||||
| `-d` 或者 `--decode` | 此选项用于对标准输入的数据或从文件中读入的已 Base64 编码数据进行解码。 |
|
||||
| `-n` 或者 `--noerrcheck` | 默认情况下,Base64 在解码数据时,会自动检查是否有错误。你可以使用该选项在解码时忽略检查。 |
|
||||
| `-i` 或 `--ignore-garbage` | 此选项用于在解码时忽略非字母字符。 |
|
||||
| `-u` 或者 `--help` | 此选项用于获取有关使用此命令的信息。 |
|
||||
|
||||
#### 示例 1:基本编码
|
||||
|
||||
在 Linux 中,默认已安装好 base64 软件包。因此,你可以轻松地从命令行使用 base64。要对一个字符串或文本进行编码,你可以通过管道将其传递到命令行,并获取待编码的文本。在下面的示例中,对字符串 debugpoint.com 进行了 base64 编码。
|
||||
在 Linux 中,默认已安装好 Base64 软件包。因此,你可以轻松地从命令行使用 Base64。要对一个字符串或文本进行编码,你可以通过管道将其传递到 `base64` 命令,并获取待编码的文本。在下面的示例中,对字符串 `debugpoint.com` 进行了 Base64 编码。
|
||||
|
||||
```
|
||||
echo "debugpoint.com" | base64
|
||||
@ -55,21 +56,21 @@ echo "debugpoint.com" | base64
|
||||
|
||||
![bash base64 encode and decode - example 1][3]
|
||||
|
||||
结果是经过 base64 编码后的字符串。
|
||||
结果是经过 Base64 编码后的字符串。
|
||||
|
||||
#### 解释
|
||||
|
||||
Base64 编码方法使用下面的几个步骤来转换输入的数据。首先,每个输入字符转换为 8 位二进制值,接着,二进制字符串拆分为一组组 6 位的二进制值,然后,每个 6 位的二进制值被转换为十进制值。
|
||||
|
||||
最后,每个十进制值都通过 base64 编码索引表转换为 base64 字符。
|
||||
最后,每个十进制值都通过 Base64 编码索引表转换为 Base64 字符。
|
||||
|
||||
在上面的示例中,第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`,转换为十进制是 `25`。`25` 在 base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。
|
||||
在上面的示例中,第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`,转换为十进制是 `25`。`25` 在 Base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。
|
||||
|
||||
![Base64 Encode and Decode – inner working][4]
|
||||
|
||||
#### 示例 2:基本解码
|
||||
|
||||
要解码字符串,需要将编码值传递给 base64,选项为 `--decode`,它将输出你之前输入的字符串。
|
||||
要解码字符串,需要将编码值传递给 `base64` 命令,选项为 `--decode`,它将输出你之前输入的字符串。
|
||||
|
||||
![bash base64 encode and decode - example 2 (decode the same example)][5]
|
||||
|
||||
@ -85,7 +86,7 @@ base64 example3.txt > example3-encoded.txt
|
||||
|
||||
#### 示例 4:对文本文件进行解码
|
||||
|
||||
要解码使用 base64 编码的文本文件,只需使用 `--decode` 或 `-d` 选项,并传递文本文件名。
|
||||
要解码使用 Base64 编码的文本文件,只需使用 `--decode` 或 `-d` 选项,并传递文本文件名。
|
||||
|
||||
```
|
||||
base64 -d example3-encoded.txt
|
||||
@ -93,9 +94,9 @@ base64 -d example3-encoded.txt
|
||||
|
||||
#### 示例 5:对用户输入的数据进行编码
|
||||
|
||||
使用 bash shell 编程,你可以通过终端接收用户的输入,并对其进行 base64 编码。你需要先编写一个简单的 shell 脚本,并在授予可执行权限后执行。
|
||||
使用 Bash shell 编程,你可以通过终端接收用户的输入,并对其进行 Base64 编码。你需要先编写一个简单的 shell 脚本,并在授予可执行权限后执行。
|
||||
|
||||
以下就是一个简单的示例,它从用户那里获得输入,然后进行 base64 编码,最终显示编码的字符串。
|
||||
以下就是一个简单的示例,它从用户那里获得输入,然后进行 Base64 编码,最终显示编码的字符串。
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
@ -109,7 +110,7 @@ echo "The Base64 Encoded text is: $output_text"
|
||||
|
||||
![Custom input - base64 encode and decode using script][7]
|
||||
|
||||
#### 示例 6:用 base64 进行简单的身份认证
|
||||
#### 示例 6:用 Base64 进行简单的身份认证
|
||||
|
||||
你可以运用上述的编码和解码方法,实现一个简单的身份验证系统。你可以让用户输入密码或密码,然后将密码存储在文件中。或者进行实时比较。
|
||||
|
||||
@ -132,7 +133,7 @@ fi
|
||||
|
||||
![A Simple Authentication using bash base64][8]
|
||||
|
||||
### 结论
|
||||
### 总结
|
||||
|
||||
我希望你能通过这些示例,学会 [Base64][9] 编码和解码的基础知识。此外,你也了解到 Base64 的内部编码方式。如果这对你很有帮助,或你还需要有关此主题的其他教程,请在下面的评论区中告诉我吧。
|
||||
|
||||
@ -143,7 +144,7 @@ via: https://www.debugpoint.com/bash-base64-encode-decode/
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[chai001125](https://github.com/chai001125)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -3,49 +3,52 @@
|
||||
[#]: author: "Rom Adams https://opensource.com/users/romdalf"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15193-1.html"
|
||||
|
||||
Kubernetes 能否帮助解决自动化挑战?
|
||||
======
|
||||
组织层面的自动化一直是一个难以实现的目标,但 Kubernetes 或许能够改变这一切。
|
||||
|
||||
当我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时,我开始了我的自动化之旅。二十年后,自动化还没有完成。当我与客户和合作伙伴会面时,他们分享了团队内部的自动化胜利,但他们也描述了在组织层面实现类似成功所面临的挑战。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202210/30/105625ocz9sd9z6g4dzb44.jpg)
|
||||
|
||||
大多数 IT 组织都能够端到端地配置虚拟机,从而将过去 4 周的交付周期缩短到仅 5 分钟。这种级别的自动化本身就是一个复杂的工作流程,需要网络(IP 地址管理、DNS、代理、网络区域等)、身份访问管理、[hypervisor][2]、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试。哇!
|
||||
> 组织层面的自动化一直是一个难以实现的目标,但 Kubernetes 或许能够改变这一切。
|
||||
|
||||
满足高速、可扩展和按需自动化的业务需求并不容易。例如,考虑使用经典的网上商店或在线政府服务来提交纳税申报表。工作负载有明确的峰值需要吸收。
|
||||
当我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时,我开始了我的自动化之旅。二十年后,自动化还没有完成。当我与客户和合作伙伴会面时,他们分享了团队内部的自动化成果,但他们也描述了在组织层面实现类似成功所面临的挑战。
|
||||
|
||||
处理此类负载的一种常见方法是拥有一个超大的服务器集群,以供 IT 专业人员的特定团队使用,监控客户或公民的季节性涌入。每个人都希望及时部署整个栈。他们希望基础架构在混合云场景的上下文中运行工作负载,使用“构建-消耗-垃圾”模型来优化成本,同时从无限弹性中受益。
|
||||
大多数 IT 组织都能够端到端地提供虚拟机,从而将过去 4 周的交付周期缩短到仅 5 分钟。这种级别的自动化本身就是一个复杂的工作流程,需要网络(IP 地址管理、DNS、代理、网络区域等)、身份访问管理、[虚拟机管理程序][2]、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试,等等。哇,这么多!
|
||||
|
||||
满足高速、可扩展和按需自动化的业务需求并不容易。例如,来看看经典的网上商店或提交纳税申报表的在线政府服务,其工作负载有明确的峰值需要面对。
|
||||
|
||||
处理此类负载的一种常见方法是拥有一个超大的服务器集群,以供 IT 专业人员的特定团队使用,监控客户或公民的季节性涌入。每个人都希望及时部署整个栈。他们希望基础架构在混合云场景的上下文中运行工作负载,使用“<ruby>构建-消耗-回收<rt>build-consume-trash</rt></ruby>”模型来优化成本,同时从无限弹性中受益。
|
||||
|
||||
换句话说,每个人都想要乌托邦式的“云体验”。
|
||||
|
||||
### 云真的能交付吗?
|
||||
|
||||
一切都没有丢失,这主要归功于 [Kubernetes][3] 的设计方式。 Kubernetes 的指数级采用推动了创新,取代了管理平台和应用的标准传统做法。 Kubernetes 需要使用 Everything-as-Code (EaC) 来定义所有资源的期望状态,从简单的计算节点到 TLS 证书。 Kubernetes 强制使用三种主要的设计结构:
|
||||
尚有一线机会,这主要归功于 [Kubernetes][3] 的设计方式。Kubernetes 的指数级普及推动了创新,取代了管理平台和应用的标准传统做法。 Kubernetes 需要使用 “<ruby>万物皆代码<rt>Everything-as-Code</rt></ruby>”(EaC)来定义从简单的计算节点到 TLS 证书的所有资源的期望状态。Kubernetes 强制使用三种主要的设计结构:
|
||||
|
||||
* 一个标准接口,以减少内部和外部组件之间的整合问题
|
||||
* API 优先及仅 API 的方法来标准化其所有组件的 CRUD(创建、读取、更新、删除)操作
|
||||
* 使用 [YAML][4] 作为通用语言,以简单易读的方式定义这些组件的所有所需状态
|
||||
|
||||
这三个关键组成部分基本上是选择自动化平台的相同要求,至少如果你想让跨职能团队轻松采用。这也模糊了团队之间的职责分工,有助于提高跨孤岛的协作,这是一件好事!
|
||||
这三个关键组成部分基本上是选择自动化平台的相同要求,至少如果你想让跨职能团队轻松采用是这样的。这也模糊了团队之间的职责分工,有助于提高跨越孤岛的协作,这是一件好事!
|
||||
|
||||
事实上,采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。 Kubernetes 有机地推动团队采用多种 [DevOps 基础和实践][5],如: EaC、[使用 Git 进行版本控制][6]、同行评审、[文档即代码][7]并鼓励跨职能协作。这些实践有助于提高团队的自动化技能,并帮助团队在处理应用生命周期和基础架构的 GitOps 和 CI/CD 管道方面获得良好的开端。
|
||||
事实上,采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。Kubernetes 有机地推动团队采用多种 [DevOps 基础和实践][5],如:EaC、[使用 Git 进行版本控制][6]、同行评审、<ruby>[文档即代码][7]<rt>Documentation as Code</rt></ruby>,并鼓励跨职能协作。这些实践有助于提高团队的自动化技能,并帮助团队在处理应用生命周期和基础架构的 GitOps 和 CI/CD 管道方面取得良好的开端。
|
||||
|
||||
### 让自动化成为现实
|
||||
|
||||
你没看错!网络商店或政府报告等复杂系统的整个栈可以用清晰、可理解、通用的术语定义,可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动伸缩器以触发所需栈的即时部署,以解决季节性高峰期间客户或市民的涌入问题。当指标恢复正常,且云计算资源不再有存在的理由时,你将它们回收并恢复常规运营,一组核心资产在本地接管业务,直到下一次激增。
|
||||
你没看错!网络商店或政府报告等复杂系统的整个栈可以用清晰、可理解、通用的术语定义,可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动伸缩器以触发所需栈的即时部署,以解决季节性高峰期间客户或市民的涌入问题。当指标恢复正常,且云计算资源不再有存在的理由时,你将它们回收并恢复常规运营,而由一组核心资产在本地接管业务,直到下一次激增。
|
||||
|
||||
### 鸡和蛋的悖论
|
||||
|
||||
考虑到 Kubernetes 和云原生模式,自动化是必须的。但它提出了一个重要的问题:一个组织可以在解决自动化战略之前采用 Kubernetes 吗?
|
||||
|
||||
似乎从 Kubernetes 开始可以激发更好的自动化,但这并不是一个定局。工具不是对技能、实践和文化问题的解决方案。但是,设计良好的平台可以成为 IT 组织内学习、变革和跨职能协作的催化剂。
|
||||
似乎从 Kubernetes 开始可以激发更好的自动化,但这并不是一个一成不变的结论。工具不是对技能、实践和文化问题的解决方案。但是,设计良好的平台可以成为 IT 组织内学习、变革和跨职能协作的催化剂。
|
||||
|
||||
### 开始使用 Kubernetes
|
||||
|
||||
即使你觉得自己错过了自动化列车,也不要害怕从简单、不复杂的栈上开始使用 Kubernetes。当你[掌握了初始步骤][8],就可以拥抱这个出色的编排器的简单性,并根据更复杂的需求进行迭代。
|
||||
即使你觉得自己错过了自动化列车,也不要害怕从简单、不复杂的栈上开始使用 Kubernetes。当你 [掌握了初始步骤][8],就可以拥抱这个出色的编排系统的简单性,并根据更复杂的需求进行迭代。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -54,7 +57,7 @@ via: https://opensource.com/article/22/10/kubernetes-solve-automation-challenges
|
||||
作者:[Rom Adams][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -3,41 +3,44 @@
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15194-1.html"
|
||||
|
||||
# 在 Ubuntu 22.10 上安装 Gedit 并将其设为默认文本编辑器
|
||||
在 Ubuntu 22.10 上安装 Gedit 并将其设为默认文本编辑器
|
||||
======
|
||||
|
||||
[GNOME 有一个全新的文本编辑器][1]来取代旧的 Gedit 编辑器。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202210/30/124029bf0qjklphcpzpclh.jpg)
|
||||
|
||||
虽然 GNOME 42 已经可以使用它,但 Ubuntu 22.04 依赖于 Gedit。
|
||||
[GNOME 有了一个全新的文本编辑器][1],以取代旧的 Gedit 编辑器。
|
||||
|
||||
这在 Ubuntu 22.10 中发生了变化。 GNOME 文本编辑器是默认程序,甚至没有安装 Gedit。
|
||||
虽然 GNOME 42 已经可以使用了它,但 Ubuntu 22.04 还依赖于 Gedit。
|
||||
|
||||
这在 Ubuntu 22.10 中发生了变化。 GNOME <ruby>文本编辑器<rt>Text Editor</rt></ruby> 现在是默认程序,甚至没有安装 Gedit。
|
||||
|
||||
![搜索文本编辑器只出现 GNOME 文本编辑器][2]
|
||||
|
||||
虽然新编辑器足够好,但并不是每个人都喜欢它。如果你将 Gedit 与其他插件一起频繁使用,则尤其如此。
|
||||
|
||||
如果你属于这些人,让我向你展示如何在 Ubuntu 上安装 Gedit。我还将分享如何将其设为默认文本编辑器。
|
||||
如果你属于这类人,让我向你展示如何在 Ubuntu 上安装 Gedit。我还将分享如何将其设为默认文本编辑器。
|
||||
|
||||
### 在 Ubuntu 上安装 Gedit
|
||||
|
||||
这实际上是不费吹灰之力的。虽然默认未安装 Gedit,但它仍然可以在 Ubuntu 仓库中找到。
|
||||
|
||||
所以,你所要做的就是使用 apt 命令来安装它:
|
||||
所以,你所要做的就是使用 `apt` 命令来安装它:
|
||||
|
||||
```
|
||||
sudo apt install gedit
|
||||
```
|
||||
|
||||
Gedit 也可以在软件中心中找到,但它是 snap 包。如果你愿意,你可以安装它。
|
||||
Gedit 也可以在软件中心中找到,但它是 Snap 包。如果你愿意,你可以安装它。
|
||||
|
||||
![Gedit 也可以在 Ubuntu 的 Snap 商店中找到][3]
|
||||
|
||||
#### 安装 Gedit 插件(可选)
|
||||
|
||||
默认情况下,Gedit 为你提供访问一些插件的选项。你可以从 menu->preference->plugins 启用或禁用插件。
|
||||
默认情况下,Gedit 为你提供访问一些插件的选项。你可以从 “汉堡菜单-><ruby>偏好<rt>Preference</rt></ruby>-><ruby>插件<rt>Plugins</rt></ruby>” 启用或禁用插件。
|
||||
|
||||
![在 Gedit 中访问插件][4]
|
||||
|
||||
@ -55,15 +58,15 @@ sudo apt install gedit-plugins
|
||||
|
||||
![其他 Gedit 插件][6]
|
||||
|
||||
**提示**:如果你发现 Gedit 因缺少底角而显得有些格格不入,你可以安装一个名为 [Round Bottom Corner][7] 的 GNOME 扩展。这将为包括 Gedit 在内的所有应用强制圆底角。
|
||||
**提示**:如果你发现 Gedit 因缺少底角而显得有些格格不入,你可以安装一个名为 [Round Bottom Corner][7] 的 GNOME 扩展。这将为包括 Gedit 在内的所有应用强制添加圆底角。
|
||||
|
||||
### 使 Gedit 成为默认文本编辑器
|
||||
|
||||
好了!你已经安装了 Gedit,但文本文件仍然在双击操作后使用 GNOME 文本编辑器打开。要使用 Gedit 打开文件,你需要右键单击,然后选择“打开方式”选项。
|
||||
好了!你已经安装了 Gedit,但文本文件仍然在双击操作后使用 GNOME 文本编辑器打开。要使用 Gedit 打开文件,你需要右键单击,然后选择“<ruby>打开方式<rt>open with</rt></ruby>”选项。
|
||||
|
||||
如果你希望一直使用 Gedit 打开文本文件,你可以将其设置为默认程序。
|
||||
|
||||
右键单击文本文件并选择“打开方式”选项。在此处选择 Gedit 并从底部启用“始终用于此文件类型”选项。
|
||||
右键单击文本文件并选择“<ruby>打开方式<rt>open with</rt></ruby>”选项。在此处选择 Gedit 并从底部启用“<ruby>始终用于此文件类型<rt>Always use for this file type</rt></ruby>”选项。
|
||||
|
||||
![设置 Gedit 为默认文本编辑器][8]
|
||||
|
||||
@ -94,7 +97,7 @@ via: https://itsfoss.com/install-gedit-ubuntu/
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者 ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,80 @@
|
||||
[#]: subject: "Ubuntu but rolling but also stable That's what Rhino Linux aims to be"
|
||||
[#]: via: "https://news.itsfoss.com/rhino-linux/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "littlebirdnest"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15192-1.html"
|
||||
|
||||
Rhino Linux:滚动发布但也很稳定的 Ubuntu
|
||||
======
|
||||
|
||||
> 滚动发布的 Ubuntu 发行版?等等,什么? Rhino Linux 听起来不错……
|
||||
|
||||
![Ubuntu but rolling but also stable! That's what Rhino Linux aims to be][1]
|
||||
|
||||
Rhino Linux 将成为 [Rolling Rhino Remix][2] 的继任者。这个由 http.llamaz 构建的 Linux 发行版,提供了滚动发布的**非官方的** Ubuntu 变体版本。
|
||||
|
||||
需要澄清的是,该项目从未旨在取代其他稳定的发行版,而纯粹是一个充满乐趣的激情项目。
|
||||
|
||||
而随着人们开始将其用作日常使用并对其期望更多,开发人员决定将其变成一个严肃的项目。
|
||||
|
||||
Rhino Linux 作为它的继任者。那么,你对它的期待是什么?
|
||||
|
||||
### 有请继任者 Rhino Linux
|
||||
|
||||
其主要目标是提供稳定的 Ubuntu 体验,同时仍提供滚动发布模式。
|
||||
|
||||
目标仍保持不变,但 Rhino Linux 的基础将得到彻底改变。他们有可能使它成为一个令人印象深刻的滚动发布的 Ubuntu 发行版。
|
||||
|
||||
**听起来很令人兴奋!🤯**
|
||||
|
||||
在其核心,Rhino Linux 将使用稍微修改过的 [Xfce][3] 版本作为其桌面环境;之所以选择它是因为它众所周知的稳定性和速度。
|
||||
|
||||
Rhino Linux 的创始人提到了以下几点:
|
||||
|
||||
> 滚动版 Ubuntu 仍然是我们的核心理念。Rhino Linux 并不是从 Rolling Rhino Remix 中分离出来的,而是将它重新设想为更稳定、更成熟的发行版,它原本就应该以这种方式出厂。
|
||||
|
||||
![xfce 4.14][4]
|
||||
|
||||
除此之外,[Pacstall][5] 将用作 Rhino Linux 上的默认包管理器及其存储库之一。
|
||||
|
||||
> 💡 Pacstall 是一个受 [AUR][6] 启发的 Ubuntu 包管理器。
|
||||
|
||||
Pacstall 的开发由其创始人 [Plasma][7] 领导。他还作为新开发人员之一(副项目负责人)加入,而 [Sourajyoti Basak][8] 作为另一位核心成员加入。
|
||||
|
||||
### 前进:可用性和发布
|
||||
|
||||
在撰写本文时,Rhino Linux 尚未确定任何具体的发布日期,但你可以预计它会在 **2023** 年的某个时间发布。
|
||||
|
||||
Rolling Rhino Remix 会发生什么?
|
||||
|
||||
开发者澄清说,它将在 Rhino Linux 发布后继续维护三个月。但是,在 2022 年 1 月 11 日后继发布之后,它没有新的发布镜像。
|
||||
|
||||
你可以通过访问其 [官方网站][9] 了解更多关于 Rhino Linux 的信息。
|
||||
|
||||
_💬 你觉得 Rhino Linux 怎么样?它可以成为值得尝试的官方 Ubuntu 风格的竞争者吗?_
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/rhino-linux/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[littlebirdnest](https://github.com/littlebirdnest)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/rhino-linux.png
|
||||
[2]: https://github.com/rollingrhinoremix
|
||||
[3]: https://www.xfce.org/
|
||||
[4]: https://news.itsfoss.com/content/images/2022/10/XFCE_4.14.png
|
||||
[5]: https://github.com/pacstall/pacstall
|
||||
[6]: https://itsfoss.com/aur-arch-linux/
|
||||
[7]: https://github.com/Henryws
|
||||
[8]: https://github.com/wizard-28
|
||||
[9]: https://rhinolinux.org/
|
@ -0,0 +1,285 @@
|
||||
[#]: subject: "Give Your Linux Desktop a Halloween Makeover"
|
||||
[#]: via: "https://itsfoss.com/linux-halloween-makeover/"
|
||||
[#]: author: "Sreenath https://itsfoss.com/author/sreenath/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "chai001125"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15190-1.html"
|
||||
|
||||
打造万圣节 Linux 桌面
|
||||
======
|
||||
|
||||
马上就到万圣节了,太棒啦!
|
||||
|
||||
我相信你已经有了一些庆祝万圣节的想法。给你的 Linux 桌面做一个像幽灵般的黑暗改造,就类似于下面的屏幕截图,你觉得怎么样?
|
||||
|
||||
![ubuntu halloween theming final looks][1]
|
||||
|
||||
可定制是 Linux 的一大优势,对 Linux 可进行的定制是多种多样且没有尽头的。之前,我们向你展示过 [如何让你的 Linux 看起来像 macOS][2] 的方法。今天,我将继续分享一些定制“万圣节”Linux 桌面的技巧。
|
||||
|
||||
可以通过主题、图标、扩展、字体、Conky 等一系列配置组合起来,来实现 Linux 桌面的定制。_虽然,你可以在任何的 Linux 发行版和桌面环境中配置这些东西,但是仅在一个教程中展示所有 Linux 发行版和桌面环境的桌面定制方法,是不太可行的。_
|
||||
|
||||
因此,在本文中,我将介绍 Ubuntu 与 GNOME 桌面环境的桌面定制方法。
|
||||
|
||||
### 安装所需工具
|
||||
|
||||
你需要一些软件包和工具。在开始定制桌面前,请确保你安装了全部(或大多数)的软件包和工具。
|
||||
|
||||
_你不必做**所有**这些桌面改变。但你做的越多,你的桌面也会美化得更好看。_
|
||||
|
||||
#### 安装 GNOME 优化工具和 GMOME 扩展管理器
|
||||
|
||||
使用以下命令,来安装 GNOME <ruby>优化<rt>Tweaks</rt></ruby> 工具和 GMOME <ruby>扩展管理器<rt>Extensions manager</rt></ruby>:
|
||||
|
||||
```
|
||||
sudo apt install gnome-tweaks gnome-extension-manager
|
||||
```
|
||||
|
||||
在基于 KDE 的 Linux 系统中,没有可以更改 Linux 桌面外观的优化工具。但是,你可以使用 Kvantum-Manager 这一应用程序来更改外观,请参考我在 [KDE 主题指南][3] 中的讨论。
|
||||
|
||||
#### 安装 Conky(可选)
|
||||
|
||||
你可以选择是否要安装 Conky ,因为现在 conky-manager 项目已经不再维护了,因此继续使用 Conky 可能会有点棘手。但无论如何,我们用它来增加万圣节外观的感觉。
|
||||
|
||||
```
|
||||
sudo apt install conky-all
|
||||
```
|
||||
|
||||
#### 安装 Neofetch 或者 Shell-color 脚本
|
||||
|
||||
这个步骤也可以由你自主选择。你可以选择使用 [neofetch][4],因为 `neofetch` 工具已经在 Ubuntu 仓库中了,你可以直接通过 `apt install` 安装,并且 `neofetch` 使用起来也很简单。
|
||||
|
||||
```
|
||||
sudo apt install neofetch
|
||||
```
|
||||
|
||||
[Shell-color 脚本][5] 是另一个不错的选择。在 Arch 用户仓库(AUR)中有该软件包,Arch Linux 用户可以从 AUR 安装 Shell-color 脚本。而在 Ubuntu 中,你则需要手动安装它。
|
||||
|
||||
```
|
||||
git clone https://gitlab.com/dwt1/shell-color-scripts.git
|
||||
cd shell-color-scripts
|
||||
sudo make install
|
||||
```
|
||||
|
||||
#### 安装主题、图标、字体和壁纸工具
|
||||
|
||||
我正在使用的是 [Sweet][6] 主题工具、[Beautiline][7] 图标软件包、[simple1e][8] 光标工具和 [Grey-Minimalistic][9] Conky 主题,下载好这些工具后,再解压包。你还要下载 [Creepster][10] 字体。
|
||||
|
||||
最后,从互联网上下载一张 [万圣节幽灵氛围的壁纸][11]。
|
||||
|
||||
> 请注意!你即将要进行大量的定制和更改。要恢复到原来普通的外观,你可以通过撤销你所做的所有更改。一个更简单的方法是:创建一个管理员权限的新用户,并使用该新用户进行所有这些更改。这样,你的原始用户帐户和外观就不会受到影响。在万圣节结束后,你可以删除这个新增的用户。
|
||||
|
||||
现在,你有了所有定制桌面的工具和资源,是时候使用它们了!
|
||||
|
||||
### 安装并使用扩展
|
||||
|
||||
打开 GMOME <ruby>扩展管理器<rt>Extensions manager</rt></ruby>。在 Ubuntu 22.04 中,你可以在<ruby>浏览<rt>Browse</rt></ruby>菜单下安装扩展。
|
||||
|
||||
![install gnome shell extensions user themes blur my shell and dash to dock][12]
|
||||
|
||||
在其他版本的 Ubuntu 和其他带有 GNOME 的发行版上,你可以通过浏览器 [安装 shell 扩展][13],来安装扩展。为了实现打造万圣节桌面的目的,请安装以下扩展程序:
|
||||
|
||||
- [User Themes][14]
|
||||
- [Dash to Dock][15]
|
||||
- [Blur my Shell][16]
|
||||
|
||||
此外,请确保所有的扩展都已启用。
|
||||
|
||||
### 配置主题、图标和字体
|
||||
|
||||
你需要将解压的主题文件夹复制,并粘贴到 `~/.themes` 目录下,将解压的图标和光标文件夹复制,并粘贴到 `~/.icons` 目录下。
|
||||
|
||||
接下来,打开 GNOME <ruby>优化<rt>Tweaks</rt></ruby> 工具,并应用主题、图标和字体等设置,如下的截图所示。
|
||||
|
||||
![set themes with gnome tweaks][17]
|
||||
|
||||
要 [在 Ubuntu 中使用自定义字体][18],请右键单击你下载和解压的字体文件,然后选择使用<ruby>字体管理器<rt>Font manager</rt></ruby>打开。我打算使用的是 [Creepster][10] 字体。
|
||||
|
||||
![right click on font file and select open with fonts][19]
|
||||
|
||||
然后,点击右上角的<ruby>安装<rt>Install</rt></ruby>按钮。
|
||||
|
||||
![install font using font manager application][20]
|
||||
|
||||
请注意:在某些系统中,点击安装按钮不会显示“<ruby>已安装<rt>installed</rt></ruby>”的提示。在这种情况下,你只需关闭界面就行了,因为一旦你点击了安装按钮,该字体就已经安装上了。
|
||||
|
||||
再重新打开 GNOME <ruby>优化<rt>Tweaks</rt></ruby> 工具,然后前往<ruby>字体<rt>Fonts</rt></ruby>边栏,在这里,你可以更改各个文件类型的字体,如下图所示。
|
||||
|
||||
![change system fonts using gnome tweaks][21]
|
||||
|
||||
请注意,对于终端,需要等宽字体。在这里,我使用了普通字体,这里可能会让你稍稍有点迷失。
|
||||
|
||||
### 应用 Dash to Dock 扩展设置
|
||||
|
||||
首先,你要使用 GNOME 扩展应用程序,来**关闭 Ubuntu Dock 扩展**。
|
||||
|
||||
![Disable Ubuntu Dock][22]
|
||||
|
||||
如果 Dash to Dock 扩展还尚未运行的话,请先运行它。
|
||||
|
||||
然后,右键单击在底部显示的 “Dash to Dock” 按钮,然后选择 “Dash to Dock Settings”。
|
||||
|
||||
![select dash to dock settings][23]
|
||||
|
||||
在设置中,你需要调整一些小东西。
|
||||
|
||||
首先,使用滑块,来缩小图标的大小。
|
||||
|
||||
![setting dash to dock icon size][24]
|
||||
|
||||
之后,你需要减少程序坞的不透明度,我更喜欢完全透明的程序坞。
|
||||
|
||||
所以,我将不透明度设置为 <ruby>固定<rt>fixed</rt></ruby>,并使用滑块将其降至零,如下图所示。
|
||||
|
||||
![opacity setting for dash to dock][25]
|
||||
|
||||
### GNOME 终端的设置
|
||||
|
||||
你想得到的 Linux 桌面的主要变化是自定义**模糊且有一定透明度**的 `neofetch` 外观(或 shell-color 脚本外观)。
|
||||
|
||||
我们之前在 GNOME <ruby>优化<rt>Tweaks</rt></ruby> 工具中应用了等宽字体,因此 GNOME 终端中的字体也会被更改。
|
||||
|
||||
首先,从 <ruby>偏好设置<rt>preferences</rt></ruby> 中创建一个新的配置文件。
|
||||
|
||||
![select preferences from hamburger menu][26]
|
||||
|
||||
单击 `+` ,来创建一个新配置文件。输入文件的名称,并点击 <ruby>创建<rt>create</rt></ruby>,如下所示:
|
||||
|
||||
![create new profile in gnome terminal][27]
|
||||
|
||||
在这个新配置文件中,更改透明度设置,将透明度的滑块放在中间,如下图所示:
|
||||
|
||||
![set transperancy to gnome terminal][28]
|
||||
|
||||
完成后,要将此配置文件设置为默认的配置文件,单击与新配置文件关联的三角形按钮,然后选择 “<ruby>设置为默认<rt>Set as Default</rt></ruby>”。
|
||||
|
||||
![set new profile as default in gnome terminal][29]
|
||||
|
||||
#### 设置模糊效果
|
||||
|
||||
上述的步骤只会将终端变成一个透明的 shell。但是,如果你还需要有利于提高可见性的模糊效果,你需要进入到 “Blur my Shell” 扩展进行设置。
|
||||
|
||||
![blur my shell extension settings][30]
|
||||
|
||||
首先,进入到 <ruby>应用程序<rt>Application</rt></ruby> 菜单。现在,确保终端已打开,并置于屏幕明显的位置。单击 <ruby>添加<rt>Add</rt></ruby> 窗口,然后选择 GNOME 终端窗口,以设置模糊效果。请注意:此功能还处于测试阶段,因此可能会出现一些小故障。
|
||||
|
||||
![applying blur effect to selected windows][31]
|
||||
|
||||
也可以对其他应用程序(例如 Nautilus 文件管理器)重复此过程,来设置模糊效果。
|
||||
|
||||
#### 定制 Neofetch
|
||||
|
||||
Neofetch 的最佳功能之一是其可定制性。你可以使用多种方法来调整 Neofetch 的外观。为了更有万圣节氛围,我选择了一个南瓜图像,来代替发行版的徽标。
|
||||
|
||||
Neofetch 提供以各种格式添加自定义图像的功能。为此,也有各种供支持的后端。在这里,我使用 jp2a 后端,它将使用 [转换成 ASCII 的图片][32]。
|
||||
|
||||
```
|
||||
neofetch --jp2a /path/to/your/image/file.png
|
||||
```
|
||||
|
||||
![neofetch with custom backend][33]
|
||||
|
||||
上述命令将创建一个带有自定义图片的 Neofetch 实例。你可以将此命令写入你的 `.bashrc` 文件,以便永久放置该图片。
|
||||
|
||||
_不幸的是,这在我的 Wayland 实例上并不起作用。_
|
||||
|
||||
#### 自定义 Shell-Color 脚本
|
||||
|
||||
如果你安装的是 Shell Color 脚本工具,则会有多种 shell 脚本。要列出可用的脚本,请使用命令:
|
||||
|
||||
```
|
||||
colorscript -l
|
||||
```
|
||||
|
||||
![ghosts shell color script][34]
|
||||
|
||||
你可以通过将 `colorscript random` 写入你的 `.bashrc` 文件,以每次都获得一个随机的颜色脚本,或者通过将`colorscript -e <name>`写入你的 `.bashrc` 文件,来得到一个特定的颜色脚本。
|
||||
|
||||
### 设置 Conky
|
||||
|
||||
我使用的是 Deviantart 的 [Grey-Minimalistic][9] conky 主题。Conky 主题的每种类型都有不同的安装方法。因此,如果你想要使用另一个 Conky 文件的话,请遵循它的 `README` 文件中描述的设置方法,进行设置。
|
||||
|
||||
解压 Conky 主题文件,里面有几个文件夹。首先,你需要安装关联的图标和字体,也就是说,使用 <ruby>字体管理器<rt>font-manager</rt></ruby> 安装给定的字体。接着,将图标文件夹拷贝,并粘贴到 `~/.icons` 文件夹。
|
||||
|
||||
![copy and paste conky files to home directory][35]
|
||||
|
||||
然后,进入 Conky 文件夹。确保你已 [启用查看隐藏文件][36],将 `.conkyrc` 文件和 `.conky-vision-icons` 文件复制到你的主目录,如上图所示。
|
||||
|
||||
现在,启动 Conky,看起来就变成下图这样了。
|
||||
|
||||
![conky theme applied][37]
|
||||
|
||||
将 Conky 添加到 [自启动应用程序列表][38] 中,以便在每次开机时都能自启动。
|
||||
|
||||
![add conky to the list of startup applications][39]
|
||||
|
||||
### 更改壁纸
|
||||
|
||||
快要完成啦。你现在唯一需要做的就是 [更改背景壁纸][40]。我相信你之前已经下载好了有万圣节幽灵气氛的壁纸,右键 “<ruby>设置为壁纸<rt>Set as Wallpaper</rt></ruby>” 就好啦。
|
||||
|
||||
![set image as wallpaper from nautilus][41]
|
||||
|
||||
### 看看最终成果吧!
|
||||
|
||||
如果你遵循上面的大多数步骤的话,你就会得到一个与以下截图相似的桌面。
|
||||
|
||||
![ubuntu halloween theme final look][42]
|
||||
|
||||
这个桌面对于万圣节来说够吓人了吗?你觉得怎么样?在评论区中告诉我吧。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/linux-halloween-makeover/
|
||||
|
||||
作者:[Sreenath][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[chai001125](https://github.com/chai001125)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/sreenath/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theming-final-looks.jpg
|
||||
[2]: https://itsfoss.com/make-ubuntu-look-like-macos/
|
||||
[3]: https://itsfoss.com/properly-theme-kde-plasma/
|
||||
[4]: https://itsfoss.com/using-neofetch/
|
||||
[5]: https://gitlab.com/dwt1/shell-color-scripts
|
||||
[6]: https://www.gnome-look.org/p/1253385
|
||||
[7]: https://www.gnome-look.org/p/1425426
|
||||
[8]: https://www.gnome-look.org/p/1405210
|
||||
[9]: https://www.deviantart.com/bryantlloyd/art/Grey-Minimalistic-634726564
|
||||
[10]: https://fonts.google.com/specimen/Creepster?query=creepster
|
||||
[11]: https://www.wallpaperflare.com/search?wallpaper=spooky
|
||||
[12]: https://itsfoss.com/wp-content/uploads/2022/10/install-gnome-shell-extensions-user-themes-blur-my-shell-and-dash-to-dock.png
|
||||
[13]: https://itsfoss.com/gnome-shell-extensions/
|
||||
[14]: https://extensions.gnome.org/extension/19/user-themes/
|
||||
[15]: https://extensions.gnome.org/extension/307/dash-to-dock/
|
||||
[16]: https://extensions.gnome.org/extension/3193/blur-my-shell/
|
||||
[17]: https://itsfoss.com/wp-content/uploads/2022/10/set-themes-with-gnome-tweaks.png
|
||||
[18]: https://itsfoss.com/install-fonts-ubuntu/
|
||||
[19]: https://itsfoss.com/wp-content/uploads/2022/10/right-click-on-font-file-and-select-open-with-fonts.png
|
||||
[20]: https://itsfoss.com/wp-content/uploads/2022/10/install-font-using-font-manager-application.png
|
||||
[21]: https://itsfoss.com/wp-content/uploads/2022/10/change-system-fonts-using-gnome-tweaks.png
|
||||
[22]: https://itsfoss.com/wp-content/uploads/2020/06/disable-ubuntu-dock.png
|
||||
[23]: https://itsfoss.com/wp-content/uploads/2022/10/select-dash-to-dock-settings.png
|
||||
[24]: https://itsfoss.com/wp-content/uploads/2022/10/setting-dash-to-dock-icon-size.png
|
||||
[25]: https://itsfoss.com/wp-content/uploads/2022/10/opacity-setting-for-dash-to-dock.png
|
||||
[26]: https://itsfoss.com/wp-content/uploads/2022/10/select-preferences-from-hamburger-menu.png
|
||||
[27]: https://itsfoss.com/wp-content/uploads/2022/10/create-new-profile-in-gnome-terminal.png
|
||||
[28]: https://itsfoss.com/wp-content/uploads/2022/10/set-transperancy-to-gnome-terminal.png
|
||||
[29]: https://itsfoss.com/wp-content/uploads/2022/10/set-new-profile-as-default-in-gnome-terminal.png
|
||||
[30]: https://itsfoss.com/wp-content/uploads/2022/10/blur-my-shell-extension-settings.png
|
||||
[31]: https://itsfoss.com/wp-content/uploads/2022/10/applying-blur-effect-to-selected-windows.png
|
||||
[32]: https://itsfoss.com/ascii-image-converter/
|
||||
[33]: https://itsfoss.com/wp-content/uploads/2022/10/neofetch-with-custom-backend.png
|
||||
[34]: https://itsfoss.com/wp-content/uploads/2022/10/ghosts-shell-color-script.png
|
||||
[35]: https://itsfoss.com/wp-content/uploads/2022/10/copy-and-paste-conky-files-to-home-directory.png
|
||||
[36]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/
|
||||
[37]: https://itsfoss.com/wp-content/uploads/2022/10/conky-theme-applied.png
|
||||
[38]: https://itsfoss.com/manage-startup-applications-ubuntu/
|
||||
[39]: https://itsfoss.com/wp-content/uploads/2022/10/add-conky-to-the-list-of-startup-applications.png
|
||||
[40]: https://itsfoss.com/change-wallpaper-ubuntu/
|
||||
[41]: https://itsfoss.com/wp-content/uploads/2022/10/set-image-as-wallpaper-from-nautilus.png
|
||||
[42]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theme-final-look.jpg
|
@ -0,0 +1,134 @@
|
||||
[#]: subject: "Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements"
|
||||
[#]: via: "https://news.itsfoss.com/xubuntu-22-10-release/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "littlebirdnest"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15188-1.html"
|
||||
|
||||
Xubuntu 22.10 的新变化
|
||||
======
|
||||
|
||||
> Xubuntu 22.10 提供了精致的 Xfce 体验。请读此文了解详情。
|
||||
|
||||
![Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements][1]
|
||||
|
||||
Xubuntu 是基于 Xfce 的 Ubuntu 官方版本。
|
||||
|
||||
它也是最好的轻量级 Linux 发行版之一。
|
||||
|
||||
随着最新的 Xubuntu 22.10 “Kinetic Kudu” 版本,你可以看到改进的桌面环境、添加的功能,以及全面的细化。
|
||||
|
||||
### Xubuntu 22.10 的新变化
|
||||
|
||||
![Xubuntu 22.10 home][2]
|
||||
|
||||
Xubuntu 22.10 带来了一些令人兴奋的升级。一些亮点包括:
|
||||
|
||||
- Xfce 4.16(或 Xfce 4.17 开发版)
|
||||
- Catfish 的外观进行了更新。
|
||||
- 更新了新图标,弃用了 elementary-xfce-darker 主题。
|
||||
- Mousepad 搜索历史。
|
||||
- Thundar 文件管理器的改进。
|
||||
- Xfce 任务管理器。
|
||||
|
||||
> 💡 Xubuntu 22.10 将支持九个月,直到 **2023 年 7 月**。如果你想要稳定性而不是功能,你应该首选使用 [LTS 版本][3]。
|
||||
|
||||
#### Xfce 4.17 开发版还是 Xfce 4.16?
|
||||
|
||||
Xubuntu 22.10 的发行说明说它专门提供了 Xfce 4.17 开发版本。
|
||||
|
||||
但是,当我安装 Xubuntu 22.10 的 beta 版本(并将其更新到最新版本)时,只具有 Xfce 4.16。
|
||||
|
||||
![][4]
|
||||
|
||||
不确定他们是否退出了 Xfce 4.17 开发版本,或者 Xfce 4.16 现在是否存在。
|
||||
|
||||
#### Catfish 外观
|
||||
|
||||
![xubuntu catfish][5]
|
||||
|
||||
Catfish 是 Xubuntu 上的一个文件搜索工具。通过新的升级,它具有焕然一新的外观,并做了底层的改进。
|
||||
|
||||
与你搜索的文件交互时,你还会获得一个“打开方式”上下文菜单。
|
||||
|
||||
![][6]
|
||||
|
||||
Catfish 还添加了一些细微而有用的功能。
|
||||
|
||||
#### GNOME 43 软件应用
|
||||
|
||||
在值得注意的应用程序更新中,GNOME 的最新软件中心是一个不错的选择。这是 Xubuntu 22.10 的外观:
|
||||
|
||||
![][7]
|
||||
|
||||
当然,它可能无法与 Xfce 上的其他应用程序保持一致,但我认为你应该不会介意。
|
||||
|
||||
#### 图标更新
|
||||
|
||||
随着 elementary-xfce 0.17 图标更新,有许多新图标和更简洁的选项,可提供一致的 Xubuntu 桌面体验。
|
||||
|
||||
![][8]
|
||||
|
||||
此外,elementary-xfce-darkest 主题图标包已被弃用。
|
||||
|
||||
![][9]
|
||||
|
||||
#### 任务管理器右键选项
|
||||
|
||||
![][10]
|
||||
|
||||
你现在可以将完整的进程路径复制到剪贴板。这对于需要从命令行进行故障排除或停止操作很有用。
|
||||
|
||||
### 其他增强功能
|
||||
|
||||
![][11]
|
||||
|
||||
还有其他几个值得注意的变化,包括:
|
||||
|
||||
- Linux 内核 5.19。
|
||||
- Firefox 浏览器 105。
|
||||
- `Alt-Tab` 视图通过更突出的图标进行了改进。
|
||||
- 马赛克拼图添加到 SGT 拼图系列。
|
||||
- Mousepad 文本编辑器现在包括搜索历史记录,以及更多调整。
|
||||
|
||||
要了解有关更改的更多信息,请查看 [官方发行说明][12]。
|
||||
|
||||
### 下载 Xubuntu 22.10
|
||||
|
||||
你可以从 [Ubuntu 的中央镜像库][13] 或它的 [官方网站][14] 下载最新的 ISO 文件。
|
||||
|
||||
官方网站可能需要一段时间才能提供 ISO。
|
||||
|
||||
> **[下载Xubuntu 22.10][14]**
|
||||
|
||||
💬 你觉得 Xubuntu 22.10 如何?请在评论中告诉我。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/xubuntu-22-10-release/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[littlebirdnest](https://github.com/littlebirdnest)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/xubuntu-22-10-release.jpg
|
||||
[2]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10.png
|
||||
[3]: https://itsfoss.com/long-term-support-lts/
|
||||
[4]: https://news.itsfoss.com/content/images/2022/10/xfce-4-16.jpg
|
||||
[5]: https://news.itsfoss.com/content/images/2022/10/catfish-xubuntu-22-10.png
|
||||
[6]: https://news.itsfoss.com/content/images/2022/10/catfish-openwith-1.jpg
|
||||
[7]: https://news.itsfoss.com/content/images/2022/10/xubuntu-gnome-43-software.jpg
|
||||
[8]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10-icons.jpg
|
||||
[9]: https://news.itsfoss.com/content/images/2022/10/xfce-dark-theme.png
|
||||
[10]: https://news.itsfoss.com/content/images/2022/10/task-manager-copy-command-line.jpg
|
||||
[11]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10-puzzle.png
|
||||
[12]: https://wiki.xubuntu.org/releases/22.10/release-notes
|
||||
[13]: https://cdimage.ubuntu.com/xubuntu/releases/22.10/release/
|
||||
[14]: https://xubuntu.org/download/
|
@ -3,18 +3,18 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "chai001125"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15185-1.html"
|
||||
|
||||
安装 Ubuntu 22.10 后要做的 10 件事
|
||||
======
|
||||
|
||||
**以下是我们安装 Ubuntu 22.10 “Kinetic Kudu”(GNOME 版)后,推荐做的 10 件事列表。**
|
||||
> 以下是我们安装 Ubuntu 22.10 “Kinetic Kudu”(GNOME 版)后,推荐做的 10 件事列表。
|
||||
|
||||
![][1]
|
||||
|
||||
Ubuntu 22.10 带来了很多令人兴奋的新功能,例如 GNOME 43、最新的内核、重新设计的托盘菜单、文件功能和 Pipewire 等 [新功能][2]。
|
||||
Ubuntu 22.10 带来了很多令人兴奋的新功能,例如 GNOME 43、最新的内核、重新设计的托盘菜单、文件应用的功能和 Pipewire 等 [新功能][2]。
|
||||
|
||||
我相信你已经迫不及待地想尝试 Ubuntu 22.10 上的这些新功能了。
|
||||
|
||||
@ -36,19 +36,19 @@ sudo apt update && sudo apt upgrade
|
||||
|
||||
#### 2、删除 Firefox Snap,并安装 Flatpak 或者 deb 版本的 Firefox
|
||||
|
||||
自去年发布的 Ubuntu 21.10 版本以来,默认的网页浏览器 Firefox 开始以 Snap 软件包的形式出现。如果你是普通用户,这可能不是一个问题或者需要担心的事情。但是出于几个原因,例如 Snap 软件包的 Firefox 启动时间较长、且当 Firefox 有后端更新时,会有不必要的 Snap 更新通知等等原因,导致许多用户不太喜欢 Firefox 的 Snap 软件包。
|
||||
自去年发布的 Ubuntu 21.10 版本以来,默认的网页浏览器 Firefox 开始以 Snap 软件包的形式出现。如果你是普通用户,这可能不是一个问题或者需要担心的事情。但是出于几个原因,例如 Snap 软件包的 Firefox 启动时间较长、且当 Firefox 有后台更新时,会有不必要的 Snap 更新通知等等原因,导致许多用户不太喜欢 Firefox 的 Snap 软件包。
|
||||
|
||||
因此,你可以按照 [我写的另一篇操作指南][3],来完全删除 Firefox 的 Snap 软件包。这一过程有点复杂,需要花费一点时间。删除完成后,再从个人软件包存档(PPA)安装 deb 版本的 Firefox,或者使用 [Flatpak 版本][4] 的 Firefox。
|
||||
因此,你可以按照 [我写的另一篇操作指南][3],来完全删除 Firefox 的 Snap 软件包。这一过程有点复杂,需要花费一点时间。删除完成后,再从个人软件包存档(PPA)安装 deb 版本的 Firefox,或者使用 [Flatpak 版本][4] 的 Firefox。
|
||||
|
||||
这是一个可选的动作,你也可以跳过这一步骤。
|
||||
|
||||
#### 3、安装并启用 Flatpak
|
||||
|
||||
虽然,几乎所有最近的 linux 发行版都会默认安装 Flatpak,但是 Ubuntu 并没有默认安装 Flatpak,这是因为 Ubuntu 使用了它自己的沙箱技术 Snap。
|
||||
虽然,几乎所有最新的 Linux 发行版都会默认安装 Flatpak,但是 Ubuntu 并没有默认安装 Flatpak,这是因为 Ubuntu 使用了它自己的沙箱技术 Snap。
|
||||
|
||||
但 Flatpak 这一应用程序还是最适合于每个人。Flatpak 能够帮助你快速安装多个应用程序,并在使用过程中无需担心依赖性和其他事情。
|
||||
|
||||
大多数 Flatpak 应用程序都在集中的仓库 @ Flathub 中。
|
||||
大多数 Flatpak 应用程序都在集中的仓库 Flathub 中。
|
||||
|
||||
要在 Ubuntu 22.10 中启用 Flatpak 应用程序,请按照以下命令进行操作。
|
||||
|
||||
@ -62,9 +62,9 @@ sudo apt install flatpakflatpak remote-add --if-not-exists flathub https://flath
|
||||
|
||||
我建议你在安装 Ubuntu 后,手动退出任何数据收集项。大家都知道,无论怎么努力尝试,在互联网上保护自己的隐私都很困难。因此,这些小步骤很重要。
|
||||
|
||||
要配置隐私项,请打开设置并选择**隐私**。然后查看隐私菜单下列出的项目。
|
||||
要配置隐私项,请打开“<ruby>设置<rt>Settings</rt></ruby>”并选择“<ruby>隐私<rt>Privacy</rt></ruby>”。然后查看隐私菜单下列出的项目。
|
||||
|
||||
此外,请确保禁用对 Ubuntu 服务器的后端报告。需要运行以下命令来手动禁用,因为在设置中没有禁用它的选项。
|
||||
此外,请确保禁用对 Ubuntu 服务器的后台报告。需要运行以下命令来手动禁用,因为在设置中没有禁用它的选项。
|
||||
|
||||
```
|
||||
sudo ubuntu-report -f send no
|
||||
@ -74,13 +74,13 @@ sudo ubuntu-report -f send no
|
||||
|
||||
#### 5、探索 GNOME 43 的功能
|
||||
|
||||
在 Ubuntu 22.10 版本中,最具视觉和功能性的变化是 GNOME 43。因为 GNOME 43 有一些根本性和核心变化,所以它会影响每个人和他们的工作。GNOME 43 带来了一个新的药丸形状的托盘菜单,并更新了具有文件和 GNOME Web 等新功能的原生应用程序。
|
||||
在 Ubuntu 22.10 版本中,最具视觉和功能性的变化是 GNOME 43。因为 GNOME 43 有一些根本性和核心变化,所以它会影响每个人和他们的工作。GNOME 43 带来了一个新的药丸形状的托盘菜单,并更新了文件应用和 GNOME Web 等原生应用程序的功能。
|
||||
|
||||
请查看更为详细的 [GNOME 43 功能][7] 一文,以了解更多信息,或者你也可以自己探索 GNOME 43。
|
||||
|
||||
![Quick Settings Demo in GNOME 43][8]
|
||||
|
||||
#### 6、确保音频与 Pipewire 配合使用
|
||||
#### 6、确保音频可以与 Pipewire 配合使用
|
||||
|
||||
如果你经常使用音频,或者你的工作范围涉及到声音捕获、播放等内容,请确保在 Ubuntu 22.10 中,你的音频在有线或蓝牙情况下都能正常工作。
|
||||
|
||||
@ -88,7 +88,7 @@ sudo ubuntu-report -f send no
|
||||
|
||||
#### 7、安装其他软件包
|
||||
|
||||
确保你可以在 Ubuntu 桌面上,播放所有视频和音频格式是很重要的。如果你在设置期间跳过了额外的软件包安装,可以通过以下命令进行安装。
|
||||
确保你可以在 Ubuntu 桌面上播放所有视频和音频格式是很重要的。如果你在设置期间跳过了额外的软件包安装,可以通过以下命令进行安装。
|
||||
|
||||
```
|
||||
sudo apt install ubuntu-restricted-extras
|
||||
@ -98,7 +98,7 @@ sudo apt install ubuntu-restricted-extras
|
||||
|
||||
#### 8、安装基本的应用程序
|
||||
|
||||
带有 GNOME 的基础 Ubuntu 版本只有非常基本的应用程序。因此,在你使用 Ubuntu 之前,你需要安装一些其他必要的应用程序。
|
||||
带有 GNOME 的 Ubuntu 基础版本只有非常基本的应用程序。因此,在你使用 Ubuntu 之前,你需要安装一些其他必要的应用程序。
|
||||
|
||||
由于每个人的工作范围不同,每个人所需的应用程序也都不同。因此,在这里我仅提供一个通用的应用程序的列表,我认为你可以把这些应用程序都安装上,因为这些应用程序对所有人来说都很常用。
|
||||
|
||||
@ -141,9 +141,9 @@ flatpak install flathub com.mattjakeman.ExtensionManager
|
||||
sudo add-apt-repository -y ppa:teejee2008/ppasudo apt-get updatesudo apt-get install timeshift
|
||||
```
|
||||
|
||||
### 额外小贴士
|
||||
### 额外小技巧
|
||||
|
||||
如果你想进一步定制你新安装的 Ubuntu 系统,以下是一些额外的小贴士。
|
||||
如果你想进一步定制你新安装的 Ubuntu 系统,以下是一些额外的小技巧。
|
||||
|
||||
#### 安装漂亮的字体
|
||||
|
@ -3,38 +3,40 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15195-1.html"
|
||||
|
||||
如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10
|
||||
======
|
||||
|
||||
**计划为工作安装 Python 3.10?以下是在 Ubuntu 和相关发行版中安装 Python 3.10 的方法。**
|
||||
![](https://img.linux.net.cn/data/attachment/album/202210/30/152139lddzddabu5u4buud.jpg)
|
||||
|
||||
Python 3.10 于 2021 年 10 月 25 日发布,具有附加功能和更新。此版本带来了更好的错误消息处理、新的模式匹配功能、TypeAlias、用户定义的类型保护等。你可以在[此处][1]阅读发布亮点。
|
||||
> 计划为工作安装 Python 3.10?以下是在 Ubuntu 和相关发行版中安装 Python 3.10 的方法。
|
||||
|
||||
Python 3.10 于 2021 年 10 月 25 日发布,具有附加功能和更新。此版本带来了更好的错误消息处理、新的模式匹配功能、<ruby>类型别名<rt>TypeAlias</rt></ruby>、用户定义的类型保护等。你可以在 [此处][1] 阅读发布重点。
|
||||
|
||||
在编写本指南时,大多数当前发行版都采用 Python 3.10。例如,Ubuntu 22.04 LTS 和 Fedora 36 默认都有 Python 3.10。
|
||||
|
||||
也就是说,如果你现在需要任何不支持的版本中的 Python 3.10,你可以使用[下面的可靠 PPA][2]在 Ubuntu 中安装最新的 Python 3.10。下面是方法。
|
||||
也就是说,如果你现在在任何不支持的版本中需要 Python 3.10,你可以使用 [下面的可靠 PPA][2] 在 Ubuntu 中安装最新的 Python 3.10。下面是方法。
|
||||
|
||||
### 如何在 Ubuntu 上安装 Python 3.10
|
||||
|
||||
此 PPA 可用于 Ubuntu 21.10、Ubuntu 21.04、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS 和 Linux Mint 20.x、Elementary OS 6 和其他相关的基于 Ubuntu 的发行版。大多数默认情况下不支持 3.10。
|
||||
此 PPA 可用于 Ubuntu 21.10、Ubuntu 21.04、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS 和 Linux Mint 20.x、Elementary OS 6 和其他相关的基于 Ubuntu 的发行版。这些发行版大多数默认情况下不支持 3.10。
|
||||
|
||||
- 打开终端并添加以下 PPA。
|
||||
打开终端并添加以下 PPA:
|
||||
|
||||
```
|
||||
sudo add-apt-repository ppa:deadsnakes/ppa
|
||||
```
|
||||
|
||||
- 使用以下命令刷新缓存。
|
||||
使用以下命令刷新缓存:
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
- 并使用以下命令安装 Python 3.10。
|
||||
并使用以下命令安装 Python 3.10:
|
||||
|
||||
```
|
||||
sudo apt install python3.10
|
||||
@ -42,9 +44,9 @@ sudo apt install python3.10
|
||||
|
||||
### 设置 Python 版本
|
||||
|
||||
将 Python 3.10 设置为默认值需要一些额外的步骤。请跟上。
|
||||
将 Python 3.10 设置为默认值需要一些额外的步骤。如下。
|
||||
|
||||
**警告**:你的 Ubuntu 系统中的许多应用程序依赖于 Python 3.9 的库存版本。因此,请确保你的工作应用(例如 GIMP、GNOME 终端等)与 Python 3.10 兼容。所以,要小心。
|
||||
> **警告**:你的 Ubuntu 系统中的许多应用程序依赖于 Python 3.9 的库存版本。因此,请确保你的工作应用(例如 GIMP、GNOME 终端等)与 Python 3.10 兼容。所以,要小心。
|
||||
|
||||
**快速提示:** 如果要检查已安装的系统包中的哪些依赖于特定版本,请使用 `apt-cache` 命令的 `rdepends` 开关。在下面的示例中,我检查哪些已安装的包依赖于 Python 3.8。
|
||||
|
||||
@ -100,13 +102,13 @@ gedit
|
||||
|
||||
#### 使用 Python 3.10 作为默认 Python3
|
||||
|
||||
- 首先,使用终端中的以下命令检查当前默认版本。
|
||||
首先,使用终端中的以下命令检查当前默认版本。
|
||||
|
||||
```
|
||||
python3 --version
|
||||
```
|
||||
|
||||
- 使用 `update-alternatives` 创建指向 python3 的符号链接。
|
||||
使用 `update-alternatives` 创建指向 `python3` 的符号链接。
|
||||
|
||||
```
|
||||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
|
||||
@ -116,7 +118,7 @@ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
|
||||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
|
||||
```
|
||||
|
||||
- 并通过以下命令选择使用哪一个作为 Python3:
|
||||
并通过以下命令选择使用哪一个作为 `python3`:
|
||||
|
||||
```
|
||||
sudo update-alternatives --config python3
|
||||
@ -133,7 +135,7 @@ via: https://www.debugpoint.com/install-python-3-10-ubuntu/
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,80 +0,0 @@
|
||||
[#]: subject: "Ubuntu but rolling but also stable That's what Rhino Linux aims to be"
|
||||
[#]: via: "https://news.itsfoss.com/rhino-linux/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Ubuntu but rolling but also stable That's what Rhino Linux aims to be
|
||||
======
|
||||
|
||||
A rolling-release Ubuntu distribution? Wait, what? Rhino Linux sounds fascinating..
|
||||
|
||||
![Ubuntu but rolling but also stable! That's what Rhino Linux aims to be][1]
|
||||
|
||||
Rhino Linux will be the successor of [Rolling Rhino Remix][2]. A Linux distro built by http.llamaz that offered a rolling-release **unofficial** variant of Ubuntu.
|
||||
|
||||
To clarify, the project was never aimed to replace other stable distributions and was purely a passion project made for fun.
|
||||
|
||||
Considering people started using it as a daily driver and expected more from it, the developer has decided to turn this into a serious project.
|
||||
|
||||
Rhino Linux is its next step for it. So, what can you expect?
|
||||
|
||||
### Meet Rhino Linux: The Successor
|
||||
|
||||
The main goal is to provide a stable Ubuntu experience while still providing a rolling-release model.
|
||||
|
||||
The aim remains the same, but the fundamentals for Rhino Linux will receive a complete overhaul. They are potentially making it an impressive rolling-release Ubuntu distribution.
|
||||
|
||||
**Sounds exciting! 🤯**
|
||||
|
||||
At its core, Rhino Linux will be using a slightly modified version of [XFCE][3] as its desktop environment; it was chosen due to its well-known stability and speed.
|
||||
|
||||
The founder of Rhino Linux mentioned the following:
|
||||
|
||||
> Ubuntu as a rolling release is still at the very core of our concept. Rhino Linux is not a depature from Rolling Rhino Remix, but rather re-imagines it as the more stable, mature distribution it should have shipped as originally.
|
||||
|
||||
![xfce 4.14][4]
|
||||
|
||||
Alongside that, [Pacstall][5] will be used as the default package manager on Rhino Linux with one of their repositories.
|
||||
|
||||
> 💡Pacstall is an [AUR][6]-inspired package manager for Ubuntu.
|
||||
|
||||
The development of which is headed by the founder of Pacstall, [_Plasma_][7]. He has also joined as one of the new developers (Deputy Project Lead), and [Sourajyoti Basak][8] as another core member.
|
||||
|
||||
### Moving Forward: Availability and Release
|
||||
|
||||
As of writing, Rhino Linux has not received any specific release date, but you can expect it to release sometime in **2023**.
|
||||
|
||||
What happens to Rolling Rhino Remix?
|
||||
|
||||
The developer clarified that it would continue to be maintained for three months after the release of Rhino Linux. However, it won't have a new release image after its subsequent release on **11.01.2022**.
|
||||
|
||||
You can find out more about Rhino Linux by visiting its [official website][9].
|
||||
|
||||
_💬 What do you think of Rhino Linux? Can it be a contender for official Ubuntu flavors worth trying?_
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/rhino-linux/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/rhino-linux.png
|
||||
[2]: https://github.com/rollingrhinoremix
|
||||
[3]: https://www.xfce.org/
|
||||
[4]: https://news.itsfoss.com/content/images/2022/10/XFCE_4.14.png
|
||||
[5]: https://github.com/pacstall/pacstall
|
||||
[6]: https://itsfoss.com/aur-arch-linux/
|
||||
[7]: https://github.com/Henryws
|
||||
[8]: https://github.com/wizard-28
|
||||
[9]: https://rhinolinux.org/
|
@ -1,135 +0,0 @@
|
||||
[#]: subject: "Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements"
|
||||
[#]: via: "https://news.itsfoss.com/xubuntu-22-10-release/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements
|
||||
======
|
||||
|
||||
Xubuntu 22.10 provides a refined XFCE experience. Learn more about it here.
|
||||
|
||||
![Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements][1]
|
||||
|
||||
Xubuntu is an XFCE-powered official Ubuntu flavour.
|
||||
|
||||
It is also one of the best lightweight Linux distributions available.
|
||||
|
||||
With the latest Xubuntu 22.10 "**Kinetic Kudu**" release, you can expect desktop environment improvements, feature additions, and several refinements across the board.
|
||||
|
||||
### Xubuntu 22.10: What's New?
|
||||
|
||||
![Xubuntu 22.10 home][2]
|
||||
|
||||
Xubuntu 22.10 brings in some exciting upgrades. Some of the highlights include:
|
||||
|
||||
- **Xfce 4.16 (or Xfce 4.17 dev)**
|
||||
- **Catfish appearance update.**
|
||||
- **New icon refresh and deprecated elementary-xfce-darker-theme.**
|
||||
- **Mousepad search history.**
|
||||
- **Thundar file manager improvements.**
|
||||
- **Xfce task manager.**
|
||||
|
||||
> 💡Xubuntu 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][3].
|
||||
|
||||
#### XFCE 4.17 Development Version or XFCE 4.16?
|
||||
|
||||
The release notes for Xubuntu 22.10 say it features the Xfce 4.17 development version.
|
||||
|
||||
However, when I installed the beta version for Xubuntu 22.10 (and updated it to the latest), it said it features Xfce 4.16.
|
||||
|
||||
![][4]
|
||||
|
||||
Not sure if they pulled out Xfce 4.17 development version or if Xfce 4.16 is here for now.
|
||||
|
||||
#### Catfish Appearance
|
||||
|
||||
![xubuntu catfish][5]
|
||||
|
||||
Catfish is a file search utility on Xubuntu. With the new upgrade, it has a refreshed appearance with tweaks under the hood.
|
||||
|
||||
You also get an "**Open With**" context menu when interacting with the files you searched for.
|
||||
|
||||
![][6]
|
||||
|
||||
A pretty subtle but valuable feature addition for catfish.
|
||||
|
||||
#### GNOME 43 Software
|
||||
|
||||
Among notable app updates, GNOME's latest Software Center is a nice thing to have. This is how it looks with Xubuntu 22.10:
|
||||
|
||||
![][7]
|
||||
|
||||
Of course, it may not give you a consistent look with other applications on Xfce, but I think you can give it an excuse.
|
||||
|
||||
#### Icon Updates
|
||||
|
||||
With elementary-xfce 0.17 icon update, there are many new icons and cleaner options that provide a consistent Xubuntu desktop experience.
|
||||
|
||||
![][8]
|
||||
|
||||
Additionally, the **elementary-xfce-darkest theme** icon pack has been deprecated.
|
||||
|
||||
![][9]
|
||||
|
||||
#### Task Manager Right-Click Option
|
||||
|
||||
![][10]
|
||||
|
||||
You can now copy the full process path to the clipboard. This could be useful to troubleshoot or stop things from the command line when required.
|
||||
|
||||
### Other Enhancements
|
||||
|
||||
![][11]
|
||||
|
||||
There are several other notable changes that include:
|
||||
|
||||
- **Linux Kernel 5.19**
|
||||
- **Mozilla Firefox 105.**
|
||||
- **Alt-Tab view improved with more prominent icons.**
|
||||
- **Mosaic puzzle added to SGT Puzzles collection.**
|
||||
- **Thunar archive plugin now supports compressing zip files.**
|
||||
- **Mousepad text editor now includes a search history and a few more tweaks.**
|
||||
|
||||
To learn more about the changes, check out the [official release notes][12].
|
||||
|
||||
### Download Xubuntu 22.10
|
||||
|
||||
You can download the latest ISO from [Ubuntu's central image repository][13] or its [official website][14].
|
||||
|
||||
It might take a while for its official website to make the ISO available.
|
||||
|
||||
[Download Xubuntu 22.10][14]
|
||||
|
||||
💬 _What do you think about Xubuntu 22.10? Let me know your thoughts in the comments._
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/xubuntu-22-10-release/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/xubuntu-22-10-release.jpg
|
||||
[2]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10.png
|
||||
[3]: https://itsfoss.com/long-term-support-lts/
|
||||
[4]: https://news.itsfoss.com/content/images/2022/10/xfce-4-16.jpg
|
||||
[5]: https://news.itsfoss.com/content/images/2022/10/catfish-xubuntu-22-10.png
|
||||
[6]: https://news.itsfoss.com/content/images/2022/10/catfish-openwith-1.jpg
|
||||
[7]: https://news.itsfoss.com/content/images/2022/10/xubuntu-gnome-43-software.jpg
|
||||
[8]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10-icons.jpg
|
||||
[9]: https://news.itsfoss.com/content/images/2022/10/xfce-dark-theme.png
|
||||
[10]: https://news.itsfoss.com/content/images/2022/10/task-manager-copy-command-line.jpg
|
||||
[11]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10-puzzle.png
|
||||
[12]: https://wiki.xubuntu.org/releases/22.10/release-notes
|
||||
[13]: https://cdimage.ubuntu.com/xubuntu/releases/22.10/release/
|
||||
[14]: https://xubuntu.org/download/
|
@ -0,0 +1,132 @@
|
||||
[#]: subject: "Vanilla OS: More Than Just Vanilla GNOME With Ubuntu"
|
||||
[#]: via: "https://news.itsfoss.com/vanilla-os-beta/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Vanilla OS: More Than Just Vanilla GNOME With Ubuntu
|
||||
======
|
||||
|
||||
Vanilla OS is Ubuntu on stock GNOME with on-demand immutability and package selection freedom. Sounds fun? Read more here.
|
||||
|
||||
![Vanilla OS: More Than Just Vanilla GNOME With Ubuntu][1]
|
||||
|
||||
That was precisely my thought when I first came across Vanilla OS.
|
||||
|
||||
When**Mirko Brombin**, the creator of [Bottles][2], announced it on Twitter, that had me interested in it 😎
|
||||
|
||||
I joined their Discord channel and hopped in to become a tester. While I did not point out anything new that other testers already did, keeping an eye on the project development is fun.
|
||||
|
||||
Back to the vital question: **What is Vanilla OS?**
|
||||
|
||||
**Vanilla OS aims to offer a clean vanilla GNOME experience with on-demand immutability.**
|
||||
|
||||
Sounds interesting? Let me tell you a few details about it while I give its first open beta build a try.
|
||||
|
||||
> 💡Vanilla OS plans to have a stable release in November. It will follow Ubuntu point releases. So, you can expect **two releases per year**. For example, you can upgrade from Ubuntu 22.04 to Ubuntu 22.10 and further. You should not replace it as a daily driver unless you know what you are doing.
|
||||
|
||||
### Vanilla OS: Yet Another Ubuntu-based Distro?
|
||||
|
||||
![vanilla os home][3]
|
||||
|
||||
**Yes and no.**
|
||||
|
||||
For starters, I see the following unique reasons to give it a try:
|
||||
|
||||
- To get a **stock GNOME experience** on top of Ubuntu. (Fedora is an excellent option too, but not for everyone!)
|
||||
- **Allows you to choose and enable Flatpak/Snap/AppImage** with its first-time setup after installation.
|
||||
- **On-demand immutability**, meaning you can make the system read-only to prevent critical changes from third-party applications and updates.
|
||||
- **A new package manager** (apx) allows you to install packages inside a managed container by default.
|
||||
|
||||
The first-time setup process is a breeze to experience.
|
||||
|
||||
> ℹ️Currently, it uses the Calamares installer. They intend to replace it with Jade, used in **Crystal Linux**.
|
||||
|
||||
![vanilla os installer][4]
|
||||
|
||||
The more distributions do things like this; I believe more users would be happy to get on board with Linux.
|
||||
|
||||
![][5]
|
||||
|
||||
Vanilla OS Package Manager Selection
|
||||
|
||||
Of course, distributions like Ubuntu MATE and Pop!_OS have already put in great efforts, and Vanilla OS also adds some improvement to the table.
|
||||
|
||||
![Vanilla os color selection][6]
|
||||
|
||||
It looks like a pretty experience! 😊
|
||||
|
||||
Once you finish the first-time setup, you have nothing else to worry about. You get the usual GNOME desktop with nice wallpapers out of the box by **Patrik Kramolis.**
|
||||
|
||||
![vanilla os home][7]
|
||||
|
||||
Image Credits: Mirko Brombin
|
||||
|
||||
Next, I tried checking the on-demand immutability, which you can see and tweak using the following commands:
|
||||
|
||||
![vanilla OS terminal][8]
|
||||
|
||||
You can explore more about the utility (almost) that makes this possible on [GitHub][9].
|
||||
|
||||
Next, coming to the new package manager, I like the concept of distrobox under the hood, making this possible with apx.
|
||||
|
||||
The Distrobox creator **Luca di Maio** is also involved in developing Vanilla OS.
|
||||
|
||||
However, when installing a package with apx, you need to initialize the container using the command:
|
||||
|
||||
```
|
||||
apx init
|
||||
```
|
||||
|
||||
If it had done it automatically, I would call it intuitive.
|
||||
|
||||
![vanilla os apx][10]
|
||||
|
||||
Of course, I'm not aware of the technical limitations. But, for the user end, that would feel seamless!
|
||||
|
||||
Overall, a package manager that installs applications utilizing a container, getting the ability to choose your package managers, on-demand immutability, and vanilla GNOME make it seem like a good deal to keep an eye on.
|
||||
|
||||
### The Road Ahead: First Impressions
|
||||
|
||||
I can see it as my daily driver once it hits the stable release.
|
||||
|
||||
**The reason is**: I always like the stock GNOME experience, and I do not have to deal with Fedora's regular upgrades.
|
||||
|
||||
Of course, once I get to use the stable release, I can give you a verdict on the entire user experience.
|
||||
|
||||
Until then, I'd say it is a project that I believe a lot of users will appreciate 👏
|
||||
|
||||
You can download the ISO by joining its Discord channel for now. The ISO is not yet publicly available to all. Take a look at its [documentation][11] if you are curious.
|
||||
|
||||
[Vanilla OS][12]
|
||||
|
||||
However, as per the roadmap, they plan to have a release candidate soon enough.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/vanilla-os-beta/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/first-look-at-vanilla-os.jpg
|
||||
[2]: https://usebottles.com
|
||||
[3]: https://news.itsfoss.com/content/images/2022/10/vanillaos.jpg
|
||||
[4]: https://news.itsfoss.com/content/images/2022/10/vanillaos-installer.jpg
|
||||
[5]: https://news.itsfoss.com/content/images/2022/10/choosing-package-vanillaos.png
|
||||
[6]: https://news.itsfoss.com/content/images/2022/10/vanilla-os-first-setup.png
|
||||
[7]: https://news.itsfoss.com/content/images/2022/10/vanillaos-wallpaper.jpg
|
||||
[8]: https://news.itsfoss.com/content/images/2022/10/Screenshot-from-2022-10-25-12-54-29.png
|
||||
[9]: https://github.com/Vanilla-OS/almost
|
||||
[10]: https://news.itsfoss.com/content/images/2022/10/apx-install.jpg
|
||||
[11]: https://documentation.vanillaos.org
|
||||
[12]: https://vanillaos.org/roadmap
|
@ -0,0 +1,88 @@
|
||||
[#]: subject: "Canonical's Adding a Neat Ability to the Steam Snap App for Gamers"
|
||||
[#]: via: "https://news.itsfoss.com/steam-snap-app-mesa/"
|
||||
[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Canonical's Adding a Neat Ability to the Steam Snap App for Gamers
|
||||
======
|
||||
|
||||
Canonical is making reasonable efforts with its Steam snap app. A snap app that you can't hate?
|
||||
|
||||
![Canonical's Adding a Neat Ability to the Steam Snap App for Gamers][1]
|
||||
|
||||
Gaming on Linux is getting popular and evolving every year, with Valve and the Steam Deck playing a significant part.
|
||||
|
||||
According to the [Steam Hardware and Software survey][2], Ubuntu remains one of the most popular Linux distros for gaming.
|
||||
|
||||
The company behind Ubuntu – Canonical – is taking the necessary steps to make gaming on Ubuntu a seamless experience. They announced the launch of Steam as a Snap application in **April 2022** which is currently in 'early access'.
|
||||
|
||||
![steam snap][3]
|
||||
|
||||
Now, Canonical aims to elevate the gaming experience by letting users choose different Mesa graphics stacks effortlessly.
|
||||
|
||||
### Easy Switch to Latest Mesa for Best Experience
|
||||
|
||||
[Mesa][4] is an integral part of gaming on Linux, especially for AMD and Intel users. It is an open-source graphics stack that includes a range of graphics APIs like OpenGL and Vulkan to help run your favorite games.
|
||||
|
||||
Since the Steam Snap bundles all the required dependencies and supports 32-bit libraries, users don't need to do anything manually to get things running. The Steam snap is containerized and isolated from the operating system.
|
||||
|
||||
**But what about the Mesa graphics drivers?**
|
||||
|
||||
For now, the Snap app installs the latest Mesa driver available in [oibaf's PPA repo][5] by default. You get the bleeding-edge drivers out of the box. But, you cannot change it quickly.
|
||||
|
||||
In a [blog post][6] by Canonical, they mentioned some improvements to the Steam's snap app that makes this easy.
|
||||
|
||||
It includes the introduction of **Content snaps** as an easier way to make use of Mesa drivers.
|
||||
|
||||
Unlike regular dependencies, Content snaps are packaged separately from the main Steam snap. They can be utilized by other applications and thus prevent bloat or duplication. Moreover, they are also updated independently since they aren't directly bundled with the Steam snap.
|
||||
|
||||
There are three Mesa driver stacks available -
|
||||
|
||||
- **oibaf-latest** – Default bleeding-edge release
|
||||
- **kisak-turtle**– Stable release
|
||||
- **kisak-fresh** – Latest point release, highly unstable
|
||||
|
||||
Users can customize their Mesa stack by easily switching between them anytime. To play the latest games on the market, users may need to use the bleeding-edge release to avoid issues while gaming. On the other hand, the stable build should do for older titles.
|
||||
|
||||
The blog post mentions:
|
||||
|
||||
> This will enable users to choose their preferred Mesa track independently of the upgrade track of the Steam snap.
|
||||
|
||||
So, users should be able to toggle between the available driver stacks.
|
||||
|
||||
Sounds useful, isn't it? 😃
|
||||
|
||||
> 💡This feature is still being worked on and should be added to the stable channel soon along with Steam snap. As of now, it is available through the beta channel.
|
||||
|
||||
### Thoughts?🤔
|
||||
|
||||
Snaps may not appeal to all Linux users due to some of their disadvantages.
|
||||
|
||||
But gamers may find Steam as a snap quite helpful. The option to choose the preferred graphics stack should be very welcoming to users. Ubuntu seems to be taking gaming quite seriously.
|
||||
|
||||
**Via:**[omg!ubuntu!][7]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/steam-snap-app-mesa/
|
||||
|
||||
作者:[Rishabh Moharir][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/rishabh/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/steam-snap-app-upgrade-for-gamers.png
|
||||
[2]: https://store.steampowered.com/hwsurvey?platform=linux
|
||||
[3]: https://news.itsfoss.com/content/images/2022/10/steam-snap.jpg
|
||||
[4]: https://itsfoss.com/install-mesa-ubuntu/
|
||||
[5]: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers
|
||||
[6]: https://canonical.com/blog/what-the-steam-snap-is-evolving
|
||||
[7]: https://www.omgubuntu.co.uk/2022/10/canonicals-steam-snap-will-let-you-switch-between-different-mesa-stacks
|
@ -0,0 +1,87 @@
|
||||
[#]: subject: "A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network"
|
||||
[#]: via: "https://news.itsfoss.com/impervious-browser/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network
|
||||
======
|
||||
|
||||
An open-source browser that promises P2P decentralized internet experience with bitcoin integration.
|
||||
|
||||
![A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network][1]
|
||||
|
||||
P2P services for chat, video calls, and document editing are not yet mainstream.
|
||||
|
||||
However, the idea for a P2P connection provides better control over the data and security and prevents censorship.
|
||||
|
||||
Impervious browser is an exciting initiative that gives you access to P2P tools and a decentralized experience. The tools include:
|
||||
|
||||
- **End-to-end encrypted chat.**
|
||||
- **Encrypted P2P video and audio calls.**
|
||||
- **Live Docs.**
|
||||
|
||||
Additionally, it supports the [Bitcoin lightning network][2], which facilitates instant Bitcoin transactions. If you are a fan of cryptocurrency integrations, this could sound interesting, or it's just another fancy addition for most common users.
|
||||
|
||||
### Impervious Browser: How Does it Work?
|
||||
|
||||
Technically, the browser is a customized Mozilla Firefox experience. So, you can expect the same features and capabilities.
|
||||
|
||||
The browser relies on Decentralized Identifiers (DIDs), i.e., decentralized digital IDs, to verify a person or connect with them.
|
||||
|
||||
![impervious DID][3]
|
||||
|
||||
Digital Identity
|
||||
|
||||
You can find the DID from the settings, which you can share with anyone on the web to add you as a contact.
|
||||
|
||||
Once you do that, you can send a message, initiate a video call, and collaborate with the live document feature for any work.
|
||||
|
||||
![][4]
|
||||
|
||||
Connection Request with a contact
|
||||
|
||||
And this is what a conversation looks like:
|
||||
|
||||
![][5]
|
||||
|
||||
For users fond of Bitcoin transactions, you can utilize the Lightning network for super-fast payments while in a video call or message conversation.
|
||||
|
||||
You need to connect to a lightning node to use the functionality. If you do not have one, Impervious supports creating a [Voltage Lightning Node][6].
|
||||
|
||||
I haven't tried it. So, if you are someone who uses cryptocurrency and appreciates the integration while collaborating with people through Impervious's P2P network, it should be a seamless experience.
|
||||
|
||||
### Download Impervious
|
||||
|
||||
> 💡Impervious is in the Alpha stage. You can download it but it may not work as you would expect.
|
||||
|
||||
The Impervious browser is available for Linux and macOS (M1/Intel). They intend to release a Windows build soon.
|
||||
|
||||
You can download the latest build from its [GitHub releases section][7] or head to its official website.
|
||||
|
||||
[Impervious][8]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/impervious-browser/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/first-look-at-impervious-browser.png
|
||||
[2]: https://lightning.network
|
||||
[3]: https://news.itsfoss.com/content/images/2022/10/impervious-did.png
|
||||
[4]: https://news.itsfoss.com/content/images/2022/10/impervious-connection-request.png
|
||||
[5]: https://news.itsfoss.com/content/images/2022/10/impervious-browser-messages.png
|
||||
[6]: https://voltage.cloud
|
||||
[7]: https://github.com/imperviousai/imp-browser
|
||||
[8]: https://www.impervious.ai
|
@ -0,0 +1,63 @@
|
||||
[#]: subject: "Oh No! Fedora 37 Release Gets Delayed"
|
||||
[#]: via: "https://news.itsfoss.com/fedora-37-release-delay/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Oh No! Fedora 37 Release Gets Delayed
|
||||
======
|
||||
|
||||
Fedora 37 release is getting delayed for a security fix. Here's what you should know about it.
|
||||
|
||||
![Oh No! Fedora 37 Release Gets Delayed][1]
|
||||
|
||||
The Fedora team usually targets an early release and a delayed date for their schedule.
|
||||
|
||||
This time around, Fedora 37 is getting pushed back with an unexpected delay. From a release target date of 18th October to 25th October, and then 1st November.
|
||||
|
||||
Now, we have to wait until **15 November 2022** to download Fedora 37 available.
|
||||
|
||||
But why the delay? Isn't the testing complete for Fedora 37? What is the hold-up?
|
||||
|
||||
> 💡**OpenSSL has announced a new version that addresses a critical security bug**. The new version is scheduled to release on November 1, 2022.
|
||||
|
||||
Until the release, Fedora's team is unaware of the details regarding the security fix. It could be significant, so Red Hat recommends waiting for it before releasing Fedora 37.
|
||||
|
||||
**Here's what Fedora's Program Manager mentions in a [blog post][2]:**
|
||||
|
||||
> When a security issue is discovered, this information is often shared with the project confidentially. This allows the developers to fix the issue before more people know about it and can exploit it. Projects then share information with downstreams so they can be ready.Ironically, Fedora’s openness means we can’t start preparing ahead of time. All of our build pipelines and artifacts are open. If we were to start building updates, this would disclose the vulnerability before the embargo lifts. As a result, we only know that OpenSSL considers this the highest level of severity and Red Hat’s Product Security team strongly recommended we wait for a fix before releasing Fedora Linux 37.
|
||||
|
||||
#### Time Needed to Test the Release Candidate With OpenSSL's New Version
|
||||
|
||||
The developers need enough time to test Fedora 37's release candidate after they update the necessary package.
|
||||
|
||||
While they could rush it, they intend to push a release only after they are confident about it:
|
||||
|
||||
> The OpenSSL project team plans to publish the security fix about 48 hours before we’d make the go/no-go decision for an 8 November target. Factoring in time to build the updated openssl package and generate a release candidate, that gives us about a day and a half to do testing. That’s not enough time to be comfortable with a change to such an important package.
|
||||
|
||||
Considering it is an important update, it is an excellent decision to test it and prepare it for release.
|
||||
|
||||
Of course, the delay could be for nothing if the security fix is not a massive one.
|
||||
|
||||
However, I believe it is better to have a release that provides a secure experience out of the box instead of having a vulnerable package.
|
||||
|
||||
What do you think about Fedora 37 release being delayed? Share your thoughts in the comments down below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/fedora-37-release-delay/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/fedora-37-delayed.png
|
||||
[2]: https://fedoramagazine.org/fedora-linux-37-update/
|
@ -0,0 +1,116 @@
|
||||
[#]: subject: "Zorin OS 16.2 Released, It's All About Useful Refinements"
|
||||
[#]: via: "https://news.itsfoss.com/zorin-os-16-2-release/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Zorin OS 16.2 Released, It's All About Useful Refinements
|
||||
======
|
||||
|
||||
Zorin OS 16.2 is a sweet upgrade with essential refinements across the board.
|
||||
|
||||
![Zorin OS 16.2 Released, It's All About Useful Refinements][1]
|
||||
|
||||
Zorin OS is one of the [most beautiful Linux distributions][2] based on the Ubuntu LTS releases.
|
||||
|
||||
Not just limited to that, we think of it as one of the finest distros for beginners:
|
||||
|
||||
The latest version, Zorin OS 16.2, is now available to download.
|
||||
|
||||
### Zorin OS 16.2: What's New?
|
||||
|
||||
There are several significant improvements, those include:
|
||||
|
||||
- **Easier to install Windows apps**
|
||||
- **Improved compatibility with Microsoft office documents**
|
||||
- **Improved Zorin Connect**
|
||||
- **GDevelop tool added to Zorin OS Education**
|
||||
|
||||
> 💡The Zorin OS 16 series will get software updates and patches until April 2025.
|
||||
|
||||
#### Easier to Install Windows Apps
|
||||
|
||||
Zorin OS could already detect .exe files and guide you to install them on your distribution using Wine under the hood.
|
||||
|
||||
Now, it gets easier.
|
||||
|
||||
![zorin os windows app support menu][3]
|
||||
|
||||
A new "**Windows App Support**" menu sits under the "**System Tools**" section.
|
||||
|
||||
You can enable Windows app support through it.
|
||||
|
||||
Along with the new menu, the database to detect Windows installer files has also expanded to guide you to a better user experience.
|
||||
|
||||
For instance, launching Windows installers for Epic Games Store or GOG Galaxy directs you to install [Heroic Games Launcher][4].
|
||||
|
||||
![zorin os heroic games][5]
|
||||
|
||||
### Office Experience Enhancements
|
||||
|
||||
Zorin OS has added alternatives to popular proprietary fonts to improve compatibility with Microsoft Office documents.
|
||||
|
||||
For example, [Carlito][6] is an alternative to Calibri (the default typeface in Office 365).
|
||||
|
||||
### Zorin Connect Gets Better
|
||||
|
||||
Zorin Connect is a valuable utility that helps you connect your mobile device to a Zorin OS-powered computer.
|
||||
|
||||
It already offered a seamless experience. Now, you can view your computer's battery status on your phone, which should be handy for laptop users.
|
||||
|
||||
The battery stats are available by default in Zorin OS 16.2. If you have an older version of Zorin OS, you should update the Zorin Connect app first.
|
||||
|
||||
![zorin connect][7]
|
||||
|
||||
Next, you need to navigate to the paired phone battery option in the Zorin Connect computer app and enable "**Share Statistics**".
|
||||
|
||||
### GDevelop in Zorin OS Education
|
||||
|
||||
![zorin os gdevelop][8]
|
||||
|
||||
Zorin OS offers different editions for various users, and the education variant provides all the valuable tools to learners.
|
||||
|
||||
[GDevelop][9] is a new tool to the list. It is a no-code game development software that reduces the learning curve for programming and helps boost creativity.
|
||||
|
||||
### 🛠️ Other Improvements
|
||||
|
||||
In addition to the highlights, other significant changes include:
|
||||
|
||||
- Updated [LibreOffice 7.4][10] app with WebP support
|
||||
- Updated applications and graphics drivers
|
||||
- Added a maximize effect and refined physics for Jelly Mode
|
||||
- Newer hardware compatibility
|
||||
|
||||
### Download Zorin OS 16.2
|
||||
|
||||
You can upgrade to the latest version from the Software Updater. If it is a fresh installation, download the ISO from its official website.
|
||||
|
||||
[Zorin OS 16.2][11]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/zorin-os-16-2-release/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/zoring-os-16-2-release.jpg
|
||||
[2]: https://itsfoss.com/beautiful-linux-distributions/
|
||||
[3]: https://news.itsfoss.com/content/images/2022/10/zorin-os-16-2-menu.jpg
|
||||
[4]: https://github.com/Heroic-Games-Launcher
|
||||
[5]: https://news.itsfoss.com/content/images/2022/10/heroic-epic-zorin-os-16-2.png
|
||||
[6]: https://www.fontsquirrel.com/fonts/carlito
|
||||
[7]: https://news.itsfoss.com/content/images/2022/10/zorin-connect-battery-share-statistics.png
|
||||
[8]: https://news.itsfoss.com/content/images/2022/10/gdevelop.jpg
|
||||
[9]: https://gdevelop.io
|
||||
[10]: https://news.itsfoss.com/libreoffice-7-4-release/
|
||||
[11]: https://zorin.com/os/download/
|
@ -0,0 +1,123 @@
|
||||
[#]: subject: "Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users"
|
||||
[#]: via: "https://news.itsfoss.com/portmaster-1-release/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users
|
||||
======
|
||||
|
||||
Portmaster is an all-in-one open-source privacy tool that you probably need. Give it a try!
|
||||
|
||||
![Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users][1]
|
||||
|
||||
Portmaster by [Safing][2] is a free and open-source application firewall that aims to automate the process of protecting the privacy of its users.
|
||||
|
||||
**It allows you to monitor network activity, add custom connection rules for applications, and more.**
|
||||
|
||||
We tested it during the alpha stage, and came to the conclusion that it had good potential to act as a viable alternative to [GlassWire][3]. Of course, it may not be a replacement, but it can be one in the near future:
|
||||
|
||||
With the release of Portmaster 1.0, we can recommend everyone to give it a try.
|
||||
|
||||
> 💡Portmaster 1.0 is a stable release suitable for every user.
|
||||
|
||||
### 🆕 Portmaster 1.0: What's New?
|
||||
|
||||
![portmaster 1.0][4]
|
||||
|
||||
Considering this is Portmaster's first stable release, there could be room for improvement.
|
||||
|
||||
However, some of the features that it brings with it include:
|
||||
|
||||
- **Easy navigation to monitor app network connections**
|
||||
- **Secure DNS by default**
|
||||
- **Automatic blocking of trackers & malware**
|
||||
|
||||
#### Automatic Blocking Of Trackers & Malware
|
||||
|
||||
![portmaster 1.0 filter lists][5]
|
||||
|
||||
Portmaster lets you automatically block various trackers and malware by using well-known filter lists from the likes of [AdAway][6], [abuse.ch][7], [AdGuard][8], and a few of their curated lists.
|
||||
|
||||
#### Side-Dash Menu
|
||||
|
||||
![portmaster 1.0 side dash menu][9]
|
||||
|
||||
The presence of sidebar menu in Portmaster makes things easy, meaning it acts as a quick switcher between apps and settings.
|
||||
|
||||
![portmaster side-dash][10]
|
||||
|
||||
It also shows key information regarding apps that are using the network.
|
||||
|
||||
Additionally, suppose you are using their [paid SPN service][11] (or Portmaster Unlimited). In that case, you can use the Side-Dash to see which countries each app connects to, alongside the number of identities in use.
|
||||
|
||||
![portmaster 1.0 country identity details][12]
|
||||
|
||||
#### Other Features
|
||||
|
||||
![allow or block connections][13]
|
||||
|
||||
In addition to the key highlights, it also gives you some powerful abilities that include:
|
||||
|
||||
- **Choose your favorite DNS-over-TLS provider, like Cloudflare, Quad9, AdGuard, etc., to encrypt DNS requests.**
|
||||
- **Allow/Block specific websites or applications.**
|
||||
- **Specify if you do not want your apps to connect to specific countries.**
|
||||
- **Block all p2p connections.**
|
||||
|
||||
### 📥 Download Portmaster 1.0
|
||||
|
||||
Portmaster is currently only available for Windows and Linux, with no news on the release of a macOS version.
|
||||
|
||||
They plan to support mobile platforms in the future as well.
|
||||
|
||||
You can visit its official [downloads page][14] to get started for Linux (.deb/.rpm packages) and Windows.
|
||||
|
||||
Explore more about the project on its [GitHub page][15].
|
||||
|
||||
[Portmaster 1.0][14]
|
||||
|
||||
### 💭 My Thoughts
|
||||
|
||||
Portmaster aims to succeed in a space where GlassWire is a very well-known name. It is easy to use and offers an intuitive experience.
|
||||
|
||||
**But, GlassWire is not open-source and does not have a client for Linux.**
|
||||
|
||||
With further refinements, I think it would be an impressive addition to every privacy-conscious computer user.
|
||||
|
||||
Of course, a free and open-source alternative to any proprietary tool is a good thing, as it enables more users to try it out.
|
||||
|
||||
And, Portmaster is something that helps you monitor your network connections and automate your privacy protections, I think you should take it for a spin! 😊
|
||||
|
||||
💬 Is Portmaster a good application firewall for your use-case? What do you think about it?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/portmaster-1-release/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/portmaster-1-0-release.png
|
||||
[2]: https://safing.io/
|
||||
[3]: https://www.glasswire.com/
|
||||
[4]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0.png
|
||||
[5]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Filter_Lists.png
|
||||
[6]: https://adaway.org/
|
||||
[7]: https://abuse.ch/
|
||||
[8]: https://adguard.com/
|
||||
[9]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Side_Dash.png
|
||||
[10]: https://news.itsfoss.com/content/images/2022/10/portmaster-1-0-screenshot.png
|
||||
[11]: https://safing.io/spn/
|
||||
[12]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Country_Details.png
|
||||
[13]: https://news.itsfoss.com/content/images/2022/10/manually-allow-ord-block-connections.png
|
||||
[14]: https://safing.io/download/
|
||||
[15]: https://github.com/safing/portmaster/
|
@ -0,0 +1,108 @@
|
||||
[#]: subject: "Remixing Linux for blind and visually impaired users"
|
||||
[#]: via: "https://opensource.com/article/22/9/linux-visually-impaired-users"
|
||||
[#]: author: "Vojtech Polasek https://opensource.com/users/vpolasek"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Remixing Linux for blind and visually impaired users
|
||||
======
|
||||
|
||||
Vojtux, a Fedora project, is an unofficial Linux distribution aimed at visually impaired users.
|
||||
|
||||
When I was around 5 years old, my father brought home our first computer. From that moment on, I knew I wanted to pursue a career in computers. I haven't stopped hanging around them since. During high school, when considering which specific area I wanted to focus on, I started experimenting with hacking, and that was the moment I decided to pursue a career as a security engineer.
|
||||
|
||||
I'm now a software engineer on the security compliance team. I've been at Red Hat for over two years, and I work remotely in the Czech Republic. I've used Linux for about 12 years, mainly Arch Linux and Fedora, but I've also administered Debian, Gentoo, and Ubuntu in the past.
|
||||
|
||||
![Image of Vojtech][1]
|
||||
|
||||
Photo description: Black and white image of a smiling Vojtech, with a red frame around it and an illustrated paper airplane in the background.
|
||||
|
||||
Outside of my day job, I play blind football, and I'm involved in various projects connecting visually impaired and sighted people together, including working in a small NGO that runs activities for blind and visually impaired people. I'm also working on an accessible Fedora project called [Vojtux][2], an unofficial Linux distribution aimed at visually impaired users.
|
||||
|
||||
### The assistive technology stack
|
||||
|
||||
When I use a smart device, I need several pieces of assistive technology. The first and most essential is called a screen reader. This is software that presents what's on the screen to blind or visually impaired people, either through speech or through braille (basically, it tries to serve as our eyes). It can read out notifications and tell me which button or page element I'm focusing on, allowing me to interact with graphical user interfaces.
|
||||
|
||||
Screen readers use speech synthesis to speak aloud what appears on the screen. There are a variety of speech synthesizers, and some voices are more "natural-sounding" than others. The one I use, Espeak, is not very natural-sounding, but it's lightweight and fast. It also supports almost all languages, including Czech (which I use).
|
||||
|
||||
Finally, I use a Braille display, a device that represents a line of text in Braille. I use this a lot, especially when I'm coding or doing code reviews. It's easier to grasp the structure of code when I can freely move from one code element to another by touch. I can also use its buttons to move the cursor to the character or area of the screen I'm interested in, and it has a Braille keyboard too if I want to use it.
|
||||
|
||||
### How I use assistive technology on a daily basis
|
||||
|
||||
When using a computer as a blind or visually impaired person, there are a couple of things that are relatively straightforward to do using the tech above. Personally, these are a few of the things I do every day:
|
||||
|
||||
- The text console is pretty much my favorite application. As a general rule, when something's in text, then blind people can read it with a screen reader (this doesn't hold true in all cases, but in most.) I mainly use the console for system management, text editing, and working with guidance and documentation.
|
||||
- I browse the web and interact with websites.
|
||||
- I code and do code reviews using VSCode and [Eclipse][3].
|
||||
- I send emails and instant messages.
|
||||
- I can use word processing software, like Google Docs (which is not open source, but common in the modern office) and [LibreOffice][4]. Google Docs developers have added a lot of keyboard shortcuts, which I can use to move around documents, jump to headings or into comments, and so on.
|
||||
- I can play multimedia, usually. It depends on how the application is written. Some media players are more accessible than others.
|
||||
|
||||
### Possible but painful
|
||||
|
||||
This brings me to tasks that aren't so easy. I like to call these "possible but painful".
|
||||
|
||||
PDF files can be difficult. Sometimes I end up needing to use optical character recognition (OCR) software to convert images to text. For example, recently I needed to read a menu for a restaurant. They had the PDF of their menu on their website, but it had been flattened, and didn't have a text layer. For me, this shows up as a blank screen. I had to use an OCR application from my smartphone to extract the text for me. Not only is this an extra step, but the resulting "translation" of the text isn't always entirely accurate.
|
||||
|
||||
Viewing and creating a presentation can be problematic. To work around this, I create slides in HTML, using software such as [Pandoc][5], which can process [markdown][6] and convert it into slides. I've been using this for many years and it works well—it allows me total control of the resulting slides, because the markdown is just simple text.
|
||||
|
||||
Video games can be made more accessible by basing them on sound or text. However, playing games can be doubly challenging on Linux as not only would you need to find an accessible game, but most PC games are also native to Windows so you would be dealing with some compatibility issues as well.
|
||||
|
||||
Some websites and interfaces are more difficult to navigate than others. These issues are often quite easy to solve just by setting some attributes correctly. In general, lots of web content comes in the form of images, especially today. One of the easiest ways to make web content more accessible is to make sure that alternative text is added to images so that screen readers can read it out, and people who cannot distinguish the image have some idea what's there. Another thing I experience a lot is unlabeled controls: you know there's a button or a check box but you don't know what it does.
|
||||
|
||||
### The Vojtux project optimises Linux for accessibility
|
||||
|
||||
Developers don't intentionally set out to build applications that aren't accessible. The problem is that they usually don't know how to test them. There aren't many blind Linux users, so there aren't many people testing the accessibility of applications and providing feedback. Therefore, developers don't produce accessible applications, and they don't get many users. And so the cycle continues.
|
||||
|
||||
This is one thing we hope to tackle with the Vojtux project. We want to create a Fedora remix that's user-friendly for visually impaired and blind users. We hope it will attract more users, and that those users start discovering issues to report, which will hopefully be solved by other developers in the open source community.
|
||||
|
||||
So why are we doing this? Well, it's important to point out that Fedora is not an inaccessible distribution by design. It does have many accessibility tools available in the form of packages. But these aren't always present from the beginning, and there are a lot of small things which need to be configured before it can be proficiently used. This is something that can be discouraging to a beginner Fedora user.
|
||||
|
||||
We want Vojtux to be as friendly and predictable for a blind user as possible. When a user launches a live image, the screen immediately starts being read as soon as a graphical user interface appears. All [environment variables][7] needed for accessibility are loaded and configured correctly.
|
||||
|
||||
Vojtux brings the following changes, among others:
|
||||
|
||||
- Environment variables for accessibility are configured from the start.
|
||||
- The Orca screen reader starts as soon as the graphical interface loads.
|
||||
- A custom repo is added with extra voice synthesis and packaged software.
|
||||
- Many alternative keyboard shortcuts have been added.
|
||||
- There's a special script that can turn your monitor on and off. Many users do not need the monitor at all and having it off is a great power saver!
|
||||
|
||||
### So how can you help?
|
||||
|
||||
First, if you'd like to contribute to Vojtux (or just spread the word), you can find out more on [our repository][2].
|
||||
|
||||
Additionally, when working on a team with someone who has a visual impairment, there might be some additional considerations depending on the accessibility tech being used. For example, it's not easy for us to listen to someone and read at the same time, because we are basically getting both things through audio, unless someone is very proficient with the Braille display.
|
||||
|
||||
Lastly, bear in mind that blind and visually impaired users consume the same end products as you do, whether that's presentation slides or websites or PDFs. When building products or creating content, your choices have a huge effect on accessibility and how easy it is for us to engage with the end result. Know that we are here, we love to use computers and technology, and we're often willing to help you test it, too.
|
||||
|
||||
![Image of Vojtech holding a football][8]
|
||||
|
||||
Image description: Vojtech holding a football. He is wearing a football uniform and protective goggles.
|
||||
|
||||
This article originally published in September 2022 and has since been updated with the project's official name, Vojtux.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/9/linux-visually-impaired-users
|
||||
|
||||
作者:[Vojtech Polasek][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/vpolasek
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/2022-08/Vojtech.png
|
||||
[2]: https://github.com/vojtapolasek/Fegora
|
||||
[3]: https://opensource.com/article/20/12/eclipse
|
||||
[4]: https://opensource.com/article/22/2/libreoffice-accessibility
|
||||
[5]: https://opensource.com/article/18/9/intro-pandoc
|
||||
[6]: https://opensource.com/article/19/9/introduction-markdown
|
||||
[7]: https://opensource.com/article/19/8/what-are-environment-variables
|
||||
[8]: https://opensource.com/sites/default/files/2022-08/Vojtech%20holding%20a%20football.jpg
|
@ -0,0 +1,85 @@
|
||||
[#]: subject: "Write documentation like you develop code"
|
||||
[#]: via: "https://opensource.com/article/22/10/docs-as-code"
|
||||
[#]: author: "Lorna Mitchell https://opensource.com/users/lornajane"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Write documentation like you develop code
|
||||
======
|
||||
|
||||
Don't want documentation to be an afterthought? Try a new approach.
|
||||
|
||||
Many engineers and craftspeople are particular about their tools. To do a job well, you need the best tools and the skills to use them. The best tools in software development can be very powerful when applied to other kinds of digital creation. The [Docs as Code][1] approach is a great example. Docs as Code entails writing documentation using the same tools and workflows used for developing code. Proponents of Docs as Code report that this method leads to better documentation while easing the workload of the people who write it.
|
||||
|
||||
### Text formats and source control
|
||||
|
||||
The most significant adjustment when moving from a more traditional documentation platform to the Docs as Code approach is that the content is stored in a text-based markup format. This change makes all the tools for text-based materials available for generating documentation. Whether you choose [DocBook][2], [Markdown][3], or another markup language, the transition from using just one tool to using a standard format and a variety of tools is a big change.
|
||||
|
||||
Finding tools that support your workflow is really important. Many developers use their [coding editors][4] when working on Docs as Code projects. Since they are already advanced-level users with that tool, it works well for them. Finding tooling that fits the other professionals on the team, such as technical writers, editors, information architects, and documentation product owners, may take more effort. A few options to consider:
|
||||
|
||||
- One of the many [good markdown editors][5] available
|
||||
- Coding editors with good preview tools, which make them approachable for non-coders
|
||||
- The web interfaces of popular Git hosting services, especially for occasional contributors
|
||||
|
||||
Once content is safely in a markup format, the project can use source control such as [Git][6], an open source tool with many more features than most documentation platforms can claim:
|
||||
|
||||
- A clear and detailed version history of who changed what and when. If you have good commit message culture, you may even be able to learn why the change was made.
|
||||
- Easy parallel change processes. Working in branches in Git means everyone can make all the changes they want to and combine them at the end.
|
||||
- Advanced collaboration and review tooling. All the source-control platforms are designed to review each change in detail and have as much discussion as needed until everyone is confident that the change can go ahead.
|
||||
- Automated quality checks such as spellchecking and link checking. This saves time and catches errors that might otherwise be missed.
|
||||
|
||||
Source control has many benefits. Just keep in mind that if you're new to source control, it has a learning curve. There are some excellent [learning resources][7] and [articles for writers][8] that can help. You can also let your curious documentarians find the learning materials that work for them rather than asking your engineers to teach them. (Ask me how I learned this—the hard way of course!)
|
||||
|
||||
### Pull requests and review cycles
|
||||
|
||||
All source-control platforms are designed around the concept of pull requests, sometimes also called merge requests. Someone, or some team, puts together a set of changes and then requests that the changes are pulled into the main project. In many ways, working with many changes at once is easier in documentation than in code. Changing one article in one place in documentation has fewer side effects than when you change code and find that there were several other sections depending on it.
|
||||
|
||||
The most powerful collaboration tool is the [diff][9], which shows the difference between old and new versions in a way that's easy to follow. There are many versions of this tool available to make the comparison view easier to look at: side-by-side, inline, or even as rendered markdown rather than just text. Each team member can use the tool or tools that work best for them. For example, the web view is commonly used to look at a small change, but for something bigger I would want to look at it locally using `vimdiff` or [Meld][10].
|
||||
|
||||
Review comments can be added to the change as a whole or to individual lines in the proposed change. Some projects adopt a maximum line length, called a hard wrap, or start each sentence on a new line to make it easier to attach comments to specific parts of a block of text. Further changes and comments can be added until the review process is complete and the change is accepted. Since the pull requests are shown in a queue on the repository for the project, this is a good way to show what's in progress and what needs review attention. The tools make it easy for reviewers to add their thoughts. In particular, if you are working with technical audiences it can be easier to get reviews from these folks via the tools they use daily.
|
||||
|
||||
### Continuous integration and deployment
|
||||
|
||||
Having the source of your documentation available in plain text has many benefits, such as making it easy to find every occurrence of something that needs changing and using existing tools such as [wc][11], [grep][12], or `tree` to work with potentially large document sets. When you combine this with a source-control platform, even more existing tools become available, and they're all open source.
|
||||
|
||||
One big workflow improvement is the ability to have continuous deployment in place. This simply means that when a pull request is merged into the main project, the project is immediately and automatically deployed. If the change is good enough to be accepted into the project, it is also good enough to be live on the documentation site, helping your readers. Typically, continuous deployment is set up with either a separate automation server, such as [Jenkins][13], or [Git Hooks][14]. Either way, the text-based markup is combined with the Docs as Code platform (usually a static site generator such as [Hugo][15] or [Sphinx][16]) to produce the documentation website, which is then deployed.
|
||||
|
||||
The same automation can be used before deployment to add some excellent checks to the pull requests before they are merged. On a coding project, it's common to run code linters, tests, and other quality checks that a machine can do itself. Documentation projects can get the same treatment, with tools like [Vale][17] to do prose linting and check for correct heading styles, spellings, and so on. It's also useful to add other tools here, such as a link checker to make sure all the links go somewhere valid.
|
||||
|
||||
### Code tools for docs workflows
|
||||
|
||||
The tools known and loved by engineers are very good tools, but they are useful for all sorts of other projects too. For documentation, they contribute valuable efficiency, especially when you need your documentation to be moving at the same speed as your development teams. All the tools discussed here are open source, so you can try them for yourself, deploy them for a huge global team, or anything in between. May your docs process be as smooth as any code process.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/docs-as-code
|
||||
|
||||
作者:[Lorna Mitchell][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/lornajane
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.writethedocs.org/guide/docs-as-code
|
||||
[2]: https://opensource.com/article/17/9/docbook
|
||||
[3]: http://commonmark.org
|
||||
[4]: https://opensource.com/article/20/12/eclipse
|
||||
[5]: https://opensource.com/article/21/10/markdown-editors
|
||||
[6]: https://opensource.com/downloads/cheat-sheet-git
|
||||
[7]: https://opensource.com/article/18/1/step-step-guide-git
|
||||
[8]: https://opensource.com/article/19/4/write-git
|
||||
[9]: https://opensource.com/article/21/11/linux-diff-patch
|
||||
[10]: https://opensource.com/article/20/3/meld
|
||||
[11]: https://www.redhat.com/sysadmin/linux-wc-command?intcmp=7013a000002qLH8AAM
|
||||
[12]: https://opensource.com/downloads/grep-cheat-sheet
|
||||
[13]: https://www.jenkins.io
|
||||
[14]: https://www.redhat.com/sysadmin/git-hooks
|
||||
[15]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo
|
||||
[16]: https://opensource.com/article/19/11/document-python-sphinx
|
||||
[17]: https://vale.sh
|
@ -0,0 +1,262 @@
|
||||
[#]: subject: "20 technology horror stories about learning the hard way"
|
||||
[#]: via: "https://opensource.com/article/22/10/technology-horror-stories"
|
||||
[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
20 technology horror stories about learning the hard way
|
||||
======
|
||||
|
||||
Sysadmins, web designers, engineers, and programmers share their scariest experiences on the command line.
|
||||
|
||||
Halloween will be here before you know it! This fun, over-the-top holiday is a great time to ponder the mortal fears of the developer in each of us. What haunts you the most, in the quiet moments just before your code starts to run?
|
||||
|
||||
Getting into the spirit of Halloween, I asked some Opensource.com writers: What's the scariest code you've seen or written?
|
||||
|
||||
### Bad permissions
|
||||
|
||||
I was responsible for a server, and I FTP'd something up. There were some funky things displaying, so I thought some permissions needed to be changed.
|
||||
|
||||
Needless to say, I foolishly turned off read mode and took down the site. (A website is not much good when nobody can access it.)
|
||||
|
||||
It took me hours to fix. This was at an agency years ago when I was the sole web developer.
|
||||
|
||||
—[Miriam Goldman][1]
|
||||
|
||||
### Shambling HTML
|
||||
|
||||
I took down a client's website, who was an author on the Wall Street Journal bestseller list at the time, because the original WordPress default theme had an update available.
|
||||
|
||||
His developer had hardcoded HTML into the theme instead of creating a child theme. I ran the update.
|
||||
|
||||
This was in the days when folks didn't have nightly backups easily, so I spent hours on the phone with the hosting provider. Things like staging, child themes, nightly backups, or manual backups, are all now normal things, as well as the ability to auto-update and manually roll back. Not so in that era.
|
||||
|
||||
—[Courtney Robertson][2]
|
||||
|
||||
### Not-so-secret key
|
||||
|
||||
I think many of us have seen a secret key in public code before. Or another favorite: A friend of mine sending emails to 100,000 users from the dev server.
|
||||
|
||||
—[John E. Picozzi][3]
|
||||
|
||||
### Unix mix-up
|
||||
|
||||
This is a Unix story. It's fixed in [Linux][4] today.
|
||||
|
||||
A day before I was going to give an important demo of a new component to management, I had to refresh my code (this was way before [Git][5] existed.) I went to my home directory, found the project directory, and deleted everything. Unfortunately, in that flavor of Unix, this command followed symbolic links, and I had a link to the latest version of the code (not all was on the source code system as it was still in the testing phase).
|
||||
|
||||
A day later, there was a network problem in the building, so the demo was delayed for a day, and we managed to recover. It was more than three decades ago. Even now I have no clue whether the network problem was a coincidence or an attempt of our sysadmin to save us (if so, it worked!)
|
||||
|
||||
—[Josh Salomon][6]
|
||||
|
||||
### Imperative
|
||||
|
||||
Seeing `!important;` all over a CSS file instead of proper use of specificity.
|
||||
|
||||
I once had to override and customize almost all of a WordPress theme's CSS because the owner of the site wouldn't budge on getting a new theme that was closer to the design he wanted.
|
||||
|
||||
That same theme was last updated by the developer in 2018, and the website is still using it.
|
||||
|
||||
—[Christi Nickerson][7]
|
||||
|
||||
### Misquoted
|
||||
|
||||
In a previous role, my predecessor misquoted the lyrics to Journey's "Any Way You Want It" in a code comment.
|
||||
|
||||
—[Ben Cotton][8]
|
||||
|
||||
### The ghost of Algol68
|
||||
|
||||
Algol68's complexity, back in the late 1960s and early 1970s, frightened away many influential people, including Niklaus Wirth. The most common complaint I can recall back then was along the lines of "who could write a compiler for such a complicated beast?" And yet many people did. Moreover, many of the concepts developed or at least formalized as [Algol68][9] appeared in later languages, notably in C and the Bourne shell (thanks to Steve Bourne).
|
||||
|
||||
Some of Algol68's concepts have not aged well. The concept of I/O dealing with "books" and "chapters," and so on, is a bit weird today. Leaving things like character sets to the implementation seems pretty old-fashioned.
|
||||
|
||||
But some are, or should be, tremendously relevant today, such as expressions that yield a value, strong typing (types in Algol68 are called "modes"), [heap memory and garbage collection][10], definition and overloading of operators, and more.
|
||||
|
||||
Sticking with the Hallowe'en theme, both tricks and treats.
|
||||
|
||||
Algol68 is a language that merits study, if for no other reason than to see where so many of modern computing's ideas came from, and to see how many have been lost along the way.
|
||||
|
||||
—[Chris Hermansen][11]
|
||||
|
||||
### Passwords exposed
|
||||
|
||||
I was doing a tech audit for an incoming support client, and the previous developer put passwords in plain text throughout the full theme, and used horrible ways to connect to a remote database. Their composer file was also ghoulishly bloated. It took five minutes every time I tried to get the site up and running locally. Outdated dependencies, repos I could not access, the list goes on.
|
||||
|
||||
—[Miriam Goldman][1]
|
||||
|
||||
### The maze
|
||||
|
||||
The scariest code I ever saw was a piece of PDP-11 assembly language in the kernel of an operating system named RSTS, which nobody remembers today. Source code was on microfiche in those days, and I had followed this code path through a few twists and turns, trying to figure out what was going on. And then, I ran into this instruction:
|
||||
|
||||
```
|
||||
MOV R5,PC
|
||||
```
|
||||
|
||||
I threw up my hands and wailed. I really did wail. People in the office thought I'd hit my head, or had a heart attack.
|
||||
|
||||
In those days, memory was precious and a `MOV` instruction used a teeny tiny bit less memory than a `BR` (for "branch") instruction. Copying the contents of register 5 into the program counter was really a cheap unconditional branch to the address stored in register 5. Except, I had no clue what was stored in register 5, or how to find it.
|
||||
|
||||
To this day, almost 40 years later, I wonder who would write code like that and how anyone could debug it.
|
||||
|
||||
—[Greg Scott][12]
|
||||
|
||||
### Off by one
|
||||
|
||||
I work in the automation industry, where the PLCs are programmed in some pretty weird languages.
|
||||
|
||||
An example that haunts me is the fact that in the language [ST][13], you can define arrays to begin at index 1. It means that the first element is at position 1, not 0. It drives me nuts when I see it.
|
||||
|
||||
—[Stephan Avenwedde][14]
|
||||
|
||||
### Divergence
|
||||
|
||||
I took a MongoDB instance down for 40 minutes once during a stage-to-prod launch. Our staging environment had diverged from production. It was just a database configuration difference—not very exciting. But it's a good lesson to make sure your staging and prod environments are in sync!
|
||||
|
||||
—[Em Nouveau][15]
|
||||
|
||||
### Unearthly whispers
|
||||
|
||||
This is from a project that's still alive and kicking, but I've changed the code to hide the source.
|
||||
|
||||
```
|
||||
for(int c =0; y < yyy && c < ccc; y++, c++){// some code here}
|
||||
```
|
||||
|
||||
It seems like an innocent loop at first. But maybe you're asking why there are two variables with two stop conditions and two increments. And then you realize there's only one initializer and the second variable (`y`) is initialized before this loop in a different code block.
|
||||
|
||||
When I realized this, it took me about an hour to understand why the code was written in this way, and how it's supposed to work. Obviously, there were no `c` comments and the variable names are meaningless (`c` is called `c` in the code and `y` has a bit more meaningful name, but not meaningful enough to explain to me its meaning, not even today when I understand what it does).
|
||||
|
||||
—[Josh Salomon][6]
|
||||
|
||||
### Critical data
|
||||
|
||||
Around 1980, I got my first job after college. I was the Assistant Computing Center Director at an engineering college in Indiana. That's a fancy title for the second-in-command of a two-person IT shop. I handled administrative computing on a PDP-11/40, with RK05 removable "pizza platter" disk drives (2.5 MB each.) Each admin office had one drive, and part of my job was to back them up, disk to disk, every week. But I got busy over that summer and skipped the Registrar's Office four weeks in a row. And then I realized the risk, so I made sure to start my monthly disk-to-tape backup.
|
||||
|
||||
I dismounted the Registrar's pizza platter from the 11/40 and mounted it on the 11/70, which had a 9-track tape drive, and started my backup. A few minutes later, I heard a scraping noise inside that disk drive. Yep, the heads crashed. In a few short minutes, I'd destroyed all the Registrar's data, and the then-most-recent backup, which was a four-week-old 9 track tape.
|
||||
|
||||
It was a, well, uncomfortable moment when I had to look the Registrar department head in the eye and tell him I had destroyed all his data.
|
||||
|
||||
Today, I tell new IT people you're not a pro until you've destroyed somebody's critical data, and there's no way to recover it. Remember that feeling in the pit of your stomach forever.
|
||||
|
||||
—[Greg Scott][12]
|
||||
|
||||
### Angry mob
|
||||
|
||||
A client hacked WordPress core to add features that later came out in a routine update and couldn't understand why the site kept crashing every time they attempted to update LearnDash. (They also didn't like our report that called out their poor development practices.) They basically showed us the door calling us liars and incompetents. To this day, I still have delegate access to their domains and wp-admin access to production and development of two domains.
|
||||
|
||||
They also, despite us sharing a link to an encrypted location for sharing access credentials, sent our logins over emails.
|
||||
|
||||
—[Laura Byrne][16]
|
||||
|
||||
### Don't forget to backup
|
||||
|
||||
I've not worked much on corporate networks, so I haven't downed any servers. However, as I young person, I tried to help a person with an IT problem and somehow caused Windows 95 to crash, and had to reinstall it for free.
|
||||
|
||||
Another of my saddest moments as a very young Amiga user was when my save disk, containing all my files, broke due to some mechanical failure. Nowadays, I've gotten better at backing up more of my important personal files.
|
||||
|
||||
—[Rikard Grossman-Nielsen][17]
|
||||
|
||||
### Root of all evil
|
||||
|
||||
I was new to Linux, and I'd just come from DOS where I used Norton Commander. Then Midnight Commander got released and I was very happy about it. It wasn't packaged for the Linux distro I used at the time (Jurix), so I compiled it myself from source, just like other software I used at that time. It worked perfectly well, and suddenly I felt more at home on Linux.
|
||||
|
||||
That's not the horror story.
|
||||
|
||||
My colleagues told me not to run Midnight Commander as root, regardless of how comforting it was. But root was easy, and it felt more like DOS, so I ignored their advice. Long story short: I accidentally removed the content of the entire `/etc` directory. Until that time, I'd never had to use backups, but that day I learned that backups are actually useful.
|
||||
|
||||
27 years later, I still remember this story, and I do regular backups.
|
||||
|
||||
—[Peter Czanik][18]
|
||||
|
||||
### Illusion
|
||||
|
||||
The worst project one agency had me "make" was a one-pager that seemed straightforward at first. I said I'd be able to hash it together with some HTML and CSS, maybe a little Javascript. But they specifically asked me not to do that. They wanted me to cut out the design and literally use CSS to position those pieces around the page. They also had me add all CSS inline, directly into the HTML file, because they literally wanted **one page**.
|
||||
|
||||
None of the text was real text.
|
||||
|
||||
There were no real HTML elements aside from the ones needed to position those images.
|
||||
|
||||
I told them that the design was simple enough that I could throw it together with actual code, but they didn't want that. They only wanted me to spend the time to cobble the pieces together and then move on to a different project. They had me make two little one-page sites like that.
|
||||
|
||||
It hurt my front-end soul. It was physically painful for me to do that project. It was a temp-to-perm gig, and when they offered me full-time, I politely declined.
|
||||
|
||||
—[Rachel Vasquez][19]
|
||||
|
||||
### Corruption
|
||||
|
||||
The scariest things to me are memory corruptions that can occur in ANSI C99. During a screencast, I captured this (not quite) paranormal occurrence in this [YouTube clip][20].
|
||||
|
||||
![Image of gseqencer before memory corruption.][21]
|
||||
|
||||
The GtkEntry labeled `file` shows some random glyphs. I've double checked the [code][22], but didn't find any issues.
|
||||
|
||||
The `ags_export_soundcard_open_response_callback()` function is a callback to the "response" event of GtkFileChooserDialog. (For the record, the tool to target this problem is [valgrind][23].)
|
||||
|
||||
![Image of gsequencer after memory corruption.][24]
|
||||
|
||||
—[Joël Krähemann][25]
|
||||
|
||||
### Python fears
|
||||
|
||||
The most horrific programming feature I ever saw is the access Python gives to its `dict`. Changing the type of an object at runtime is against my programming code of conduct.
|
||||
|
||||
—[Josh Salomon][6]
|
||||
|
||||
### Franken-net
|
||||
|
||||
In 2006, I built firewalls based on Fedora and a bunch of scripting, and persuaded a customer with a large website inside a colo center to replace a proprietary firewall with one of mine. I built it and showed up to install it at 4AM one morning. That was when I learned (the hard way) that he had a load balancer behind his firewall, but with a public IP address. The customer endured a 5-minute outage, but I reconnected everything to the original, and it all came back online.
|
||||
|
||||
I found a way to handle his franken-net configuration by using proxy ARP. The idea was whenever anyone from the outside world did an ARP request for the load balancer, I would answer. A few days later, I showed up at 4AM again and installed my system. This time, I knocked everything in the entire colo center offline. I had set up my proxy ARP to respond to everything, and so all traffic on the LAN eventually found me and disappeared into a black hole.
|
||||
|
||||
Once I realized what I'd done, I put it all back the way it was. But the damage was done. If you tried to browse your favorite website around 4AM US Central time one morning in 2006 and it didn't respond, it might have been my fault. I knocked an entire colo site offline by installing one system in a rack and turning it on.
|
||||
|
||||
The website operator screamed and I slunk out the door. They never invited me back to try again. That was a shame, because bridging probably would have worked.
|
||||
|
||||
—[Greg Scott][12]
|
||||
|
||||
### Your horror story
|
||||
|
||||
What's your favorite technology-related horror story? Tell us in the comments (but be nice, and change project names to protect the innocent!)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/technology-horror-stories
|
||||
|
||||
作者:[AmyJune Hineline][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/amyjune
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/users/miriamgoldman
|
||||
[2]: https://opensource.com/users/courtneyrdev
|
||||
[3]: https://opensource.com/users/johnpicozzi
|
||||
[4]: https://opensource.com/tags/linux
|
||||
[5]: https://opensource.com/downloads/cheat-sheet-git
|
||||
[6]: https://opensource.com/users/joshs
|
||||
[7]: http://cnickerson.com
|
||||
[8]: https://opensource.com/users/bcotton
|
||||
[9]: https://opensource.com/article/20/12/learn-algol-68
|
||||
[10]: https://opensource.com/article/22/6/garbage-collection-java-virtual-machine
|
||||
[11]: https://opensource.com/users/clhermansen
|
||||
[12]: https://opensource.com/users/greg-scott
|
||||
[13]: https://en.wikipedia.org/wiki/Structured_text
|
||||
[14]: https://opensource.com/users/hansic99
|
||||
[15]: https://opensource.com/users/nouveau
|
||||
[16]: http://twitter.com/@NewYorkerLaura
|
||||
[17]: https://opensource.com/users/rikardgn
|
||||
[18]: https://opensource.com/users/czanik
|
||||
[19]: https://opensource.com/users/rachievee
|
||||
[20]: https://youtu.be/Go6r-CT06zc?t=103
|
||||
[21]: https://opensource.com/sites/default/files/2022-10/gsequencer-before-memory-corruption.png
|
||||
[22]: https://git.savannah.nongnu.org/cgit/gsequencer.git/tree/ags/app/ags_export_soundcard_callbacks.c?h=4.4.x#n397
|
||||
[23]: https://opensource.com/article/21/8/memory-programming-c
|
||||
[24]: https://opensource.com/sites/default/files/2022-10/scarygsequencer-after-memory-corruption.png
|
||||
[25]: https://opensource.com/users/joel2001k
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (FYJNEVERFOLLOWS )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
@ -226,7 +226,7 @@ via: https://opensource.com/article/20/2/linux-sox
|
||||
|
||||
作者:[Klaatu][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,75 +0,0 @@
|
||||
[#]: subject: "My top 5 tips for setting up Terraform"
|
||||
[#]: via: "https://opensource.com/article/21/8/terraform-tips"
|
||||
[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "cool-summer-021"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
My top 5 tips for setting up Terraform
|
||||
======
|
||||
These are the lessons I've learned after five years with Terraform.
|
||||
![Puzzle pieces coming together to form a computer screen][1]
|
||||
|
||||
Working with Terraform for over five years has taught me some key lessons. Five practices have been critical to having a logical and usable Terraform setup regardless of the size of the team or the nature of the project.
|
||||
|
||||
### 1\. Know your target audience.
|
||||
|
||||
This one might seem obvious, but I've seen it go wrong several times. When organizing Terraform code, either standardizing the directory structure or defining naming conventions, it's vital to consider the intended audience. Will your team be using these Terraform scripts and modules? Are you handing the work over to another team? Will new people be joining your team sooner or later? Are you working on this project solo? Will you be using this setup in six months or a year, or will it be assigned to someone else?
|
||||
|
||||
Questions like these affect several decisions. Ideally, you should have [Remote State][2] and [State Locking][3] in place regardless of the team size now or in the future. Remote State will ensure your laptop is not the only place your Terraform works, and State Locking will ensure that only one person at a time is changing the infrastructure.
|
||||
|
||||
The naming convention should make sense to the eventual owners of the project, not just the team that is writing the code. If the project is for another team, make sure they have a say in the naming convention. If non-technical stakeholders or internal security/GCR teams review the code, make sure they check the naming convention. In addition to resource names, you should leverage resource tags to highlight any data classification/privacy requirements (high, medium, low) for more careful examination by reviewers.
|
||||
|
||||
### 2\. Reuse. Reuse. Reuse.
|
||||
|
||||
The [Terraform Registry][4] provides a library of ready-to-use modules for the most common use-cases. I've written about the extensive parameterization available in the VPC module and security groups. Simply calling modules with different parameters is enough to handle most, if not all, potential use cases. Reuse these shared modules as much as possible to avoid endless typing, testing, checking, fixing, and refactoring.
|
||||
|
||||
I've also found that separating modules and resources based on the frequency of use or change is beneficial. For example, infrastructure scaffolding used only once belongs together, such as setting up the VPC, security groups, routing tables, VPC endpoints, and so on. But things like private hosted zone entries, autoscaling groups, target groups, load balancers, etc., might change with every deployment, so separating these from the one-time scaffolding will make code reviews easier and debugging faster.
|
||||
|
||||
### 3\. Be explicit rather than implicit.
|
||||
|
||||
There are common patterns to Terraform code that I have seen lead to incorrect assumptions baked into the design. Teams can assume that the Terraform version used to write the code today will never change, or the external modules won't change, or the providers they are using won't change. These lead to invisible issues a few weeks down the road when these external dependencies inevitably get updated.
|
||||
|
||||
Ensure you explicitly define versions everywhere possible: In the main Terraform block, in the provider block, in the module block, etc. Defining versions ensures that your dependent libraries stay frozen so that you can explicitly update dependencies when required after thorough discussions, reviews, and testing.
|
||||
|
||||
### 4\. Automate everywhere. Your laptop. Your shared VM. Your CI/CD.
|
||||
|
||||
Leveraging automation at every stage of the deployment process can avoid future problems before they even arise.
|
||||
|
||||
Use [Git pre-commit hooks][5] to run `terraform fmt` and `terraform validate` before you commit your code. Pre-commit hooks ensure that code is, at a bare minimum, adequately formatted and syntactically correct. Check-in this pre-commit file to the repo, and everyone on your team can benefit from the same automation. This small but vital quality control at the first step of the process can achieve substantial time savings as your project progresses.
|
||||
|
||||
All modern deployment tools have CI processes. You can use these to run SAST and unit testing tools when pushing your code to origin. I've written on my blog about how [Checkov can test Terraform code for security and compliance and create custom checks][6] for organization-specific conventions. Add these unit testing tools to your CI pipeline to improve code quality and robustness.
|
||||
|
||||
### 5\. Have an awesome README.md.
|
||||
|
||||
We all like to think that Terraform code is self-documenting. Sure it is, but only if your future team already knows your company's naming conventions and guidelines and secret handshakes and inside jokes and whatever else your repo contains besides valid Terraform code. Getting into the habit of having a good `README.md` can be a huge time saver, and it keeps your team honest by holding them accountable for everything explicitly committed to in the README.
|
||||
|
||||
At a minimum, your README should contain the steps to initialize the right Terraform environment on your workstations (Linux, Windows, Mac, and so on), including the Terraform version to install. It should specify the required dependencies (Checkov, TerraGrunt, and others) with versions and any handy Linux aliases your team uses (some people like to define `tff` as a short-hand for `terraform fmt`). Most importantly, the branching and PR review strategy and process, naming conventions, and resource tagging standards should be specified.
|
||||
|
||||
The README should pass a simple test: if a new member joins your team tomorrow, is the README enough to teach them what to do and how to do it correctly? If not, you may find yourself hosting never-ending standards and process meetings repeatedly for the next few months.
|
||||
|
||||
### Wrap up
|
||||
|
||||
After many years of working with Terraform, these are my five best bits of wisdom to pass along. Feel free to share your own best practices below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/8/terraform-tips
|
||||
|
||||
作者:[Ayush Sharma][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/ayushsharma
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen)
|
||||
[2]: https://www.terraform.io/docs/language/state/index.html
|
||||
[3]: https://www.terraform.io/docs/language/state/locking.html
|
||||
[4]: https://registry.terraform.io/
|
||||
[5]: https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6
|
||||
[6]: https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov
|
@ -1,102 +0,0 @@
|
||||
[#]: subject: "What you need to know about compiling code"
|
||||
[#]: via: "https://opensource.com/article/22/10/compiling-code"
|
||||
[#]: author: "Alan Smithee https://opensource.com/users/alansmithee"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Donkey-Hao"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
What you need to know about compiling code
|
||||
======
|
||||
Use this handy mousetrap analogy to understand compiling code. Then download our new eBook, An open source developer's guide to building applications.
|
||||
|
||||
Source code must be compiled in order to run, and in open source software everyone has access to source code. Whether you've written code yourself and you want to compile and run it, or whether you've downloaded somebody's project to try it out, it's useful to know how to process source code through a [compiler][2], and also what exactly a compiler does with all that code.
|
||||
|
||||
### Build a better mousetrap
|
||||
|
||||
We don't usually think of a mousetrap as a computer, but believe it or not, it does share some similarities with the CPU running the device you're reading this article on. The classic (non-cat) mousetrap has two states: it's either set or released. You might consider that *on* (the kill bar is set and stores potential energy) and *off* (the kill bar has been triggered.) In a sense, a mousetrap is a computer that calculates the presence of a mouse. You might imagine this code, in an imaginary language, describing the process:
|
||||
|
||||
```
|
||||
if mousetrap == 0 then
|
||||
There's a mouse!
|
||||
else
|
||||
There's no mouse yet.
|
||||
end
|
||||
```
|
||||
|
||||
In other words, you can derive mouse data based on the state of a mousetrap. The mousetrap isn't foolproof, of course. There could be a mouse next to the mousetrap, and the mousetrap would still be registered as *on* because the mouse has not yet triggered the trap. So the program could use a few enhancements, but that's pretty typical.
|
||||
|
||||
### Switches
|
||||
|
||||
A mousetrap is ultimately a switch. You probably use a switch to turn on the lights in your house. A lot of information is stored in these mechanisms. For instance, people often assume that you're at home when the lights are on.
|
||||
|
||||
You could program actions based on the activity of lights on in your neighborhood. If all lights are out, then turn down your loud music because people have probably gone to bed.
|
||||
|
||||
A CPU uses the same logic, multiplied by several orders of measure, and shrunken to a microscopic level. When a CPU receives an electrical signal at a specific register, then some other register can be tripped, and then another, and so on. If those registers are made to be meaningful, then there's communication happening. Maybe a chip somewhere on the same motherboard becomes active, or an LED lights up, or a pixel on a screen changes color.
|
||||
|
||||
**[[ Related read 6 Python interpreters to try in 2022 ]][3]**
|
||||
|
||||
What comes around goes around. If you really want to detect a rodent in more places than the one spot you happen to have a mousetrap set, you could program an application to do just that. With a webcam and some rudimentary image recognition software, you could establish a baseline of what an empty kitchen looks like and then scan for changes. When a mouse enters the kitchen, there's a shift in the pixel values where there was previously no mouse. Log the data, or better yet trigger a drone that focuses in on the mouse, captures it, and moves it outside. You've built a better mousetrap through the magic of on and off signals.
|
||||
|
||||
### Compilers
|
||||
|
||||
A code compiler translates human-readable code into a machine language that speaks directly to the CPU. It's a complex process because CPUs are legitimately complex (even more complex than a mousetrap), but also because the process is more flexible than it strictly "needs" to be. Not all compilers are flexible. There are some compilers that have exactly one target, and they only accept code files in a specific layout, and so the process is relatively straight-forward.
|
||||
|
||||
Luckily, modern general-purpose compilers aren't simple. They allow you to write code in a variety of languages, and they let you link libraries in different ways, and they can target several different architectures. The [GNU C Compiler (GCC)][4] has over 50 lines of options in its `--help` output, and the LLVM `clang` compiler has over 1000 lines in its `--help` output. The GCC manual contains over 100,000 words.
|
||||
|
||||
You have lots of options when you compile code.
|
||||
|
||||
Of course, most people don't need to know all the possible options. There are sections in the GCC man page I've never read, because they're for Objective-C or Fortran or chip architectures I've never even heard of. But I value the ability to compile code for several different architectures, for 64-bit and 32-bit, and to run open source software on computers the rest of the industry has left behind.
|
||||
|
||||
### The compilation lifecycle
|
||||
|
||||
Just as importantly, there's real power to understanding the different stages of compiling code. Here's the lifecycle of a simple C program:
|
||||
|
||||
1. C source with macros (.c) is preprocessed with `cpp` to render an `.i` file.
|
||||
2. C source code with expanded macros (.i) is translated with `gcc` to render an `.s` file.
|
||||
3. A text file in Assembly language (.s) is `as`sembled with as into an `.o` file.
|
||||
4. Binary object code with instructions for the CPU, and with offsets not tied to memory areas relative to other object files and libraries (*.o) is linked with `ld` to produce an executable.
|
||||
5. The final binary file either has all required objects within it, or it's set to load linked dynamic libraries (*.so files).
|
||||
|
||||
And here's a simple demonstration you can try (with some adjustment for library paths):
|
||||
|
||||
```
|
||||
$ cat << EOF >> hello.c
|
||||
#include
|
||||
int main(void)
|
||||
{ printf("hello world\n");
|
||||
return 0; }
|
||||
EOF
|
||||
$ cpp hello.c > hello.i
|
||||
$ gcc -S hello.i
|
||||
$ as -o hello.o hello.s
|
||||
$ ld -static -o hello \
|
||||
-L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \
|
||||
/usr/lib64/crt1.o /usr/lib64/crti.o hello.o \
|
||||
/usr/lib64/crtn.o --start-group -lc -lgcc \
|
||||
-lgcc_eh --end-group
|
||||
$ ./hello
|
||||
hello world
|
||||
```
|
||||
|
||||
### Attainable knowledge
|
||||
|
||||
Computers have become amazingly powerful, and pleasantly user-friendly. Don't let that fool you into believing either of the two possible extremes: computers aren't as simple as mousetraps and light switches, but they also aren't beyond comprehension. You can learn about compiling code, about how to link, and compile for a different architecture. Once you know that, you can debug your code better. You can understand the code you download. You may even fix a bug or two. Or, in theory, you could build a better mousetrap. Or a CPU out of mousetraps. It's up to you.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/compiling-code
|
||||
|
||||
作者:[Alan Smithee][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Donkey-Hao](https://github.com/Donkey-Hao)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/alansmithee
|
||||
[b]: https://github.com/lkxed
|
||||
[2]: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters
|
||||
[3]: https://opensource.com/article/22/9/python-interpreters-2022
|
||||
[4]: https://opensource.com/article/22/5/gnu-c-compiler
|
@ -1,283 +0,0 @@
|
||||
[#]: subject: "Give Your Linux Desktop a Halloween Makeover"
|
||||
[#]: via: "https://itsfoss.com/linux-halloween-makeover/"
|
||||
[#]: author: "Sreenath https://itsfoss.com/author/sreenath/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Give Your Linux Desktop a Halloween Makeover
|
||||
======
|
||||
|
||||
Halloween is around the corner. Boo!
|
||||
|
||||
Of course, there are ways to celebrate Halloween, and I believe you might have a few ideas of your own. How about giving your Linux desktop a spooky, dark makeover? Something like the screenshot below?
|
||||
|
||||
![ubuntu halloween theming final looks][1]
|
||||
|
||||
Customization is a high point of Linux, and there is no end to it. Earlier, we showed you[how to make your Linux look like macOS][2]. Today, I’ll share a few tips to keep up with the Halloween ‘spirit’.
|
||||
|
||||
This is possible with a combination of themes, icons, extensions, fonts, conky, etc. **_While you can do these things on any distribution and desktop environment, it’s not feasible for me to show them all in a single tutorial._**
|
||||
|
||||
Here, I have used Ubuntu with the GNOME desktop environment.
|
||||
|
||||
### Getting all the tools
|
||||
|
||||
You need several packages and tools. Make sure you have them all (or most of them) before you start the customization.
|
||||
|
||||
_It’s not mandatory to make all of the changes. But the more you do, the better look and feel you get._
|
||||
|
||||
**GNOME Tweaks and GMOME Extensions manager**
|
||||
|
||||
Get the Tweaks tool and the extension manager with this command:
|
||||
|
||||
```
|
||||
`sudo apt install gnome-tweaks gnome-extension-manager`
|
||||
```
|
||||
|
||||
In KDE-based systems, you don’t any tweak tool to change the look. But surely, you will need the **Kvantum-Manager** app that I discussed in the [KDE theming][3] guide.
|
||||
|
||||
**Conky**
|
||||
|
||||
This is actually optional. Since the conky-manager project is not receiving any maintenance, it will be a bit tricky to use conky. But anyway, let’s use it for the additional look-and-feel.
|
||||
|
||||
```
|
||||
`sudo apt install conky-all`
|
||||
```
|
||||
|
||||
**Neofetch or shell color scripts**
|
||||
|
||||
This step is also a personal choice. You can choose [neofetch][4] because it’s already available in the repository and can be used easily.
|
||||
|
||||
```
|
||||
`sudo apt install neofetch`
|
||||
```
|
||||
|
||||
[Shell-color scripts][5] are another excellent choice. The package is available in AUR and Arch Linux users can install it from there. In Ubuntu, you need to install it manually.
|
||||
|
||||
```
|
||||
`git clone https://gitlab.com/dwt1/shell-color-scripts.git cd shell-color-scripts sudo make install`
|
||||
```
|
||||
|
||||
**Themes, icons, fonts, and wallpaper**
|
||||
|
||||
I am using [Sweet][6] theme, [Beautiline][7] icon pack, [simple1e][8] cursors, and [Grey-Minimalistic][9] conky theme. Once downloaded, extract them. You should also get [Creepster][10] font.
|
||||
|
||||
Download a [spooky wallpaper][11] from the internet.
|
||||
|
||||
Alert! You’ll be doing a lot of customization and change. You can go back to the usual look by reverting all the changes you made. An easier way out would be to create a new user with admin access and make all these changes with this new user. This way, your original user account and appearance doesn’t get impacted. When Halloween is over, you can delete this additional user.
|
||||
|
||||
With all resources in hand, it’s time to utilize them.
|
||||
|
||||
### Install and use the extensions
|
||||
|
||||
Open the gnome-extensions app. In Ubuntu 22.04, you can install extensions from within the app, by using the browse section.
|
||||
|
||||
![install gnome shell extensions user themes blur my shell and dash to dock][12]
|
||||
|
||||
In other versions of Ubuntu and other GNOME distributions, you can [install shell extensions][13] through the browser. For our purpose, install the following extensions :
|
||||
|
||||
- [User Themes][14]
|
||||
- [Dash to Dock][15]
|
||||
- [Blur my Shell][16]
|
||||
|
||||
Also, make sure that all the extensions are enabled.
|
||||
|
||||
### Apply theme, icon, and font
|
||||
|
||||
You need to copy and paste the extracted theme folder to `~/.themes` directory and icon and cursor folder to the `~/.icons` directory.
|
||||
|
||||
Now open GNOME tweaks and apply the settings as shown in the screenshot below.
|
||||
|
||||
![set themes with gnome tweaks][17]
|
||||
|
||||
To use a [custom font in Ubuntu][18], right-click on the font file that you have downloaded and extracted and select open with Font manager. I am using [Creepster][10] font.
|
||||
|
||||
![right click on font file and select open with fonts][19]
|
||||
|
||||
Here, press the install button.
|
||||
|
||||
![install font using font manager application][20]
|
||||
|
||||
Note: In some systems, pressing the install button won’t show the “installed” prompt. In that case, you can just close the app because once you press the install button, it has been installed.
|
||||
|
||||
Now open the Tweaks app and move to the fonts section. Here, you can change the fonts of various sections as shown in the screenshot below.
|
||||
|
||||
![change system fonts using gnome tweaks][21]
|
||||
|
||||
Note that, for terminals, a monospace font is required. Here, I am using a regular font and thus it may give you a slightly disoriented look sometimes.
|
||||
|
||||
### Apply Dash to Dock Extension settings
|
||||
|
||||
First, you need to **turn off the Ubuntu Dock extension** using the GNOME Extensions application.
|
||||
|
||||
![Disable Ubuntu Dock][22]
|
||||
|
||||
Run the Dash to Dock extension if it’s not running already.
|
||||
|
||||
Now, right-click on the dash to dock application button appearing on the bottom and select dash to dock settings.
|
||||
|
||||
![select dash to dock settings][23]
|
||||
|
||||
Here, you need to tweak some small things.
|
||||
|
||||
First, reduce the icon size using the respective slider.
|
||||
|
||||
![setting dash to dock icon size][24]
|
||||
|
||||
After that, you need to reduce the opacity of the dock. I prefer a fully transparent dock.
|
||||
|
||||
For this, set the opacity to **fixed** and reduce it to zero with the slider, as shown in the screenshot below.
|
||||
|
||||
![opacity setting for dash to dock][25]
|
||||
|
||||
### GNOME terminal setting
|
||||
|
||||
The main tweak you want to get is a custom neofetch look (or a shell color script) with some blurred transparency.
|
||||
|
||||
On applying monospace font in GNOME-tweaks earlier, the font in the GNOME terminal is also changed.
|
||||
|
||||
First, create a new profile from **preferences**.
|
||||
|
||||
![select preferences from hamburger menu][26]
|
||||
|
||||
Here, Click + sign to create a new profile. Type in a name and press **create** as shown below:
|
||||
|
||||
![create new profile in gnome terminal][27]
|
||||
|
||||
Inside the new profile, change the transparency setting and set it around the middle, as shown in the screenshot:
|
||||
|
||||
![set transperancy to gnome terminal][28]
|
||||
|
||||
Once finished, set this profile as the default. To do this, click on the triangle button associated with the new profile and select **Set as Default**.
|
||||
|
||||
![set new profile as default in gnome terminal][29]
|
||||
|
||||
#### Setting blur effect
|
||||
|
||||
The above step will only create a transparent shell. But if you need a blur effect, which is good for better visibility, you need to go to the Blur my Shell extension settings.
|
||||
|
||||
![blur my shell extension settings][30]
|
||||
|
||||
Here, go to the **Application** tab. Now, ensure that the terminal is opened and placed conveniently on the desktop. Click on **Add Window** button and select gnome-terminal window, to set the blur effect. Note: This feature is in beta so expect minor glitches.
|
||||
|
||||
![applying blur effect to selected windows][31]
|
||||
|
||||
This same procedure can be repeated for other apps also, like the Nautilus file manager.
|
||||
|
||||
#### Customizing Neofetch
|
||||
|
||||
One of the best features of neofetch is its customizability. You can tweak the look with a wide range of methods. For Halloween, I choose a pumpkin image to appear in place of the distro logo.
|
||||
|
||||
Neofetch supports adding custom images in a variety of formats. For that purpose, there are a variety of backends supported. Here, I use the jp2a backend, which will use an [ASCII converted image][32].
|
||||
|
||||
```
|
||||
`neofetch --jp2a /path/to/your/image/file.png`
|
||||
```
|
||||
|
||||
![neofetch with custom backend][33]
|
||||
|
||||
The above code will create a neofetch instance with the custom image. You can write this code to your .bashrc file, for permanent placement.
|
||||
|
||||
_**Unfortunately, this didn’t work on my Wayland instance.**_
|
||||
|
||||
#### Customizing Shell Color Scripts
|
||||
|
||||
If you installed shell color scripts, you have a variety of shell scripts. To list the available scripts, use:
|
||||
|
||||
```
|
||||
``colorscript -l``
|
||||
```
|
||||
|
||||
![ghosts shell color script][34]
|
||||
|
||||
You can either get a random script each time by placing `colorscript random` in your .bashrc file. Or you can get any particular script by placing `colorscript -e <name>`
|
||||
|
||||
### Setting up Conky
|
||||
|
||||
I am using the [Grey-Minimalistic conky theme][9] from Deviantart. Each type of conky theme has a different installation method. So if you are using another conky file, follow its setup method, described in its README files.
|
||||
|
||||
Extract the conky theme file. Inside, we have several folders. First, you need to install the associated icons and fonts. That is, install the given font using font-manager. Copy and paste the icon folder to your ~/.icons folder.
|
||||
|
||||
![copy and paste conky files to home directory][35]
|
||||
|
||||
Now, go to the conky folder. Make sure that, you have [enabled viewing hidden files][36]. Now copy the `.conkyrc` file and `.conky-vision-icons` file to your Home directory, as shown above.
|
||||
|
||||
Now start conky to get a look like this.
|
||||
|
||||
![conky theme applied][37]
|
||||
|
||||
Add the conky to the [list of startup applications][38] so that it starts automatically at each boot.
|
||||
|
||||
![add conky to the list of startup applications][39]
|
||||
|
||||
### Change wallpaper
|
||||
|
||||
You are almost there. The only thing you need to do now is to [change the background wallpaper][40]. You have already downloaded the spooky wallpapers I believe.
|
||||
|
||||
![set image as wallpaper from nautilus][41]
|
||||
|
||||
### Behold the final look!
|
||||
|
||||
If you followed most of the steps above, you should get a desktop that looks like the one in the below screenshots.
|
||||
|
||||
![ubuntu halloween theme final look][42]
|
||||
|
||||
Is it scary enough for Halloween? What do you think? Let me know in the comments.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/linux-halloween-makeover/
|
||||
|
||||
作者:[Sreenath][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/sreenath/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theming-final-looks.jpg
|
||||
[2]: https://itsfoss.com/make-ubuntu-look-like-macos/
|
||||
[3]: https://itsfoss.com/properly-theme-kde-plasma/
|
||||
[4]: https://itsfoss.com/using-neofetch/
|
||||
[5]: https://gitlab.com/dwt1/shell-color-scripts
|
||||
[6]: https://www.gnome-look.org/p/1253385
|
||||
[7]: https://www.gnome-look.org/p/1425426
|
||||
[8]: https://www.gnome-look.org/p/1405210
|
||||
[9]: https://www.deviantart.com/bryantlloyd/art/Grey-Minimalistic-634726564
|
||||
[10]: https://fonts.google.com/specimen/Creepster?query=creepster
|
||||
[11]: https://www.wallpaperflare.com/search?wallpaper=spooky
|
||||
[12]: https://itsfoss.com/wp-content/uploads/2022/10/install-gnome-shell-extensions-user-themes-blur-my-shell-and-dash-to-dock.png
|
||||
[13]: https://itsfoss.com/gnome-shell-extensions/
|
||||
[14]: https://extensions.gnome.org/extension/19/user-themes/
|
||||
[15]: https://extensions.gnome.org/extension/307/dash-to-dock/
|
||||
[16]: https://extensions.gnome.org/extension/3193/blur-my-shell/
|
||||
[17]: https://itsfoss.com/wp-content/uploads/2022/10/set-themes-with-gnome-tweaks.png
|
||||
[18]: https://itsfoss.com/install-fonts-ubuntu/
|
||||
[19]: https://itsfoss.com/wp-content/uploads/2022/10/right-click-on-font-file-and-select-open-with-fonts.png
|
||||
[20]: https://itsfoss.com/wp-content/uploads/2022/10/install-font-using-font-manager-application.png
|
||||
[21]: https://itsfoss.com/wp-content/uploads/2022/10/change-system-fonts-using-gnome-tweaks.png
|
||||
[22]: https://itsfoss.com/wp-content/uploads/2020/06/disable-ubuntu-dock.png
|
||||
[23]: https://itsfoss.com/wp-content/uploads/2022/10/select-dash-to-dock-settings.png
|
||||
[24]: https://itsfoss.com/wp-content/uploads/2022/10/setting-dash-to-dock-icon-size.png
|
||||
[25]: https://itsfoss.com/wp-content/uploads/2022/10/opacity-setting-for-dash-to-dock.png
|
||||
[26]: https://itsfoss.com/wp-content/uploads/2022/10/select-preferences-from-hamburger-menu.png
|
||||
[27]: https://itsfoss.com/wp-content/uploads/2022/10/create-new-profile-in-gnome-terminal.png
|
||||
[28]: https://itsfoss.com/wp-content/uploads/2022/10/set-transperancy-to-gnome-terminal.png
|
||||
[29]: https://itsfoss.com/wp-content/uploads/2022/10/set-new-profile-as-default-in-gnome-terminal.png
|
||||
[30]: https://itsfoss.com/wp-content/uploads/2022/10/blur-my-shell-extension-settings.png
|
||||
[31]: https://itsfoss.com/wp-content/uploads/2022/10/applying-blur-effect-to-selected-windows.png
|
||||
[32]: https://itsfoss.com/ascii-image-converter/
|
||||
[33]: https://itsfoss.com/wp-content/uploads/2022/10/neofetch-with-custom-backend.png
|
||||
[34]: https://itsfoss.com/wp-content/uploads/2022/10/ghosts-shell-color-script.png
|
||||
[35]: https://itsfoss.com/wp-content/uploads/2022/10/copy-and-paste-conky-files-to-home-directory.png
|
||||
[36]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/
|
||||
[37]: https://itsfoss.com/wp-content/uploads/2022/10/conky-theme-applied.png
|
||||
[38]: https://itsfoss.com/manage-startup-applications-ubuntu/
|
||||
[39]: https://itsfoss.com/wp-content/uploads/2022/10/add-conky-to-the-list-of-startup-applications.png
|
||||
[40]: https://itsfoss.com/change-wallpaper-ubuntu/
|
||||
[41]: https://itsfoss.com/wp-content/uploads/2022/10/set-image-as-wallpaper-from-nautilus.png
|
||||
[42]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theme-final-look.jpg
|
@ -1,117 +0,0 @@
|
||||
[#]: subject: "How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic)"
|
||||
[#]: via: "https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "robsean"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic)
|
||||
======
|
||||
|
||||
**Here are the steps on how to upgrade your current Ubuntu 22.04 LTS Jammy Jellyfish to Ubuntu 22.10 Kinetic Kudu.**
|
||||
|
||||
Always stay with long-term support release. That is the thumb rule. So, the prior [Ubuntu 22.04 LTS][1] Jammy Jellyfish is supported until April 2027. That’s a long time.
|
||||
|
||||
In addition, LTS releases are super stable. They rarely break and become unstable. So, if you use your laptop/desktop or server installation with the LTS version, stay with it.
|
||||
|
||||
However, if you want the latest Kernel, GNOME 43, and new technology like Pipewire – you might want to make the jump and want to upgrade to [Ubuntu 22.10 Kinetic Kudu][2].
|
||||
|
||||
Here’s how.
|
||||
|
||||
### Upgrade Ubuntu 22.04 LTS (Jammy Jellyfish) to Ubuntu 22.10 (Kinetic Kudu)
|
||||
|
||||
**Note**: I hope you are not running Ubuntu 21.10 Impish Indri, released last October. Because that’s out of support. But for any reason, if you are still running it, I would recommend you do a fresh install of 22.10. Or, do a step upgrade to 22.04 and then 22.10.
|
||||
|
||||
#### Before you upgrade
|
||||
|
||||
Before you upgrade, do a little housekeeping. This is super important.
|
||||
|
||||
- Take backups of your `/home`, /`downloads` and other files to USB or any separate partition in case the upgrade fails.
|
||||
|
||||
- If you have added additional PPA over time, make sure you note them down. However, the upgrade process would disable the PPA before it starts. However, after the upgrade is complete, make sure to enable them manually.
|
||||
|
||||
- Note down and disable all the GNOME Extensions. Extensions tend to break after the upgrade if it’s not updated by the developer aligned with the GNOME version.
|
||||
|
||||
- Keep a LIVE USB stick handy.
|
||||
|
||||
#### Upgrade steps
|
||||
|
||||
- Open Software & Update.
|
||||
|
||||
- Go to the Updates tab.
|
||||
|
||||
- Select ‘`Notify me of a new Ubuntu version'`and change it to `'For any new version'.`
|
||||
|
||||
- This will tell the package manager to look for the Ubuntu 22.10 release details.
|
||||
|
||||
![Make sure to change the option for new Ubuntu 22.10 release][3]
|
||||
|
||||
- Open a terminal and run below.
|
||||
|
||||
```
|
||||
sudo apt updatesudo apt upgrade
|
||||
```
|
||||
|
||||
Alternatively, you can open the Software Updater as well. Install all the pending packages.
|
||||
|
||||
- Once both the commands are complete, open the ‘Software Updates’. And you will see a prompt to Upgrade to Ubuntu 22.10 (as shown in the below image).
|
||||
|
||||
![New version update prompt from the GUI method][4]
|
||||
|
||||
- Now click on the `Upgrade` button and follow the on-screen instructions. The upgrade process takes time, so be patient and wait until it finishes. Make sure you have stable internet connectivity for the entire upgrade process.
|
||||
|
||||
If you still don’t get the update, wait a day or two and try.
|
||||
|
||||
- If you do not see the above prompt, do a manual reboot of your system. Add try again.
|
||||
|
||||
**Via terminal**
|
||||
|
||||
- Open the following file via the nano file editor in the terminal.
|
||||
|
||||
```
|
||||
nano /etc/update-manager/release-upgrades
|
||||
```
|
||||
|
||||
- Change the `Prompt=LTS` to `Prompt=normal`. Note: If you have changed the updates tab to “For any new version” as mentioned above, then this file should be updated already. But verify once.
|
||||
|
||||
![Change the release upgrade file][5]
|
||||
|
||||
- Press CTRL+O and CTRL+X to save and exit.
|
||||
|
||||
- Finally, you can also run the below command to force the upgrade process from the terminal.
|
||||
|
||||
```
|
||||
sudo do-release-upgrade -c
|
||||
```
|
||||
|
||||
![New version update prompt from the terminal method][6]
|
||||
|
||||
The upgrade process will take some time (minimum half-hour or more) based on your internet connection and hardware. Wait until it is complete. Once done, restart and enjoy the Ubuntu 22.10 Kinetic Kudu.
|
||||
|
||||
![Upgrade is in progress][7]
|
||||
|
||||
While the upgrade process is in progress, take a look at the exciting articles we [recently published on Ubuntu 22.10][8].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/ubuntu-22-04-review/
|
||||
[2]: https://www.debugpoint.com/ubuntu-22-10/
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Make-sure-to-change-the-option-for-new-Ubuntu-22.10-release.jpg
|
||||
[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-GUI-method2.jpg
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Change-the-release-upgrade-file.jpg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-terminal-method.jpg
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Upgrade-is-in-progress.jpg
|
||||
[8]: https://www.debugpoint.com/tag/ubuntu-22-10
|
@ -1,94 +0,0 @@
|
||||
[#]: subject: "Use open source commands in Powershell"
|
||||
[#]: via: "https://opensource.com/article/22/10/set-path-powershell"
|
||||
[#]: author: "Alan Smithee https://opensource.com/users/alansmithee"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "qfzy1233"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Use open source commands in Powershell
|
||||
======
|
||||
|
||||
When you launch an application on an operating system, there are certain code libraries and utility applications that your OS needs to use for that app to run. Your OS knows how to find these libraries and utilities because it has a _system path,_ a map to common shared data that lots of apps need. Every OS has this, but users aren’t usually aware of it because they don’t usually need to care about it. However, when you start coding or using special network utilities or commands, you might care about your own PATH variable.
|
||||
|
||||
The PATH variable makes it so that you can save commands to a consistent location, and use them from anywhere on your system using the command prompt or the more powerful (and open source) [Powershell][1].
|
||||
|
||||
For instance, say you want to install the open source application `pscp.exe`, a command-line interface to the famous PuTTY OpenSSH client on Windows. You can download it to your hard drive, but how does your command-line know that it exists? Well at first, it doesn’t:
|
||||
|
||||
```
|
||||
PS> pscp
|
||||
pscp: The term 'pscp' is not recognized as the name of a cmdlet, script file, or operable program.
|
||||
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
|
||||
```
|
||||
|
||||
If you’re using an open source command line, such as Powershell or [Cmder][2], you get a useful error hinting that this might be a problem with your path (or the lack thereof). Here’s how to solve that problem.
|
||||
|
||||
### Setting a PATH
|
||||
|
||||
- First, create a folder called `App` on your Desktop.
|
||||
- Next, right-click on the Windows menu in the bottom left corner of your screen, and select **System**.
|
||||
|
||||
![Image of the Windows menu system.][3]
|
||||
|
||||
Image by:
|
||||
|
||||
(Alan Smithee, CC BY-SA 4.0)
|
||||
|
||||
- In the **System** window that appears, click the link to **Advanced system settings** on the left of the window.
|
||||
- In the **System properties** window that appears, click the **Environment variables** button at the bottom of the window.
|
||||
|
||||
![Image Windows system enviroment variables.][4]
|
||||
|
||||
Image by:
|
||||
|
||||
(Alan Smithee, CC BY-SA 4.0)
|
||||
|
||||
- In the **Environment variables** window, click the **New** button under the **User variables** panel.
|
||||
|
||||
![Image of new Windows enviroment variables.][5]
|
||||
|
||||
Image by:
|
||||
|
||||
(Alan Smithee, CC BY-SA 4.0)
|
||||
|
||||
- In the dialog box that appears, enter `PATH` for the **Variable name** field, and `%USERPROFILE\Desktop\App` for the **Variable value** field. Click the **OK** button to save your changes.
|
||||
|
||||
![Image of Windows path set.][6]
|
||||
|
||||
Image by:
|
||||
|
||||
(Alan Smithee, CC BY-SA 4.0)
|
||||
|
||||
Place commands and applications you want to have access to from a command prompt in `Desktop\Apps` and Powershell, Cmder, and even Cmd will find them:
|
||||
|
||||
```
|
||||
PS> pscp –version
|
||||
pscp: Release 0.XY
|
||||
Build platform: 64-bit x86 Windows
|
||||
PS>
|
||||
```
|
||||
|
||||
### Automatic PATH settings
|
||||
|
||||
Many applications get automatically added to the system path during installation. However, not all of them do, either because you missed a check box during the install process, or because the application developer expects you to add it yourself. When automatic paths fail, you now know how to forge your own path.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/set-path-powershell
|
||||
|
||||
作者:[Alan Smithee][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[qfzy1222](https://github.com/qfzy1233)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/alansmithee
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/article/18/2/powershell-people
|
||||
[2]: http://cmder.app/
|
||||
[3]: https://opensource.com/sites/default/files/2022-10/windows-menu-system.png
|
||||
[4]: https://opensource.com/sites/default/files/2022-10/windows-system-environment-variables.png
|
||||
[5]: https://opensource.com/sites/default/files/2022-10/windows-environment-variables-new.png
|
||||
[6]: https://opensource.com/sites/default/files/2022-10/windows-path-set.png
|
@ -0,0 +1,115 @@
|
||||
[#]: subject: "Give your Terminal a Retro Look Using this Neat Application"
|
||||
[#]: via: "https://www.debugpoint.com/cool-retro-terminal/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Give your Terminal a Retro Look Using this Neat Application
|
||||
======
|
||||
|
||||
**Want to give your Terminal a retro look? This guide contains instructions to help you to install Cool Retro Terminal application in all Linux distributions.**
|
||||
|
||||
![Cool Retro Terminal][1]
|
||||
|
||||
Cool Retro Terminal
|
||||
|
||||
Have you ever wondered how you can mimic the look of those old CRT monitors displayed in your Linux terminal?
|
||||
|
||||
Those CRT screens have their own fan base. Like the Apple 2 or the IBM 3278 terminals – they are really cool looking if you compare them to today’s 4K monitor displays. I am not saying 4K is bad, but sometimes legacy displays remind us of those bygone days. Enough of these ramblings. Let’s get started installing the app.
|
||||
|
||||
### Cool Retro Term
|
||||
|
||||
The application is free and open-sourced. And it is called [cool-retro-term][2]. It is lightweight and has many customization options with pre-set profiles, such as Apple 2, etc. It also gives you those static noises and scan-lines effects in your terminal. Cool, isn’t it?
|
||||
|
||||
It is built in Qt and requires Qt 5.2 and higher. If you are using the latest Linux distributions, you should be good in terms of dependencies.
|
||||
|
||||
![Green Scanlines Theme][3]
|
||||
|
||||
Green Scanlines Theme
|
||||
|
||||
### How to Download and Install Cool Retro Terminal
|
||||
|
||||
#### Ubuntu, Linux Mint and other Debian-based distributions
|
||||
|
||||
The following simple command will install this application in your Ubuntu and other related distributions.
|
||||
|
||||
```
|
||||
sudo apt install cool-retro-term
|
||||
```
|
||||
|
||||
#### Arch Linux
|
||||
|
||||
This package is available in Arch User Repository AUR. If you do not have AUR enabled, enable it using [this guide][4] and then use the following commands to install it.
|
||||
|
||||
```
|
||||
pacman -S cool-retro-term
|
||||
```
|
||||
|
||||
#### Fedora, RHEL and other related distributions
|
||||
|
||||
For Fedora and other related Linux, use the following command to install this app.
|
||||
|
||||
```
|
||||
sudo dnf install cool-retro-term
|
||||
```
|
||||
|
||||
#### Appimage
|
||||
|
||||
A self-contained executable as AppImage is also available, which you can just download and run. No installation is required. Follow the below commands to do that.
|
||||
|
||||
```
|
||||
wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage
|
||||
chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage
|
||||
./Cool-Retro-Term-1.1.1-x86_64.AppImage
|
||||
```
|
||||
|
||||
Note: Version 1.2.0 onwards there are no AppImage build in the GitHub.
|
||||
|
||||
### Configurations
|
||||
|
||||
After the installation is finished, you can find the terminal application “Cool Retro Term” in the application menu. So, launch the application and enjoy.
|
||||
|
||||
Remember, this is not overriding your default console/terminal application in your Linux distributions. It is a stand-alone console application.
|
||||
|
||||
The configuration options are available via the Right Click context menu.
|
||||
|
||||
The context menu gives you the following pre-sets. You can then configure each of them for colour, and appearance settings via the settings window. For example, if you want more transparency, contrast or more noise, ambient light or flickering – all of them can be configured from the below settings window via several options.
|
||||
|
||||
And easily you can make your own theme.
|
||||
|
||||
![Pre-loaded Themes in Cool Retro Term][5]
|
||||
|
||||
Pre-loaded Themes in Cool Retro Term
|
||||
|
||||
![Various Effects in Settings][6]
|
||||
|
||||
Various Effects in Settings
|
||||
|
||||
### Summary
|
||||
|
||||
Cool Retro Terminal is an old tube-style terminal for Linux desktops that allows you to experience it as if you are sitting in front of a retro terminal. You may or may not like it, and one hardly uses it for a daily driver. But still, a nice-looking terminal to experience from time to time to get away from the mundane terminal.
|
||||
|
||||
Do you like the retro look? What is your favourite theme? Let me know in the comment section below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/cool-retro-terminal/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/wp-content/uploads/2021/12/cool-retro-terminal-1024x576.jpg
|
||||
[2]: https://github.com/Swordfish90/cool-retro-term
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/Green-Scanlines-Theme-1024x594.jpg
|
||||
[4]: https://www.debugpoint.com/2021/01/install-yay-arch/
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pre-loaded-Themes-in-Cool-Retro-Term-1024x599.jpg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/Various-Effects-in-Settings.jpg
|
@ -0,0 +1,119 @@
|
||||
[#]: subject: "How to Check CPU and HDD Temperature in Ubuntu and Other Linux"
|
||||
[#]: via: "https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Check CPU and HDD Temperature in Ubuntu and Other Linux
|
||||
======
|
||||
|
||||
**Wondering how you can check the CPU and HDD temperature in Ubuntu and other Linux on your desktop or laptop? Here’s a quick guide.**
|
||||
|
||||
You do not actually require checking CPU or HDD temperature if you are an average user. But, if you are using very older hardware or a thin one, you may run into an overheating problem. Because these thin ones are tightly coupled together inside, and no matter how much heat transfer mechanism is implemented, it heats up. Therefore, it is essential to monitor the temperature of the hardware. However, modern Linux distributions are well capable of handling overheating situations via software sensors.
|
||||
|
||||
### Steps for monitoring CPU and HDD temperature on Ubuntu
|
||||
|
||||
#### Using terminal
|
||||
|
||||
We are going to use a couple of packages to achieve the same. Open a terminal in your Ubuntu-based system and install the following.
|
||||
|
||||
```
|
||||
sudo apt install hddtemp
|
||||
sudo apt install lm-sensors
|
||||
```
|
||||
|
||||
The [hddtemp][1] utility gives you the temperature of your optical hard disk drive as well as SSD (as per my test). And the [lm-sensors][2] package gives you temperature details from the CPUs and other sensors accessed via PCI ports.
|
||||
|
||||
After installation, run the following from the terminal. You need to know your disk identifier for this – for example `/dev/sda` or `/dev/sdb`, etc.
|
||||
|
||||
To find out the disk identifiers, you can use `fdisk`.
|
||||
|
||||
```
|
||||
sudo fdisk -l
|
||||
```
|
||||
|
||||
Then run below to check the HDD or SSD temperature.
|
||||
|
||||
```
|
||||
sudo hddtemp
|
||||
```
|
||||
|
||||
![HDD or SSD Temperature from terminal][3]
|
||||
|
||||
HDD or SSD Temperature from terminal
|
||||
|
||||
Checking the CPU temperature and other information requires an additional step.
|
||||
|
||||
First, run the below command so that the utility of the sensor can detect the sensors in your system.
|
||||
|
||||
```
|
||||
sudo sensors-detect
|
||||
```
|
||||
|
||||
The above command might ask you some YES/NO questions. Keep pressing ENTER to choose the default options.
|
||||
|
||||
Once done, run the below command to view the CPU and other interface temperatures.
|
||||
|
||||
```
|
||||
sensors
|
||||
```
|
||||
|
||||
![using sensors][4]
|
||||
|
||||
using sensors
|
||||
|
||||
#### Using GUI tools
|
||||
|
||||
If you prefer a nice GUI which does all the above, you can install [psensor][5]. This utility works across Linux systems such as Ubuntu, Fedora, [Arch][6] and other variants. This gives you nice graphical plus tabular view of
|
||||
|
||||
**Ubuntu and its derivatives**
|
||||
|
||||
```
|
||||
sudo apt install psensor
|
||||
```
|
||||
|
||||
**Fedora and RPM-based derivatives**
|
||||
|
||||
```
|
||||
sudo dnf install psensor
|
||||
```
|
||||
|
||||
**Arch, Manjaro and similar derivatives**
|
||||
|
||||
```
|
||||
pacman -S psensor
|
||||
```
|
||||
|
||||
Once installed, run via `psensor from the terminal or launch it from the`application menu.
|
||||
|
||||
As you can see in the below screenshot, it gives you a nice view of all the important temperatures across CPU, GPU, and HDD with a nice graph. Using its preferences, you can tweak it as per your need. This lightweight utility can be helpful in many cases.
|
||||
|
||||
![psensor running][7]
|
||||
|
||||
psensor running
|
||||
|
||||
So, these are some ways in which you can monitor CPU, GPU or HDD temperature in your Ubuntu and other Linux systems. Let me know if you know of any other ways to find these out using the comment box below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://wiki.archlinux.org/title/Hddtemp
|
||||
[2]: https://github.com/lm-sensors/lm-sensors
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/HDD-or-SSD-Temperature-from-terminal.png
|
||||
[4]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor.png
|
||||
[5]: https://wpitchoune.net/psensor/
|
||||
[6]: https://www.debugpoint.com/tag/arch-linux
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor-running-1024x465.png
|
@ -0,0 +1,145 @@
|
||||
[#]: subject: "How to Clean Up Flatpak Apps to Clear Disk Space"
|
||||
[#]: via: "https://www.debugpoint.com/clean-up-flatpak/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Clean Up Flatpak Apps to Clear Disk Space
|
||||
======
|
||||
|
||||
**Here’s how to clean up Flatpak apps to reclaim your precious disk space. Follow along. **
|
||||
|
||||
Flatpak (like Snap) packages run in sandbox mode. By design, it takes a considerable amount of disk space for an individual application, even if it is a smaller one. For example, a simple Test editor or a basic image annotator application can take up more than 100+ MB of storage space.
|
||||
|
||||
It’s how Flatpak or even Snap operates fundamentally. It pulls all dependencies for an app and runs independently. The advantage of this design is – you do not need to worry about dependencies or updates. All you need to do is install and run. On the contrary, it takes up a huge amount of disk space.
|
||||
|
||||
And if you are running Ubuntu, elementary OS or any distribution for a longer period, you would be surprised that Flatpak keeps taking up more space over time.
|
||||
|
||||
Hence, in this guide, we will give you some commands you can run yourself to clean up flatpak apps.
|
||||
|
||||
### Clean Up Flatpak
|
||||
|
||||
#### Where Flatpak packages are installed?
|
||||
|
||||
When you install a Flatpak package, it gets installed in `/var/lib/flatpak`. All the installed files, metadata, application files, and runtime files are contained in this directory. Also, the user installation directory contains Flatpak data – that is – `~/.local/share/flatpak`
|
||||
|
||||
#### How to find out the size of Flatpak apps?
|
||||
|
||||
There are several commands and parameters of “flatpak” which you can combine to get the desired result to list the applications, size and type of installation. Here are some examples.
|
||||
|
||||
- Verify the size of `/var/lib/flatpak`. But as it is being used by all Flatpak apps plus runtimes, you may not be able to recover entirely.
|
||||
|
||||
```
|
||||
du -h /var/lib/flatpak
|
||||
```
|
||||
|
||||
![Size of var-lib-flatpak][1]
|
||||
|
||||
Size of var-lib-flatpak
|
||||
|
||||
- If you have [Disk Usage Analyzer][2], you can verify by simply visiting the above directories.
|
||||
|
||||
![Disk Analyzer Shows Flatpak size][3]
|
||||
|
||||
Disk Analyzer Shows Flatpak size
|
||||
|
||||
You can use any of the following commands to view the size of installed flatpak packages.
|
||||
|
||||
- View all the installed flatpak with name and installed size.
|
||||
|
||||
```
|
||||
flatpak --columns=name,size list
|
||||
```
|
||||
|
||||
![flatpak list example 1][4]
|
||||
|
||||
flatpak list example 1
|
||||
|
||||
- List all installed flatpak with installation type, size and application ID.
|
||||
|
||||
```
|
||||
flatpak --columns=app,name,size,installation list
|
||||
```
|
||||
|
||||
![flatpak list example 2][5]
|
||||
|
||||
flatpak list example 2
|
||||
|
||||
- View only the flatpak installed by you.
|
||||
|
||||
```
|
||||
flatpak --columns=name,size --user list
|
||||
```
|
||||
|
||||
![flatpak list example 3][6]
|
||||
|
||||
flatpak list example 3
|
||||
|
||||
Remember, two types of flatpak may exist in your system. Some of them may be part of the OS itself. And some of them are installed by you.
|
||||
|
||||
#### Commands to Clean up
|
||||
|
||||
- Use the following command to uninstall flatpak packages that are not in use. This is a safe command which you can try.
|
||||
|
||||
```
|
||||
flatpak uninstall --unused
|
||||
```
|
||||
|
||||
![clean up flatpak using unused switch][7]
|
||||
|
||||
clean up flatpak using unused switch
|
||||
|
||||
Using the above command, I have freed up around 1GB+ in my test system.
|
||||
|
||||
![var-lib-flatpak size is reduced][8]
|
||||
|
||||
var-lib-flatpak size is reduced
|
||||
|
||||
- If you want to uninstall a specific Flatpak package, use the following command. Change the application ID with the app name. You can find the app name in the above list size commands.
|
||||
|
||||
```
|
||||
flatpak uninstall <application ID>
|
||||
```
|
||||
|
||||
- The following command removes all flatpak packages from your system. Try not to run it unless you are very sure what you are doing. This may break your system, depending on your configuration.
|
||||
|
||||
```
|
||||
flatpak uninstall --all
|
||||
```
|
||||
|
||||
Finally, there are some flatpak cache files in path `/var/tmp/flatpak-cache-*`. Although the size may not be significant. But you can still remove them.
|
||||
|
||||
```
|
||||
sudo rm -rfv /var/tmp/flatpak-cache-*
|
||||
```
|
||||
|
||||
For more details about flatpak commands, visit the [official guide][9]. And let me know, using the comment box below, whether this helped you to clean up some space.
|
||||
|
||||
If you are looking to clean up Snap packages, the guide is available [here][10].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/clean-up-flatpak/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/wp-content/uploads/2021/10/Size-of-var-lib-flatpak.jpeg
|
||||
[2]: https://help.gnome.org/users/baobab/
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2021/10/Disk-Analyzer-Shows-Flatpak-size-1024x392.jpeg
|
||||
[4]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-1.jpeg
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-2-1024x316.jpeg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-3.jpeg
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/clean-up-flatpak-using-unused-switch.jpeg
|
||||
[8]: https://www.debugpoint.com/wp-content/uploads/2021/10/var-lib-flatpak-size-is-reduced.jpeg
|
||||
[9]: http://flatpak list example 3
|
||||
[10]: https://www.debugpoint.com/2021/03/clean-up-snap/
|
@ -0,0 +1,66 @@
|
||||
[#]: subject: "How to display commits created on a specific day with the git log command"
|
||||
[#]: via: "https://opensource.com/article/22/10/git-log-command"
|
||||
[#]: author: "Agil Antony https://opensource.com/users/agantony"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "chai001125"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to display commits created on a specific day with the git log command
|
||||
======
|
||||
|
||||
The git log command is an important reporting tool and yet another reason to use Git.
|
||||
|
||||
The `git log` command offers many opportunities to learn more about the commits made by contributors. One way you might consume such information is by date. To view commits in a Git repository created on a specific date or range of dates, use the `git log` command with the options `--since` or `--until`, or both.
|
||||
|
||||
First, checkout the branch you want to inspect (for example, `main`):
|
||||
|
||||
```
|
||||
$ git checkout main
|
||||
```
|
||||
|
||||
Next, display the commits for the current date (today):
|
||||
|
||||
```
|
||||
$ git log--oneline--since="yesterday"
|
||||
```
|
||||
|
||||
Display commits for the current date by a specific author only (for example, `Agil`):
|
||||
|
||||
```
|
||||
$ git log--oneline--since="yesterday"--author="Agil"
|
||||
```
|
||||
|
||||
You can also display results for a range of dates. Display commits between any two dates (for example, 22 April 2022 and 24 April 2022):
|
||||
|
||||
```
|
||||
$ git log--oneline--since="2022-04-22"--until="2022-04-24"
|
||||
```
|
||||
|
||||
In this example, the output displays all the commits between 22 April 2022 and 24 April 2022, which excludes the commits done on 22 April 2022. If you want to include the commits done on 22 April 2022, replace `2022-04-22` with `2022-04-21`.
|
||||
|
||||
Run the following command to display commits between any two dates by a specific author only (for example, `Agil`):
|
||||
|
||||
```
|
||||
$ git log--oneline--since="2022-04-22" \--until="2022-04-24"--author="Agil"
|
||||
```
|
||||
|
||||
### Reporting
|
||||
|
||||
Git has many advantages, and one of them is the way it enables you to gather data about your project. The `git log` command is an important reporting tool and yet another reason to use Git!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/git-log-command
|
||||
|
||||
作者:[Agil Antony][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/agantony
|
||||
[b]: https://github.com/lkxed
|
||||
|
145
sources/tech/20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md
Normal file
145
sources/tech/20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md
Normal file
@ -0,0 +1,145 @@
|
||||
[#]: subject: "A PWA is the web browser"
|
||||
[#]: via: "https://opensource.com/article/22/10/pwa-web-browser"
|
||||
[#]: author: "Alex Borsody https://opensource.com/users/alexborsody"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
A PWA is the web browser
|
||||
======
|
||||
|
||||
While progressive web apps (PWAs) are still in their early stages of development, they have the potential to revolutionize the way we use the web.
|
||||
|
||||
A progressive web app (PWA) is a web application that uses modern web technologies to deliver a user experience equal to any mobile app. An active open source community, in conjunction with tech leaders like Google and Microsoft, pushes the PWA agenda forward in an effort to "bridge the app gap."
|
||||
|
||||
Basically, a PWA runs your app in a web browser. Because there's essentially a two-party system of the Play and App stores, the focus is on two browsers: Google Chrome and Apple Safari (built on top of the open source Chromium and WebKit, respectively).
|
||||
|
||||
I won't be covering creating desktop apps. For more information on that topic, look into [Electron][1].
|
||||
|
||||
PWAs are built the same way as any website or web app. They use the latest mobile technologies and implement UX best practices. PWAs can also hook the browser in with native code to improve the experience.
|
||||
|
||||
If you type "What is a PWA" in your favorite search engine, you'll probably get a stock response similar to "PWAs are designed to be fast, reliable, and engaging, with the ability to work offline and be installed on a device's home screen." While this is partly true, it's just the tip of the iceberg for what a PWA has the potential to be and what it's evolving into, even as I write this article.
|
||||
|
||||
### What is not a PWA
|
||||
|
||||
The following are cross-platform app frameworks allowing you to develop from a single codebase. They do not use the browser as their platform.
|
||||
|
||||
- Flutter
|
||||
- React Native
|
||||
|
||||
Flutter uses a language called Dart, which compiles to iOS, Android, and web packages. React Native does the same but compiles JavaScript on the backend.
|
||||
|
||||
### What is a PWA by definition?
|
||||
|
||||
A PWA, by its original definition, must meet these three requirements:
|
||||
|
||||
- **Service worker:** Provides offline functionality.
|
||||
- **Web manifest:** JSON markup to configure home screen and app icons.
|
||||
- **Security:** HTTPS is enforced, because a service worker runs in the background.
|
||||
|
||||
These components allow you to pass the [Google Lighthouse PWA audit][2] and get the green checkmark on your score.
|
||||
|
||||
![Google Lighthouse score, including performance, accessibility, best practices, SEO, and PWA][3]
|
||||
|
||||
Once you satisfy these requirements, Chrome's "add to home screen" prompt is also automatically enabled.
|
||||
|
||||
PWA Builder (a free service provided by Microsoft) has an excellent UI for building a PWA and visualizing base requirements. See the following example based on developers.google.com. You can demo this functionality [here][4] provided by the [PWA module][5] I discussed in [my previous article][6].
|
||||
|
||||
![Google Developer's interface displaying Service Workers][7]
|
||||
|
||||
![Google Developer's interface displaying Manifest][8]
|
||||
|
||||
The base requirements of a PWA allow offline behavior through the service worker, and the `manifest.json` file allows "add to home screen" behavior on Android, where your website gets added as an icon to the home screen and opens with no-browser Chrome (in fullscreen) with an app splash page. These are the minimum requirements for a PWA and, aside from providing a performance increase due to the offline caching, mainly give the illusion the website is an app. It's a psychological gap at its core where the end user will stop thinking of the browser as merely "websites" and instead look at it for what it actually is… an app platform. Google seemed to make this a priority to pave the way for developing the endless number of features, functionality, and UX/UI enhancements that actually provide an enhanced "app-like experience."
|
||||
|
||||
A PWA is really a collection of browser technologies and web development techniques and technologies that make a website more "app-like." I have broken these down into the following categories.
|
||||
|
||||
#### Enhanced app-like experience
|
||||
|
||||
- HTML/CSS/Javascript
|
||||
|
||||
- Improved UX/UI experience on a mobile device
|
||||
- Native device access and enhanced web capabilities
|
||||
- Speed and performance
|
||||
|
||||
#### What a PWA can be today beyond the definition
|
||||
|
||||
Here are more details on the three experience descriptions above.
|
||||
|
||||
**UX/UI improvements**
|
||||
|
||||
UX/UI and visual problem-solving are critical to making your website feel like an app. This often manifests as attention to details such as animations, input/font sizes, scrolling issues, or other CSS bugs. It's important that there is a strong frontend development team so they can create this UX. Within the category of design and UX are the enhancements we can implement with the building blocks of a web document (HTML/JSS/JS). Two examples of this are:
|
||||
|
||||
- [**Hotwire Turbo**][9]: An open source framework using HTML over the wire to reload only the areas of your page that change using AJAX or WebSockets. This offers the performance improvements that SPAs strive for using only limited JavaScript. This approach is perfect for your monolithic application or template-rendering system; no need to invest in the added complexity of decoupling your front and back end.
|
||||
- **Mobile-specific SPA frameworks:** There are several decoupled frameworks out there that can give your website an app-like user experience. Onsen UI and Framework 7 are two excellent options that help you create a fast, responsive user interface for your website. However, you do not need to rely on these frameworks. As discussed above, a good frontend team can build the UI you strive for by implementing the latest app-like mobile design techniques.
|
||||
|
||||
[This slide][10] goes into more detail about staying current with HTML/CSS/JS in your PWA.
|
||||
|
||||
**Web capabilities**
|
||||
|
||||
The Chromium team is constantly improving the browser experience. You can track this progress in [Project Fugu][11], the overarching web capabilities project. WebKit also continually strives to improve its browser experience and capabilities.
|
||||
|
||||
The Swift API can also interact with the WKWebView to enhance the native experience.
|
||||
|
||||
Google has a service called Bubblewrap, which works with Trusted Web Activity (TWA). All this does is wrap your PWA-enabled website in a native APK bundle so you can submit it to the app store. This is how the PWA builder link mentioned above works for Android. You can learn all about WKWebView and TWA in my previous article.
|
||||
|
||||
**Speed and performance**
|
||||
|
||||
There are countless ways to improve your app's performance. Check out the [Google PageSpeed tools][12] to start.
|
||||
|
||||
#### Benefits of using a PWA include the following:
|
||||
|
||||
- Increased Lighthouse score and SEO.
|
||||
- A single codebase.
|
||||
- Frictionless testing.
|
||||
- Instant feedback loop for development cycles.
|
||||
- Use of managed PaaS web deployment workflows.
|
||||
- Web technologies are a skill set for a wide array of developers.
|
||||
- The only cross-platform development solution that delivers a full-fledged web experience.
|
||||
- Unlimited options to customize a design without relying on a cross-platform framework's limited UI components.
|
||||
- Reach users with limited (or no) internet connection.
|
||||
|
||||
There are some drawbacks/caveats to using a PWA, including:
|
||||
|
||||
- **Limited functionality**: There is still an "app gap" with PWAs compared to native device access. However, browsers have been making great progress toward closing this. Learn more about Project Fugu's take on bridging the app gap from [Thomas Steiner][13], and visit [What web can do][14] to see your browser's capabilities. When choosing your technology, there is a good chance your PWA project will be in the majority of apps that do not experience restrictions regarding capability/functionality.
|
||||
- **Lack of standardization**: Thomas Steiner's interview above discusses a "PWA standard," which is currently lacking. In my opinion, it is the reason for much of the confusion around the topic and developers' difficulty getting past that first "aha moment." This confusion has led to slower momentum in technology than there should be. Also, because of this lack of clarity, marketing or management may not even know to ask for a PWA because they don't understand what it is.
|
||||
- **iOS App Store**: App stores don't currently list PWAs, so they're harder to find than native apps. There are ways to do this. However, the key is to make your web app as good or a better experience than native. Do it right, and the Apple gods will smile upon you because the most important thing in reviews seems to be that you deliver a good mobile experience. Ionic, a framework utilizing WKWebView in native iOS apps before PWA was even a term, has some interesting insight [in their forums][15]. If you know what you are doing, this won't be a problem. You can see the "get your web app in the app stores" section of [my previous Opensource.com article][6] for more info.
|
||||
- **Potential security issues in certain cases**: The browser uses cookies as authentication. A tried and true browser method to maintain state since its inception, this may not fit your project's needs. The browser has excellent password management and is constantly evolving and implementing other authentication methods, such as [Webauthn][16]. The use of [associated domains][17] provides another layer of security.
|
||||
|
||||
I believe that compared to the alternatives, "the web is winning," and future progress will minimize these drawbacks as the web offers new capabilities. I don't think native development will disappear, but there will be more seamless integrations between WebView and native code.
|
||||
|
||||
### Wrap up
|
||||
|
||||
While PWAs are still in their early stages of development, they have the potential to revolutionize the way we use the web. Every day I see a new website pushing the limits of what a PWA can be. Whether the management knows they are building a PWA or not, I often come across web apps and dev teams that surprise me with how they expand the use of web technologies or pass on a native app in lieu of a well-optimized mobile website.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/pwa-web-browser
|
||||
|
||||
作者:[Alex Borsody][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/alexborsody
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.electronjs.org/
|
||||
[2]: https://web.dev/lighthouse-pwa/
|
||||
[3]: https://opensource.com/sites/default/files/2022-10/GoogleLighthouseScore.jpg
|
||||
[4]: https://ctrl.carbonpay.io/user/login
|
||||
[5]: https://www.drupal.org/project/pwa
|
||||
[6]: https://opensource.com/article/22/6/drupal-pwa
|
||||
[7]: https://opensource.com/sites/default/files/2022-10/GoogleServiceWorkers.jpg
|
||||
[8]: https://opensource.com/sites/default/files/2022-10/GoogleManifest.jpg
|
||||
[9]: https://hotwired.dev/
|
||||
[10]: https://docs.google.com/presentation/d/1D7-H7om4Ul6nFeIX2x1oSpKCvC7LRUP3uh0r7jM3IVs/edit#slide=id.g126166aeb51_2_271
|
||||
[11]: https://developer.chrome.com/blog/fugu-status/
|
||||
[12]: https://developers.google.com/speed
|
||||
[13]: https://devm.io/javascript/project-fugu-interview-steiner-168988
|
||||
[14]: https://whatwebcando.today/
|
||||
[15]: https://forum.ionicframework.com/search?q=minimum%20functionality
|
||||
[16]: https://webauthn.io/
|
||||
[17]: https://developer.apple.com/documentation/xcode/supporting-associated-domains
|
@ -0,0 +1,139 @@
|
||||
[#]: subject: "Transfer files and folders from Windows to Linux with PSCP"
|
||||
[#]: via: "https://opensource.com/article/22/10/transfer-files-windows-linux-pscp"
|
||||
[#]: author: "Paul https://opensource.com/users/plaubscher"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Transfer files and folders from Windows to Linux with PSCP
|
||||
======
|
||||
|
||||
The open source PSCP utility makes it easy to transfer files and folders between Windows and Linux computers.
|
||||
|
||||
Are you looking for a way to quickly transfer files from your Windows computer to your Linux computer and back again? The open source PSCP utility makes it easy to transfer files and folders, and of course it's open source.
|
||||
|
||||
### Setting your PATH in Windows
|
||||
|
||||
Knowing how to set your command path in Windows makes it easier to use a handy utility like PSCP. If you're unfamiliar with that process, read [how to set a PATH on Windows][1].
|
||||
|
||||
### Using PSCP
|
||||
|
||||
PSCP (PuTTY Secure Copy Protocol) is a command-line tool for transferring files and folders from a Windows computer to a Linux computer.
|
||||
|
||||
- Download `pscp.exe` from its [website][2].
|
||||
- Move `pscp.exe` to a folder in your PATH (for example, `Desktop\App` if you followed the PATH tutorial here on [Opensource.com][3]). If you haven't set a PATH variable for yourself, you can alternately move `pscp.exe` to the folder holding the files you're going to transfer.
|
||||
- Open Powershell on your Windows computer using the search bar in the Windows taskbar (type 'powershell` into the search bar.)
|
||||
- Type `pscp –version` to confirm that your computer can find the command.
|
||||
|
||||
### IP address
|
||||
|
||||
Before you can make the transfer, you must know the IP address or fully-qualified domain name of the destination computer. Assuming it's a computer on your same network, and that you're not running a DNS server to resolve computer names, you can find the destination IP address using the `ip` command on the Linux machine:
|
||||
|
||||
```
|
||||
[linux]$ ip addr show |grep'inet '
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0
|
||||
```
|
||||
|
||||
In all cases, 127.0.0.1 is a loopback address that the computer uses only to talk to itself, so in this example the correct address is 192.168.1.23. On your system, the IP address is likely to be different. If you're not sure which is which, you can try each one in succession until you get the right one (and then write it down somewhere!)
|
||||
|
||||
Alternately, you can look in the settings of your router, which lists all addresses assigned over DHCP.
|
||||
|
||||
### Firewalls and servers
|
||||
|
||||
The `pscp` command uses the OpenSSH protocol, so your Linux computer must be running the OpenSSH server software, and its firewall must allow SSH traffic.
|
||||
|
||||
If you're not sure whether your Linux machine is running SSH, then run this command on the Linux machine:
|
||||
|
||||
```
|
||||
[linux]$ sudo systemctl enable--now sshd
|
||||
```
|
||||
|
||||
To ensure your firewall allows SSH traffic, run this command:
|
||||
|
||||
```
|
||||
[linux]$ sudo firewall-cmd --add-servicessh--permanent
|
||||
```
|
||||
|
||||
For more information on firewalls on Linux, read [Make Linux stronger with firewalls][4].
|
||||
|
||||
### Transfer the file
|
||||
|
||||
In this example, I have a file called `pscp-test.txt` that I want to transfer from `C:\Users\paul\Documents` on my Windows computer to my destination Linux computer home directory `/_home_/paul`.
|
||||
|
||||
Now that you have the `pscp` command and the destination address, you're ready to transfer the test file `pscp-test.txt`. Open Powershell and use the `dir` command to change to the `Documents` folder, where the sample file is located:
|
||||
|
||||
PS> dir %USERPROFILE%\Documents\
|
||||
|
||||
Now execute the transfer:
|
||||
|
||||
```
|
||||
PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul| Password:
|
||||
End of keyboard-interactive prompts from server
|
||||
pscp-test.txt |0 kb |0.0 kB/s | ETA: 00:00:00 |100%
|
||||
```
|
||||
|
||||
Here's the syntax, word for word:
|
||||
|
||||
- `pscp`: The command used to transfer the file.
|
||||
- `pscp-test.txt` is the name of the file you want to transfer from Windows.
|
||||
- `paul@192.168.1.23` is my username on the Linux computer, and the IP address of the Linux computer. You must replace this with your own user and destination information. Notice that `pscp` requires a destination path on the target computer, and `:/home/paul` at the end of the IP address specifies that I want the file copied to my home folder.
|
||||
|
||||
After you authenticate to the Linux computer, the `pscp-test.txt` file is transferred to the Linux computer.
|
||||
|
||||
### Verifying the transferred
|
||||
|
||||
On your Linux computer, open a terminal and use the `ls` command to verify that the file `pscp-test.txt` appears in your home directory.
|
||||
|
||||
```
|
||||
[linux]$ ls
|
||||
Documents
|
||||
Downloads
|
||||
Music
|
||||
Pictures
|
||||
pscp-test.txt
|
||||
```
|
||||
|
||||
### Copying a file off of a Linux system
|
||||
|
||||
You aren't limited to just copying files to your Linux system. With `pscp`, you can also copy a file from Linux onto Windows. The syntax is the same, only in reverse:
|
||||
|
||||
```
|
||||
PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt
|
||||
```
|
||||
|
||||
Here's the syntax:
|
||||
|
||||
- `pscp`: The command used to transfer the file.
|
||||
- `paul@192.168.1.23:/home/paul/pscp-test.txt` is my username on the Linux computer, the IP address of the Linux computer, and the path to the file I want to copy.
|
||||
- `%USERPROFILE%\Documents` is the location on my Windows computer where I want to save the file. Notice that in copying the file back to my Windows computer, I can give it a new name, such as `pscp-win.txt`, to differentiate it from the original. You don't have to rename the file, of course, but for this demonstration it's a useful shortcut.
|
||||
|
||||
Open your file manager to verify that the `pscp-win.txt` file was copied to the Windows `C:\Users\paul\Documents` path from the Linux computer.
|
||||
|
||||
![Image of a file manager.][5]
|
||||
|
||||
### Remote copying
|
||||
|
||||
With the power of the open source `pscp` command, you have access to any computer in your house, and servers you have accounts on, and even mobile and [edge devices][6].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp
|
||||
|
||||
作者:[Paul][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/plaubscher
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/article/22/10/set-path-powershell
|
||||
[2]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
|
||||
[3]: http://Opensource.com
|
||||
[4]: https://opensource.com/article/19/7/make-linux-stronger-firewalls
|
||||
[5]: https://opensource.com/sites/default/files/2022-10/Filemanager.pscp_.png
|
||||
[6]: https://opensource.com/tags/edge-computing
|
@ -0,0 +1,142 @@
|
||||
[#]: subject: "Fedora 37: Top New Features and Release Wiki"
|
||||
[#]: via: "https://www.debugpoint.com/fedora-37/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Fedora 37: Top New Features and Release Wiki
|
||||
======
|
||||
|
||||
**An article about Fedora 37 and its new features, release details and everything you need to know.**
|
||||
|
||||
Fedora 37 development is wrapped up, and the BETA is [now out][1]. Hence the features and packages are final at this stage.
|
||||
|
||||
In this usual feature guide page, I have summarised the essential features you should know about Fedora 37 and get an idea of what to expect. But before that, here’s a tentative schedule.
|
||||
|
||||
- The beta was out on September 13, 2022.
|
||||
- **Final Fedora 37 is planned for release on November 15, 2022.**
|
||||
|
||||
![Fedora 37 Workstation with GNOME 43][2]
|
||||
|
||||
Fedora 37 Workstation with GNOME 43
|
||||
|
||||
### Fedora 37: Top New Features
|
||||
|
||||
#### Kernel
|
||||
|
||||
**First** up are the critical items that make the core. Fedora 37 is powered by **Linux Kernel 5.19,** the latest mainline Kernel available now. Linux Kernel 5.19 brings essential features such as a fix for Ratbleed vulnerability, ARM support, Apple M1 NVMe SSD controller support and many such features, which you can read in our [Kernel feature guide][3].
|
||||
|
||||
The advantage of using the latest Kernel is that you can be assured that you are using the latest and greatest hardware support available at this moment in time.
|
||||
|
||||
**Next** up, the desktop environments are updated in this release.
|
||||
|
||||
#### Desktop Environment
|
||||
|
||||
Fedora 37 is the first distribution which brings the stunning **GNOME 43** desktop, which brings some excellent features such as:
|
||||
|
||||
- [Revamped quick settings][4] with pill-buttons
|
||||
- Files (nautilus) 43 with GTK4 and libadwaita port
|
||||
- Files with rubberband, emblems, responsive sidebar-like features
|
||||
- [Updated GNOME Web with WebExtension API support][5]
|
||||
|
||||
And many features you have been waiting for for years. Do check out my [GNOME 43 feature guide][6] to learn more.
|
||||
|
||||
Fedora 37 brings **KDE Plasma 5.26** desktop environment with tons of new features, performance improvements and bug fixes. The most noteworthy features of the KDE Plasma desktop include:
|
||||
|
||||
- An updated overview screen.
|
||||
- Dynamic wallpaper for dark and light themes.
|
||||
- Animated wallpaper support
|
||||
- Multi-button mouse support
|
||||
- Updated KDE Framework and applications.
|
||||
|
||||
…and much more which you can read in detail in my [KDE Plasma 5.26 feature guide][7].
|
||||
|
||||
Since the lightweight desktop LXQt gets a stable update, 1.1.0, it arrives in Fedora 37. **LXQt 1.1.0** brings a default colour palette for dark themes for a uniform look, two variants (simple and compact) of the application menu and re-arranged GTK settings. Furthermore, LXQt 1.1.0 also starts the initial work for the Qt 6.0 porting of desktop components. All these bug fixes and enhancements arrive in the Fedora LXQt edition.
|
||||
|
||||
In addition, other primary desktop flavours remain at their current releases since no significant new updates arrive, i.e. **Xfce 4.16 and MATE 1.26**for the respective Fedora flavours.
|
||||
|
||||
Let’s see what the system-wide changes in this release that impacts all the Fedora flavours are.
|
||||
|
||||
#### System wide changes
|
||||
|
||||
The most significant change is the official support for **Raspberry Pi 4** boards. Thanks to the works over the years, you can now enjoy Fedora 37 on your favourite Pi boards with out-of-the-box supports.
|
||||
|
||||
Fedora Linux is always a pioneer in advancing technology and adopting the latest features before any other distro. With that in mind, the **SDDM display manager now comes with default Wayland** in KDE Plasma (and Kinoite) and different flavours. This completes the Wayland transition from the Fedora distro aspect for this flavour.
|
||||
|
||||
As I [reported earlier][8], Fedora Linux 37 plans to provide us with a preview image of a **Web-based installer** for Anaconda. It might not be available immediately following the release. But it should be within a few days post-release.
|
||||
|
||||
Other noteworthy features include changing the **default hostname from “fedora” to “localhost”** to mitigate some third-party system configuration detection.
|
||||
|
||||
Other than that, the **Fedora Core OS** is made to be an official Fedora edition and now stands together with Server, IoT and cloud editions for better discovery and adoption. Fedora Core OS minimal footprint OS is primarily used for container workloads and brings auto updates and additional features.
|
||||
|
||||
Following the tradition, this release also features a [brand new wallpaper][9] with both night and day versions. I must say it looks awesome (see the above desktop image).
|
||||
|
||||
Finally, also in this release, Fedora **drops 32-bit Java** packages, including JDK 8, 11, and 17, since usage is low. In addition, the openssl1.1 package is also deprecated.
|
||||
|
||||
The toolchain, apps and programming stack are updated as follows:
|
||||
|
||||
- Glibc 2.36 and Binutils 2.38
|
||||
- Node.js 18.x
|
||||
- Perl 5.36
|
||||
- Python 3.11
|
||||
|
||||
### Summary of features in Fedora 37
|
||||
|
||||
So, that’s about it with the features of this release. Here’s a summary of the Fedora 37 features:
|
||||
|
||||
- Linux Kernel 5.19
|
||||
- GNOME 43
|
||||
- KDE Plasma 5.26
|
||||
- Xfce 4.16
|
||||
- MATE 1.24
|
||||
- LXQt 1.1.0
|
||||
- A preview image of the new web-based installer
|
||||
- The SDDM display manager defaults to Wayland (in KDE Plasma and others)
|
||||
- Official Raspberry Pi 4 support
|
||||
- Fedora Core OS becomes the official flavour
|
||||
- Key packages dropping 32-bit support
|
||||
- And associated toolchain and programming language updates.
|
||||
|
||||
If you have spare time, you can[give it a spin][10] or test drive. Just be cautious that it is still BETA.
|
||||
|
||||
Also, If you are daring enough, you can upgrade to this release with **caution** because, y’know it’s BETA. The commands below will help you to do that.
|
||||
|
||||
```
|
||||
sudo dnf install dnf-plugin-system-upgrade
|
||||
sudo dnf system-upgrade download --ref --releasever=37
|
||||
```
|
||||
|
||||
For Kinoite, Silverblue and other immutable versions, use:
|
||||
|
||||
```
|
||||
rpm-ostree rebase fedora:fedora/37/x86_64/silverblue
|
||||
```
|
||||
|
||||
**So, what’s your favourite feature of this release? Let me know in the comment section.**
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/fedora-37/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://debugpointnews.com/fedora-37-beta/
|
||||
[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg
|
||||
[3]: https://www.debugpoint.com/linux-kernel-5-19/
|
||||
[4]: https://www.debugpoint.com/gnome-43-quick-settings/
|
||||
[5]: https://www.debugpoint.com/gnome-web-43-tab-view/
|
||||
[6]: https://www.debugpoint.com/gnome-43/
|
||||
[7]: https://www.debugpoint.com/kde-plasma-5-26/
|
||||
[8]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/
|
||||
[9]: https://debugpointnews.com/fedora-37-wallpaper/
|
||||
[10]: https://getfedora.org/workstation/download/
|
@ -0,0 +1,107 @@
|
||||
[#]: subject: "How to Change Login Screen Background in Ubuntu"
|
||||
[#]: via: "https://www.debugpoint.com/change-login-background-ubuntu/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Change Login Screen Background in Ubuntu
|
||||
======
|
||||
|
||||
**This is how you can get rid of that boring login screen background in Ubuntu and set a nice picture to welcome you each time you log on.**
|
||||
|
||||
I, always think that when you boot up your system, a nice login screen should greet you. That itself set the context of your upcoming work or activity that you are about to do. Although, I am not a Windows fan, but I admire how Windows 10 login background changes every day from Bing wallpapers, and it looks nice. Isn’t it?
|
||||
|
||||
A while back, we covered how to [change login background in Fedora][1] and [elementary OS][2]. And now this guide explains how you change it in vanilla Ubuntu with GNOME Shell.
|
||||
|
||||
Login screen background is part of display manager property. This guide uses a script in GitHub created by a user to make it seamless and easy for average user. Otherwise, you have to change the Gnome Display Manager (gdm) CSS files manually after extracting the `.gresource` file, then compile it – which is complicated in general.
|
||||
|
||||
![Ubuntu Login screen - before change][3]
|
||||
|
||||
Ubuntu Login screen – before change
|
||||
|
||||
### Change Login Background in Ubuntu
|
||||
|
||||
- Open a terminal (press CTRL+ALT+T)
|
||||
|
||||
- Download the [GitHub repo][4] using the below command.
|
||||
|
||||
```
|
||||
wget github.com/thiggy01/change-gdm-background/raw/master/change-gdm-background
|
||||
```
|
||||
|
||||
**Note**: If you do not have wget, install it using `sudo apt install wget`
|
||||
|
||||
**Ubuntu 22.04 Jammy Jellyfish** users require an additional code change to make it work because the developer did not fix it in GitHub. So here’s what you need to do.
|
||||
|
||||
Open the `change-gdm-background` file via gedit. Then, go to the following line (#15) and add `|jammy`.
|
||||
|
||||
![script change to allow jammy][5]
|
||||
|
||||
script change to allow jammy
|
||||
|
||||
Then, go to the following two lines (#144 and #184). Change `gdm3.css` to `gdm.css`. As shown below.
|
||||
|
||||
![correct the css file for gdm][6]
|
||||
|
||||
correct the css file for gdm
|
||||
|
||||
And finally, save the file and follow the instructions as below. This workaround is only for Ubuntu 22.04 login screen change.
|
||||
|
||||
- Change the permission of the script to make it executable
|
||||
|
||||
```
|
||||
chmod +x change-gdm-background
|
||||
```
|
||||
|
||||
- Then change the login background wallpaper in Ubuntu using the below command. Change the path of your image.
|
||||
|
||||
```
|
||||
sudo ./change-gdm-background ~/Pictures/tree.jpg
|
||||
```
|
||||
|
||||
This step might require `libglib2.0-dev` package, which will be installed automatically. This is required to extract/compile the `.gresource`.
|
||||
|
||||
And after installation, it would prompt you to restart gdm. Press N, to be on the safe side.
|
||||
|
||||
- Log out and you can see the changed background in Ubuntu.
|
||||
- If you are not seeing the change, try restarting your system and then try to log in.
|
||||
|
||||
![Ubuntu Login screen After Change][7]
|
||||
|
||||
Ubuntu Login screen with background After Change
|
||||
|
||||
### Restore the stock login screen
|
||||
|
||||
The script also provides a feature to revert the stock login screen. It takes a backup of your `.gresource` file before changing it. So, from the terminal, simply run below to restore the original login screen.
|
||||
|
||||
```
|
||||
sudo ./change-gdm-background --restore
|
||||
```
|
||||
|
||||
That should change the login screen back to its original form.
|
||||
|
||||
Let me know whether it worked for you using the comment box below. This should work for all the latest versions of Ubuntu Linux.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/change-login-background-ubuntu/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/2021/09/change-login-background-fedora/
|
||||
[2]: https://www.debugpoint.com/2021/07/change-lock-login-screen-background-elementary-os/
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-before-change-1024x539.jpg
|
||||
[4]: https://github.com/thiggy01/change-gdm-background
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2022/09/script-change-to-allow-jammy.jpg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2022/09/correct-the-css-file-for-gdm.jpg
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-After-Change-1024x538.jpg
|
@ -0,0 +1,156 @@
|
||||
[#]: subject: "Doing 64-bit math on a 16-bit system"
|
||||
[#]: via: "https://opensource.com/article/22/10/64-bit-math"
|
||||
[#]: author: "Jerome Shidel https://opensource.com/users/shidel"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Doing 64-bit math on a 16-bit system
|
||||
======
|
||||
|
||||
With a little basic understanding of assembly, these functions could be scaled to do math on integers of any bit size.
|
||||
|
||||
A few years ago, I wrote a command-line math program for FreeDOS called VMATH. It was capable of performing only extremely simple mathematical operations on very small unsigned integers. With some recent interest in basic math in the FreeDOS community, I improved VMATH to provide basic math support on signed 64-bit integers.
|
||||
|
||||
The process of manipulating big numbers using only 16-bit 8086 compatible assembly instructions is not straightforward. I would like to share some samples of the techniques used by VMATH. Some of the methods used are fairly easy to grasp. Meanwhile, others can seem a little strange. You may even learn an entirely new way of performing some basic math.
|
||||
|
||||
The techniques explained here to add, subtract, multiply, and divide 64-bit integers are not limited to just 64-bits. With a little basic understanding of assembly, these functions could be scaled to do math on integers of any bit size.
|
||||
|
||||
Before digging into those math functions, I want to cover some basics of numbers from the computer's perspective.
|
||||
|
||||
### How computers read numbers
|
||||
|
||||
An Intel-compatible CPU stores the value of numbers in bytes from least to most significant. Each byte is made up of 8 binary bits and two bytes make up a word.
|
||||
|
||||
A 64-bit number that is stored in memory uses 8 bytes (or 4 words). For example, a value of 74565 (0x12345in hexadecimal) looks something like this:
|
||||
|
||||
```
|
||||
as bytes: db 0x45, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
as words: dw 0x2345, 0x0001, 0x0000, 0x0000
|
||||
```
|
||||
|
||||
When reading or writing data to memory, the CPU processes the bytes in the correct order. On a processor more modern than an 8086, there can be larger groups, such as a quadword which can represent the entire 64-bit integer as **0x0000000000012345**.
|
||||
|
||||
The 8086 CPU doesn't understand such gigantic numbers. When writing a program for FreeDOS, you want something that can run on any PC, even an original IBM PC 5150. You also want to use techniques that can be scaled to any size integer. The capabilities of a more modern CPU do not really concern us.
|
||||
|
||||
For the purpose of doing integer math, the data can represent two different types of numbers.
|
||||
|
||||
The first is unsigned which uses all of its bit to represent a positive number. Their value can be from **0** up to **(2 ^ (numberofbits) - 1)**. For example, 8 bits can have any value from **0** to **255**, with 16 bits ranging from **0** to **65535**, and so on.
|
||||
|
||||
Signed integers are very similar. However, the most significant bit of the number represents whether the number is positive (**0**) or negative (**1**). The first portion of the number is positive. It can range from **0** up to **(2 ^ (numberofbits - 1) - 1)**. The negative portion follows the positive, ranging from its lowest value **(0-(2 ^ (numberofbits - 1)))** up to **-1**.
|
||||
|
||||
For example, an 8-bit number represents any value from **0** to **127** in the positive range, and **-128** through **-1** in the negative range. To help visualize it, consider the **byte** as the set of numbers **[0…127,-128…-1]**. Because **-128** follows **127** in the set, adding **1** to **127** equals **-128**. While this may seem strange and backward, it actually makes doing basic math at this level much easier.
|
||||
|
||||
To perform basic addition, subtraction, multiplication, and division of very big integers, you should explore some simple routines to get a number's absolute or negative value. You will need them once you start doing math on signed integers.
|
||||
|
||||
### Absolute and negative values
|
||||
|
||||
Getting the absolute value of a signed integer is not as bad as it may first seem. Because of how unsigned and signed numbers are represented in memory, there is a fairly easy solution. You can simply invert all the bits of a negative number and add **1** to get the result.
|
||||
|
||||
That might sound odd if you haven't worked in binary before, but that is how works. To give you an example, take an 8-bit representation of a negative number, such as **-5**. Since it would be near the end of the **[0…127,-128…-1]** byte set, it would have a value of **0xfb** in hexadecimal, or **11111011** in binary. If you flip all the bits, you get **0x04**, or **00000100** in binary. Add **1** to that result and you have the answer. You just changed the value from **-5** to **+5**.
|
||||
|
||||
You can write this procedure in assembly to return the absolute value of any 64-bit number:
|
||||
|
||||
```
|
||||
; syntax, NASM for DOS
|
||||
proc_ABS:
|
||||
; on entry, the SI register points to the memory location in the
|
||||
; data segment (DS) for the program containing the 64-bit
|
||||
; number that will be made positive.
|
||||
; On exit, the Carry Flag (CF) is set if resulting number can
|
||||
; not be made positive. This only happens with maximum
|
||||
; negative value. Otherwise, CF is cleared.
|
||||
; check most significant bit of highest byte
|
||||
test [si+7], byte 0x80
|
||||
; if not set, the number is positive
|
||||
jz .done_ABS
|
||||
; flip all the bits of word #4
|
||||
not word [si+6]
|
||||
not word [si+4] ; word #3
|
||||
not word [si+2] ; word #2
|
||||
not word [si] ; word #1
|
||||
; increment the 1st word
|
||||
inc word [si]
|
||||
; if it did not roll over back to zero, done
|
||||
jnz .done_ABS
|
||||
; increment the 2nd word
|
||||
inc word [si+2]
|
||||
; if it rolled over, increment the next word
|
||||
jnz .done_ABS
|
||||
inc word [si+4]
|
||||
jnz .done_ABS
|
||||
; this cannot roll over
|
||||
inc word [si+6]
|
||||
; check most significant bit once more
|
||||
test [si+7], byte 0x80
|
||||
; if it is not set we were successful, done
|
||||
jz .done_ABS
|
||||
; overflow error, it reverted to Negative
|
||||
stc
|
||||
; set Carry Flag and return
|
||||
ret
|
||||
.done_ABS:
|
||||
; Success, clear Carry Flag and return
|
||||
clc
|
||||
ret
|
||||
```
|
||||
|
||||
As you may have noticed in the example, there is an issue that can occur in the function. Because of how positive and negative numbers are represented as binary values, the maximum negative number cannot be made positive. For 8-bit numbers, the maximum negative value is **-128**. If you flip all of the bits for **-128** (binary1__0000000), you get **127** (binary0__1111111) the maximum positive value. If you add **1** to that result, it will overflow back to the same negative number (-128).
|
||||
|
||||
To turn a positive number negative, you can just repeat the process you used to get the absolute value. The example procedure is very similar, except you want to make sure the number is not already negative at the start.
|
||||
|
||||
```
|
||||
; syntax, NASM for DOS
|
||||
proc_NEG:
|
||||
; on entry, the SI points to the memory location
|
||||
; for the number to be made negative.
|
||||
; on exit, the Carry Flag is always clear.
|
||||
; check most significant bit of highest byte
|
||||
test [si+7], byte 0x80
|
||||
; if it is set, the number is negative
|
||||
jnz .done_NEG
|
||||
not word [si+6] ; flip all the bits of word #4
|
||||
not word [si+4] ; word #3
|
||||
not word [si+2] ; word #2
|
||||
not word [si] ; word #1
|
||||
inc word [si] ; increment the 1st word
|
||||
; if it did not roll over back to zero, done
|
||||
jnz .done_NEG
|
||||
; increment the 2nd word
|
||||
inc word [si+2]
|
||||
; if it rolled over, increment the next word
|
||||
jnz .done_NEG
|
||||
inc word [si+4]
|
||||
jnz .done_NEG
|
||||
; this cannot roll over or revert back to
|
||||
inc word [si+6]
|
||||
; positive.
|
||||
.done_NEG:
|
||||
clc ; Success, clear Carry Flag and return
|
||||
ret
|
||||
```
|
||||
|
||||
With all of that shared code between the absolute and negative functions, they should be combined to save some bytes. There are additional benefits when such code is combined. For one, it helps prevent simple typographic errors. It also can reduce testing requirements. Moreover, the source generally becomes easier to read, follow, and understand. Sometimes with a long series of assembly instructions, it is easy to lose track of what is actually happening. But for now, we can move along.
|
||||
|
||||
Getting the absolute or negative value of a number was not very difficult. But, those functions will be critically important later on when we start doing math on signed integers.
|
||||
|
||||
Now that I've covered the basics of how integer numbers are represented at the bit level and created a couple of basic routines to manipulate them a little, we can get to the fun stuff.
|
||||
|
||||
Let's do some math!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/64-bit-math
|
||||
|
||||
作者:[Jerome Shidel][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/shidel
|
||||
[b]: https://github.com/lkxed
|
||||
|
@ -0,0 +1,170 @@
|
||||
[#]: subject: "Tips for using the Linux test command"
|
||||
[#]: via: "https://opensource.com/article/22/10/test-command-linux"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Tips for using the Linux test command
|
||||
======
|
||||
|
||||
The [ and test commands are vital conditional statements when scripting.
|
||||
|
||||
The `[` command, often called a "test," is a command from the GNU Core Utils package, and initiates a conditional statement in Bash. Its function is exactly the same as the `test` command. When you want to execute a command only when something is either true or false, use the `[` or the `test` command. However, there's a significant difference between `[` or `test` and `[[`, and there's a technical difference between those commands and your shell's versions of them.
|
||||
|
||||
### [ vs test commands in Linux
|
||||
|
||||
The `[` and the `test` commands, installed by the GNU Core Utils package, perform the same function using a slightly different syntax. (You might find it difficult to search for documentation using the single left-square bracket character, however, so many users find `test` easier to reference.) Bash and similar shells happen to also have the `[` and the `test` commands built-in, and the built-in versions supersede the ones installed in `/usr/bin`. In other words, when you use `[` or `test`, you're probably not executing `/usr/bin/[` or `/usr/bin/test`. Instead, you're invoking what's essentially a function of your Bash shell.
|
||||
|
||||
You might wonder why `[` or `test` exist in `/usr/bin` at all. Some shells, such as [tcsh][1], don't have `[` and `test` built-in, so if you want to use those commands in that shell, you must have them installed as separate binaries.
|
||||
|
||||
The bottom line is that as long as you don't get an error when you type a command starting with `[` or `test`, then you've got everything you need. It almost never matters whether your shell or your `bin` directory is providing the commands.
|
||||
|
||||
### Testing for a file
|
||||
|
||||
It's common to want to know whether a file exists, often so you can confidently proceed with some action, or so you can avoid "clobbering" it with a file of the same name. In an interactive shell session, you can just look to see whether the file exists but in a shell script, you need the computer to determine that for itself. The `-e` option tests whether a file exists, but its apparent response is the same either way.
|
||||
|
||||
```
|
||||
$ touch example
|
||||
$ test-e example
|
||||
$ test-e notafile
|
||||
$
|
||||
```
|
||||
|
||||
The `[` and `test` commands are essentially switches. They emit a `true` or `false` response, but considers both of them as success. You can put this to use by pairing the commands with logical operators, such as `&&` and `||`. The `&&` operator is executed when a response is `true`:
|
||||
|
||||
```
|
||||
$ touch example
|
||||
$ test-e example &&echo"foo"
|
||||
foo
|
||||
$ test-e notafile &&echo"foo"
|
||||
$
|
||||
```
|
||||
|
||||
The `||` operator executes when a response is `false`:
|
||||
|
||||
```
|
||||
$ touch example
|
||||
$ test-e example ||echo"foo"
|
||||
$ test-e notafile ||echo"foo"
|
||||
foo
|
||||
$
|
||||
```
|
||||
|
||||
If you prefer, you can use square brackets instead of `test`. In all cases, the results are the same:
|
||||
|
||||
```
|
||||
$ touch example
|
||||
$ [-e example ] && echo "foo"
|
||||
foo
|
||||
$ [-e notafile ] && echo "foo"
|
||||
$
|
||||
```
|
||||
|
||||
### Testing for file types
|
||||
|
||||
Everything in Linux is a file, so when you can test for the existence of a directory with the `-e` option, the same way you test for a file. However, there are different kinds of files, and sometimes that matters. You can use `[` or `test` to detect a variety of different file types:
|
||||
|
||||
- `-f`: regular file (returns `false` for a directory)
|
||||
- `-d`: directory
|
||||
- `-b`: block (such as `/dev/sda1`)
|
||||
- `-L` or `-h`: symlink
|
||||
- `-S`: socket
|
||||
|
||||
There are more, but those tend to be the most common.
|
||||
|
||||
### Testing for file attributes
|
||||
|
||||
You can also look at metadata of a file:
|
||||
|
||||
- `-s`: a file with the size greater than zero
|
||||
- `-N`: a file that's been modified since it was last read
|
||||
|
||||
You can test by ownership:
|
||||
|
||||
- `-O`: a file owned by the current primary user
|
||||
- `-G`: a file owned by the current primary group
|
||||
|
||||
Or you can test by permissions (or file mode):
|
||||
|
||||
- `-r`: a file with read permission granted
|
||||
- `-w`: a file with write permission granted
|
||||
- `-x`: a file with execute permission granted
|
||||
- `-k`: a file with the sticky bit set
|
||||
|
||||
### Combining tests
|
||||
|
||||
You don't always just have to test for a single attribute. The `-a` option ("and") allows you to string several tests together, with the requirement that all tests return as `true`:
|
||||
|
||||
```
|
||||
$ touch zombie apocalypse now
|
||||
$ test-e zombie -a-e apocalypse -a-e now &&echo"no thanks"
|
||||
no thanks
|
||||
```
|
||||
|
||||
If any expression fails, then the test returns `false`:
|
||||
|
||||
```
|
||||
$ touch zombie apocalypse now
|
||||
$ test-e plant -a-e apocalypse -a-e now &&echo"no thanks"
|
||||
$
|
||||
```
|
||||
|
||||
The `-o` option ("or") requires that one expression is true:
|
||||
|
||||
```
|
||||
$ touch zombie apocalypse now
|
||||
$ test-e zombie -o-e plant -o-e apocalypse &&echo"no thanks"
|
||||
no thanks
|
||||
```
|
||||
|
||||
### Integer tests
|
||||
|
||||
You can also test integers. That's not necessarily directly useful (you probably inherently know that 0 is less than 1, for instance) but it's invaluable when you're using variables in a script.
|
||||
|
||||
The operators are fairly intuitive once you understand the schema:
|
||||
|
||||
- `-eq`: equal to
|
||||
- `-ne`: not equal
|
||||
- `-ge`: greater than or equal to
|
||||
- `-gt`: greater than
|
||||
- `-le`: less than or equal to
|
||||
- `-lt`: less than
|
||||
|
||||
Here's a simple example:
|
||||
|
||||
```
|
||||
$ nil=0
|
||||
$ foo=1
|
||||
$ test$foo-eq$nil||echo"Those are not equal."
|
||||
Those are not equal.
|
||||
$ test$foo-eq1&&echo"Those are equal."
|
||||
```
|
||||
|
||||
Of course, you can combine tests.
|
||||
|
||||
```
|
||||
$ touch example
|
||||
$ test$foo-ne$nil-a-e example -o-e notafile &&echo"yes"yes
|
||||
```
|
||||
|
||||
### Testing testing
|
||||
|
||||
The `[` and `test` commands are vital conditional statements when scripting. These are easy and common ways to control the flow of your code. There are yet more tests available than what I've covered in this article, so whether you used Bash, tcsh, ksh, or some other shell entirely, take a look at the man page to get the full spectrum of what these commands offer.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/test-command-linux
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/article/20/8/tcsh
|
@ -0,0 +1,250 @@
|
||||
[#]: subject: "How To Monitor File Changes Using fswatch In Linux"
|
||||
[#]: via: "https://ostechnix.com/monitor-file-changes-using-fswatch-linux/"
|
||||
[#]: author: "sk https://ostechnix.com/author/sk/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How To Monitor File Changes Using fswatch In Linux
|
||||
======
|
||||
|
||||
**Fswatch** is a free, open source multi-platform file change monitor utility that notifies us when the contents of the specified files or directories are modified or changed. Using fswatch, we can easily monitor the changes being made in files and/or directories. It supports all operating systems, including GNU/Linux, *BSDs, Mac OS X, Solaris, and Microsoft Windows etc. In this brief guide, let me show you how to **monitor file changes using fswatch** in Linux and Unix-like operating systems.
|
||||
|
||||
### Types of monitoring
|
||||
|
||||
Fswatch implements the following types of monitors.
|
||||
|
||||
- A monitor based on the File System Events API of Apple OS X.
|
||||
- A monitor based on kqueue, a notification interface introduced in FreeBSD 4.1.
|
||||
- A monitor based on the File Events Notification API of the Solaris kernel and its derivatives.
|
||||
- A monitor based on inotify, a Linux kernel subsystem that reports file system changes to applications.
|
||||
- A monitor based on ReadDirectoryChangesW, a Microsoft Windows API that reports changes to a directory.
|
||||
- A monitor which periodically stats the file system, saves file modification times in memory, and manually calculates file system changes.
|
||||
|
||||
### Features
|
||||
|
||||
Concerning about the features of fswatch, we can list the following:
|
||||
|
||||
- Cross-platform and open source utility.
|
||||
- Support for many OS-specific APIs.
|
||||
- Recursive directory monitoring.
|
||||
- Path filtering using including and excluding regular expressions.
|
||||
- Customizable record format.
|
||||
- Support for periodic idle events.
|
||||
- And many.
|
||||
|
||||
### Install fswatch in Linux
|
||||
|
||||
The fswatch utility is available in the default repositories of popular Linux distributions.
|
||||
|
||||
To install fswatch in Debian, Ubuntu, Linux Mint, Pop OS, and other APT-based systems, run:
|
||||
|
||||
```
|
||||
$ sudo apt install fswatch
|
||||
```
|
||||
|
||||
To install fswatch in Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux, **enable [EPEL] repository** using command:
|
||||
|
||||
```
|
||||
$ sudo dnf install epel-release
|
||||
```
|
||||
|
||||
And then install install fswatch using command:
|
||||
|
||||
```
|
||||
$ sudo dnf install fswatch
|
||||
```
|
||||
|
||||
To install fswatch in openSUSE, run:
|
||||
|
||||
```
|
||||
$ sudo zypper install fswatch
|
||||
```
|
||||
|
||||
#### Install fswatch from source
|
||||
|
||||
If fswatch is not available for your distribution, you can manually compile and install the latest version from the source as described below.
|
||||
|
||||
Before compiling, you need to **install Development tools** in your Linux distribution. To install Development tools on various Linux distributions, refer the following guide.
|
||||
|
||||
- [**How To Install Development Tools In Linux**][1]
|
||||
|
||||
Then, download the fswatch source file [**from here**][2].
|
||||
|
||||
```
|
||||
$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.17.1/fswatch-1.17.1.tar.gz
|
||||
```
|
||||
|
||||
Extract the downloaded tarball:
|
||||
|
||||
```
|
||||
$ tar -zxvf fswatch-1.17.1.tar.gz
|
||||
```
|
||||
|
||||
Go to the project's folder:
|
||||
|
||||
```
|
||||
$ cd fswatch-1.17.1/
|
||||
```
|
||||
|
||||
Finally, compile and install fswatch by running the following commands one by one.
|
||||
|
||||
```
|
||||
$ ./configure
|
||||
```
|
||||
|
||||
```
|
||||
$ make
|
||||
```
|
||||
|
||||
```
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
Finally, run the following command to refresh the links and cache to the dynamic libraries:
|
||||
|
||||
```
|
||||
$ sudo ldconfig
|
||||
```
|
||||
|
||||
If you don't run the above command, you might get the following error in GNU/Linux systems.
|
||||
|
||||
```
|
||||
fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory
|
||||
```
|
||||
|
||||
Finally, check the fswatch version to make sure if it is installed correctly:
|
||||
|
||||
```
|
||||
$ **fswatch --version**
|
||||
fswatch 1.17.1
|
||||
Copyright (C) 2013-2021 Enrico M. Crisostomo <enrico.m.crisostomo@gmail.com>.
|
||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
|
||||
Written by Enrico M. Crisostomo.
|
||||
```
|
||||
|
||||
### Install fswatch in FreeBSD
|
||||
|
||||
On FreeBSD, fswatch can be installed using `pkg` as `root`:
|
||||
|
||||
```
|
||||
# pkg install fswatch-mon
|
||||
```
|
||||
|
||||
### Monitor file changes using fswatch in Linux
|
||||
|
||||
Usage of fswatch is no big deal. The typical syntax of fswatch is:
|
||||
|
||||
```
|
||||
$ fswatch [options] ... path-0 ... path-n
|
||||
```
|
||||
|
||||
To test how fswatch works, open two Terminal windows (Let us call them **Terminal 1** and **Terminal 2**).
|
||||
|
||||
In Terminal 1, run the fswatch command to monitor the **`$HOME`** directory.
|
||||
|
||||
```
|
||||
$ fswatch /home/ostechnix/
|
||||
```
|
||||
|
||||
And, in the Terminal 2 do some operations such as creating files/folders, deleting files, and modifying files etc.
|
||||
|
||||
Whatever you do in the terminal 2 will be notified on the Terminal 1. Have a look at the following screenshots.
|
||||
|
||||
**Terminal 1** - fswatch command is running and the file changes are being monitored:
|
||||
|
||||
![Monitor File Changes Using fswatch][3]
|
||||
|
||||
Monitor File Changes Using fswatch
|
||||
|
||||
**Terminal 2** - Do some random changes in files/folders:
|
||||
|
||||
![Do random changes in files or folders][4]
|
||||
|
||||
Do random changes in files or folders
|
||||
|
||||
By default, fswatch will choose the best monitor available on the current platform, in terms of performance and resource consumption. In Linux, **the default monitor is inotify**.
|
||||
|
||||
By default, fswatch will keep monitoring the file changes until you manually stop it by invoking **`CTRL+C`** keys.
|
||||
|
||||
### List monitors
|
||||
|
||||
To list the available monitors in the current platform (i.e Linux in our case), run:
|
||||
|
||||
```
|
||||
$ fswatch -M
|
||||
```
|
||||
|
||||
Or,
|
||||
|
||||
```
|
||||
$ fswatch --list-monitors
|
||||
```
|
||||
|
||||
**Sample output:**
|
||||
|
||||
```
|
||||
inotify_monitor
|
||||
poll_monitor
|
||||
```
|
||||
|
||||
### Monitor specific file or folder
|
||||
|
||||
To monitor a specific file or directory with a particular monitor option, run:
|
||||
|
||||
```
|
||||
$ swatch -m kqueue_monitor /home/ostechnix/
|
||||
```
|
||||
|
||||
You can also exit fswatch after the first set of events is received by specifying the option **`-1`** as shown in the following command:
|
||||
|
||||
```
|
||||
$ fswatch -1 /home/ostechnix/
|
||||
```
|
||||
|
||||
This command will exit just after the first set of events is received.
|
||||
|
||||
fswatch will monitor changes in all files/folders in the specified path. If you want to watch the changes made in the directories only, use **`-d`** option.
|
||||
|
||||
```
|
||||
$ fswatch -d /home/ostechnix/
|
||||
```
|
||||
|
||||
Of course, there are more options. Refer the man pages or the [**project's documentation page**][5] for detailed instructions.
|
||||
|
||||
```
|
||||
$ man fswatch
|
||||
```
|
||||
|
||||
**Resource:**
|
||||
|
||||
- [**fswatch GitHub Repository**][6]
|
||||
|
||||
Featured Image by [Pete Linforth][7] from [Pixabay][8].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://ostechnix.com/monitor-file-changes-using-fswatch-linux/
|
||||
|
||||
作者:[sk][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://ostechnix.com/author/sk/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://ostechnix.com/install-development-tools-linux/
|
||||
[2]: https://github.com/emcrisostomo/fswatch/releases
|
||||
[3]: https://ostechnix.com/wp-content/uploads/2022/10/Monitor-File-Changes-Using-fswatch.png
|
||||
[4]: https://ostechnix.com/wp-content/uploads/2022/10/Do-random-changes-in-files-or-folders.png
|
||||
[5]: https://emcrisostomo.github.io/fswatch/doc/
|
||||
[6]: https://github.com/emcrisostomo/fswatch
|
||||
[7]: https://pixabay.com/users/thedigitalartist-202249/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3376230
|
||||
[8]: https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3376230
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user