在我看来,如果您在 Linux 上使用基于 Chromium 的浏览器,这是安装 Web 应用程序的最佳方式

感谢 Bash 的 Web 应用程序

几天前,我们发布了 危象 其中我们比较了三种不同的使用方式 web应用程序。一方面,从浏览器来看;另一方面,安装应用程序并在单独的窗口中使用它;最后使用 Webapp Manager,我认为这是迄今为止最好的。今天,我为您带来了一种不同的选择,它部分基于 Linux Mint XApp。

从浏览器安装的应用程序比 Webapps Manager 创建的应用程序重一点。它们有一个优点,那就是扩展可以轻松访问并且它们都可以工作,例如我没有在 100% 独立的应用程序中工作的均衡器 - 我也没有进行太多搜索。但通常 Webapps Manager 创建的内容处于更高的级别。问题是,至少对于最流行的基于 Chromium 的浏览器来说,它所做的只是创建一个 .desktop 文件,其中包含一个命令,告诉浏览器启动一个 隔离配置文件中的应用程序。实现这一目标就是我们今天要解释的。

更新:添加了对基于 Firefox 的应用程序的支持,尽管该图标可能在顶栏中不可见,并且要完全删除配置文件,您必须从中执行此操作 about:config中.

独立配置文件中的 Web 应用程序,无需安装任何内容

至少可以说,Linux Mint 应用程序的缺点是它安装了主要软件和一些额外的 Python 模块。是 佩卡迪略 对于那些使用许多网络应用程序并且也想选择基本浏览器,但如果这对我们来说还不够的人 Chrome、Brave、Vivaldi 或 Edge,我们安装的一切都是不必要的。

正如我们所说,秘密是检查这些应用程序的用途,分析 .桌面文件 并创建一个类似的。这可以从 Webapp Manager 为我们创建的第一个文件手动完成,复制和编辑必要的内容,我们可以使用 Bash 自动化它。代码如下:

#!/bin/bash
回声“SSBash

你想让我做什么?
 1.  创建网络应用程序
