Aquesta és, al meu entendre, la millor manera d'instal·lar aplicacions web si utilitzes un navegador basat en Chromium a Linux

Aplicacions web gràcies a Bash

Fa uns dies vam publicar un article en què comparàvem tres maneres diferents d'usar aplicacions web. D'una banda, des del navegador tal com; de l'altra, instal·lant l'aplicació i usant-la en una finestra separada; i finalment fent ús de Webapp Manager, cosa que crec que és el millor amb diferència. Avui us porto una opció diferent, una que es basa en part a la XApp de Linux Mint.

Les aplicacions instal·lades des del navegador pesen una mica més que el que crea Webapps Manager. Tenen un avantatge, i és que es pot accedir a les extensions fàcilment i funcionen totes, com ara un equalitzador que jo no he fet funcionar –tampoc he buscat gaire– en les aplicacions 100% separades. Però, en general, allò que crea Webapps Manager està a un nivell superior. El que passa és que, si més no per als navegadors basats en Chromium més populars, l'únic que fa és crear un fitxer .desktop amb una ordre que li diu al navegador que llanci una aplicació en un perfil aïllat. Aconseguir això és el que explicarem avui aquí.

ACTUALITZAT: S'ha afegit suport per a aplicacions amb base Firefox, encara que pot ser que no es vegi la icona a la barra superior i per eliminar el perfil del tot cal fer-ho des de about: config.

Aplicacions web en perfil aïllat i sense instal·lar res

El pitjor de l'aplicació de Linux Mint, per posar-hi algun però, és que instal·la el programari principal i alguns mòduls de Python extra. És peccata minuta per al que utilitza moltes aplicacions web ia més vol triar el navegador base, però si ens n'hi ha prou amb Chrome, Brave, Vivaldi o Edge, tot el que instal·lem està de més.

Com dèiem, el secret està a examinar què fan aquestes aplicacions, analitzar el fitxer .desktop i crear-ne un de semblant. Això, que es pot fer manualment a partir del primer fitxer que ens crea Webapp Manager, copiant i editant el necessari, podem automatitzar-lo usant Bash. El codi seria el següent:

#!/bin/bash
fet "SSBash

Què vols fer?
 1.  Crear aplicació web
