处理扩展安装的工具

处理扩展安装的工具

是否可以安装扩展https://extensions.gnome.org/不使用GNOME Shell 集成浏览器插件?

我正在寻找一个能够从上述网站搜索和安装扩展的工具,例如:

$ gnome-extensions search <keyword>
$ gnome-extensions install <extension-id>

答案1

解决方案1

如果您有扩展 URL,请使用以下内容。在这里,我将扩展放入一个数组中。将要安装的扩展程序的 URL 放入此数组中。

#!/bin/bash

array=( https://extensions.gnome.org/extension/1328/disable-workspace-switch-animation/
https://extensions.gnome.org/extension/1532/lock-keys/
https://extensions.gnome.org/extension/104/netspeed/
https://extensions.gnome.org/extension/2182/noannoyance/
https://extensions.gnome.org/extension/1460/vitals/ )

for i in "${array[@]}"
do
    EXTENSION_ID=$(curl -s $i | grep -oP 'data-uuid="\K[^"]+')
    VERSION_TAG=$(curl -Lfs "https://extensions.gnome.org/extension-query/?search=$EXTENSION_ID" | jq '.extensions[0] | .shell_version_map | map(.pk) | max')
    wget -O ${EXTENSION_ID}.zip "https://extensions.gnome.org/download-extension/${EXTENSION_ID}.shell-extension.zip?version_tag=$VERSION_TAG"
    gnome-extensions install --force ${EXTENSION_ID}.zip
    if ! gnome-extensions list | grep --quiet ${EXTENSION_ID}; then
        busctl --user call org.gnome.Shell.Extensions /org/gnome/Shell/Extensions org.gnome.Shell.Extensions InstallRemoteExtension s ${EXTENSION_ID}
    fi
    gnome-extensions enable ${EXTENSION_ID}
    rm ${EXTENSION_ID}.zip
done

解决方案2

如果您有扩展程序的 UUID,请使用以下内容。在这里,我将 UUID 放入一个数组中。将要安装的扩展的 UUID 放入此数组中。

#!/bin/bash

array=( [email protected] lockkeys@fawtytoo [email protected] [email protected] [email protected] )

for i in "${array[@]}"
do
    VERSION_TAG=$(curl -Lfs "https://extensions.gnome.org/extension-query/?search=${i}" | jq '.extensions[0] | .shell_version_map | map(.pk) | max')
    wget -O ${i}.zip "https://extensions.gnome.org/download-extension/${i}.shell-extension.zip?version_tag=$VERSION_TAG"
    gnome-extensions install --force ${EXTENSION_ID}.zip
    if ! gnome-extensions list | grep --quiet ${i}; then
        busctl --user call org.gnome.Shell.Extensions /org/gnome/Shell/Extensions org.gnome.Shell.Extensions InstallRemoteExtension s ${i}
    fi
    gnome-extensions enable ${i}
    rm ${EXTENSION_ID}.zip
done

奖金(肉桂)

如果您有机会使用 Linux Mint (Cinnamon),那么您可以使用以下脚本。它下载扩展并将它们放在正确的目录中。

#!/bin/bash

array=( https://cinnamon-spices.linuxmint.com/applets/view/83
    https://cinnamon-spices.linuxmint.com/applets/view/106
    https://cinnamon-spices.linuxmint.com/applets/view/222
    https://cinnamon-spices.linuxmint.com/applets/view/238
    https://cinnamon-spices.linuxmint.com/applets/view/284
    https://cinnamon-spices.linuxmint.com/applets/view/303 )

for i in "${array[@]}"
do
    DOWNLOAD_URL=$(curl -Lfs ${i} | grep -m1 -Po '(?<=href=")[^"]*zip')
    FILE_NAME=$(echo $DOWNLOAD_URL | grep -Eo "([^\/]+$)")
    wget $DOWNLOAD_URL
    unzip -o "$FILE_NAME" -d "$HOME/.local/share/cinnamon/applets"
    rm "${FILE_NAME}"     
done

您可能已经注意到扩展尚未启用。这是因为您需要在 后添加类似以下行的内容done

gsettings set org.cinnamon enabled-applets "['panel1:left:0:[email protected]:0', 'panel1:left:1:[email protected]:1', 'panel1:left:2:[email protected]:2', 'panel1:right:4:[email protected]:3', 'panel1:right:6:[email protected]:4', 'panel1:right:7:[email protected]:5', 'panel1:right:8:[email protected]:6', 'panel1:right:9:[email protected]:7', 'panel1:right:10:[email protected]:8', 'panel1:right:11:[email protected]:9', 'panel1:right:12:[email protected]:10', 'panel1:right:13:[email protected]:11', 'panel1:right:14:[email protected]:12', 'panel1:right:15:[email protected]:13', 'panel1:right:16:[email protected]:14', 'panel1:right:3:temperature@fevimu:15', 'panel1:right:2:download-and-upload-speed@cardsurf:16', 'panel1:right:17:betterlock:17', 'panel1:right:5:turn-off-monitor@zablotski:18']"

的值enabled-applets因用户而异。它用于启用小程序。

现在我将向您展示如何创建这个字符串。将扩展放入$HOME/.local/share/cinnamon/applets(使用奖励脚本)后,转到系统设置 > 首选项 > 小程序并将它们添加到面板中。如果您想使用 重新排列面板中的小程序Panel edit mode,请继续执行。现在运行:

gsettings get org.cinnamon enabled-applets

从现在开始,您可以在 中使用该字符串gsettings set org.cinnamon enabled-applets。但请注意每次向面板添加或删除小程序,或移动小程序在面板中的位置时,字符串都会更改

答案2

GNOME Shell 扩展安装程序就是你正在寻找的:

截屏

答案3

我最近遇到过gnome 扩展 cli,它似乎已经存在了一段时间,但最近才获得新的活动(请参阅码频项目)。我认为它是一个很棒的工具,它可以产生漂亮的输出,而且对脚本友好。

CLI 允许您搜索、安装、升级、启用和列出 GNOME 扩展等。您可以传递扩展程序的 UUID 或其包号。

工具gnome-shell-扩展-安装程序截至 2023 年 4 月,@WuerfelDev 的建议似乎不再维护。

答案4

@cdelledonne 的建议对我来说看起来非常有希望。

我正在寻找一个能够从上述网站搜索和安装扩展的工具,例如:

$ gnome-extensions search <keyword>
$ gnome-extensions install <extension-id>

我将重点关注问题的后半部分,因为这是大多数人正在寻找的(脚本和自动化)。

处理扩展安装的工具

官方的

根据红帽, 这很容易:

gnome-extensions install <UUID>

然而这在 Ubuntu 24.04 上对我不起作用

Python

Python 3 通常安装在 Linux 上。我要使用pipx,请检查设置说明,它们不超过5个命令,通常是3个。

# Install helper tool gnome-extensions-cli
pipx install gnome-extensions-cli

# Install extension by UUID
gext install <UUID>

通过UUID?哪个?如何?为什么?!

在浏览器中,打开扩展程序的页面并转到“查看源代码”(通常为CTRL+ u),然后搜索uuid.

或者,如果您的浏览器支持它并且您知道如何处理它,请使用以下示例:view-source:https://extensions.gnome.org/extension/4655/date-menu-formatter/

我知道,自从 Gnome 3 和扩展出现以来,我们主要通过 ID(普通数字)而不是 UUID 来指代扩展。然而这里我们有两个需要 UUID 的工具。是的,它们更长,但是如果您像我一样并尝试使用代码来管理事物,[email protected]那么比4655.

您可能在想:

如果 Gnome 希望我们使用 UUID,他们会将它们放在页面上,以便每个人都可以轻松找到它们。

与 GitHub 相比,该网站多年来并没有真正改变。这只是我们要跟进的事情之一,直到有人修复它为止。比如老化和未维护的扩展。

扩展名未显示!

为了使这个答案完整:

  • 如果您之前没有在这台计算机/用户上使用过扩展程序,则必须注销并重新登录。
  • 需要安装类似的软件包gnome-shell-extension-prefs(至少在我的 Ubuntu 24.04 桌面上),以便您可以在需要时使用 GUI 来管理扩展和设置。

相关内容