标签 键盘 下的文章

使用组合键,你不会被键盘所限制住。

典型的键盘只有约 100 个键位。

由于 Shift 键,许多键得以有两个字符(也称之为 字形 glyph )。字形常用于键入带有重音和变音符号的字母,生成数学公式或者货币中的符号,或者添加有趣的表情符号。在一些地区,有些键甚至有三个字形。

然而,不论你身处何处,有一些字形不会出现在你的键盘上。幸运的是,Linux 提供了使用 组合键 Compose Key 来获取这些字形。

在你的键盘上没有组合键这个键,至少默认情况下没有,但是你可以设定一个你不用的键作为组合键。我在电脑上使用空格键旁边的 Alt 键,而在平板上使用菜单键,来作为组合键。

下载 Linux 组合键速查表

在 GNOME 中设置组合键

A screenshot shows the keyboard and mouse options visible. The "Compose Key" option is set to Right Alt.

在 GNOME 桌面,从软件库中安装 优化 Tweaks 应用。你也可以从终端安装(基于 Debian 发行版用 apt 命令,Fedora 用 dnf):

$ sudo dnf install gnome-tweaks

启动优化应用后:

  1. 单击左侧栏中的 键盘和鼠标 Keyboard & Mouse 类别
  2. 找到 组合键 Compose key 设置并指定一个键
  3. 关闭优化应用

在 KDE Plasma 桌面设置组合键

A screenshot shows the advanced options threaded under Keyboard settings. "Configure keyboard options" is checked, "Position of Compose Key" is checked within that menu, and "Right Alt" is checked within that menu.

在 KDE Plasma 桌面上,打开 系统设置 System Settings ,找到 输入设备 Input Devices 控制界面。然后:

  1. 输入设备 Input Devices 界面,点击 “ 高级 Advanced ” 标签
  2. 找到 组合键 Compose key 列表项并指定一个键
  3. 点击右下角 “ 应用 Apply ” 按钮,然后关闭 系统设置 System Settings

使用组合序列

为了输入隐藏字符,需要按下组合键后松开。这样就可以进入组合模式。处于组合模式,你按下然后松开键,然后再按下一个键来组合字符。