2.  Eliminar app existent
3.  Sortir" read opcion if [ "$opcion" == "1" ]; then echo "Nom de l'aplicació:" read nom_app id_app=$(echo "$nom_app" | tr -d ' 'echo "Comentari:" read comentari echo "Categoria": read categoria echo "URL de l'aplicació web (sense https/http):" read url echo "Ruta a la icona de l'app": read icona nom_imagen=$(basename "$icona") echo "Navegador : 1.  Firefox 2.  Chrome 3.  Chromium 4.  Brave 5.  Edge 6.  Vivaldi 7.  Firefox (flatpak) 8.  Chrome (flatpak) 9.  Chromium (flatpak) 10.  Brave (flatpak) 11.  Edge (flatpak) 12.  Vivaldi (flatpak) 13.  ungoogled-chromium (flatpak)" read navegador_elegit case $navegador_elegit in 1) navegador="Firefox" && executable="sh -c 'firefox --class WebApp-$id_app --name WebApp-$id_app --profile $HOME/. config/SSBash/$navegador-$id_app --no-remote \"https://$url\"'" && firefox -CreateProfile "$navegador-$id_app $HOME/.config/SSBash/$navegador-$id_app" ;; 2) navegador="Chrome" && executable="google-chrome-stable --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app --user- data-dir=$HOME/.config/SSBash/$navegador-'$id_app'";; 3) navegador="Chromium" && executable="chromium --app="https://$url" --class= WebApp-$id_app --name=WebApp-$id_app --user-data-dir=$HOME/.config/SSBash/$navegador-'$id_app'";; 4) navegador="Brave" && executable="brave --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app --user-data-dir=$HOME/.config/SSBash/$navegador-'$id_app '";; 5) navegador="Edge" && executable="microsoft-edge --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app --user- data-dir=$HOME/.config/SSBash/$navegador-'$id_app'";; 6) navegador="Vivaldi" && executable="vivaldi-stable --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app --user-data-dir= $HOME/.config/SSBash/$navegador-'$id_app'";; 7) navegador="Firefox-flatpak" && executable="sh -c 'flatpak run org.mozilla.firefox --class WebApp-$id_app --name WebApp-$id_app --profile $HOME/.config/SSBash/$ navegador-$id_app --no-remote \"https://$url\"'" && firefox -CreateProfile "$navegador-$id_app $HOME/.config/SSBash/$navegador-$id_app";; 8) navegador="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/$navegador-'$id_app'";; 9) navegador="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/$navegador-'$id_app'";; 10) navegador="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/$navegador-'$id_app'";; 11) navegador="Edge-flatpak" && executable="flatpak run com.microsoft.Edge --app="https://$url" --class=WebApp-$id_app --name=WebApp-$id_app -- user-data-dir=$HOME/.config/SSBash/$navegador-'$id_app'";; 12) navegador="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/$navegador-'$id_app'";; 13) navegador="ungoogled-chromium-flatpak" && executable="flatpak run com.github.Eloston.UngoogledChromium --app="https://$url" --class=WebApp-$id_app --name=WebApp- $id_app --user-data-dir=$HOME/.config/SSBash/$navegador-'$id_app'";; *) fet "Opció no vàlida.  Seleccionant Chrome per defecte."  && navegador="Chrome";; esac cadena_aleatòria=$(head /dev/urandom | tr -dc a-z0-9 | head -c 30 ; fet '') acceso_directo=$navegador-$id_app-$cadena_aleatoria.desktop touch $accés_directe mkdir -p "$HOME /.config/SSBash/$navegador-$id_app/img/" cp $icona "$HOME/.config/SSBash/$navegador-$id_app/img/" echo "[Desktop Entry] Version=1.0 Name=$nom_app Comment =$comentari Exec=$executable Icon=$HOME/.config/SSBash/$navegador-$id_app/img/$nom_imatge Terminal=false Type=Application Categories=$categoria StartupNotify=true StartupWMClass=WebApp-$id_app" >> " $accés_directe" chmod +x $accés_directe mv $accés_directe ~/.local/share/applications/ if [ "$navegador" == "Firefox" ]; then mkdir -p "$HOME/.config/SSBash/$navegador-$id_app/chrome/" ruta_js="$HOME/.config/SSBash/$navegador-$id_app/user.js" touch $ruta_js ruta_css="$ HOME/.config/SSBash/$navegador-$id_app/chrome/userChrome.css" touch $ruta_css fet "user_pref(\"browser.cache.disk.enable\", false); user_pref(\"browser.cache.disk .capacity\", 0); user_pref(\"browser.cache.disk.filesystem_reported\", 1); user_pref(\"browser.cache.disk.smart_size.enabled", false); user_pref(\"browser. 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); drawInTitlebar\", false); user_pref(\"browser.tabs.inTitlebar\", 0); user_pref(\"browser.contentblocking.category\", "strict"); , false);user_pref(\"privacy.sanitize.sanitizeOnShutdown\", false); user_pref(\"privacy.sanitize.timeSpan\", 1);" >> "$ruta_js" fet "#nav-bar, #identity-box, #tabbrowser-tabs, #TabsToolbar { visibility: collapse; } #nav-bar * { visibility: visible !important; } " >> "$ruta_css" fitxer " L'aplicació '$nom_app' s'hauria d'haver instal·lat.  Si us plau,
    comprova el fitxer desktop a ~/.local/share/applications/
    i, després d'executar-lo, que existeix el perfil a ~/.config/SSBash/."
 elif [ "$opcion" == "2" ]; then
    if [ -n "$(ls -A "$HOME/.config/SSBash/")" ]; then
        fet "Quina aplicació web vols eliminar?"  && ls $HOME/.config/SSBash/ read app_eliminar if [ -n "$app_eliminar" ] && [ -e "$HOME/.config/SSBash/$app_eliminar" ]; then desktop_eliminar=$(fet "$app_eliminar" | tr -d ' ') rm -rf $HOME/.config/SSBash/"$app_eliminar"/ rm $HOME/.local/share/applications/$desktop_eliminar* feto "La aplicació amb id '$app_eliminar' ha estat eliminada.
 Si es basava en Firefox, suprimeix manualment el perfil des de about:config."
 else
            echo "L'aplicació amb id '$app_eliminar' no és a la llista."
 fi
    else
        fet "No hi ha aplicacions web instal·lades."
 fi
