小编Dan*_*oss的帖子

如何在 xfce / xubuntu 中永久交换 esc 和大写锁定?

不久前我关注了一些帖子,它说要制作一个~/.xmodmap这样的文件:

! Swap caps lock and escape
remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock
Run Code Online (Sandbox Code Playgroud)

我做到了,现在我可以交换esccaps lock通过执行xmodmap ~/.xmodmap. 我希望这是永久的,所以我将该命令添加到我的~/.bash_profile,但它似乎不起作用;我还是要手动xmodmap。作为一名 EEng 辍学生,我很想重新连接我的键盘 }:-) 但我知道一定有更好的方法。我怎样才能使这项工作永久有效?

keyboard xfce xmodmap xkb

21
推荐指数
3
解决办法
2万
查看次数

bash 中的“editor”命令是什么?

我正在寻找有希望打开当前用户最喜欢的文本编辑器的命令,因为我正在博客中用命令写出一些说明。我期待像这样的命令edit,我发现editor. 对我来说,是在终端启动vim,接近我想要的;我使用 vim-gtk。我开始寻找一种让编辑器使用 vim-gtk 的方法,发现这个问题解释了一个$EDITOR环境变量,但我不确定这是否与editor命令有关。我试过了man editor,但那只是打开了 vim 联机帮助页。

如何editor使用我选择的文本编辑器,或者我应该使用不同的命令?

bash editors environment-variables xubuntu

9
推荐指数
2
解决办法
3万
查看次数

Nix 如何在非 NixOS 上管理 SystemD 模块?

假设我曾经nix-env在 Ubuntu 主机上安装使用 SystemD 的软件包。需要做什么才能让 Ubuntu 的 SystemD 知道来自 Nix 包的 SystemD 模块?

让我们尝试为Apache Kafka包查找 Nix 安装的.service文件,并从 符号链接它们。/lib/systemd/system/

nix-env -i apache-kafka
sudo systemctl start apache-kafka # Failed to start apache-kafka.service: Unit apache-kafka.service not found.
sudo updatedb && locate apache-kafka.service # No dice
locate kafka | grep service # Just a bunch of `.nix` files
Run Code Online (Sandbox Code Playgroud)

在这里,我根据 Nix包定义中的服务配置名称猜测服务名称。我找不到任何描述该配置如何以及在何处成为 SystemD 服务文件的文档。

当这不起作用时,我开始真正挖掘,假设 Nix 一定在某个地方创建了这个服务文件。但是现在,我开始怀疑它是否存在。那么,Nix 包管理器安装的 SystemD 模块是否应该在 NixOS 之外工作,如果是这样,我们如何使它们工作?

systemd nix

8
推荐指数
3
解决办法
3374
查看次数

如何确定可执行文件在何处搜索共享库?

我知道我有库,但可执行文件找不到它。如果我知道它在哪里搜索,我可以创建一个符号链接,它希望找到 lib。

$ ~/Apps/simutrans/simutrans
/home/dan/Apps/simutrans/simutrans: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory

$ locate libbz2
...
/lib/x86_64-linux-gnu/libbz2.so.1
/lib/x86_64-linux-gnu/libbz2.so.1.0
/lib/x86_64-linux-gnu/libbz2.so.1.0.4
/usr/lib/x86_64-linux-gnu/libbz2.a
/usr/lib/x86_64-linux-gnu/libbz2.so
...
Run Code Online (Sandbox Code Playgroud)

显然,可执行文件不是/etc/ld.so.conf*用来查找库的;如果是,那么它会找到lib:

$ cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf 
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
Run Code Online (Sandbox Code Playgroud)

使用 来检查可执行文件readelf,如系统将哪里搜索动态库中所述?, 不显示RUNPATH在需要找到库时会显示的条目。

dynamic-linking

3
推荐指数
1
解决办法
1688
查看次数