Кілька днів тому ми опублікували стаття у якому ми порівняли три різні способи використання веб-програми. З одного боку, з браузера як є; з іншого – встановити програму та використовувати її в окремому вікні; і, нарешті, використання Webapp Manager, який, на мою думку, є найкращим. Сьогодні я пропоную вам інший варіант, який частково базується на Linux Mint XApp.
Програми, встановлені з браузера, важать трохи більше, ніж те, що створює Webapps Manager. У них є перевага, яка полягає в тому, що до розширень можна легко отримати доступ, і вони всі працюють, як-от еквалайзер, який я не змусив працювати – і я не багато шукав – у 100% окремих програмах. Але загалом те, що створює Webapps Manager, знаходиться на вищому рівні. Справа в тому, що, принаймні для найпопулярніших браузерів на базі Chromium, усе, що він робить, це створює файл .desktop із командою, яка повідомляє браузеру запустити застосування в ізольованому профілі. Досягнення цього ось що ми збираємося пояснити тут сьогодні.
Веб-програми в ізольованому профілі та без встановлення нічого
Погана річ у програмі Linux Mint, м’яко кажучи, полягає в тому, що вона встановлює основне програмне забезпечення та деякі додаткові модулі Python. Є peccadillo для тих, хто використовує багато веб-додатків і також хоче вибрати базовий браузер, але якщо нам цього недостатньо Chrome, Brave, Vivaldi або Edge, все, що ми встановлюємо, непотрібне.
Як ми вже говорили, секрет полягає в тому, щоб перевірити, що ці програми роблять, проаналізувати файл .desktop і створити подібний. Це, що можна зробити вручну з першого файлу, який Webapp Manager створює для нас, копіюючи та редагуючи те, що необхідно, ми можемо автоматизувати це за допомогою Bash. Код буде таким:
#!/bin/bash
echo "SSBash
Що ти хочеш робити?
1. Створити веб-додаток
2. Видалити наявну програму
3. Exit" read option if [ "$option" == "1" ]; then echo "Application name:" read app_name app_id=$(echo "$app_name" | tr -d ' ') echo "Comment:" read comment echo «Категорія»: читати категорію echo «URL веб-програми (без https/http):» читати url echo «Шлях до піктограми програми»: читати піктограму image_name=$(basename «$icon») echo «Браузер: 1. Firefox 2. Chrome 3. Хром
4. хоробрий
5. краю
6. Вівальді
7. Firefox (flatpak) 8. Хром (плоска упаковка) 9. Chromium (flatpak) 10. Відважний (флетпак) 11. Edge (flatpak) 12. Вівальді (флетпак)
одинадцять. ungoogled-chromium (flatpak)" read selected_browser case $chosen_browser in 1) browser="Firefox" && executable="sh -c 'firefox --class WebApp-$id_app --name WebApp-$id_app --profile $HOME/. 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) browser="Vivaldi" && executable="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) browser="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/$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) browser="ungoogled-chromium-flatpak" && executable="flatpak run 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 '') shortcut=$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 "[Desktop Entry] Version=1.0 Name=$app_name Коментар =$comment Exec=$executable Icon=$HOME/.config/SSBash/$browser-$app_id/img/$image_name Terminal=false Type=Application Categories=$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" торкніться $js_path = css_path=" $ HOME/.config/SSBash/$browser-$app_id/chrome/userChrome.css" торкніться $css_path echo "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(\"браузер . 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 { visibility: collapse; } #nav-bar * { видимість: видно !важливо; } " >> "$css_path" fi echo " Програма '$app_name' мала бути встановлена. Будь ласка,
перевірте файл робочого столу в ~/.local/share/applications/
і, після його запуску, що профіль існує в ~/.config/SSBash/."
elif [ "$option" == "2" ]; потім
if [ -n "$(ls -A "$HOME/.config/SSBash/")" ]; потім
echo "Яку веб-програму ви хочете видалити?" && ls $HOME/.config/SSBash/ читає app_remove, якщо [ -n "$app_remove" ] && [ -e "$HOME/.config/SSBash/$app_remove" ]; тоді desktop_delete=$(echo "$app_delete" | tr -d ' ') rm -rf $HOME/.config/SSBash/"$app_delete"/ rm -rf $HOME/.cache/SSBash/"$app_delete"/ rm $HOME/.local/share/applications/$desktop_delete* echo "Програму з ідентифікатором '$app_delete' видалено.
Якщо це було на базі Firefox, видаліть профіль вручну з about:config."
інше
echo "Програми з ідентифікатором '$app_remove' немає в списку."
фі
інше
echo "Веб-програми не встановлено."
фі
elif [ "$option" == "3" ]; потім
echo "До наступного разу."
інше
echo "Недійсний параметр."
fi
пояснення коду
El сценарій або програма менше 100 рядків, і в ній можна навіть видалити програми створений. Це трохи елементарно, але воно робить те, що ми хочемо. Він виконується за допомогою "bash ім'я файлу", куди ми вставили попередній код, і все відбувається в терміналі. Ви можете редагувати рядки браузерів і додавати інші на основі Chromium.
Починається з показу імені, і кожен може поставити те, що йому найбільше подобається. Оскільки ці типи програм є SSB від Site-специфічний браузер і використовується Bash, оскільки SSBash звучить непогано. Потім він запитує нас, чи хочемо ми створити веб-програму чи видалити одну з тих, які у нас уже є. Якщо ми скажемо йому, що ми хочемо його створити, він запитає нас про назву програми, коментар до панелей, які їх підтримують, до якої категорії вона належить, URL-адресу служби, шлях до піктограми, а потім веб-браузер.