例如:

  1. 按下组合键并释放,你会进入组合模式
  2. 按下单引号(')并松开
  3. 按下 E 并松开,这是一个有效的组合,所以现在退出了组合模式

你输入了一个字符:É

一些组合序列只需要两个键的组合,然而还有一些需要三个键,并且至少有一个特殊字符要按四次键。

变音字符

这是一个很小众的世界,所以你的朋友的名字很有可能使用的字形不是你的键盘原生的字形。你现在可以跳过变音符号并使用适当的修饰符输入名字。

以下是常见变音符号的组合序列示例:

  • ' + <字母> = á é í ó ú ć ń ý j́́ ẃ ź
  • ` + <字母> = à è ì ò ù ǹ ỳ ẁ
  • ~ + <字母> = ã ẽ ĩ õ ũ ñ ỹ
  • ^ + <字母> = â ê î ô û ĉ ŷ ĵ ŵ ẑ
  • u + <字母> = ă ĕ ĭ ŏ ŭ
  • c + c = č
  • - + <字母> = ā ē ī ō ū đ
  • , + <字母> = ą ę į ǫ ų ç ḑ ţ

这里仅仅罗列了常见的几个,并不是所有的组合。

货币符号

得益于组合键,国际银行业务也变得容易:

  • - + Y = ¥
  • - + L = £
  • = + E =
  • = + L =
  • = + N =
  • = + R =
  • = + W =
  • / + m =
  • R + s =
  • C + r =
  • F + r =

重申,这不是完整的列表,但是一个好的开始。

有趣的字形

变音符号和货币符号具有实用性,但是组合键也可以用来娱乐:

  • < + 3 =
  • < + > =
  • # + q =
  • : + ) =
  • : + ( =
  • p + o + o = ?

长寿和繁荣

在 Linux 中我最喜欢的“秘密”字形是传统的 Vulcan 称呼,“长寿和繁荣”。

  • L + L + A + P = ?

找到所有的字形

通过组合键可以使用更多字形,你可以通过按随机组合序列来发现新的字形。查找字形的一种更有条理的方法是参考位于 /usr/share/X11/locale/en_US.UTF-8 中的 Compose 文件(需要根据你键盘使用的语言环境调整绝对路径)。

这个文件令人崩溃,因为它包含超过 6000 行的组合序列,其中许多是 ASCII 和 Unicode 的复杂组合。要快速轻松地参考常见和基础序列,你可以 下载我们的组合键速查表。它提供涵盖数学、排版、音乐、箭头、变音符号、货币等的序列。

现在你知道了这个秘密,你可以表达更多内容了。

(图片源自:Seth Kenlon, CC BY-SA 4.0)


via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet

作者:Seth Kenlon 选题:lkxed 译者:Donkey 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我对 终端 Terminal 是怎么回事困惑了很久。

但在上个星期,我使用 xterm.js 在浏览器中显示了一个交互式终端,我终于想到要问一个相当基本的问题:当你在终端中按下键盘上的一个键(比如 Delete,或 Escape,或 a),发送了哪些字节?

像往常一样,我们将通过做一些实验来回答这个问题,看看会发生什么 : )

远程终端是非常古老的技术

首先,我想说的是,用 xterm.js 在浏览器中显示一个终端可能看起来像一个新事物,但它真的不是。在 70 年代,计算机很昂贵。因此,一个机构的许多员工会共用一台电脑,每个人都可以有自己的 “终端” 来连接该电脑。

例如,这里有一张 70 年代或 80 年代的 VT100 终端的照片。这看起来像是一台计算机(它有点大!),但它不是 —— 它只是显示实际计算机发送的任何信息。

https://creativecommons.org/licenses/by/2.0, via Wikimedia Commons">DEC VT100终端

当然,在 70 年代,他们并没有使用 Websocket 来做这个,但来回发送的信息的方式和当时差不多。

(照片中的终端是来自西雅图的 活电脑博物馆 Living Computer Museum ,我曾经去过那里,并在一个非常老的 Unix 系统上用 ed 编写了 FizzBuzz,所以我有可能真的用过那台机器或它的一个兄弟姐妹!我真的希望活电脑博物馆能再次开放,能玩到老式电脑是非常酷的。)

发送了什么信息?

很明显,如果你想连接到一个远程计算机(用 ssh 或使用 xterm.js 和 Websocket,或其他任何方式),那么需要在客户端和服务器之间发送一些信息。

具体来说:

客户端 需要发送用户输入的键盘信息(如 ls -l)。 服务器 需要告诉客户端在屏幕上显示什么。

让我们看看一个真正的程序,它在浏览器中运行一个远程终端,看看有哪些信息会被来回发送!

我们将使用 goterm 来进行实验

我在 GitHub 上发现了这个叫做 goterm 的小程序,它运行一个 Go 服务器,可以让你在浏览器中使用 xterm.js 与终端进行交互。这个程序非常不安全,但它很简单,很适合学习。

复刻了它,使它能与最新的 xterm.js 一起工作,因为它最后一次更新是在 6 年前。然后,我添加了一些日志语句,以打印出每次通过 WebSocket 发送/接收的字节数。

让我们来看看在几个不同的终端交互过程中的发送和接收情况吧!

示例:ls

首先,让我们运行 ls。下面是我在 xterm.js 终端上看到的情况:

~:/play$ ls
file
~:/play$

以下是发送和接收的内容:(在我的代码中,我记录了每次客户端发送的字节:sent: [bytes],每次它从服务器接收的字节:recv: [bytes]

sent: "l"
recv: "l"
sent: "s"
recv: "s"
sent: "\r"
recv: "
\x1b[?2004l\r"
recv: "file
"
recv: "\x1b[~:/play$ "

我在这个输出中注意到 3 件事:

  1. 回显:客户端发送 l,然后立即收到一个 l 发送回来。我想这里的意思是,客户端真的很笨 —— 它不知道当我输入l 时,我想让 l 被回显到屏幕上。它必须由服务器进程明确地告诉它来显示它。
  2. 换行:当我按下回车键时,它发送了一个 \r'(回车)符号,而不是\n'(换行)。
  3. 转义序列:\x1b 是 ASCII 转义字符,所以 \x1b[?2004h 是告诉终端显示什么或其他东西。我想这是一个颜色序列,但我不确定。我们稍后会详细讨论转义序列。

好了,现在我们来做一些稍微复杂的事情。

示例:Ctrl+C

接下来,让我们看看当我们用 Ctrl+C 中断一个进程时会发生什么。下面是我在终端中看到的情况:

~:/play$ cat
^C
~:/play$

而这里是客户端发送和接收的内容。

sent: "c"
recv: "c"
sent: "a"
recv: "a"
sent: "t"
recv: "t"
sent: "\r"
recv: "
\x1b[?2004l\r"
sent: "\x03"
recv: "^C"
recv: "
"
recv: "\x1b[?2004h"
recv: "~:/play$ "

当我按下 Ctrl+C 时,客户端发送了 \x03。如果我查 ASCII 表,\x03 是 “文本结束”,这似乎很合理。我认为这真的很酷,因为我一直对 Ctrl+C 的工作原理有点困惑 —— 很高兴知道它只是在发送一个 \x03 字符。

我相信当我们按 Ctrl+C 时,cat 被中断的原因是服务器端的 Linux 内核收到这个 \x03 字符,识别出它意味着 “中断”,然后发送一个 SIGINT 到拥有伪终端的进程组。所以它是在内核而不是在用户空间处理的。

示例:Ctrl+D

让我们试试完全相同的事情,只是用 Ctrl+D。下面是我在终端看到的情况:

~:/play$ cat
~:/play$

而这里是发送和接收的内容:

sent: "c"
recv: "c"
sent: "a"
recv: "a"
sent: "t"
recv: "t"
sent: "\r"
recv: "
\x1b[?2004l\r"
sent: "\x04"
recv: "\x1b[?2004h"
recv: "~:/play$ "

它与 Ctrl+C 非常相似,只是发送 \x04 而不是 \x03。很好!\x04 对应于 ASCII “传输结束”。

Ctrl + 其它字母呢?

接下来我开始好奇 —— 如果我发送 Ctrl+e,会发送什么字节?

事实证明,这只是该字母在字母表中的编号,像这样。

  • Ctrl+a => 1
  • Ctrl+b => 2
  • Ctrl+c => 3
  • Ctrl+d => 4
  • ...
  • Ctrl+z => 26

另外,Ctrl+Shift+b 的作用与 Ctrl+b 完全相同(它写的是0x2)。

键盘上的其他键呢?下面是它们的映射情况:

  • Tab -> 0x9(与 Ctrl+I 相同,因为 I 是第 9 个字母)
  • Escape -> \x1b
  • Backspace -> \x7f
  • Home -> \x1b[H
  • End -> \x1b[F
  • Print Screen -> \x1b\x5b\x31\x3b\x35\x41
  • Insert -> \x1b\x5b\x32\x7e
  • Delete -> \x1b\x5b\x33\x7e
  • 我的 Meta 键完全没有作用

Alt 呢?根据我的实验(和一些搜索),似乎 AltEscape 在字面上是一样的,只是按 Alt 本身不会向终端发送任何字符,而按 Escape 本身会。所以:

  • alt + d => \x1bd(其他每个字母都一样)
  • alt + shift + d => \x1bD(其他每个字母都一样)
  • 诸如此类

让我们再看一个例子!

示例:nano

下面是我运行文本编辑器 nano 时发送和接收的内容:

recv: "\r\x1b[~:/play$ "
sent: "n" [[]byte{0x6e}]
recv: "n"
sent: "a" [[]byte{0x61}]
recv: "a"
sent: "n" [[]byte{0x6e}]
recv: "n"
sent: "o" [[]byte{0x6f}]
recv: "o"
sent: "\r" [[]byte{0xd}]
recv: "
\x1b[?2004l\r"
recv: "\x1b[?2004h"
recv: "\x1b[?1049h\x1b[22;0;0t\x1b[1;16r\x1b(B\x1b[m\x1b[4l\x1b[?7h\x1b[39;49m\x1b[?1h\x1b=\x1b[?1h\x1b=\x1b[?25l"
recv: "\x1b[39;49m\x1b(B\x1b[m\x1b[H\x1b[2J"
recv: "\x1b(B\x1b[0;7m  GNU nano 6.2 \x1b[44bNew Buffer \x1b[53b \x1b[1;123H\x1b(B\x1b[m\x1b[14;38H\x1b(B\x1b[0;7m[ Welcome to nano.  For basic help, type Ctrl+G. ]\x1b(B\x1b[m\r\x1b[15d\x1b(B\x1b[0;7m^G\x1b(B\x1b[m Help\x1b[15;16H\x1b(B\x1b[0;7m^O\x1b(B\x1b[m Write Out   \x1b(B\x1b[0;7m^W\x1b(B\x1b[m Where Is    \x1b(B\x1b[0;7m^K\x1b(B\x1b[m Cut\x1b[15;61H"

你可以看到一些来自用户界面的文字,如 “GNU nano 6.2”,而这些 \x1b[27m 的东西是转义序列。让我们来谈谈转义序列吧!

ANSI 转义序列

上面这些 nano 发给客户端的 \x1b[ 东西被称为“转义序列”或 “转义代码”。这是因为它们都是以 “转义”字符 \x1b 开头。它们可以改变光标的位置,使文本变成粗体或下划线,改变颜色,等等。维基百科介绍了一些历史,如果你有兴趣的话可以去看看。

举个简单的例子:如果你在终端运行

echo -e '\e[0;31mhi\e[0m there'

它将打印出 “hi there”,其中 “hi” 是红色的,“there” 是黑色的。本页 有一些关于颜色和格式化的转义代码的例子。

我认为有几个不同的转义代码标准,但我的理解是,人们在 Unix 上使用的最常见的转义代码集来自 VT100(博客文章顶部图片中的那个老终端),在过去的 40 年里没有真正改变。

转义代码是为什么你的终端会被搞乱的原因,如果你 cat 一些二进制数据到你的屏幕上 —— 通常你会不小心打印出一堆随机的转义代码,这将搞乱你的终端 —— 如果你 cat 足够多的二进制数据到你的终端,那里一定会有一个 0x1b 的字节。

可以手动输入转义序列吗?

在前面几节中,我们谈到了 Home 键是如何映射到 \x1b[H 的。这 3 个字节是 Escape + [ + H(因为 Escape\x1b)。

如果我在 xterm.js 终端手动键入 Escape ,然后是 [,然后是 H,我就会出现在行的开头,与我按下 Home 完全一样。

我注意到这在我的电脑上的 Fish shell 中不起作用 —— 如果我键入 Escape,然后输入 [,它只是打印出 [,而不是让我继续转义序列。我问了我的朋友 Jesse,他写过 一堆 Rust 终端代码,Jesse 告诉我,很多程序为转义代码实现了一个 超时 —— 如果你在某个最小的时间内没有按下另一个键,它就会决定它实际上不再是一个转义代码了。

显然,这在 Fish shell 中可以用 fish_escape_delay_ms 来配置,所以我运行了 set fish_escape_delay_ms 1000,然后我就能用手输入转义代码了。工作的很好!

终端编码有点奇怪

我想在这里暂停一下,我觉得你按下的键被映射到字节的方式是非常奇怪的。比如,如果我们今天从头开始设计按键的编码方式,我们可能不会把它设置成这样:

  • Ctrl + aCtrl + Shift + a 做的事情完全一样。
  • AltEscape 是一样的
  • 控制序列(如颜色/移动光标)使用与 Escape 键相同的字节,因此你需要依靠时间来确定它是一个控制序列还是用户只是想按 Escape

但所有这些都是在 70 年代或 80 年代或什么时候设计的,然后需要永远保持不变,以便向后兼容,所以这就是我们得到的东西 :smiley:

改变窗口大小

在终端中,并不是所有你能做的事情都是通过来回发送字节发生的。例如,当终端被调整大小时,我们必须以不同的方式告诉 Linux 窗口大小已经改变。

下面是 goterm 中用来做这件事的 Go 代码的样子:

syscall.Syscall(
    syscall.SYS_IOCTL,
    tty.Fd(),
    syscall.TIOCSWINSZ,
    uintptr(unsafe.Pointer(&resizeMessage)),
)

这是在使用 ioctl 系统调用。我对 ioctl 的理解是,它是一个系统调用,用于处理其他系统调用没有涉及到的一些随机的东西,通常与 IO 有关,我猜。

syscall.TIOCSWINSZ 是一个整数常数,它告诉 ioctl 我们希望它在本例中做哪件事(改变终端的窗口大小)。

这也是 xterm 的工作方式。

在这篇文章中,我们一直在讨论远程终端,即客户端和服务器在不同的计算机上。但实际上,如果你使用像 xterm 这样的终端模拟器,所有这些工作方式都是完全一样的,只是很难注意到,因为这些字节并不是通过网络连接发送的。

文章到此结束啦

关于终端,肯定还有很多东西要了解(我们可以讨论更多关于颜色,或者原始与熟化模式,或者 Unicode 支持,或者 Linux 伪终端界面),但我将在这里停止,因为现在是晚上 10 点,这篇文章有点长,而且我认为我的大脑今天无法处理更多关于终端的新信息。

感谢 Jesse Luehrs 回答了我关于终端的十亿个问题,所有的错误都是我的 :smiley:


via: https://jvns.ca/blog/2022/07/20/pseudoterminals/

作者:Julia Evans 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Stack Overflow 的“复制粘贴键盘”

Stack Overflow 今年的愚人节的恶作剧说,它将限制对其网站的免费访问,除非人们购买“钥匙”,一个带有打开 Stack Overflow、复制和粘贴的按钮的设备。但是大家似乎对这个键盘很感兴趣,于是在一位键盘爱好者和定制键盘制造商 Drop 的帮助下,Stack Overflow 设计了一把真正的键盘,并开始以 29 美元的价格出售。

老王点评:这样的键盘,你想不想要一块?你值得拥有~

广告主投诉 Chrome 取消 Cookie 影响行业营收

代表广告主、出版商和科技公司的行业组织“开放网络运动”今日向欧盟投诉谷歌,称谷歌 Chrome 浏览器取消 Cookie 的计划是一种反垄断行为,将严重影响广告主和出版商的营收。谷歌去年年初宣布,未来两年内将逐步淘汰对第三方 Cookie 的支持,并计划推广其“隐私沙箱”技术。但出版商和广告技术公司纷纷抱怨称,谷歌所谓的“隐私沙箱”将限制他们收集网络用户信息的能力,从而影响他们提供更具价值广告的能力。

老王点评:套用一句俗话,“和尚摸得,我也摸得”。各位广告商在想,凭啥你谷歌一个人可以摸,不让我们摸。

AI 判断一副价值 660 万英镑的名画是赝品

英国国家美术馆最重要的藏品之一鲁本斯的画《参孙与大利拉》,是 40 年前在佳士得拍卖会上以当时创纪录的价格 250 万英镑购买的,相当于今天的 660 万英镑。批评家们长期以来一直认为这幅画并非真正出自鲁本斯之手。而现在,一系列采用突破性人工智能技术的科学测试得出了结论。在与 148 幅无争议的鲁本斯画作进行比较后,它不是鲁本斯的原创作品的概率为 91.78%,而与之对比的是,另外一幅英国国家美术馆收藏的画作则有 98.76% 的概率是真品。

老王点评:AI 技术的进步,往往能做到很多人类做不到和做不好的事情,我认为这才是 AI 真正该发挥作用的领域。

你可以得到很多适用于 Linux 的开源网页浏览器,不只是基于 Chrome 的浏览器,而且还有 其它的替代品

它们大多数都侧重于提供漂亮的用户体验,并同时兼顾隐私功能。

然而,Nyxt 浏览器可能不是为最好的用户体验而建立的,而是为资深用户喜欢的某些东西而打造的。

Nyxt 浏览器:专注于键盘快捷键和命令的开源浏览器

Nyxt 是一个面向键盘的开源网页浏览器,可在 Linux 和 macOS 上使用。

当然,不是每个资深用户都会去使用键盘快捷键,但这旨在满足那些喜欢通过键盘导航的用户的需求。

它的灵感来自于 Vim 和 Emacs 中的键盘快捷键的工作方式 —— 所以如果你对这些编辑器很熟悉,那么你也会对这些快捷键感到熟悉。

与主流的网页浏览器不同,你不必在多个设置和菜单中导航,只需一个快速快捷键或一个命令,你就会获得所有你需要访问的功能。

如果你想知道的话,它不特定于某种网页引擎,它目前支持 WebEngine 和 WebKit。

因此,如果你是一个喜欢使用键盘导航的人,它可以节省时间并改善你的浏览体验。

它提供了相当多的有用功能,我将在下面指出。

Nyxt 浏览器的特点

你会发现这里提供了许多非常规的功能。在探索这里提到的每一个关键亮点之前,你可能想先浏览一下官方文档(按 F1 找到它),你可以在欢迎屏幕中可以找到链接。

  • 无损的树形的历史记录(跟踪你的浏览历史的确切层次,并轻松回忆你导航到的内容)
  • 剪贴板历史,帮助你快速找到你之前复制的内容
  • 开始输入命令的键盘快捷方式(CTRL+Space
  • 使用键盘快捷键在冗长的文件中导航,可以跳到一个特定的标题
  • 缓冲区替代了标签,它将每个标签的行为和设置相互隔离
  • 通过将多个标签映射到一个共同的元素来一同关闭
  • 无鼠标导航
  • 使用搜索快速找到一个缓冲区,而不是在许多标签中寻找它
  • 能够根据你的工作流程运行简短的脚本
  • 可定制的自动填写功能,你也可以在表单中自动填写当前日期
  • 内置的广告拦截器

除了上面提到的功能外,你还可以切换黑暗模式HTTPS 模式,以及在命令菜单中有大量的选项。

此外,它是完全可定制和可编程的。因此,你可以选择为自己量身定做。

在 Linux 中安装 Nyxt 浏览器

对于基于 Ubuntu 的发行版,你可以从 官方下载页面 找到一个 deb 包。

如果你还不会,你可能想读一下 安装 deb 文件的方法

它也为 Arch Linux 用户提供了 AUR,并为 Alpine Linux、Nix 和 Guix 提供了包。

如果你需要编译它,你也可以在 GitHub 页面 中找到源代码。

总结

虽然 Nyxt 浏览器可能不是最友好的浏览体验,但对于能够充分利用键盘快捷键和命令的用户来说,它肯定是一个特殊的选择。

如果你想要一个无鼠标的导航体验,这是一个值得尝试的浏览器。我建议你尝试一下 —— 但如果你一般不使用键盘快捷键来导航,这对你来说将是一个复杂的体验。

你尝试过 Nyxt 浏览器吗?请在下面的评论中告诉我你的想法。


via: https://itsfoss.com/nyxt-browser/

作者:Ankush Das 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过在 GNOME 3 和 Wayland 上重新映射你的键盘,提高你的打字和导航速度,避免重复性压力伤害。

 title=

对我来说,有许多改变生活的 Linux 时刻,但大多数都在成为现状后淡忘了。有一个 Linux 教给我的键盘小技巧,每次我使用它的时候(也许每天有 1000 次),我都会想起这件事,那就是把大写锁定键转换为 Ctrl 键。

我从不使用大写锁定键,但我整天使用 Ctrl 键进行复制、粘贴、在 Emacs 内导航,以及 调用 BashGNU Screentmux 等操作。大写锁定键在我的键盘上占据了宝贵的空间,而将实际上有用的 Ctrl 键挤到了难以触及的底部角落。

 title=

这看起来就痛苦

重新映射 Ctrl 提高了我的打字和导航速度,并可能使我免受重复性压力伤害。

消失的控制

系好安全带,这是个过山车式的历史课。

对于像我这样的大写锁定键交换者来说,不幸的是,当 GNOME 3 问世时,它几乎删除了改变 Ctrl 键位置的功能。

幸运的是,优秀的 GNOME Tweaks 应用程序带回了这些 “失踪” 的控制面板。

不幸的是,GNOME 40 没有 GNOME Tweaks 应用程序(还没有?)

另外,不幸的是,过去在 X11 上可以工作的老的 xmodmap 技巧在新的 Wayland 显示服务器 上没有用。

有一小段时间(最多一个下午),我觉得对于那些讨厌大写锁定键的人来说人生都灰暗了。然后我想起我是一个开源的用户,总有一种方法可以解决诸如被忽略的 GUI 控制面板之类的简单问题。

dconf

GNOME 桌面使用 dconf,这是一个存储重要配置选项的数据库。它是 GSettings 的后端,GSettings 是 GNOME 系统应用程序需要发现系统偏好时的接口。你可以使用 gsetting 命令查询 dconf 数据库,也可以使用 dconf 命令直接设置 dconf 的键值。

GSettings

dconf 数据库不一定是你可能称为可发现的数据库。它是一个不起眼的数据库,你通常不需要去考虑它,它包含了许多通常无需直接交互的数据。然而,如果你想更好地了解 GNOME 所要管理的所有偏好选项,那么浏览它是很有趣的。

你可以用 list-schemas 子命令列出所有 dconf 的模式。在浏览了数百个模式之后,你可以使用 grep 将你的注意力缩小到一些看起来特别相关的东西上,比如 org.gnome.desktop

$ gsettings list-schemas | grep ^org.gnome.desktop
[...]
org.gnome.desktop.background
org.gnome.desktop.privacy
org.gnome.desktop.remote-desktop.vnc
org.gnome.desktop.interface
org.gnome.desktop.default-applications.terminal
org.gnome.desktop.session
org.gnome.desktop.thumbnailers
org.gnome.desktop.app-folders
org.gnome.desktop.notifications
org.gnome.desktop.sound
org.gnome.desktop.lockdown
org.gnome.desktop.default-applications.office

无论是通过手动搜索还是通过 阅读 GSetting 文档,你可能会注意到 org.gnome.desktop.input-sources 模式,它有助于定义键盘布局。从设计上来说,GSetting 模式包含了键和值。

用 dconf 重新映射大写字母锁

xkb-options 键包含了可选的键盘覆写。要设置这个键值,请使用dconf,将上面模式中的点(.)转换为斜线(/),因为 dconf 数据库需要使用 /

$ dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:ctrl_modifier']"

我把 caps 设置为 ctrl_modifier,因为我使用 Ctrl 修饰键的次数多于其他修饰键,但 Vim 用户可能喜欢把它设置为 escape

查看你的设置

这个改变会立即生效,并在重启后仍然生效。这是你在 GNOME 中定义的首选项,在你改变它之前一直有效。

你可以通过 gsettings 查看 dconf 中的新值。首先,查看可用的键:

$ gsettings list-keys \
    org.gnome.desktop.input-sources
xkb-options
mru-sources
show-all-sources
current
per-window
sources

然后用 xkb-options 键名查看设置:

$ gsettings get \
    org.gnome.desktop.input-sources \
    xkb-options
['caps:ctrl_modifier']

选项丰富

我在我的 GNOME 3.4 系统上使用这个小技巧来设置大写锁定键以及 Compose 键(compose:ralt)。虽然我相信正在开发中的 GUI 控件可以控制这些选项,但我也不得不承认,能以编程方式设置这些选项的能力是我的荣幸。作为以前没有可靠方法来调整桌面设置的系统的管理员,能够用命令修改我的首选项使得设置新桌面变得快速而容易。

GSettings 提供了很多有用的选项,而且文档也很详尽。如果你有想要改变的东西,可以看看有什么可用的。


via: https://opensource.com/article/21/5/remap-caps-lock-key-linux

作者:Seth Kenlon 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Cloudflare 呼吁终结验证码

这种名为“CAPTCHAS”的验证码你肯定见过,它们要求用户识别某种图像,事实上被利用来训练某些公司的 AI。Cloudflare 估计平均需要 32 秒才能完成这种验证,它们在移动设备上效果不佳,还假定你对展示的物体有文化知识,往往需要某些认知能力。研究人员假设互联网用户平均每 10 天看到一次这种验证码,并将其乘以全球 46 亿互联网用户和 32 秒,那么人类每天总共花在这种验证上的时间就达 500 年。

Cloudflare 提出了一种“加密人格证明”的替代方案,基本上是通过硬件安全密钥或手机 NFC 来完成验证,Cloudflar 认为完成这一流程只需五秒钟,更重要的是,这一验证保护了用户的隐私,身份证明与用户设备没有唯一的联系。

CAPTCHAS 验证码实在太烦了,是该让这种给 AI 打白工的验证码消失了。但是 Cloudflare 是个更好的替代品吗?

微软将关闭其 Azure 区块链服务

微软对 Azure 区块链即服务(BaaS)的最初尝试始于 2015 年。近日,微软宣布将在 2021 年 9 月 10 日关闭其 Azure 区块链服务,而在今年的 5 月 10 日,就已经不支持新的部署或成员创建了。但是微软没有说明为什么关闭 Azure 区块链服务。

在我看来,这种所谓的“联盟链”,本身就是一种伪命题,是一种夹在分布式数据库和区块链公链之间的一种怪物。所以,其实真正能用起来联盟链的企业客户并不算多。

System76 发布了开源键盘

这款名为 “Launch Configurable Keyboard” 的键盘是 100% 开源的,不但其配置软件是开源的,其固件和硬件也是开源的。其配置软件支持 Linux、Windows 和 macOS。它配备了额外的键帽和拔键器,人们可以根据个人工作流程的偏好来调换按键。它只使用三种键帽尺寸,还具有新颖的分离式空格键,允许用户将其中一个空格键的键帽换成 Shift、退格键或功能键。这款键盘售价为 285 美元。

虽然看起来颜值不够高,不过如果你喜欢,你可以使用开源方式来自己定制一个。