elif [ "$opcion" == "3" ]; then
    fet "Fins a la propera."
 else
    fet "Opció no vàlida".

Explicant el codi

El script o programa són menys de 100 línies, i fins i tot s'hi poden eliminar les aplicacions creades. És una mica rudimentari, però fa el que volem. S'executa amb «bash nom-del-arxiu» -on haguem enganxat el codi anterior- i tot passa al terminal. Es poden editar les línies dels navegadors i afegir-ne d'altres basades en Chromium.

Comença mostrant un nom, i cadascú pot posar el que més li agradi. Com que aquest tipus d'aplicacions són SSB per Site-Specific Browser i el usat és Bash, doncs SSBash no sona malament. Després ens consulta si volem crear una aplicació web o eliminar-ne alguna de les que ja tenim. Si us diem que volem crear-la, ens demanarà el nom de l'aplicació, un comentari per als panells que els suportin, a quina categoria pertany, la URL del servei, ruta a la icona i després un navegador web.

Creant una webapp amb SSBash

L'única diferència que hi ha entre navegadors és la comanda que els llança, però les banderes són iguals en tots els casos: crea una aplicació amb la classe i un perfil aïllat; després crearà el fitxer .desktop amb una cadena de caràcters aleatòria per evitar coincidències, cosa que es considera una bona pràctica; a continuació crea una carpeta per a la imatge que serà la icona, omple el fitxer .desktop amb tot el necessari, li dóna permís d'execució i el mou a la carpeta `~/.local/share/applications/, que és on solen estar els dreceres propis i d'algun altre programari com les AppImage. En llançar laplicació per primera vegada es completarà la creació del perfil.

algunes precaucions

Si triem l'opció d'eliminar, el programari consulta el que hi ha a la carpeta de configuració, ens ho mostra i, després de posar exactament una de les opcions, eliminareu el .desktop i la carpeta amb el perfil aïllat. Està comprovat que funciona, però ni jo ni LXA ens responsabilitzem de les possibles pèrdues de dades –més que res accessos directes– que puguin tenir lloc. Si algú no vol córrer cap risc, es poden eliminar esborrant el fitxer .desktop de ~ / .Local / share / applications / i el perfil de ~/.config/SSBash/nom-de-la-app. Una altra opció és fer una còpia de seguretat del contingut de ~ / .Local / share / applications / abans d'eliminar una app, comprovar que funciona i després ja fer-lo servir com es va dissenyar.

Com deia, és una mica rudimentari i no es gestionen els possibles errors. De vegades, depenent de la imatge o on és, és probable que es vegi alguna fallada, en aquest cas recomano revisar què hi ha al fitxer .desktop.

Dues dades que em sembla que cal saber: Opera no està suportat, però se'n poden afegir d'altres basades en Chromium i provar; i, perquè això sigui el més simple possible, les icones no les descarrega ni res, cal buscar-les, descarregar-les i indicar-hi la ruta. Tampoc no inclou una opció per instal·lar aplicacions com ho fa el navegador… perquè això ja ho fa el navegador.

I les extensions?

Es possible instal·lar extensions en aquest tipus d'aplicacions web, però algunes no funcionaran. Per exemple, aquestes de l'equalitzador que actuen només a les pestanyes on els activem. Sí funcionaran les extensions que funcionin a tot el navegador.

Per instal·lar-les, el que cal fer és obrir una finestra nova del navegador, cosa que es pot aconseguir amb Ctrl-T o fent clic secundari sobre qualsevol enllaç i obrint en una pestanya nova. S'obrirà el navegador en qüestió, i això permetrà anar a la Chrome Web Store i instal·lar-hi qualsevol extensió. Un cop instal·lades podem tancar aquests navegadors complets i tornar a fer servir l'aplicació web amb l'extensió inclosa.

Una altra manera de tenir aplicacions web

Aquesta és una altra manera de tenir aplicacions web. I en executar-se en un perfil aïllat, no es comparteix ni historial ni extensions ni res, i fins i tot podem forçar el tancament del navegador base i no passa res. Si algú prefereix que les aplicacions siguin del Firefox, llavors és millor fer servir Webapp Manager.

L'únic que cal tenir en compte és que cada perfil/app ocupa un espai i sol superar els 100mb. Per tota la resta, crec que val la pena.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.