Єдина відмінність між браузерами полягає в команді, яка їх запускає, але прапорці однакові в усіх випадках: створити програму з вашим класом і ізольованим профілем; тоді він створить файл .desktop із випадковим рядком символів, щоб уникнути збігів, що вважається хорошою практикою; Потім створіть папку для зображення, яке буде піктограмою, заповніть файл .desktop усім необхідним, дайте йому дозвіл на виконання та перемістіть його до папки `~/.local/share/applications/, де вони зазвичай Є ваші власні ярлики та ярлики іншого програмного забезпечення, наприклад AppImage. Перший запуск програми завершить створення профілю.
Деякі запобіжні заходи
Якщо ми виберемо опцію видалення, програма перевірить, що знаходиться в папці конфігурації, відобразить це, і після введення лише однієї з опцій видалить файл .desktop та папку з ізольованим профілем і кешем. Це доведено як працює, але ні я, ні LXA несуть відповідальності за будь-яку потенційну втрату даних (особливо скорочень), яка може статися. Якщо хтось не хоче ризикувати, його можна видалити, видаливши файл .desktop з ~/.local/share/applications/, профіль ~/.config/SSBash/назва-додатку та кеш-пам'ять~/.cache/SSBash/назва-програми. Іншим варіантом є створення резервної копії вмісту ~ / .local / share / applications / Перед видаленням програми переконайтеся, що вона працює, а потім використовуйте її за призначенням.
Як я вже сказав, це трохи рудиментарно, і можливі помилки не контролюються. Іноді, залежно від зображення або його місця, ймовірно, буде видно якусь помилку, у такому випадку я рекомендую перевірити, що міститься у файлі .desktop.
Дві відомості, які, на мою думку, вам потрібно знати: Opera не підтримується, але ви можете додати інші на основі Chromium і спробувати; І, щоб зробити це максимально простим, ви не завантажуєте піктограми чи щось інше, вам потрібно їх шукати, завантажувати та вказувати шлях до них. Він також не містить опції встановлення програм, як це робить браузер... тому що браузер уже це робить.
А розширення?
Es можливість встановлення розширень у цих типах веб-програм, але деякі не працюватимуть. Наприклад, ті з еквалайзера, які діють лише на вкладках, де ми їх активуємо. Працюватимуть розширення, які працюють у всьому браузері.
Щоб установити їх, вам потрібно відкрити нове вікно веб-переглядача, що можна зробити за допомогою Ctrl-T або вторинним клацанням будь-якого посилання та відкриттям у новій вкладці. Відкриється відповідний браузер, і ви зможете перейти до веб-магазину Chrome і встановити будь-яке розширення. Після встановлення ми можемо закрити ці «повні» браузери та знову використовувати веб-програму з доданим розширенням.
Інший спосіб створення веб-додатків
Це ще один спосіб створення веб-додатків. І коли він працює в ізольованому профілі, жодна історія, розширення або щось не ділиться, і ми навіть можемо примусово закрити базовий браузер, і нічого не станеться. Якщо хтось вважає за краще, щоб програми були з Firefox, то краще використовувати Менеджер веб-додатків.
Єдине, про що слід пам’ятати, це те, що кожен профіль/додаток займає простір і зазвичай перевищує 100 МБ. Щодо всього іншого, я думаю, що воно того варте.