2.  删除现有应用程序
3.  Exit" 读取选项 if [ "$option" == "1" ]; then echo "应用程序名称:" 读取 app_name app_id=$(echo "$app_name" | tr -d ' ') echo "注释:" 读取注释 echo "Category": 读取类别 echo "Web 应用程序的 URL (不带 https/http):" 读取 url echo "应用程序图标的路径": 读取图标 image_name=$(basename "$icon") echo "浏览器: 1.  火狐2.  铬3。  铬
     4.  勇敢的
     5.  边缘
     6.  维瓦尔第
     7.  火狐浏览器(Flatpak)8。  铬合金(平板)
     9.  铬(平板包装)10。  勇敢(平装)11。  边缘(平装)
    12.  维瓦尔第(平装)
    十一。  ungoogled-chromium (flatpak)" 在 1) browser="Firefox" &&executable="sh -c 'firefox --class WebApp-$id_app --name WebApp-$id_app --profile $HOME/ 中读取 selected_browser 案例 $chosen_browser。 config/SSBash/$navigator-$id_app --no-remote \"https://$url\"'" && firefox -CreateProfile "$browser-$id_app $HOME/.config/SSBash/$navigator-$id_app" ;; 2) browser="Chrome" &&executable="google-chrome-stable --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app --user- data-dir=$HOME/.config/SSBash/$browser-'$id_app'";; 3) browser="Chromium" &&executable="chromium --app="https://$url" --class= WebApp-$id_app --name=WebApp-$id_app --user-data-dir=$HOME/.config/SSBash/$browser-'$id_app'";; 4) browser="Brave" &&executable="brave --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app --user-data-dir=$HOME/.config/SSBash/$navigador-'$id_app '";; 5) browser="Edge" &&executable="microsoft-edge --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app --user- data-dir=$HOME/.config/SSBash/$browser-'$app_id'";; 6) 浏览器=“Vivaldi” && 可执行文件=“vivaldi-stable --app=”https://$url” --class=WebApp-$id_app --name=WebApp-$id_app --user-data-dir= $HOME/.config/SSBash/$browser-'$app_id'";; 7) browser="Firefox-flatpak" &&executable="sh -c 'flatpak run org.mozilla.firefox --class WebApp-$id_app --name WebApp-$id_app --profile $HOME/.config/SSBash/$ browser-$app_id --no-remote \"https://$url\"'" && firefox -CreateProfile "$browser-$app_id $HOME/.config/SSBash/$browser-$app_id";; 8) browser="Chrome-flatpak" &&executable="flatpak run com.google.Chrome --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app -- user-data-dir=$HOME/.config/SSBash/$browser-'$app_id'";; 9) browser="Chromium-flatpak" &&executable="flatpak run org.chromium.Chromium --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app -- user-data-dir=$HOME/.config/SSBash/$browser-'$app_id'";; 10) browser="Brave-flatpak" &&executable="flatpak run com.brave.Browser --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app -- user-data-dir=$HOME/.config/SSBash/$browser-'$app_id'";; 11)浏览器=“Edge-flatpak”&&可执行=“flatpak运行com.microsoft.Edge--app=“https://$url”--class=WebApp-$id_app--name=WebApp-$id_app-- user-data-dir=$HOME/.config/SSBash/$browser-'$app_id'";; 12) browser="Vivaldi-flatpak" &&executable="flatpak run com.vivaldi.Vivaldi --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app -- user-data-dir=$HOME/.config/SSBash/$browser-'$app_id'";; 13)浏览器=“ungoogled-chromium-flatpak”&&可执行=“flatpak运行com.github.Eloston.UngoogledChromium--app=“https://$url”--class=WebApp-$id_app--name=WebApp- $app_id --user-data-dir=$HOME/.config/SSBash/$browser-'$app_id'";; *) echo "无效选​​项。  默认选择 Chrome。”  && 浏览器=“Chrome”;; esac random_string=$(head /dev/urandom | tr -dc a-z0-9 | head -c 30 ; echo '')捷径=$browser-$app_id-$random_string.desktop touch $shortcut mkdir -p "$HOME /.config/SSBash/$browser-$app_id/img/" cp $icon "$HOME/.config/SSBash/$browser-$app_id/img/" echo "[桌面条目] 版本=1.0 名称=$app_name 注释=$comment Exec=$可执行图标=$HOME/.config/SSBash/$browser-$app_id/img/$image_name Terminal=false 类型=应用程序类别=$category StartupNotify=true StartupWMClass=WebApp-$app_id" >> " $shortcut" chmod +x $shortcut mv $shortcut ~/.local/share/applications/ if [ "$browser" == "Firefox" ];然后 mkdir -p "$HOME/.config/SSBash/$navigator-$app_id/chrome/" js_path="$HOME/.config/SSBash/$navigator-$app_id/user.js" touch $js_path = css_path=" $ HOME/.config/SSBash/$browser-$app_id/chrome/userChrome.css" touch $css_path echo "user_pref(\"browser.cache.disk.enable\", false); user_pref(\"browser.cache.磁盘.容量\", 0); user_pref(\"browser.cache.disk.filesystem_reported\", 1); user_pref(\"browser.cache.disk.smart_size.enabled\", false); user_pref(\"浏览器.cache.disk.smart_size.first_run\", false); user_pref(\"browser.cache.disk.smart_size.use_old_max\", false); user_pref(\"browser.ctrlTab.previews\", true); user_pref( \ "browser.tabs.warnOnClose\", false); user_pref(\"plugin.state.flash\", 2); user_pref(\"toolkit.legacyUserProfileCustomizations.stylesheets\", true); user_pref(\"browser.tabs .drawInTitlebar\", false); user_pref(\"browser.tabs.inTitlebar\", 0); user_pref(\"browser.contentblocking.category\", "strict"); user_pref(\"privacy.clearOnShutdown.offlineApps\ " , false); user_pref(\"privacy.sanitize.sanitizeOnShutdown\", false); user_pref(\"privacy.sanitize.timeSpan\", 1);" >> "$path_js" echo "#nav-bar, #identity-box, #tabbrowser-tabs, #TabsToolbar { 可见性: 折叠; } #nav-bar * { 可见性:可见!重要; } " >> "$css_path" fi echo " 应用程序 '$app_name' 应该已安装。  请,
    检查 ~/.local/share/applications/ 中的桌面文件
    并且,运行后,该配置文件存在于 ~/.config/SSBash/ 中。”
 elif [“$选项”==“2”];然后
    如果 [ -n "$(ls -A "$HOME/.config/SSBash/")" ];然后
        echo "您要删除哪个网络应用程序?"  && ls $HOME/.config/SSBash/ 读取 app_remove if [ -n "$app_remove" ] && [ -e "$HOME/.config/SSBash/$app_remove" ];然后desktop_remove=$(echo "$app_remove" | tr -d ' ') rm -rf $HOME/.config/SSBash/"$app_remove"/ rm $HOME/.local/share/applications/$desktop_remove* echo " ID 为“$app_remove”的应用程序已被删除。
 如果是基于 Firefox 的,请手动从 about:config 中删除配置文件。”
 别的
            echo "ID为'$app_remove'的应用程序不在列表中。"
 菲
    别的
        echo“未安装网络应用程序。”
 菲
elif [ "$option" == "3" ];然后
    回声:“下次见。”
 别的
    echo“选项无效。”

解释代码

El 脚本 或者程序少于100行,你甚至可以在其中 删除应用程序 创建的。它有点简陋,但它满足了我们的要求。它是用“bash 文件名”执行的——我们粘贴了前面的代码——一切都发生在终端中。您可以编辑浏览器的行并添加基于 Chromium 的其他浏览器。

首先显示一个名字,每个人都可以输入自己最喜欢的内容。由于这些类型的应用程序是 SSB特定浏览器 使用的是 Bash,因为 SSBash 听起来不错。然后它会询问我们是否要创建一个 Web 应用程序或删除我们已有的应用程序之一。如果我们告诉它我们想要创建它,它会询问我们应用程序的名称、支持它们的面板的注释、它属于什么类别、服务的 URL、图标的路径,然后网络浏览器。

使用 SSBash 创建 Web 应用程序

浏览器之间的唯一区别是启动它们的命令,但标志在所有情况下都是相同的: 使用您的班级和独立的配置文件创建一个应用程序;然后它将使用随机字符串创建 .desktop 文件以避免匹配,这被认为是很好的做法;接下来,为将成为图标的图像创建一个文件夹,用您需要的所有内容填充 .desktop 文件,授予它执行权限并将其移动到 `~/.local/share/applications/ 文件夹,这是它们通常所在的位置有您自己的快捷方式和其他软件(例如 AppImage)的快捷方式。首次启动应用程序将完成配置文件创建。

一些注意事项

如果我们选择删除选项,软件会检查配置文件夹中的内容,将其显示给我们,并且在输入其中一个选项后,它将删除 .desktop 和具有独立配置文件的文件夹。它已被证明有效,但我和 LXA 都不对任何可能发生的数据丢失(尤其是快捷方式丢失)负责。如果有人不想冒任何风险,可以通过删除 .desktop 文件来删除他们 〜/ .local /共享/应用程序/ 和个人资料 〜/.config/SSBash/应用程序名称。另一种选择是制作内容的备份副本 〜/ .local /共享/应用程序/ 在删除应用程序之前,请检查它是否正常工作,然后按设计使用它。

正如我所说,它有点初级,并且无法管理可能的错误。有时,根据图像或图像所在的位置, 很可能会出现一些错误,在这种情况下,我建议检查 .desktop 文件中的内容。

我认为你需要了解两个信息:不支持 Opera,但你可以基于 Chromium 添加其他并尝试;而且,为了使这尽可能简单,您不需要下载图标或任何东西,您必须搜索它们,下载它们并指示它们的路径。它也不包括像浏览器那样安装应用程序的选项......因为浏览器已经这样做了。

还有扩展?

Es 可以安装扩展 在这些类型的 Web 应用程序中,但有些不起作用。例如,那些仅作用于我们激活它们的选项卡的均衡器。在整个浏览器上运行的扩展程序都可以运行。

要安装它们,您需要打开一个新的浏览器窗口,可以使用 Ctrl-T 或二次单击任何链接并在新选项卡中打开来实现。相关浏览器将打开,您可以访问 Chrome 网上应用店并安装任何扩展程序。安装后,我们可以关闭那些“完整”浏览器,并通过包含的扩展再次使用 Web 应用程序。

拥有 Web 应用程序的另一种方式

这是 Web 应用程序的另一种方式。当它在隔离的配置文件中运行时,不会共享任何历史记录或扩展或任何内容,我们甚至可以强制基本浏览器关闭,但什么也不会发生。如果有人更喜欢来自 Firefox 的应用程序,那么最好使用 网络应用管理器.

唯一要记住的是每个配置文件/应用程序占用的空间通常超过 100MB。对于其他一切,我认为都是值得的。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。