]> gitweb.morketsmerke.org Git - immudex.git/commitdiff
Synchronizacja public -> private (testing)
authorxf0r3m <jakubstasinski@protonmail.co>
Tue, 12 Sep 2023 05:44:46 +0000 (07:44 +0200)
committerxf0r3m <jakubstasinski@protonmail.co>
Tue, 12 Sep 2023 05:44:46 +0000 (07:44 +0200)
33 files changed:
README.md
changelogs/1.0.0.txt [new file with mode: 0644]
changelogs/1.0.1.txt [new file with mode: 0644]
changelogs/1.0.2.txt [new file with mode: 0644]
changelogs/1.0.3.txt [new file with mode: 0644]
files/102/gtk-main.css [new file with mode: 0644]
files/102/whiskermenu-1.rc [new file with mode: 0644]
files/102/xfce4-keyboard-shortcuts.xml [new file with mode: 0644]
files/103/xfce4-keyboard-shortcuts.xml [new file with mode: 0644]
files/103/xfwm4.xml [new file with mode: 0644]
files/104/LibreWolf (Firejailed).desktop [new file with mode: 0755]
files/Notifier - packages.desktop [new file with mode: 0644]
files/autostart-x4notes.desktop [new file with mode: 0644]
files/local_user.tar [new file with mode: 0644]
files/local_xf0r3m.tar [new file with mode: 0644]
files/mimeinfo.cache [new file with mode: 0644]
tools/101/immudex_branch [new file with mode: 0755]
tools/101/immudex_hostname [new file with mode: 0755]
tools/101/import_gpgkeys [new file with mode: 0755]
tools/101/library.sh [new file with mode: 0755]
tools/101/newsfeed [new file with mode: 0755]
tools/101/pl [new file with mode: 0755]
tools/102/create_media [new file with mode: 0755]
tools/102/immudex_hostname [new file with mode: 0755]
tools/102/pl [new file with mode: 0755]
tools/103/idle-clic [new file with mode: 0755]
tools/103/pl [new file with mode: 0755]
versions/100.sh
versions/101.sh [new file with mode: 0644]
versions/102.sh [new file with mode: 0644]
versions/103.sh [new file with mode: 0644]
versions/104.sh [new file with mode: 0644]
versions/template.sh

index 34a890584f52a3bc5ffdc3a66879666060df162b..0286eaa83996cf4db36fd99dcb382edddeaff597 100644 (file)
--- a/README.md
+++ b/README.md
@@ -2,50 +2,17 @@
 
 # IMMutable DEbian with Xfce
 
-Immudex to wersja debian zawierająca niezmienne środowisko pracy. Wykorzystuje
-ona bowiem archiwum .squashfs znane z LiveCD. Przyczym pozwala ona na pełen
-dostęp do partycji zawierające archiwum, w razie aktualizacji. Tak przygotowana
-wersja popularnego systemu operacyjnego pozwoli bezpieczniejsze korzystanie
-z komputera oraz zasobów internetu. Jeśli coś się stanie, wystarczy uruchomić
-komputer ponownie.
+## GNU/LINUX Debian stable (bookworm)
 
-Immudex nastawiowny jest na wykorzystanie do przechowywania danych szyfrowanych
-partycji za pomocą mechanizmu LUKS. Dodatkowy mechanizm pozwala na 
-zabezpieczenie danych składowanych na tego typu partycjach, na przykład jeśli
-mamy otwarte jakieś pliki na zaszyfrowanej partycji przeglądarka się nie
-uruchomi. Musimy wówczas zamknąć wszystkie pliki oraz opuścić punkt montowania
-szyfrowanej partycji, wtenczas zostanie ona odmontowana szyfrowany wolumin
-zostanie zamknięty. Po tych czynnościach przeglądarką uruchomi się
-samodzielnie. W ramach bezpieczeństwa dostępny jest również sandboxer FireJail,
-zablokowano również wszelkie sieciowe połączenia przychodzące.
+To repozytorium zawiera pliki służące do tworzenia dystrybucji immudex.
+Zawiera ono wiele ciekawych informacji, jednak podstawowe infomacje na temat 
+tej dystrybucji (wraz z adresami do serwerów lustrzanych z obrazmi płyt)
+znajdują się pod adresem:
 
-Immudex domyślnie korzysta z wolnego oprogramowania, nie zainstalowano na nim
-niewolnych pakietów, w konfiguracji nie ma również niewolnych repozytoriów.
-Do dyspozycji mamy:
-  * Standardowe środowisko XFCE dostępne na Debian Stable
-  * Odtwarzacz muzyki QMMP
-  * Odtwarzacz multimedialny VLC
-  * virt-manager (KVM)
-
-Obraz płyty znajduje się na serwisie sourceforge.net. Poniżej znajduje się 
-odnośniki.
-
-  * 64-bit: [https://ftp.morketsmerke.org/immudex/stable/iso/0.1.3/immudex64.iso](https://ftp.morketsmerke.org/immudex/stable/iso/0.1.3/immudex64.iso)
-    
-    CRC: 3635402843 SHA1: 8df09c433c1e089cf84e1bc9d42a1bc194242729
-  * 32-bit: [https://ftp.morketsmerke.org/immudex/stable/iso/0.1.3/immudex32.iso](https://ftp.morketsmerke.org/immudex/stable/iso/0.1.3/immudex32.iso)
-    
-    CRC: 4060229527 SHA1: 3e89a8e70ac21e8cd31632fbcfd30b37d9d76c07
-
-Domyślnym użytkownikiem jest user, dostęp to niego uzyskujemy za pomocą hasła
-user1. Możemy również skorzystać z konta superużytkownika root z hasłem toor.
-
-Dokumentacja systemu znajduje się pod [tym](https://morketsmerke.github.io/articles/immudex/index.html) adresem.
+[https://morketsmerke.github.io/articles/immudex/immudex.html](https://morketsmerke.github.io/articles/immudex/immudex.html)
 
 immudex is not affiliated with Debian. Debian is a registered trademark owned 
 by Software in the Public Interest, Inc.
 
-[Lock icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/lock)
-
 [Rss icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/rss)
  
diff --git a/changelogs/1.0.0.txt b/changelogs/1.0.0.txt
new file mode 100644 (file)
index 0000000..18bcb65
--- /dev/null
@@ -0,0 +1,67 @@
+immudex 1.0.0 - wydanie nowej wersji stablinej Debian
+
+  1. Zmiana wersji stabilnej Debian z Bullseye na Bookworm.
+
+  2. Zmiana domyślnego wyglądu pulpitu dla użytkowników. Wykorzystano do tego
+      project xfcedebian dla gałęzi testing (obecnie main). Zmieniona została 
+      tapeta. Jest jeden pasek na dole, przypominający pasek z systemów MS
+      Windows. Aktywatory obecnie znajdują się na pulpicie. Użyto także
+      bardzie rozbudowanej wersji menu, znajdującego się pod przyciskiem start.
+
+  3. Zmiana tła ekranu logowania oraz zmiana domyślnego obrazu użytkownika na
+      ekranie logowania
+
+  4. Rozszerzenie miejsca wymagana do instalacji 'immudex' z 4 do 6GB. Jest to
+      wymagana aby przeprowadzać aktualizacje systemu w czasie jego działania.
+
+  5. Dodanie narzędzia 'immudex_branch' pozwalającego na określenie gałęzi
+      'immudex'. Jest ono głównie wykorzystywane przez widget 'Conky', przez
+      to narzędzie ma dość specyficzne działanie.
+
+  6. Instalacja oraz konfiguracja widgetu 'Conky'. Wiget startuje automatycznie
+      po zalogowaniu użytkownika.
+
+  7. Usunięcie zbędnych plików APT (odzyskanie kilkudziesięciu megabajtów z 
+      rozmiaru obrazu).
+
+  8. Wdrożenie do 'immudex_install' nowej minimalnej wielkości partycji
+      systemowej 'immudex'. 
+
+  9. Instalacja pakietu gvfs-backends. Pakiet pozwala na skorzystanie z różnych
+      protokołów dostępu do plików takich jak 'smb://' czy 'mtp://' za pomocą
+      okienkowego menedżera plików ('Thunar").
+
+  10. Instalacja z gałezi 'experimental' elementu projektu XFCE: 
+      'xfce4-notes-plugin' - mały program pozwalający na tworzenie szybkich
+      notatek na pulpicie. Dostosowanie jego wyglądu do obecnego wyglądu
+      pulpitu 'immudex' (ustawienie ciemnego motywu oraz obrazu tła podobnego
+      do terminala), utworzenie skryptu uruchamiającego 
+      'xfce4-notes-plugin' w pierwszym otwartym 'cryptfs'. Dodanie pliku
+      autostartu dla tego skryptu. Dodanie funkcji uruchamiającej autostart
+      skryptu (funkcja stosowana jest tylko dla użytkownika 'xf0r3m') do
+      pliku szablonu (pliku z funkcjami dla plików wersji).
+
+  11. Dodanie do opcji 'create' narzędzia 'immudex_crypt' funkcji, która
+      ustawia prawa własności dla użytkownika, który właśnie tworzy 'cryptfs'.
+
+  12. Zmiana źródła oraz sposóbu wyświetlania pogody przez narzędzie 'meteo'.
+      Obecnie korzysta ono z serwisu wttr.in i wyświetla informacje w 
+      terminalu.
+
+  13. Utworzono usługę dynamicznej nazwy hosta. Usługa bazuje na informacjach
+      wyświetlanych w polach 'Hardware vendor' oraz 'Hardware model' wyjścia
+      polecenia 'hostnamectl'. Wymaga recznej aktualizacji i dodanie
+      informacji o uruchomionym sprzęcie do skryptu, dlatego. Póki co będzie
+      ona poprawnie ustawiać nazwę hosta dla Komputerów marki Dell z serii
+      Latitude oraz komputerów marki Lenovo z serii ThinkPad. Usługa jest
+      plikiem jednoski 'systemd' i jest uruchamiana przed uruchomienie
+      mendżera wyświetlania 'LightDM'.
+
+  14. Zmieniono domyślny format opcji '-a' ("audio-only") narzędzia 'ytplay'.
+      Z '--bestaudio' (co nie pozwalało na uruchomienie wyłącznie strumienia
+      dźwieku z transmisji na żywo) na '--novideo --best[height=360]'. Co 
+      wpłynęło na wyżej wymieniony problem.
+
+  15. Dodanie nowego narzędzia 'pl'. Pozwalającego na wybór i odtworzenie
+      wybranego linku z pliku tekstowego. Poza odnośnikami z YT jest możliwe
+      odtwarzenie również radia internetowego. 
diff --git a/changelogs/1.0.1.txt b/changelogs/1.0.1.txt
new file mode 100644 (file)
index 0000000..7d5a21e
--- /dev/null
@@ -0,0 +1,26 @@
+immudex 1.0.1 - aktualizacja jądra
+
+  1. Aktualizacja pakietów wraz z jądrem Linux.
+
+  2. Zmiana programu pocztowego dostarczanego wraz z dystrybucją.
+    'Thunderbirda' zastąpił 'mutt'.
+
+  3. Aktualizacja narzędzia 'pl'. Umożliwienie odtwarzania filmów oraz
+    możliwość zmiany linku podczas odtwarzania innego.
+
+  4. Aktualizacja narzędzia 'import_gpgkeys'. Obecnie wymagane jest również
+    eksport bazy zaufania kluczy 'trustdb' w pliku 'otrust.txt'. Przez co
+    niema już potrzeby ustawiania poziomu zaufania dla kluczy.
+
+  5. Zmiana nazwy kodowej wersji testowej w narzędziu 'immudex_branch' oraz
+    w funkcji 'get_debian_branch' w pliku 'library.sh' wykorzystywanym przez
+    kilka innych narzędzi.
+
+  6. Uzupełnienie 'immudex_hostname' o zgłoszone hostname-y. Dodano również
+    generowanie hostname-u dla maszyn wirtualnych KVM. Hostname generowany jest
+    na podstawie Machine ID.
+
+  7. Zmiana domyślnych programów dla znanych plików.
+
+  8. Aktualizacja narzędzia 'newsfeed'. Teraz pod tytułami wyświetlone zostanie
+    zawartość pola "<description>" z pliku RSS.
diff --git a/changelogs/1.0.2.txt b/changelogs/1.0.2.txt
new file mode 100644 (file)
index 0000000..5c768bf
--- /dev/null
@@ -0,0 +1,17 @@
+immudex 1.0.2 - aktualizacja jądra
+(immudex 1.0.2 = immudex-testing 1.0.6)
+
+  1. Aktualizacja pakietów wraz z jądrem Linux.
+
+  2. Dodanie zaginione aktualizacji narzędzia 'create_media'. Dodanie opcji
+    '--nuke', pozwalające wyzerować pierwszy megabajt dysku - BT #83
+
+  3. Aktualizacja narzędzia 'pl'. Oczyszczenie odnośnika do yt z początkowej
+    spacji, mogło to powodować zablokowania odtwarzania filmów, w niektórych
+    wersjach 'mpv' - BT#85
+
+  4. Wdrożenie zunifikowanego narzędzia 'immudex_hostname' - BT #92
+
+  5. Definicja skrótów klawiszowych:
+    - Ctrl+Alt+T - uruchmia xfce4-terminal.
+    - Win - wyświetla/chowa menu "Start" (identycznie jak systemach MS Windows)
diff --git a/changelogs/1.0.3.txt b/changelogs/1.0.3.txt
new file mode 100644 (file)
index 0000000..b44d80f
--- /dev/null
@@ -0,0 +1,24 @@
+immudex 1.0.3 - aktualizacja jądra
+(immudex 1.0.3 = immudex-testing 1.0.8)
+
+       1. Aktualizacja pakietów wraz z jądrem Linux.
+
+  2. Usunięcie pakietu 'xpra'.
+
+  3. Aktualizcja skryptu yt-dlp.
+
+  4. Dodanie skrótów klawiszowych pozwalających wyrównać okno do wybranej
+    krawędzi ekranu (zgodnie z klawiszami kierunkowymi w 'Vim') oraz 
+    przenieść okno na wybrany monitor
+    (Ctrl+Shift+! - lewy, Ctrl+Shift+@ - prawy)
+
+  5. Dodanie klienta projektu IDLE.
+
+  6. Aktualizacja narzędzia 'pl'. Dodanie możliwości podania odnośnika URL
+    (HTTP/HTTPS) do listy z linkami.
+
+  7. Wyłącznie przesuwania okna poprzez kliknięcie na nie z przytrzymanym
+      lewym klawiszem 'Alt'. 
+
+  
+
diff --git a/files/102/gtk-main.css b/files/102/gtk-main.css
new file mode 100644 (file)
index 0000000..cf86688
--- /dev/null
@@ -0,0 +1,172 @@
+@define-color notes_bg_color #343434;
+@define-color theme_base_color #343434;
+@define-color theme_text_color #eeeeec;
+@define-color theme_bg_color @theme_base_color;
+@define-color theme_fg_color shade (@theme_base_color, 0.3);
+@define-color theme_selected_bg_color shade (@theme_base_color, 0.8);
+@define-color theme_selected_fg_color shade (@theme_base_color, 1.4);
+@define-color insensitive_bg_color shade (@theme_bg_color, 1.1);
+@define-color insensitive_fg_color shade (@theme_fg_color, 1.8);
+
+@define-color borders shade (@theme_base_color, 0.8);
+@define-color frame_color shade (@theme_base_color, 0.7);
+@define-color notebook_active_tab_border shade (@theme_base_color, 1.1);
+@define-color notebook_selected_tab_color shade (@theme_base_color, 0.9);
+
+* {
+       border-width: 0px;
+}
+
+/* window and frame */
+window {
+       /*
+       background-image: linear-gradient(to bottom,
+                                         shade (@theme_base_color, 0.8),
+                                         shade (@theme_base_color, 0.95) 87px);
+                                         */
+}
+
+window frame {
+       padding: 1px 2px 4px 2px;
+       border: 1px solid shade (@theme_base_color, 0.7);
+}
+
+/* icon buttons in window title bar */
+window widget#notes-icon-button {
+       color: #eeeeec;
+       background-color: transparent;
+}
+/*
+window widget#notes-icon-button:active {
+       color: lighter (@theme_fg_color);
+       text-shadow: 1px 1px darker (@theme_bg_color);
+}
+*/
+window widget#notes-icon-button:disabled {
+       color: shade (#343434, 1.2);
+}
+window widget#notes-icon-button:hover {
+       color: shade (#eeeeec, 1.4);
+}
+
+/* notebook */
+notebook > header {
+       background: transparent;
+}
+notebook > header.top {
+       border-bottom: 2px solid @theme_selected_bg_color;
+}
+notebook > header.bottom {
+       border-top: 2px solid @theme_selected_bg_color;
+}
+notebook > header.left {
+       border-right: 2px solid @theme_selected_bg_color;
+}
+notebook > header.right {
+       border-left: 2px solid @theme_selected_bg_color;
+}
+
+/* notebook tab style */
+notebook > header.top tab, notebook > header.bottom tab {
+       padding: 0px 4px;
+}
+notebook > header.right tab, notebook > header.left tab {
+       padding: 4px 0px;
+}
+
+notebook > header tab {
+       box-shadow: none;
+       color: @insensitive_fg_color;
+       background: transparent;
+}
+notebook > header tab:checked {
+       color: shade (@theme_text_color, 0.8);
+}
+notebook > header tab.dnd {
+       background: @theme_selected_bg_color;
+}
+
+notebook > header.top > tabs > tab:checked {
+       box-shadow: inset 0px -3px shade (@theme_selected_bg_color, 1.3), 0px 2px 3px @theme_selected_bg_color;
+}
+notebook > header.top > tabs > tab:checked:hover {
+       box-shadow: inset 0px -2px shade (@theme_selected_bg_color, 1.3), 0px 2px 3px @theme_selected_bg_color;
+       background: @theme_selected_bg_color; /* NOTE: must be set before .dnd */
+}
+notebook > header.top > tabs > tab:hover {
+       box-shadow: inset 0px -2px shade (@theme_selected_bg_color, 1.3);
+}
+
+notebook > header.bottom > tabs > tab:checked {
+       box-shadow: inset 0px 3px shade (@theme_selected_bg_color, 1.3), 0px -2px 3px @theme_selected_bg_color;
+}
+notebook > header.bottom > tabs > tab:checked:hover {
+       box-shadow: inset 0px 2px shade (@theme_selected_bg_color, 1.3), 0px -2px 3px @theme_selected_bg_color;
+       background: @theme_selected_bg_color;
+}
+notebook > header.bottom > tabs > tab:hover {
+       box-shadow: inset 0px 2px shade (@theme_selected_bg_color, 1.3);
+}
+
+notebook > header.left > tabs > tab:checked {
+       box-shadow: inset -3px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
+}
+notebook > header.left > tabs > tab:checked:hover {
+       box-shadow: inset -2px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
+       background: @theme_selected_bg_color;
+}
+notebook > header.left > tabs > tab:hover {
+       box-shadow: inset -2px 0px shade (@theme_selected_bg_color, 1.3);
+}
+
+notebook > header.right > tabs > tab:checked {
+       box-shadow: inset 3px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
+}
+notebook > header.right > tabs > tab:checked:hover {
+       box-shadow: inset 2px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
+       background: @theme_selected_bg_color;
+}
+notebook > header.right > tabs > tab:hover {
+       box-shadow: inset 2px 0px shade (@theme_selected_bg_color, 1.3);
+}
+
+textview > text {
+       color: @theme_text_color;
+       /*
+       background-image: linear-gradient(to bottom,
+                                         shade (@theme_bg_color, 1.2),
+                                         shade (@theme_bg_color, 1.3) 20em);
+                                        */
+       background-image: url("/usr/share/images/desktop-base/notes-background.jpg");
+       background-position: center;
+       background-repeat: no-repeat;
+       background-size: cover;
+       font-weight: bold;
+}
+
+textview > text > selection {
+       color: #343434;
+       background-color: #eeeeec;
+}
+
+scrollbar {
+       background-color: transparent;
+}
+scrollbar slider {
+       background-color: shade (@theme_bg_color, 0.55);
+       min-width: 8px;
+}
+scrollbar slider:hover {
+       background-color: shade (@theme_bg_color, 0.7);
+       transition: 400ms;
+}
+scrollbar slider:hover:active {
+       background-color: shade (@theme_bg_color, 0.55);
+       transition: 200ms;
+}
+
+tooltip, tooltip * {
+       margin: 0px;
+       padding: 0px;
+}
+
diff --git a/files/102/whiskermenu-1.rc b/files/102/whiskermenu-1.rc
new file mode 100644 (file)
index 0000000..40e008d
--- /dev/null
@@ -0,0 +1,83 @@
+favorites=xfce4-web-browser.desktop,xfce4-file-manager.desktop
+recent=xfce4-terminal-emulator.desktop,xfce4-terminal.desktop
+button-title=Start
+button-icon=debian-logo
+button-single-row=false
+show-button-title=true
+show-button-icon=true
+launcher-show-name=true
+launcher-show-description=true
+launcher-show-tooltip=true
+launcher-icon-size=3
+hover-switch-category=false
+category-show-name=true
+category-icon-size=1
+sort-categories=true
+view-mode=0
+default-category=0
+recent-items-max=10
+favorites-in-recent=true
+position-search-alternate=true
+position-commands-alternate=false
+position-categories-alternate=true
+position-categories-horizontal=false
+stay-on-focus-out=false
+profile-shape=0
+confirm-session-command=true
+menu-width=450
+menu-height=500
+menu-opacity=100
+command-settings=xfce4-settings-manager
+show-command-settings=true
+command-lockscreen=xflock4
+show-command-lockscreen=true
+command-switchuser=dm-tool switch-to-greeter
+show-command-switchuser=false
+command-logoutuser=xfce4-session-logout --logout --fast
+show-command-logoutuser=true
+command-restart=xfce4-session-logout --reboot --fast
+show-command-restart=true
+command-shutdown=xfce4-session-logout --halt --fast
+show-command-shutdown=true
+command-suspend=xfce4-session-logout --suspend
+show-command-suspend=true
+command-hibernate=xfce4-session-logout --hibernate
+show-command-hibernate=false
+command-logout=xfce4-session-logout
+show-command-logout=false
+command-menueditor=menulibre
+show-command-menueditor=true
+command-profile=mugshot
+show-command-profile=true
+search-actions=5
+
+[action0]
+name=Strony podręcznika
+pattern=#
+command=exo-open --launch TerminalEmulator man %s
+regex=false
+
+[action1]
+name=Wyszukiwarka internetowa
+pattern=?
+command=exo-open --launch WebBrowser https://duckduckgo.com/?q=%u
+regex=false
+
+[action2]
+name=Wikipedia
+pattern=!w
+command=exo-open --launch WebBrowser https://en.wikipedia.org/wiki/%u
+regex=false
+
+[action3]
+name=Uruchom w terminalu
+pattern=!
+command=exo-open --launch TerminalEmulator %s
+regex=false
+
+[action4]
+name=Otwórz adres URI
+pattern=^(file|http|https):\\/\\/(.*)$
+command=exo-open \\0
+regex=true
+
diff --git a/files/102/xfce4-keyboard-shortcuts.xml b/files/102/xfce4-keyboard-shortcuts.xml
new file mode 100644 (file)
index 0000000..71b775a
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<channel name="xfce4-keyboard-shortcuts" version="1.0">
+  <property name="commands" type="empty">
+    <property name="default" type="empty">
+      <property name="&lt;Alt&gt;F1" type="empty"/>
+      <property name="&lt;Alt&gt;F2" type="empty">
+        <property name="startup-notify" type="empty"/>
+      </property>
+      <property name="&lt;Alt&gt;F3" type="empty">
+        <property name="startup-notify" type="empty"/>
+      </property>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;l" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;t" type="empty"/>
+      <property name="XF86Display" type="empty"/>
+      <property name="&lt;Super&gt;p" type="empty"/>
+      <property name="&lt;Primary&gt;Escape" type="empty"/>
+      <property name="XF86WWW" type="empty"/>
+      <property name="HomePage" type="empty"/>
+      <property name="XF86Mail" type="empty"/>
+      <property name="Print" type="empty"/>
+      <property name="&lt;Alt&gt;Print" type="empty"/>
+      <property name="&lt;Shift&gt;Print" type="empty"/>
+      <property name="&lt;Super&gt;e" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;f" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;Escape" type="empty"/>
+      <property name="&lt;Super&gt;r" type="empty">
+        <property name="startup-notify" type="empty"/>
+      </property>
+      <property name="&lt;Alt&gt;&lt;Super&gt;s" type="empty"/>
+    </property>
+    <property name="custom" type="empty">
+      <property name="&lt;Alt&gt;F2" type="string" value="xfce4-appfinder --collapsed">
+        <property name="startup-notify" type="bool" value="true"/>
+      </property>
+      <property name="&lt;Alt&gt;Print" type="string" value="xfce4-screenshooter -w"/>
+      <property name="&lt;Super&gt;r" type="string" value="xfce4-appfinder -c">
+        <property name="startup-notify" type="bool" value="true"/>
+      </property>
+      <property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
+      <property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
+      <property name="&lt;Alt&gt;F3" type="string" value="xfce4-appfinder">
+        <property name="startup-notify" type="bool" value="true"/>
+      </property>
+      <property name="Print" type="string" value="xfce4-screenshooter"/>
+      <property name="&lt;Primary&gt;Escape" type="string" value="xfdesktop --menu"/>
+      <property name="&lt;Shift&gt;Print" type="string" value="xfce4-screenshooter -r"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="string" value="xfce4-session-logout"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;t" type="string" value="exo-open --launch TerminalEmulator"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;f" type="string" value="thunar"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;l" type="string" value="xflock4"/>
+      <property name="&lt;Alt&gt;F1" type="string" value="xfce4-popup-applicationsmenu"/>
+      <property name="&lt;Super&gt;p" type="string" value="xfce4-display-settings --minimal"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;Escape" type="string" value="xfce4-taskmanager"/>
+      <property name="&lt;Super&gt;e" type="string" value="thunar"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="string" value="xkill"/>
+      <property name="HomePage" type="string" value="exo-open --launch WebBrowser"/>
+      <property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
+      <property name="override" type="bool" value="true"/>
+      <property name="Super_L" type="string" value="/usr/bin/xfce4-popup-whiskermenu"/>
+    </property>
+  </property>
+  <property name="xfwm4" type="empty">
+    <property name="default" type="empty">
+      <property name="&lt;Alt&gt;Insert" type="empty"/>
+      <property name="Escape" type="empty"/>
+      <property name="Left" type="empty"/>
+      <property name="Right" type="empty"/>
+      <property name="Up" type="empty"/>
+      <property name="Down" type="empty"/>
+      <property name="&lt;Alt&gt;Tab" type="empty"/>
+      <property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="empty"/>
+      <property name="&lt;Alt&gt;Delete" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="empty"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="empty"/>
+      <property name="&lt;Alt&gt;F4" type="empty"/>
+      <property name="&lt;Alt&gt;F6" type="empty"/>
+      <property name="&lt;Alt&gt;F7" type="empty"/>
+      <property name="&lt;Alt&gt;F8" type="empty"/>
+      <property name="&lt;Alt&gt;F9" type="empty"/>
+      <property name="&lt;Alt&gt;F10" type="empty"/>
+      <property name="&lt;Alt&gt;F11" type="empty"/>
+      <property name="&lt;Alt&gt;F12" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;End" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="empty"/>
+      <property name="&lt;Alt&gt;space" type="empty"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;d" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="empty"/>
+      <property name="&lt;Super&gt;Tab" type="empty"/>
+      <property name="&lt;Primary&gt;F1" type="empty"/>
+      <property name="&lt;Primary&gt;F2" type="empty"/>
+      <property name="&lt;Primary&gt;F3" type="empty"/>
+      <property name="&lt;Primary&gt;F4" type="empty"/>
+      <property name="&lt;Primary&gt;F5" type="empty"/>
+      <property name="&lt;Primary&gt;F6" type="empty"/>
+      <property name="&lt;Primary&gt;F7" type="empty"/>
+      <property name="&lt;Primary&gt;F8" type="empty"/>
+      <property name="&lt;Primary&gt;F9" type="empty"/>
+      <property name="&lt;Primary&gt;F10" type="empty"/>
+      <property name="&lt;Primary&gt;F11" type="empty"/>
+      <property name="&lt;Primary&gt;F12" type="empty"/>
+      <property name="&lt;Super&gt;KP_Left" type="empty"/>
+      <property name="&lt;Super&gt;KP_Right" type="empty"/>
+      <property name="&lt;Super&gt;KP_Down" type="empty"/>
+      <property name="&lt;Super&gt;KP_Up" type="empty"/>
+      <property name="&lt;Super&gt;KP_Page_Up" type="empty"/>
+      <property name="&lt;Super&gt;KP_Home" type="empty"/>
+      <property name="&lt;Super&gt;KP_End" type="empty"/>
+      <property name="&lt;Super&gt;KP_Next" type="empty"/>
+    </property>
+    <property name="custom" type="empty">
+      <property name="&lt;Primary&gt;F12" type="string" value="workspace_12_key"/>
+      <property name="&lt;Super&gt;KP_Down" type="string" value="tile_up_key"/>
+      <property name="&lt;Alt&gt;F4" type="string" value="close_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="string" value="move_window_workspace_3_key"/>
+      <property name="&lt;Primary&gt;F2" type="string" value="workspace_2_key"/>
+      <property name="&lt;Primary&gt;F6" type="string" value="workspace_6_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="down_workspace_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="string" value="move_window_workspace_9_key"/>
+      <property name="&lt;Super&gt;KP_Up" type="string" value="tile_down_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;End" type="string" value="move_window_next_workspace_key"/>
+      <property name="&lt;Primary&gt;F8" type="string" value="workspace_8_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="string" value="move_window_left_key"/>
+      <property name="&lt;Super&gt;KP_Right" type="string" value="tile_right_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/>
+      <property name="Right" type="string" value="right_key"/>
+      <property name="Down" type="string" value="down_key"/>
+      <property name="&lt;Primary&gt;F3" type="string" value="workspace_3_key"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="string" value="lower_window_key"/>
+      <property name="&lt;Primary&gt;F9" type="string" value="workspace_9_key"/>
+      <property name="&lt;Alt&gt;Tab" type="string" value="cycle_windows_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="string" value="move_window_right_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="string" value="right_workspace_key"/>
+      <property name="&lt;Alt&gt;F6" type="string" value="stick_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="string" value="move_window_workspace_5_key"/>
+      <property name="&lt;Primary&gt;F11" type="string" value="workspace_11_key"/>
+      <property name="&lt;Alt&gt;F10" type="string" value="maximize_window_key"/>
+      <property name="&lt;Alt&gt;Delete" type="string" value="del_workspace_key"/>
+      <property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;d" type="string" value="show_desktop_key"/>
+      <property name="&lt;Primary&gt;F4" type="string" value="workspace_4_key"/>
+      <property name="&lt;Super&gt;KP_Page_Up" type="string" value="tile_up_right_key"/>
+      <property name="&lt;Alt&gt;F7" type="string" value="move_window_key"/>
+      <property name="Up" type="string" value="up_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="string" value="move_window_workspace_6_key"/>
+      <property name="&lt;Alt&gt;F11" type="string" value="fullscreen_key"/>
+      <property name="&lt;Alt&gt;space" type="string" value="popup_menu_key"/>
+      <property name="&lt;Super&gt;KP_Home" type="string" value="tile_up_left_key"/>
+      <property name="Escape" type="string" value="cancel_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="string" value="move_window_workspace_1_key"/>
+      <property name="&lt;Super&gt;KP_Next" type="string" value="tile_down_right_key"/>
+      <property name="&lt;Super&gt;KP_Left" type="string" value="tile_left_key"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="string" value="raise_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="string" value="move_window_prev_workspace_key"/>
+      <property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="string" value="cycle_reverse_windows_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="string" value="left_workspace_key"/>
+      <property name="&lt;Alt&gt;F12" type="string" value="above_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="string" value="move_window_up_key"/>
+      <property name="&lt;Primary&gt;F5" type="string" value="workspace_5_key"/>
+      <property name="&lt;Alt&gt;F8" type="string" value="resize_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="string" value="move_window_workspace_7_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="string" value="move_window_workspace_2_key"/>
+      <property name="&lt;Super&gt;KP_End" type="string" value="tile_down_left_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="up_workspace_key"/>
+      <property name="&lt;Alt&gt;F9" type="string" value="hide_window_key"/>
+      <property name="&lt;Primary&gt;F7" type="string" value="workspace_7_key"/>
+      <property name="&lt;Primary&gt;F10" type="string" value="workspace_10_key"/>
+      <property name="Left" type="string" value="left_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="string" value="move_window_workspace_8_key"/>
+      <property name="&lt;Alt&gt;Insert" type="string" value="add_workspace_key"/>
+      <property name="&lt;Primary&gt;F1" type="string" value="workspace_1_key"/>
+      <property name="override" type="bool" value="true"/>
+    </property>
+  </property>
+  <property name="providers" type="array">
+    <value type="string" value="xfwm4"/>
+    <value type="string" value="commands"/>
+  </property>
+</channel>
diff --git a/files/103/xfce4-keyboard-shortcuts.xml b/files/103/xfce4-keyboard-shortcuts.xml
new file mode 100644 (file)
index 0000000..594a4e5
--- /dev/null
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<channel name="xfce4-keyboard-shortcuts" version="1.0">
+  <property name="commands" type="empty">
+    <property name="default" type="empty">
+      <property name="&lt;Alt&gt;F1" type="empty"/>
+      <property name="&lt;Alt&gt;F2" type="empty">
+        <property name="startup-notify" type="empty"/>
+      </property>
+      <property name="&lt;Alt&gt;F3" type="empty">
+        <property name="startup-notify" type="empty"/>
+      </property>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;l" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;t" type="empty"/>
+      <property name="XF86Display" type="empty"/>
+      <property name="&lt;Super&gt;p" type="empty"/>
+      <property name="&lt;Primary&gt;Escape" type="empty"/>
+      <property name="XF86WWW" type="empty"/>
+      <property name="HomePage" type="empty"/>
+      <property name="XF86Mail" type="empty"/>
+      <property name="Print" type="empty"/>
+      <property name="&lt;Alt&gt;Print" type="empty"/>
+      <property name="&lt;Shift&gt;Print" type="empty"/>
+      <property name="&lt;Super&gt;e" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;f" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;Escape" type="empty"/>
+      <property name="&lt;Super&gt;r" type="empty">
+        <property name="startup-notify" type="empty"/>
+      </property>
+      <property name="&lt;Alt&gt;&lt;Super&gt;s" type="empty"/>
+    </property>
+    <property name="custom" type="empty">
+      <property name="&lt;Alt&gt;F2" type="string" value="xfce4-appfinder --collapsed">
+        <property name="startup-notify" type="bool" value="true"/>
+      </property>
+      <property name="&lt;Alt&gt;Print" type="string" value="xfce4-screenshooter -w"/>
+      <property name="&lt;Super&gt;r" type="string" value="xfce4-appfinder -c">
+        <property name="startup-notify" type="bool" value="true"/>
+      </property>
+      <property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
+      <property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
+      <property name="&lt;Alt&gt;F3" type="string" value="xfce4-appfinder">
+        <property name="startup-notify" type="bool" value="true"/>
+      </property>
+      <property name="Print" type="string" value="xfce4-screenshooter"/>
+      <property name="&lt;Primary&gt;Escape" type="string" value="xfdesktop --menu"/>
+      <property name="&lt;Shift&gt;Print" type="string" value="xfce4-screenshooter -r"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="string" value="xfce4-session-logout"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;f" type="string" value="thunar"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;l" type="string" value="xflock4"/>
+      <property name="&lt;Super&gt;p" type="string" value="xfce4-display-settings --minimal"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;Escape" type="string" value="xfce4-taskmanager"/>
+      <property name="&lt;Super&gt;e" type="string" value="thunar"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="string" value="xkill"/>
+      <property name="HomePage" type="string" value="exo-open --launch WebBrowser"/>
+      <property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
+      <property name="override" type="bool" value="true"/>
+      <property name="Super_L" type="string" value="xfce4-popup-whiskermenu"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;t" type="string" value="xfce4-terminal"/>
+    </property>
+  </property>
+  <property name="xfwm4" type="empty">
+    <property name="default" type="empty">
+      <property name="&lt;Alt&gt;Insert" type="empty"/>
+      <property name="Escape" type="empty"/>
+      <property name="Left" type="empty"/>
+      <property name="Right" type="empty"/>
+      <property name="Up" type="empty"/>
+      <property name="Down" type="empty"/>
+      <property name="&lt;Alt&gt;Tab" type="empty"/>
+      <property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="empty"/>
+      <property name="&lt;Alt&gt;Delete" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="empty"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="empty"/>
+      <property name="&lt;Alt&gt;F4" type="empty"/>
+      <property name="&lt;Alt&gt;F6" type="empty"/>
+      <property name="&lt;Alt&gt;F7" type="empty"/>
+      <property name="&lt;Alt&gt;F8" type="empty"/>
+      <property name="&lt;Alt&gt;F9" type="empty"/>
+      <property name="&lt;Alt&gt;F10" type="empty"/>
+      <property name="&lt;Alt&gt;F11" type="empty"/>
+      <property name="&lt;Alt&gt;F12" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;End" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="empty"/>
+      <property name="&lt;Alt&gt;space" type="empty"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;d" type="empty"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="empty"/>
+      <property name="&lt;Super&gt;Tab" type="empty"/>
+      <property name="&lt;Primary&gt;F1" type="empty"/>
+      <property name="&lt;Primary&gt;F2" type="empty"/>
+      <property name="&lt;Primary&gt;F3" type="empty"/>
+      <property name="&lt;Primary&gt;F4" type="empty"/>
+      <property name="&lt;Primary&gt;F5" type="empty"/>
+      <property name="&lt;Primary&gt;F6" type="empty"/>
+      <property name="&lt;Primary&gt;F7" type="empty"/>
+      <property name="&lt;Primary&gt;F8" type="empty"/>
+      <property name="&lt;Primary&gt;F9" type="empty"/>
+      <property name="&lt;Primary&gt;F10" type="empty"/>
+      <property name="&lt;Primary&gt;F11" type="empty"/>
+      <property name="&lt;Primary&gt;F12" type="empty"/>
+      <property name="&lt;Super&gt;KP_Left" type="empty"/>
+      <property name="&lt;Super&gt;KP_Right" type="empty"/>
+      <property name="&lt;Super&gt;KP_Down" type="empty"/>
+      <property name="&lt;Super&gt;KP_Up" type="empty"/>
+      <property name="&lt;Super&gt;KP_Page_Up" type="empty"/>
+      <property name="&lt;Super&gt;KP_Home" type="empty"/>
+      <property name="&lt;Super&gt;KP_End" type="empty"/>
+      <property name="&lt;Super&gt;KP_Next" type="empty"/>
+    </property>
+    <property name="custom" type="empty">
+      <property name="&lt;Primary&gt;F12" type="string" value="workspace_12_key"/>
+      <property name="&lt;Alt&gt;F4" type="string" value="close_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="string" value="move_window_workspace_3_key"/>
+      <property name="&lt;Primary&gt;F2" type="string" value="workspace_2_key"/>
+      <property name="&lt;Primary&gt;F6" type="string" value="workspace_6_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="down_workspace_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="string" value="move_window_workspace_9_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;End" type="string" value="move_window_next_workspace_key"/>
+      <property name="&lt;Primary&gt;F8" type="string" value="workspace_8_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="string" value="move_window_left_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/>
+      <property name="Right" type="string" value="right_key"/>
+      <property name="Down" type="string" value="down_key"/>
+      <property name="&lt;Primary&gt;F3" type="string" value="workspace_3_key"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="string" value="lower_window_key"/>
+      <property name="&lt;Primary&gt;F9" type="string" value="workspace_9_key"/>
+      <property name="&lt;Alt&gt;Tab" type="string" value="cycle_windows_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="string" value="move_window_right_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="string" value="right_workspace_key"/>
+      <property name="&lt;Alt&gt;F6" type="string" value="stick_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="string" value="move_window_workspace_5_key"/>
+      <property name="&lt;Primary&gt;F11" type="string" value="workspace_11_key"/>
+      <property name="&lt;Alt&gt;F10" type="string" value="maximize_window_key"/>
+      <property name="&lt;Alt&gt;Delete" type="string" value="del_workspace_key"/>
+      <property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;d" type="string" value="show_desktop_key"/>
+      <property name="&lt;Primary&gt;F4" type="string" value="workspace_4_key"/>
+      <property name="&lt;Super&gt;KP_Page_Up" type="string" value="tile_up_right_key"/>
+      <property name="&lt;Alt&gt;F7" type="string" value="move_window_key"/>
+      <property name="Up" type="string" value="up_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="string" value="move_window_workspace_6_key"/>
+      <property name="&lt;Alt&gt;F11" type="string" value="fullscreen_key"/>
+      <property name="&lt;Alt&gt;space" type="string" value="popup_menu_key"/>
+      <property name="&lt;Super&gt;KP_Home" type="string" value="tile_up_left_key"/>
+      <property name="Escape" type="string" value="cancel_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="string" value="move_window_workspace_1_key"/>
+      <property name="&lt;Super&gt;KP_Next" type="string" value="tile_down_right_key"/>
+      <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="string" value="raise_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="string" value="move_window_prev_workspace_key"/>
+      <property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="string" value="cycle_reverse_windows_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="string" value="left_workspace_key"/>
+      <property name="&lt;Alt&gt;F12" type="string" value="above_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="string" value="move_window_up_key"/>
+      <property name="&lt;Primary&gt;F5" type="string" value="workspace_5_key"/>
+      <property name="&lt;Alt&gt;F8" type="string" value="resize_window_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="string" value="move_window_workspace_7_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="string" value="move_window_workspace_2_key"/>
+      <property name="&lt;Super&gt;KP_End" type="string" value="tile_down_left_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="up_workspace_key"/>
+      <property name="&lt;Alt&gt;F9" type="string" value="hide_window_key"/>
+      <property name="&lt;Primary&gt;F7" type="string" value="workspace_7_key"/>
+      <property name="&lt;Primary&gt;F10" type="string" value="workspace_10_key"/>
+      <property name="Left" type="string" value="left_key"/>
+      <property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="string" value="move_window_workspace_8_key"/>
+      <property name="&lt;Alt&gt;Insert" type="string" value="add_workspace_key"/>
+      <property name="&lt;Primary&gt;F1" type="string" value="workspace_1_key"/>
+      <property name="override" type="bool" value="true"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;k" type="string" value="tile_up_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;j" type="string" value="tile_down_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;h" type="string" value="tile_left_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;l" type="string" value="tile_right_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;exclam" type="string" value="move_window_to_monitor_left_key"/>
+      <property name="&lt;Primary&gt;&lt;Shift&gt;at" type="string" value="move_window_to_monitor_right_key"/>
+    </property>
+  </property>
+  <property name="providers" type="array">
+    <value type="string" value="xfwm4"/>
+    <value type="string" value="commands"/>
+  </property>
+</channel>
diff --git a/files/103/xfwm4.xml b/files/103/xfwm4.xml
new file mode 100644 (file)
index 0000000..995c991
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<channel name="xfwm4" version="1.0">
+  <property name="general" type="empty">
+    <property name="activate_action" type="string" value="bring"/>
+    <property name="borderless_maximize" type="bool" value="true"/>
+    <property name="box_move" type="bool" value="false"/>
+    <property name="box_resize" type="bool" value="false"/>
+    <property name="button_layout" type="string" value="O|SHMC"/>
+    <property name="button_offset" type="int" value="0"/>
+    <property name="button_spacing" type="int" value="0"/>
+    <property name="click_to_focus" type="bool" value="true"/>
+    <property name="cycle_apps_only" type="bool" value="false"/>
+    <property name="cycle_draw_frame" type="bool" value="true"/>
+    <property name="cycle_raise" type="bool" value="false"/>
+    <property name="cycle_hidden" type="bool" value="true"/>
+    <property name="cycle_minimum" type="bool" value="true"/>
+    <property name="cycle_minimized" type="bool" value="false"/>
+    <property name="cycle_preview" type="bool" value="true"/>
+    <property name="cycle_tabwin_mode" type="int" value="0"/>
+    <property name="cycle_workspaces" type="bool" value="false"/>
+    <property name="double_click_action" type="string" value="maximize"/>
+    <property name="double_click_distance" type="int" value="5"/>
+    <property name="double_click_time" type="int" value="250"/>
+    <property name="easy_click" type="string" value="Brak"/>
+    <property name="focus_delay" type="int" value="250"/>
+    <property name="focus_hint" type="bool" value="true"/>
+    <property name="focus_new" type="bool" value="true"/>
+    <property name="frame_opacity" type="int" value="100"/>
+    <property name="frame_border_top" type="int" value="0"/>
+    <property name="full_width_title" type="bool" value="true"/>
+    <property name="horiz_scroll_opacity" type="bool" value="false"/>
+    <property name="inactive_opacity" type="int" value="100"/>
+    <property name="maximized_offset" type="int" value="0"/>
+    <property name="mousewheel_rollup" type="bool" value="true"/>
+    <property name="move_opacity" type="int" value="100"/>
+    <property name="placement_mode" type="string" value="center"/>
+    <property name="placement_ratio" type="int" value="20"/>
+    <property name="popup_opacity" type="int" value="100"/>
+    <property name="prevent_focus_stealing" type="bool" value="false"/>
+    <property name="raise_delay" type="int" value="250"/>
+    <property name="raise_on_click" type="bool" value="true"/>
+    <property name="raise_on_focus" type="bool" value="false"/>
+    <property name="raise_with_any_button" type="bool" value="true"/>
+    <property name="repeat_urgent_blink" type="bool" value="false"/>
+    <property name="resize_opacity" type="int" value="100"/>
+    <property name="scroll_workspaces" type="bool" value="true"/>
+    <property name="shadow_delta_height" type="int" value="0"/>
+    <property name="shadow_delta_width" type="int" value="0"/>
+    <property name="shadow_delta_x" type="int" value="0"/>
+    <property name="shadow_delta_y" type="int" value="-3"/>
+    <property name="shadow_opacity" type="int" value="50"/>
+    <property name="show_app_icon" type="bool" value="false"/>
+    <property name="show_dock_shadow" type="bool" value="true"/>
+    <property name="show_frame_shadow" type="bool" value="true"/>
+    <property name="show_popup_shadow" type="bool" value="false"/>
+    <property name="snap_resist" type="bool" value="false"/>
+    <property name="snap_to_border" type="bool" value="true"/>
+    <property name="snap_to_windows" type="bool" value="false"/>
+    <property name="snap_width" type="int" value="10"/>
+    <property name="vblank_mode" type="string" value="auto"/>
+    <property name="theme" type="string" value="Default"/>
+    <property name="tile_on_move" type="bool" value="true"/>
+    <property name="title_alignment" type="string" value="center"/>
+    <property name="title_font" type="string" value="Sans Bold 9"/>
+    <property name="title_horizontal_offset" type="int" value="0"/>
+    <property name="titleless_maximize" type="bool" value="false"/>
+    <property name="title_shadow_active" type="string" value="false"/>
+    <property name="title_shadow_inactive" type="string" value="false"/>
+    <property name="title_vertical_offset_active" type="int" value="0"/>
+    <property name="title_vertical_offset_inactive" type="int" value="0"/>
+    <property name="toggle_workspaces" type="bool" value="false"/>
+    <property name="unredirect_overlays" type="bool" value="true"/>
+    <property name="urgent_blink" type="bool" value="false"/>
+    <property name="use_compositing" type="bool" value="true"/>
+    <property name="workspace_count" type="int" value="1"/>
+    <property name="wrap_cycle" type="bool" value="true"/>
+    <property name="wrap_layout" type="bool" value="true"/>
+    <property name="wrap_resistance" type="int" value="10"/>
+    <property name="wrap_windows" type="bool" value="false"/>
+    <property name="wrap_workspaces" type="bool" value="false"/>
+    <property name="zoom_desktop" type="bool" value="true"/>
+    <property name="zoom_pointer" type="bool" value="true"/>
+    <property name="workspace_names" type="array">
+      <value type="string" value="Obszar roboczy 1"/>
+      <value type="string" value="Obszar roboczy 2"/>
+      <value type="string" value="Obszar roboczy 3"/>
+      <value type="string" value="Obszar roboczy 4"/>
+    </property>
+  </property>
+</channel>
diff --git a/files/104/LibreWolf (Firejailed).desktop b/files/104/LibreWolf (Firejailed).desktop
new file mode 100755 (executable)
index 0000000..203686a
--- /dev/null
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=LibreWolf (Firejailed)
+Comment=Bezpieczne przeglądanie stron WWW
+Exec=/usr/local/bin/secured-firefox
+Icon=/usr/lib/librewolf/browser/chrome/icons/default/default48.png
+Path=
+Terminal=false
+StartupNotify=false
diff --git a/files/Notifier - packages.desktop b/files/Notifier - packages.desktop
new file mode 100644 (file)
index 0000000..1e0c636
--- /dev/null
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=0.9.4
+Type=Application
+Name=Notifier - packages
+Comment=Notifier - packages
+Exec=/usr/local/bin/notifier packages
+OnlyShowIn=XFCE;
+RunHook=0
+StartupNotify=false
+Terminal=false
+Hidden=false
+
diff --git a/files/autostart-x4notes.desktop b/files/autostart-x4notes.desktop
new file mode 100644 (file)
index 0000000..d0d57c8
--- /dev/null
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=0.9.4
+Type=Application
+Name=autostart-x4notes
+Comment=Uruchamianie xfce4-notes w cryptfs
+Exec=/usr/local/bin/autostart-x4notes
+OnlyShowIn=XFCE;
+RunHook=0
+StartupNotify=false
+Terminal=false
+Hidden=false
+
diff --git a/files/local_user.tar b/files/local_user.tar
new file mode 100644 (file)
index 0000000..3b29f5b
Binary files /dev/null and b/files/local_user.tar differ
diff --git a/files/local_xf0r3m.tar b/files/local_xf0r3m.tar
new file mode 100644 (file)
index 0000000..cc717f9
Binary files /dev/null and b/files/local_xf0r3m.tar differ
diff --git a/files/mimeinfo.cache b/files/mimeinfo.cache
new file mode 100644 (file)
index 0000000..6e2bfb9
--- /dev/null
@@ -0,0 +1,478 @@
+[MIME Cache]
+application/clarisworks=libreoffice-calc.desktop;libreoffice-draw.desktop;libreoffice-writer.desktop;
+application/csv=libreoffice-calc.desktop;
+application/epub+zip=atril.desktop;xarchiver.desktop;
+application/excel=libreoffice-calc.desktop;
+application/gzip=xarchiver.desktop;
+application/macwriteii=libreoffice-writer.desktop;
+application/mathml+xml=libreoffice-math.desktop;
+application/mpeg4-iod=vlc.desktop;
+application/mpeg4-muxcodetable=vlc.desktop;
+application/msexcel=libreoffice-calc.desktop;
+application/mspowerpoint=libreoffice-impress.desktop;
+application/msword=libreoffice-writer.desktop;
+application/mxf=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+application/ogg=mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+application/oxps=atril.desktop;
+application/pdf=atril.desktop;gimp.desktop;libreoffice-draw.desktop;
+application/pkcs10=gcr-viewer.desktop;
+application/pkcs10+pem=gcr-viewer.desktop;
+application/pkcs12=gcr-viewer.desktop;
+application/pkcs12+pem=gcr-viewer.desktop;
+application/pkcs7-mime=gcr-viewer.desktop;
+application/pkcs7-mime+pem=gcr-viewer.desktop;
+application/pkcs8=gcr-viewer.desktop;
+application/pkcs8+pem=gcr-viewer.desktop;
+application/pkix-cert=gcr-viewer.desktop;
+application/pkix-cert+pem=gcr-viewer.desktop;
+application/pkix-crl=gcr-viewer.desktop;
+application/pkix-crl+pem=gcr-viewer.desktop;
+application/postscript=atril.desktop;gimp.desktop;
+application/prs.plucker=libreoffice-writer.desktop;
+application/ram=org.xfce.Parole.desktop;vlc.desktop;
+application/rdf+xml=firefox-esr.desktop;
+application/rss+xml=firefox-esr.desktop;
+application/rtf=libreoffice-writer.desktop;
+application/sdp=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+application/smil=mpv.desktop;org.xfce.Parole.desktop;
+application/smil+xml=org.xfce.Parole.desktop;
+application/streamingmedia=mpv.desktop;
+application/tab-separated-values=libreoffice-calc.desktop;
+application/vnd-comicbook.rar=atril.desktop;
+application/vnd.android.package-archive=xarchiver.desktop;
+application/vnd.apple.mpegurl=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+application/vnd.comicbook+zip=atril.desktop;xarchiver.desktop;
+application/vnd.corel-draw=libreoffice-draw.desktop;
+application/vnd.debian.binary-package=xarchiver.desktop;
+application/vnd.lotus-1-2-3=libreoffice-calc.desktop;
+application/vnd.lotus-wordpro=libreoffice-writer.desktop;
+application/vnd.mozilla.xul+xml=firefox-esr.desktop;
+application/vnd.ms-asf=mpv.desktop;vlc.desktop;
+application/vnd.ms-cab-compressed=xarchiver.desktop;
+application/vnd.ms-excel=libreoffice-calc.desktop;
+application/vnd.ms-excel.sheet.binary.macroEnabled.12=libreoffice-calc.desktop;
+application/vnd.ms-excel.sheet.macroEnabled.12=libreoffice-calc.desktop;
+application/vnd.ms-excel.template.macroEnabled.12=libreoffice-calc.desktop;
+application/vnd.ms-powerpoint=libreoffice-impress.desktop;
+application/vnd.ms-powerpoint.presentation.macroEnabled.12=libreoffice-impress.desktop;
+application/vnd.ms-powerpoint.slideshow.macroEnabled.12=libreoffice-impress.desktop;
+application/vnd.ms-powerpoint.template.macroEnabled.12=libreoffice-impress.desktop;
+application/vnd.ms-publisher=libreoffice-draw.desktop;
+application/vnd.ms-word=libreoffice-writer.desktop;
+application/vnd.ms-word.document.macroEnabled.12=libreoffice-writer.desktop;
+application/vnd.ms-word.template.macroEnabled.12=libreoffice-writer.desktop;
+application/vnd.ms-works=libreoffice-calc.desktop;libreoffice-writer.desktop;
+application/vnd.ms-wpl=org.xfce.Parole.desktop;vlc.desktop;
+application/vnd.ms-xpsdocument=atril.desktop;
+application/vnd.oasis.opendocument.chart=libreoffice-calc.desktop;
+application/vnd.oasis.opendocument.chart-template=libreoffice-calc.desktop;
+application/vnd.oasis.opendocument.formula=libreoffice-math.desktop;
+application/vnd.oasis.opendocument.formula-template=libreoffice-math.desktop;
+application/vnd.oasis.opendocument.graphics=libreoffice-draw.desktop;
+application/vnd.oasis.opendocument.graphics-flat-xml=libreoffice-draw.desktop;libreoffice-xsltfilter.desktop;
+application/vnd.oasis.opendocument.graphics-template=libreoffice-draw.desktop;
+application/vnd.oasis.opendocument.presentation=libreoffice-impress.desktop;
+application/vnd.oasis.opendocument.presentation-flat-xml=libreoffice-impress.desktop;libreoffice-xsltfilter.desktop;
+application/vnd.oasis.opendocument.presentation-template=libreoffice-impress.desktop;
+application/vnd.oasis.opendocument.spreadsheet=libreoffice-calc.desktop;
+application/vnd.oasis.opendocument.spreadsheet-flat-xml=libreoffice-calc.desktop;libreoffice-xsltfilter.desktop;
+application/vnd.oasis.opendocument.spreadsheet-template=libreoffice-calc.desktop;
+application/vnd.oasis.opendocument.text=libreoffice-writer.desktop;
+application/vnd.oasis.opendocument.text-flat-xml=libreoffice-writer.desktop;libreoffice-xsltfilter.desktop;
+application/vnd.oasis.opendocument.text-master=libreoffice-writer.desktop;
+application/vnd.oasis.opendocument.text-master-template=libreoffice-writer.desktop;
+application/vnd.oasis.opendocument.text-template=libreoffice-writer.desktop;
+application/vnd.oasis.opendocument.text-web=libreoffice-writer.desktop;
+application/vnd.openofficeorg.extension=libreoffice-startcenter.desktop;xarchiver.desktop;
+application/vnd.openxmlformats-officedocument.presentationml.presentation=libreoffice-impress.desktop;
+application/vnd.openxmlformats-officedocument.presentationml.slide=libreoffice-impress.desktop;
+application/vnd.openxmlformats-officedocument.presentationml.slideshow=libreoffice-impress.desktop;
+application/vnd.openxmlformats-officedocument.presentationml.template=libreoffice-impress.desktop;
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop;
+application/vnd.openxmlformats-officedocument.spreadsheetml.template=libreoffice-calc.desktop;
+application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
+application/vnd.openxmlformats-officedocument.wordprocessingml.template=libreoffice-writer.desktop;
+application/vnd.palm=libreoffice-writer.desktop;
+application/vnd.rar=xarchiver.desktop;
+application/vnd.rn-realmedia=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+application/vnd.rn-realmedia-vbr=mpv.desktop;vlc.desktop;
+application/vnd.snap=xarchiver.desktop;
+application/vnd.squashfs=xarchiver.desktop;
+application/vnd.stardivision.writer-global=libreoffice-writer.desktop;
+application/vnd.sun.xml.calc=libreoffice-calc.desktop;
+application/vnd.sun.xml.calc.template=libreoffice-calc.desktop;
+application/vnd.sun.xml.draw=libreoffice-draw.desktop;
+application/vnd.sun.xml.draw.template=libreoffice-draw.desktop;
+application/vnd.sun.xml.impress=libreoffice-impress.desktop;
+application/vnd.sun.xml.impress.template=libreoffice-impress.desktop;
+application/vnd.sun.xml.math=libreoffice-math.desktop;
+application/vnd.sun.xml.writer=libreoffice-writer.desktop;
+application/vnd.sun.xml.writer.global=libreoffice-writer.desktop;
+application/vnd.sun.xml.writer.template=libreoffice-writer.desktop;
+application/vnd.visio=libreoffice-draw.desktop;
+application/vnd.wordperfect=libreoffice-writer.desktop;
+application/wordperfect=libreoffice-writer.desktop;
+application/x-123=libreoffice-calc.desktop;
+application/x-7z-compressed=xarchiver.desktop;
+application/x-abiword=libreoffice-writer.desktop;
+application/x-aportisdoc=libreoffice-writer.desktop;
+application/x-archive=xarchiver.desktop;
+application/x-arj=xarchiver.desktop;
+application/x-bzdvi=atril.desktop;
+application/x-bzip=xarchiver.desktop;
+application/x-bzip-compressed-tar=xarchiver.desktop;
+application/x-bzpdf=atril.desktop;
+application/x-bzpostscript=atril.desktop;
+application/x-cb7=atril.desktop;
+application/x-cbr=atril.desktop;
+application/x-cbt=atril.desktop;
+application/x-cbz=atril.desktop;
+application/x-cd-image=vlc.desktop;xarchiver.desktop;xfburn.desktop;
+application/x-compress=xarchiver.desktop;
+application/x-compressed-tar=xarchiver.desktop;
+application/x-cpio=xarchiver.desktop;
+application/x-cpio-compressed=xarchiver.desktop;
+application/x-cue=mpv.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;
+application/x-dbase=libreoffice-calc.desktop;
+application/x-dbf=libreoffice-calc.desktop;
+application/x-desktop=panel-desktop-handler.desktop;
+application/x-doc=libreoffice-writer.desktop;
+application/x-dos_ms_excel=libreoffice-calc.desktop;
+application/x-dvi=atril.desktop;
+application/x-excel=libreoffice-calc.desktop;
+application/x-extension-m4a=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+application/x-extension-mp4=vlc.desktop;
+application/x-extension-txt=libreoffice-writer.desktop;
+application/x-fictionbook+xml=libreoffice-writer.desktop;
+application/x-flac=io.github.quodlibet.QuodLibet.desktop;org.xfce.Parole.desktop;vlc.desktop;
+application/x-flash-video=org.xfce.Parole.desktop;vlc.desktop;
+application/x-gzdvi=atril.desktop;
+application/x-gzpdf=atril.desktop;
+application/x-gzpostscript=atril.desktop;
+application/x-hwp=libreoffice-writer.desktop;
+application/x-iwork-keynote-sffkey=libreoffice-impress.desktop;
+application/x-iwork-numbers-sffnumbers=libreoffice-calc.desktop;
+application/x-iwork-pages-sffpages=libreoffice-writer.desktop;
+application/x-java-archive=xarchiver.desktop;
+application/x-lha=xarchiver.desktop;
+application/x-lrzip=xarchiver.desktop;
+application/x-lrzip-compressed-tar=xarchiver.desktop;
+application/x-lz4=xarchiver.desktop;
+application/x-lz4-compressed-tar=xarchiver.desktop;
+application/x-lzip=xarchiver.desktop;
+application/x-lzip-compressed-tar=xarchiver.desktop;
+application/x-lzma=xarchiver.desktop;
+application/x-lzma-compressed-tar=xarchiver.desktop;
+application/x-lzop=xarchiver.desktop;
+application/x-matroska=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+application/x-mpegurl=mpv.desktop;
+application/x-ms-excel=libreoffice-calc.desktop;
+application/x-msexcel=libreoffice-calc.desktop;
+application/x-mswrite=libreoffice-writer.desktop;
+application/x-netshow-channel=org.xfce.Parole.desktop;
+application/x-ogg=mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+application/x-ogm=mpv.desktop;
+application/x-ogm-audio=mpv.desktop;
+application/x-ogm-video=mpv.desktop;
+application/x-pagemaker=libreoffice-draw.desktop;
+application/x-pem-file=gcr-viewer.desktop;
+application/x-pem-key=gcr-viewer.desktop;
+application/x-pkcs12=gcr-viewer.desktop;
+application/x-pkcs7-certificates=gcr-viewer.desktop;
+application/x-quattropro=libreoffice-calc.desktop;
+application/x-quicktime-media-link=org.xfce.Parole.desktop;vlc.desktop;
+application/x-quicktimeplayer=org.xfce.Parole.desktop;vlc.desktop;
+application/x-rar=xarchiver.desktop;
+application/x-remmina=org.remmina.Remmina-file.desktop;org.remmina.Remmina.desktop;
+application/x-rpm=xarchiver.desktop;
+application/x-shellscript=gvim.desktop;vim.desktop;
+application/x-shockwave-flash=vlc.desktop;
+application/x-shorten=mpv.desktop;org.xfce.Parole.desktop;
+application/x-smil=mpv.desktop;org.xfce.Parole.desktop;
+application/x-sony-bbeb=libreoffice-writer.desktop;
+application/x-source-rpm=xarchiver.desktop;
+application/x-spkac=gcr-viewer.desktop;
+application/x-spkac+base64=gcr-viewer.desktop;
+application/x-starcalc=libreoffice-calc.desktop;
+application/x-stardraw=libreoffice-draw.desktop;
+application/x-starwriter=libreoffice-writer.desktop;
+application/x-streamingmedia=mpv.desktop;
+application/x-t602=libreoffice-writer.desktop;
+application/x-tar=xarchiver.desktop;
+application/x-tarz=xarchiver.desktop;
+application/x-tzo=xarchiver.desktop;
+application/x-virt-viewer=remote-viewer.desktop;
+application/x-wpg=libreoffice-draw.desktop;
+application/x-x509-ca-cert=gcr-viewer.desktop;
+application/x-x509-user-cert=gcr-viewer.desktop;
+application/x-xpinstall=xarchiver.desktop;
+application/x-xpraconfig=xpra-launcher.desktop;
+application/x-xz=xarchiver.desktop;
+application/x-xz-compressed-tar=xarchiver.desktop;
+application/x-xzpdf=atril.desktop;
+application/x-zstd-compressed-tar=xarchiver.desktop;
+application/xhtml+xml=firefox-esr.desktop;
+application/xml=firefox-esr.desktop;
+application/xspf+xml=org.xfce.Parole.desktop;vlc.desktop;
+application/zip=xarchiver.desktop;
+application/zstd=xarchiver.desktop;
+audio/3gpp=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/3gpp2=mpv.desktop;vlc.desktop;
+audio/AMR=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/AMR-WB=org.xfce.Parole.desktop;vlc.desktop;
+audio/aac=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/ac3=vlc.desktop;
+audio/aiff=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;
+audio/amr-wb=mpv.desktop;
+audio/basic=org.xfce.Parole.desktop;vlc.desktop;
+audio/dsf=io.github.quodlibet.QuodLibet.desktop;
+audio/dv=mpv.desktop;vlc.desktop;
+audio/eac3=mpv.desktop;vlc.desktop;
+audio/flac=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/m3u=mpv.desktop;
+audio/m4a=mpv.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/midi=qmmp-1.desktop;vlc.desktop;
+audio/mp1=mpv.desktop;vlc.desktop;
+audio/mp2=qmmp-1.desktop;vlc.desktop;
+audio/mp3=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/mp4=vlc.desktop;
+audio/mpeg=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/mpeg2=mpv.desktop;
+audio/mpeg3=mpv.desktop;
+audio/mpeg4=io.github.quodlibet.QuodLibet.desktop;
+audio/mpegurl=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/mpg=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;vlc.desktop;
+audio/musepack=mpv.desktop;
+audio/ogg=qmmp-1.desktop;vlc.desktop;
+audio/opus=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/prs.sid=org.xfce.Parole.desktop;
+audio/rn-mpeg=mpv.desktop;
+audio/scpls=mpv.desktop;vlc.desktop;
+audio/vnd.dolby.heaac.1=mpv.desktop;vlc.desktop;
+audio/vnd.dolby.heaac.2=mpv.desktop;vlc.desktop;
+audio/vnd.dolby.mlp=vlc.desktop;
+audio/vnd.dts=mpv.desktop;vlc.desktop;
+audio/vnd.dts.hd=mpv.desktop;vlc.desktop;
+audio/vnd.rn-realaudio=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/vorbis=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;vlc.desktop;
+audio/wav=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;vlc.desktop;
+audio/wave=io.github.quodlibet.QuodLibet.desktop;
+audio/webm=mpv.desktop;vlc.desktop;
+audio/x-aac=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-adpcm=mpv.desktop;vlc.desktop;
+audio/x-aiff=vlc.desktop;
+audio/x-ape=mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-ffmpeg-shorten=qmmp-1.desktop;qmmp-enqueue-1.desktop;
+audio/x-flac=qmmp-1.desktop;vlc.desktop;
+audio/x-gsm=org.xfce.Parole.desktop;vlc.desktop;
+audio/x-it=org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-m4a=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-matroska=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-midi=io.github.quodlibet.QuodLibet.desktop;
+audio/x-mod=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-mp1=mpv.desktop;vlc.desktop;
+audio/x-mp2=mpv.desktop;vlc.desktop;
+audio/x-mp3=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-mpc=io.github.quodlibet.QuodLibet.desktop;
+audio/x-mpeg=io.github.quodlibet.QuodLibet.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-mpegurl=mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-mpg=mpv.desktop;vlc.desktop;
+audio/x-ms-asf=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-ms-asx=org.xfce.Parole.desktop;vlc.desktop;
+audio/x-ms-wax=org.xfce.Parole.desktop;vlc.desktop;
+audio/x-ms-wma=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-ms-wmv=io.github.quodlibet.QuodLibet.desktop;
+audio/x-musepack=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-oggflac=io.github.quodlibet.QuodLibet.desktop;
+audio/x-pls=mpv.desktop;
+audio/x-pn-aiff=org.xfce.Parole.desktop;vlc.desktop;
+audio/x-pn-au=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-pn-realaudio=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-pn-realaudio-plugin=org.xfce.Parole.desktop;vlc.desktop;
+audio/x-pn-wav=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-pn-windows-acm=org.xfce.Parole.desktop;vlc.desktop;
+audio/x-pn-windows-pcm=mpv.desktop;
+audio/x-real-audio=org.xfce.Parole.desktop;vlc.desktop;
+audio/x-realaudio=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-s3m=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-sbc=org.xfce.Parole.desktop;
+audio/x-scpls=mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-shorten=mpv.desktop;vlc.desktop;
+audio/x-speex=io.github.quodlibet.QuodLibet.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-stm=org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;
+audio/x-tta=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-vorbis=mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-vorbis+ogg=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-wav=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;org.xfce.Parole.desktop;vlc.desktop;
+audio/x-wavpack=io.github.quodlibet.QuodLibet.desktop;mpv.desktop;org.xfce.Parole.desktop;qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+audio/x-wma=io.github.quodlibet.QuodLibet.desktop;
+audio/x-xm=qmmp-1.desktop;qmmp-enqueue-1.desktop;vlc.desktop;
+image/*=atril.desktop;
+image/avif=org.xfce.ristretto.desktop;
+image/bmp=org.xfce.ristretto.desktop;
+image/g3fax=gimp.desktop;
+image/gif=org.xfce.ristretto.desktop;
+image/heic=gimp.desktop;
+image/heif=org.xfce.ristretto.desktop;
+image/jp2=gimp.desktop;
+image/jpeg=org.xfce.ristretto.desktop;
+image/jxl=gimp.desktop;
+image/png=org.xfce.ristretto.desktop;
+image/svg+xml=org.xfce.ristretto.desktop;
+image/tiff=org.xfce.ristretto.desktop;
+image/vnd.djvu=atril.desktop;
+image/vnd.djvu+multipage=atril.desktop;
+image/vnd.rn-realpix=org.xfce.Parole.desktop;vlc.desktop;
+image/webp=firefox-esr.desktop;
+image/x-bzeps=atril.desktop;
+image/x-compressed-xcf=gimp.desktop;
+image/x-emf=libreoffice-draw.desktop;
+image/x-eps=atril.desktop;
+image/x-exr=gimp.desktop;
+image/x-fits=gimp.desktop;
+image/x-freehand=libreoffice-draw.desktop;
+image/x-gimp-gbr=gimp.desktop;
+image/x-gimp-gih=gimp.desktop;
+image/x-gimp-pat=gimp.desktop;
+image/x-gzeps=atril.desktop;
+image/x-icon=gimp.desktop;
+image/x-pcx=gimp.desktop;
+image/x-pict=org.xfce.Parole.desktop;
+image/x-pixmap=org.xfce.ristretto.desktop;
+image/x-portable-anymap=gimp.desktop;
+image/x-portable-bitmap=gimp.desktop;
+image/x-portable-graymap=gimp.desktop;
+image/x-portable-pixmap=gimp.desktop;
+image/x-psd=gimp.desktop;
+image/x-psp=gimp.desktop;
+image/x-sgi=gimp.desktop;
+image/x-sun-raster=gimp.desktop;
+image/x-tga=gimp.desktop;
+image/x-webp=gimp.desktop;
+image/x-wmf=gimp.desktop;libreoffice-draw.desktop;
+image/x-xbitmap=gimp.desktop;
+image/x-xcf=gimp.desktop;
+image/x-xcursor=gimp.desktop;
+image/x-xpixmap=gimp.desktop;org.xfce.ristretto.desktop;
+image/x-xwindowdump=gimp.desktop;
+inode/directory=thunar.desktop;
+misc/ultravox=org.xfce.Parole.desktop;vlc.desktop;
+text/comma-separated-values=libreoffice-calc.desktop;
+text/csv=libreoffice-calc.desktop;
+text/english=gvim.desktop;vim.desktop;
+text/google-video-pointer=org.xfce.Parole.desktop;vlc.desktop;
+text/html=firefox-esr.desktop;
+text/mathml=libreoffice-math.desktop;
+text/plain=gvim.desktop;libreoffice-writer.desktop;org.xfce.mousepad.desktop;vim.desktop;
+text/rtf=libreoffice-writer.desktop;
+text/spreadsheet=libreoffice-calc.desktop;
+text/tab-separated-values=libreoffice-calc.desktop;
+text/x-c=gvim.desktop;vim.desktop;
+text/x-c++=gvim.desktop;vim.desktop;
+text/x-c++hdr=gvim.desktop;vim.desktop;
+text/x-c++src=gvim.desktop;vim.desktop;
+text/x-chdr=gvim.desktop;vim.desktop;
+text/x-comma-separated-values=libreoffice-calc.desktop;
+text/x-csrc=gvim.desktop;vim.desktop;
+text/x-csv=libreoffice-calc.desktop;
+text/x-google-video-pointer=org.xfce.Parole.desktop;vlc.desktop;
+text/x-java=gvim.desktop;vim.desktop;
+text/x-makefile=gvim.desktop;vim.desktop;
+text/x-moc=gvim.desktop;vim.desktop;
+text/x-pascal=gvim.desktop;vim.desktop;
+text/x-tcl=gvim.desktop;vim.desktop;
+text/x-tex=gvim.desktop;vim.desktop;
+text/xml=firefox-esr.desktop;
+video/3gp=vlc.desktop;
+video/3gpp=vlc.desktop;
+video/3gpp2=vlc.desktop;
+video/avi=vlc.desktop;
+video/divx=vlc.desktop;
+video/dv=vlc.desktop;
+video/fli=vlc.desktop;
+video/flv=vlc.desktop;
+video/mkv=vlc.desktop;
+video/mp2t=vlc.desktop;
+video/mp4=vlc.desktop;
+video/mp4v-es=vlc.desktop;
+video/mpeg=vlc.desktop;
+video/mpeg-system=vlc.desktop;
+video/msvideo=vlc.desktop;
+video/ogg=vlc.desktop;
+video/quicktime=vlc.desktop;
+video/vivo=org.xfce.Parole.desktop;
+video/vnd.divx=vlc.desktop;
+video/vnd.mpegurl=vlc.desktop;
+video/vnd.rn-realvideo=vlc.desktop;
+video/vnd.vivo=org.xfce.Parole.desktop;
+video/webm=vlc.desktop;
+video/x-anim=vlc.desktop;
+video/x-avi=vlc.desktop;
+video/x-flc=vlc.desktop;
+video/x-fli=vlc.desktop;
+video/x-flic=mpv.desktop;org.xfce.Parole.desktop;
+video/x-flv=vlc.desktop;
+video/x-m4v=vlc.desktop;
+video/x-matroska=vlc.desktop;
+video/x-mpeg=vlc.desktop;
+video/x-mpeg-system=vlc.desktop;
+video/x-mpeg2=vlc.desktop;
+video/x-mpeg3=mpv.desktop;
+video/x-ms-afs=mpv.desktop;
+video/x-ms-asf=vlc.desktop;
+video/x-ms-asf-plugin=vlc.desktop;
+video/x-ms-asx=vlc.desktop;
+video/x-ms-wm=vlc.desktop;
+video/x-ms-wmv=vlc.desktop;
+video/x-ms-wmx=vlc.desktop;
+video/x-ms-wvx=vlc.desktop;
+video/x-ms-wvxvideo=mpv.desktop;
+video/x-msvideo=vlc.desktop;
+video/x-nsv=vlc.desktop;
+video/x-ogm=vlc.desktop;
+video/x-ogm+ogg=vlc.desktop;
+video/x-theora=vlc.desktop;
+video/x-theora+ogg=vlc.desktop;
+video/x-totem-stream=org.xfce.Parole.desktop;
+video/x-wmv=io.github.quodlibet.QuodLibet.desktop;
+x-content/audio-cdda=vlc.desktop;
+x-content/audio-player=vlc.desktop;
+x-content/blank-cd=xfburn.desktop;
+x-content/video-dvd=org.xfce.Parole.desktop;vlc.desktop;
+x-content/video-svcd=org.xfce.Parole.desktop;vlc.desktop;
+x-content/video-vcd=org.xfce.Parole.desktop;vlc.desktop;
+x-scheme-handler/http=firefox-esr.desktop;
+x-scheme-handler/https=firefox-esr.desktop;
+x-scheme-handler/icy=vlc.desktop;
+x-scheme-handler/icyx=vlc.desktop;
+x-scheme-handler/mailto=mutt.desktop;
+x-scheme-handler/mms=org.xfce.Parole.desktop;vlc.desktop;
+x-scheme-handler/mmsh=org.xfce.Parole.desktop;vlc.desktop;
+x-scheme-handler/ms-access=libreoffice-startcenter.desktop;
+x-scheme-handler/ms-excel=libreoffice-startcenter.desktop;
+x-scheme-handler/ms-powerpoint=libreoffice-startcenter.desktop;
+x-scheme-handler/ms-visio=libreoffice-startcenter.desktop;
+x-scheme-handler/ms-word=libreoffice-startcenter.desktop;
+x-scheme-handler/quodlibet=io.github.quodlibet.QuodLibet.desktop;
+x-scheme-handler/rdp=org.remmina.Remmina-file.desktop;org.remmina.Remmina.desktop;
+x-scheme-handler/remmina=org.remmina.Remmina-file.desktop;org.remmina.Remmina.desktop;
+x-scheme-handler/rtmp=vlc.desktop;
+x-scheme-handler/rtp=vlc.desktop;
+x-scheme-handler/rtsp=vlc.desktop;
+x-scheme-handler/spice=org.remmina.Remmina-file.desktop;org.remmina.Remmina.desktop;remote-viewer.desktop;
+x-scheme-handler/spice+tls=remote-viewer.desktop;
+x-scheme-handler/spice+unix=remote-viewer.desktop;
+x-scheme-handler/ssh=org.remmina.Remmina.desktop;
+x-scheme-handler/vnc=org.remmina.Remmina-file.desktop;org.remmina.Remmina.desktop;
+x-scheme-handler/vnd.libreoffice.cmis=libreoffice-startcenter.desktop;
+x-scheme-handler/vnd.libreoffice.command=libreoffice-startcenter.desktop;
+x-scheme-handler/vnd.sun.star.webdav=libreoffice-startcenter.desktop;
+x-scheme-handler/vnd.sun.star.webdavs=libreoffice-startcenter.desktop;
+x-scheme-handler/xpra=xpra.desktop;
+x-scheme-handler/xpra+ssh=xpra.desktop;
+x-scheme-handler/xpra+ssl=xpra.desktop;
+x-scheme-handler/xpra+tcp=xpra.desktop;
+x-scheme-handler/xpra+tls=xpra.desktop;
+x-scheme-handler/xpra+ws=xpra.desktop;
+x-scheme-handler/xpra+wss=xpra.desktop;
+x-scheme-handler/xpras=xpra.desktop;
diff --git a/tools/101/immudex_branch b/tools/101/immudex_branch
new file mode 100755 (executable)
index 0000000..c2eaea7
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if grep -q 'trixie' /etc/os-release; then
+  echo -n '-testing'; 
+else 
+  echo -n '-stable';
+fi
diff --git a/tools/101/immudex_hostname b/tools/101/immudex_hostname
new file mode 100755 (executable)
index 0000000..33cc30c
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+vendor=$(hostnamectl | grep 'Vendor' | awk '{printf $3}')
+modelLine=$(hostnamectl | grep 'Model' | awk '{printf $3}')
+model=$(hostnamectl | grep 'Model' | awk '{printf $4}')
+
+case $vendor in
+  "Lenovo") vendorShort="l";;
+  "Dell") vendorShort="d";;
+  "Acer") vendorShort="a";;
+  "ASUSTeK") vendorShort="as";;
+  "GOOGLE") vendorShort="go";;
+  "QEMU") vendorShort="kvm";;
+  *) hName="immudex";;
+esac
+
+case $modelLine in
+  "ThinkPad") mLShort="TP";;
+  "Latitude") mLShort="Lat";;
+  "AOD260") mLShort="ao";
+            model="D260";;
+  "Candy") vendorShort="d";
+            mLShort="chrbook";
+            model="3120";;
+  "Inspiron") mLShort="Ins";;
+  "Standard") if [ $vendorShort = "kvm" ]; then
+                mLShort=$(hostnamectl | grep 'Machine ID' | awk '{print $3}' | cut -c 26-33);
+                model="";
+              else
+                mlShort="Std";
+              fi;;
+  *) hName="immudex";;
+esac
+
+if [ ! "$hName" ]; then
+  hName="${vendorShort}-${mLShort}-$model"
+  sudo hostnamectl set-hostname $hName;
+  sudo sed -i "s/immudex/${hName}/" /etc/hosts;
+  echo $hName | sudo tee /etc/hostname > /dev/null;
+fi
+
diff --git a/tools/101/import_gpgkeys b/tools/101/import_gpgkeys
new file mode 100755 (executable)
index 0000000..29f1e00
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if [ -f ~/public.gpg ] && [ -f ~/private.gpg ] && [ -f ~/otrust.txt ]; then
+  gpg --import ~/public.gpg
+  gpg --import ~/private.gpg
+  gpg --import-ownertrust ~/otrust.txt
+fi
diff --git a/tools/101/library.sh b/tools/101/library.sh
new file mode 100755 (executable)
index 0000000..1cb2454
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+function get_debian_branch() {
+  if grep -q 'trixie' /etc/os-release; then
+    echo "testing";
+  else
+    echo "stable";
+  fi
+}
+
+function get_machine_arch() {
+  arch=$(uname -m);
+  if [ "$arch" = "i686" ]; then
+    echo "32";
+  else
+    echo "64";
+  fi
+}
+
+function check_distro_version() {
+  set -e
+  root="/run/live/medium";
+  if [ -d ${root}/live ]; then
+    if [ -f ${root}/live/version ]; then 
+      version=$(cat ${root}/live/version | sed 's/\.//g');
+    else version="000";
+    fi
+    BRANCH=$(get_debian_branch);
+    ARCH=$(get_machine_arch);
+    if [ ! -f /tmp/ltver ]; then
+      wget -q https://ftp.morketsmerke.org/immudex/${BRANCH}/upgrades/latest/${ARCH}/version -O /tmp/ltver;
+    fi
+         if [ ! -s /tmp/ltver ]; then sudo rm /tmp/ltver; return 255; fi;
+    newVersionTxt=$(cat /tmp/ltver);
+    newVersionInt=$(echo $newVersionTxt | sed 's/\.//g');
+    if [ $version -lt $newVersionInt ]; then
+     exitcode=0;
+    else
+     exitcode=1;
+    fi
+  else
+    exitcode=255;
+  fi
+  if [ "$1" ] && [ "$1" = "--print" ]; then
+    echo $newVersionTxt;
+    return 0;
+  fi
+  return $exitcode;
+}
diff --git a/tools/101/newsfeed b/tools/101/newsfeed
new file mode 100755 (executable)
index 0000000..1f9d304
--- /dev/null
@@ -0,0 +1,114 @@
+#!/bin/bash
+
+function help() {
+  echo "newsfeed - fetch and browse news feed from rss and atom channels";
+  echo "morketsmerke.net; COPYLEFT @ 2022";
+  echo;
+  echo "Options:";
+  echo "  --list - shows numbered list of names, saved in ~/.newsfeed names and";
+  echo "    URL of rss channels";
+  echo "  --check - fetching new rss channel file from source";
+  echo "  --show <number_of_channel> - shows numbered list of news titles.";
+  echo "    Number of channel you can get from --list option.";
+  echo "  --open <number_of_title> - open web browser on link, which are under";
+  echo "    titles of news on rss channel. Number of title you can get";
+  echo "    from --show option. This option based on the last showed rss";
+  echo "    channel feed.";
+  echo;
+  echo "The ~/.newsfeed file:";
+  echo "  This file is simple csv (semicolon separated values) file which";
+  echo "  store rss channels in one line. One by one. The one line";
+  echo "  contains: name and URL of rss feed. For example:";
+  echo;
+  echo "    News Feed;https://newsfeed.example.org/rss";
+} 
+if [ ! -s ~/.newsfeed ]; then
+  help;
+  exit 1;
+else
+  if [ ! "$1" ] || ([ "$1" != "--list" ] && \
+    [ "$1" != "--check" ] && \
+    [ "$1" != "--show" ] && \
+    [ "$1" != "--open" ]); then
+      help;
+      exit 1;
+  fi
+  amountOfSubscriptions=$(cat ~/.newsfeed | wc -l);
+  i=1;
+  while [ $i -le $amountOfSubscriptions ]; do
+    newsfeedLine=$(sed -n "${i}p" ~/.newsfeed);
+    nameOfSubscription=$(echo $newsfeedLine | cut -d ";" -f 1);
+    rssLink=$(echo $newsfeedLine | cut -d ";" -f 2);
+    if [ "$1" ] && [ "$1" = "--list" ]; then
+      echo -e "${i}. ${nameOfSubscription}";
+    elif [ "$1" ] && [ "$1" = "--check" ]; then
+      echo -e "${i}. ${nameOfSubscription}";
+      echo -n "Getting news feed...";
+      wget $rssLink -O /tmp/new_newsfeed_${i}.xml 2>/dev/null;
+      if [ $? -eq 0 ]; then echo "[ OK ]";
+      else echo -e "\nThere is no Internet connection"; exit 1; fi
+        if [ -s /tmp/newsfeed_${i}.xml ]; then
+        amountOfNewNewses=$(diff /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml | grep '<title>' | wc -l);
+        if [ $amountOfNewNewses -gt 0 ]; then 
+          notify-send "$nameOfSubscription" "New $amountOfNewNewses newses" --icon=/usr/share/icons/rss.png;
+          j=1;
+          sleep 1;
+          while [ $j -le $amountOfNewNewses ]; do
+            news=$(diff /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml | \
+                     grep '<title>' | sed -n "${j}p" | sed 's/<title>//' | \
+                      sed 's/<\/title>//' | sed 's/[<>]//' | \
+                      sed 's/^[[:space:]]*//g');
+            notify-send "newsfeed" "${nameOfSubscription}: ${news}" -t 10000 --icon=/usr/share/icons/rss.png;
+            sleep 1;
+            j=$((j + 1));
+          done
+        fi
+        mv /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml;
+      else
+        mv /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml;
+        amountOfNews=$(grep '<title>' /tmp/newsfeed_${i}.xml | sed -n '2,$p' | wc -l);
+        if [ $amountOfNews -eq 0 ]; then
+          compressed=1;
+          amountOfNews=$(sed 's/<\/title>/\n/g' /tmp/newsfeed_${i}.xml | sed 's/<item>/\n/g' | grep '<title>' | wc -l)
+        fi
+        notify-send "$nameOfSubscription" "New $amountOfNews newses" --icon=/usr/share/icons/rss.png;
+      fi
+    fi
+    i=$((i + 1));
+  done
+  if [ "$1" ] && [ "$1" = "--show" ] && [ "$2" ] && [ $2 -gt 0 ]; then
+    
+    #Parsing
+    #Thanks to the linuxhint.com for command:
+    #sed 's/^[[:space]]*//g'
+    #https://linuxhint.com/trim_string_bash
+
+      if grep -q 'CDATA' /tmp/newsfeed_${2}.xml; then
+        #sed 's/<\/title>/\n/g' /tmp/newsfeed_${2}.xml | \
+        #sed 's/<item>/\n/g' | grep '<title>' | sed -n '2,$p' | \
+        #sed 's/<title>//' | sed 's/&quot;/"/g' | \
+        #sed 's/<!\[CDATA\[//g' | sed 's/\]\]>//g' | \
+        #sed 's/^[[:space:]]*//g' | nl | less;
+        grep -e '<title>' -e '<description>' /tmp/newsfeed_${2}.xml |\
+        sed -n '3,$p' | sed -e 's/<title>//g' -e 's/<description>/>>>/g' |\
+        sed 's/&#[0-9]*;//g' | \
+        sed 's/&quot;//g' | sed -e 's/<!\[CDATA\[//g' -e 's/\]\]>//g' |\
+        sed -e 's/<img.*br\/>/<obrazek>/g' -e 's/^[[:space:]]*//g' \
+        -e 's/<\/description>/\n/g' -e 's/<\/title>//g' | nl -b p^[[:alnum:]] | less
+      else 
+        sed 's/<\/title>/\n/g' /tmp/newsfeed_${2}.xml | \
+        sed 's/<item>/\n/g' | grep '<title>' | sed -n '2,$p' | \
+        sed 's/<title>//' | sed 's/&quot;/"/g' | \
+        sed 's/^[[:space:]]*//g' | nl | less;
+      fi
+      echo $2 > /tmp/lastShowedNewsFeed;
+  elif [ "$1" ] && [ "$1" = "--open" ] && [ "$2" ] && [ $2 -gt 0 ]; then
+    subscriptionNumber=$(cat /tmp/lastShowedNewsFeed);
+    if ! grep -q 'CDATA' /tmp/newsfeed_${subscriptionNumber}.xml; then
+      link=$(sed 's/<\/link>/\n/g' /tmp/newsfeed_${subscriptionNumber}.xml | sed 's/<\/title>/\n/g' | grep '<link>' | sed -n '2,$p' | sed 's/<link>//g' | sed -n "${2}p")
+    else
+      link=$(sed 's/<\/link>/\n/g' /tmp/newsfeed_${subscriptionNumber}.xml | sed 's/<\/description>/\n/g' | grep '<link>' | sed -n '2,$p' | sed 's/<link>//g' | sed -n "${2}p")
+    fi
+    exo-open --launch WebBrowser "$link";
+  fi
+fi
diff --git a/tools/101/pl b/tools/101/pl
new file mode 100755 (executable)
index 0000000..e800822
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+if [ "$1" ] && [ $1 = "--video" ]; then
+  video=1;
+  shift;
+  if [ $# -gt 1 ]; then format="--ytdl-format=$1"; shift; file=$1;
+  else format="--ytdl-forma=best"; file=$1; fi
+else
+  file=$1;
+fi
+
+function help() {
+  echo "pl - Play Links. Skrypt to odtwarzania multimediów z listy linków";
+  echo "morketsmerke.org; COPYLEFT; 2023";
+  echo;
+  echo "Opcje:";
+  echo;
+  echo -e "\t--video [format] - możliwość odtwarzania linków jako filmów. Format";
+  echo -e "\tjest opcjonalny, w przypadku jego braku, domyślnym formatem jest";
+  echo -e "\t'best'.";
+  echo;
+  echo "Użycie:";
+  echo -e "\t$ pl sciezka/do/listy/linkow";
+  echo;
+  echo "Format listy:";
+  echo -e "\tnazwa linku: https://youtube.com/...";
+}
+if [ "$1" ]; then 
+  PS3="Link: ";
+  linkNames=$(cut -d ":" -f 1 $1 | sed 's/\ /_/g' | awk '{printf $1" "}')
+  select name in $linkNames; do
+    if [ "$MPVPID" ]; then kill $MPVPID; fi
+    if [ ! "$name" ]; then break; fi
+    link=$(grep "$name" $file | cut -d ":" -f 2-);
+    if [ ! "$link" ]; then
+      linkName=$(echo $name | sed 's/_/\ /g');
+      link=$(grep "$linkName" $file | cut -d ":" -f 2-);
+    fi
+    if echo $link | grep -q "youtube"; then
+      if [ "$video" ]; then
+        #ytplay -v $link -f $format
+        mpv $format ytdl://$link > /dev/null 2>&1 & MPVPID=$!
+      else
+        #ytplay -a $link -f best[height=360]
+        format="--no-video --ytdl-format=best[height=360]"; 
+        mpv $format ytdl://$link > /dev/null 2>&1 & MPVPID=$!
+      fi
+    else
+      mpv --no-video $link > /tmp/pl.log 2>&1 & MPVPID=$!;
+      tail -f /tmp/pl.log | grep "icy-title" &
+    fi
+    #echo "MPV: $MPVPID";
+  done
+else
+  help;
+  exit 1;
+fi
diff --git a/tools/102/create_media b/tools/102/create_media
new file mode 100755 (executable)
index 0000000..1ef71a2
--- /dev/null
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+GREEN="\e[32m";
+YELLOW="\e[33m";
+ENDCOLOR="\e[0m";
+
+function help() {
+  echo "create_media - script used for write iso image to usb drive(mainly)";
+  echo "morketsmerke.net COPYLEFT @ 2022";
+  echo "Options:";
+  echo "  --i386-efi - creating 32-bit EFI usb drive with iso image";
+  echo "  (comapatible with immudex only iso images)";
+  echo "  --nuke - write 0 to 1st megabyte of disk";
+  echo "Usage:";
+  echo "  $ create_media [--i386-efi] [--nuke] <usb_disk> [iso_image]";
+}
+
+if [ "$1" ] && [ "$1" = "--i386-efi" ]; then target="i386-efi"; shift; fi
+if [ "$1" ] && [ "$1" = "--nuke" ]; then target="nuke"; shift; fi
+if [ "$1" ] && echo $1 | grep -Eq '/dev/(sd[a-z]|vd[a-z]|mmcblk[0-9])'; then
+  disk=$1; shift;
+else
+  help;
+  exit 1;
+fi
+if [ ! "$target" ] || [ "$target" != "nuke" ]; then
+  if [ "$1" ] && file $1 | grep -q 'ISO 9660'; then 
+    iso=$1;
+  else
+    help;
+    exit 1;
+  fi
+fi
+
+if [ "$target" = "i386-efi" ]; then
+  echo -n "Writing zeros to 1st megabyte on disk..."; 
+  sudo dd if=/dev/zero bs=1M of=$disk count=1 > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Creating MS-DOS partitionig scheme on disk..."; 
+  sudo parted $disk mklabel msdos > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+  
+  echo -n "Creating FAT-32 partition...";
+  sudo parted $disk mkpart primary fat32 1 100%Free > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Creating VFAT filesystem on partition...";
+  sudo mkfs.vfat ${disk}1 > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Creating /mnt/usb directory...";
+  sudo mkdir /mnt/usb > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]";
+  else echo -e "[${YELLOW}Directory exist!${ENDCOLOR}]"; fi
+  
+  echo -n "Mounting VFAT partition on /mnt/usb...";
+  sudo mount ${disk}1 /mnt/usb > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Instalation GRUB on disk...";
+  sudo grub-install --target=i386-efi --efi-directory=/mnt/usb --boot-directory=/mnt/usb/boot --bootloader-id=boot --removable > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Creating /mnt/iso directory...";
+  sudo mkdir /mnt/iso > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]";
+  else echo -e "[${YELLOW}Directory exist!${ENDCOLOR}]"; fi
+
+  echo -n "Mounting iso file on /mnt/iso...";
+  sudo mount $iso /mnt/iso > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Copying grub config files to the disk...";
+  sudo cp /mnt/iso/boot/grub/font.pf2 /mnt/usb/boot/grub > /dev/null 2>&1;
+  sudo cp /mnt/iso/boot/grub/grub.cfg /mnt/usb/boot/grub > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Copying immudex files to the disk..."; 
+  sudo cp -r /mnt/iso/live /mnt/usb > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+  
+  echo -n "Creating empty DEBIAN file...";
+  sudo touch /mnt/usb/DEBIAN > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+  
+  echo -n "Umounting all mounted filesystems...";
+  sudo umount /mnt/* > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+elif [ "$target" = "nuke" ]; then
+  echo -n "Writing zeros to 1st megabyte on disk..."; 
+  sudo dd if=/dev/zero bs=1M of=$disk count=1 > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+else
+  echo -n "Writing zeros to 1st megabyte on disk..."; 
+  sudo dd if=/dev/zero bs=1M of=$disk count=1 > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+
+  echo -n "Writing iso image to the disk..."
+  sudo dd if=$iso bs=1M of=$disk > /dev/null 2>&1;
+  if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
+fi 
diff --git a/tools/102/immudex_hostname b/tools/102/immudex_hostname
new file mode 100755 (executable)
index 0000000..83a3509
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+bootID=$(sed 's/-//g' /proc/sys/kernel/random/boot_id | cut -c 26-33);
+if hostnamectl > /dev/null 2>&1; then
+       hName="$(hostnamectl | grep 'Chassis' | cut -d ":" -f 2 | awk '{printf $1}')-${bootID}";
+else
+       hName="$(sudo dmidecode -s chassis-type | head -1 | tr [A-Z] [a-z])-${bootID}";
+fi
+
+sudo hostnamectl set-hostname $hName;
+sudo sed -i "s/immudex/${hName}/g" /etc/hosts;
+echo $hName | sudo tee /etc/hostname > /dev/null;
diff --git a/tools/102/pl b/tools/102/pl
new file mode 100755 (executable)
index 0000000..50fad5d
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+if [ "$1" ] && [ $1 = "--video" ]; then
+  video=1;
+  shift;
+  if [ $# -gt 1 ]; then format="--ytdl-format=$1"; shift; file=$1;
+  else format="--ytdl-forma=best"; file=$1; fi
+else
+  file=$1;
+fi
+
+function help() {
+  echo "pl - Play Links. Skrypt to odtwarzania multimediów z listy linków";
+  echo "morketsmerke.org; COPYLEFT; 2023";
+  echo;
+  echo "Opcje:";
+  echo;
+  echo -e "\t--video [format] - możliwość odtwarzania linków jako filmów. Format";
+  echo -e "\tjest opcjonalny, w przypadku jego braku, domyślnym formatem jest";
+  echo -e "\t'best'.";
+  echo;
+  echo "Użycie:";
+  echo -e "\t$ pl sciezka/do/listy/linkow";
+  echo;
+  echo "Format listy:";
+  echo -e "\tnazwa linku: https://youtube.com/...";
+}
+if [ "$1" ]; then 
+  PS3="Link: ";
+  linkNames=$(cut -d ":" -f 1 $1 | sed 's/\ /_/g' | awk '{printf $1" "}')
+  select name in $linkNames; do
+    if [ "$MPVPID" ]; then kill $MPVPID; fi
+    if [ ! "$name" ]; then break; fi
+    link=$(grep "$name" $file | cut -d ":" -f 2-);
+    if [ ! "$link" ]; then
+      linkName=$(echo $name | sed 's/_/\ /g');
+      link=$(grep "$linkName" $file | cut -d ":" -f 2-);
+    fi
+    if echo $link | grep -q "youtube"; then
+      link=$(echo $link | sed 's/\ //g');
+      if [ "$video" ]; then
+        #ytplay -v $link -f $format
+        mpv $format ytdl://$link > /dev/null 2>&1 & MPVPID=$!
+      else
+        #ytplay -a $link -f best[height=360]
+        format="--no-video --ytdl-format=best[height=360]"; 
+        mpv $format ytdl://$link > /dev/null 2>&1 & MPVPID=$!
+      fi
+    else
+      mpv --no-video $link > /tmp/pl.log 2>&1 & MPVPID=$!;
+      tail -f /tmp/pl.log | grep "icy-title" &
+    fi
+    #echo "MPV: $MPVPID";
+  done
+else
+  help;
+  exit 1;
+fi
diff --git a/tools/103/idle-clic b/tools/103/idle-clic
new file mode 100755 (executable)
index 0000000..706b14a
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/bash
+  
+function help() {
+  echo 'idle-cli - Inter-Distribution Linux Environment CLI';
+  echo '@ 2023 morketsmerke.org';
+  echo;
+  echo "Options:";
+  echo "  list-distros - listing available containers with Linux distros on this server";
+  echo "  shell <distro_name> - bring up the shell of given distro";
+  echo "  check-commmand <distro_name> <command> - verify is given command exists in given distro";
+  echo "  apropos <distro_name> <keywords> - finds commmands match to given keywords";
+  echo "  pkgsearch <distro_name> <package> - check is given package is ready to install in given distro";
+  echo;
+  echo "<distro_name> - pointing only one distro, but you can use also:"
+  echo "  <group>:";
+  echo "    --deb - .deb packages using distros (debian,kali,ubuntu)";
+  echo "    --rpm - .rpm packages using distros (fedora,rocky,opensuse)";
+  echo "    --other - other distros don't match to above (alpine,archlinux,gentoo,void)";
+  echo "  or <--all> - all 10 available distros (warning, output could be large, use some of pager)";
+  echo;
+  echo 'Usage:';
+  echo '  $ idle-clic list-distros';
+  echo '  $ idle-clic shell rocky';
+  echo '  $ idle-clic check-command netstat';
+  echo '  $ idle-clic apropos zip';
+  echo '  $ idle-clic pkgsearch "intel sound"';
+  echo;
+  echo 'IDLE Configuration:';
+  echo 'In ~/.idle/.idle.conf file (example of this file: /usr/share/idle/idle.conf)';
+  echo '  RUSER="user";';
+  echo '  IDLESERVER="idle.example.org";';
+  echo '  SSH_OPTS="-p 10022 -i ~/id_rsa"; #OPTIONAL';
+}
+
+if [ -f ~/.idle/idle.conf ]; then
+  source ~/.idle/idle.conf;
+  echo "IDLE Server response:";
+  if echo $@ | grep -q 'shell'; then
+    ssh -t ${SSH_OPTS} ${RUSER}@${IDLESERVER} "idle-clis $@";
+  else
+    ssh ${SSH_OPTS} ${RUSER}@${IDLESERVER} "idle-clis $@";
+  fi
+  if [ $? -eq 1 ]; then help; exit 1; fi
+else
+  echo "There is no IDLE config file. Exiting...";
+  help;
+  exit 1;
+fi
diff --git a/tools/103/pl b/tools/103/pl
new file mode 100755 (executable)
index 0000000..7f08f4f
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+GREEN="\e[32m";
+RED="\e[31m";
+ENDCOLOR="\e[0m";
+
+if [ "$1" ] && [ $1 = "--video" ]; then
+  video=1;
+  shift;
+  if [ $# -gt 1 ]; then format="--ytdl-format=$1"; shift; file=$1;
+  else format="--ytdl-forma=best"; file=$1; fi
+else
+  file=$1;
+fi
+
+function help() {
+  echo "pl - Play Links. Skrypt to odtwarzania multimediów z listy linków";
+  echo "morketsmerke.org; COPYLEFT; 2023";
+  echo;
+  echo "Opcje:";
+  echo;
+  echo -e "\t--video [format] - możliwość odtwarzania linków jako filmów. Format";
+  echo -e "\tjest opcjonalny, w przypadku jego braku, domyślnym formatem jest";
+  echo -e "\t'best'.";
+  echo;
+  echo "Użycie:";
+  echo -e "\t$ pl sciezka/do/listy/linkow";
+  echo;
+  echo "Format listy:";
+  echo -e "\tnazwa linku: https://youtube.com/...";
+}
+
+if echo $file | grep -q 'http'; then
+  echo -n "Getting link list...";
+  wget -q $file -O /tmp/playlist.txt;
+  if [ $? -eq 0 ]; then 
+    echo -e "[ ${GREEN}OK${ENDCOLOR} ]";
+    file="/tmp/playlist.txt";
+  else 
+    echo -e "[ ${RED}FAIL${ENDCOLOR} ]";
+    help;
+    exit 1;
+  fi
+fi
+
+if [ "$file" ]; then 
+  PS3="Link: ";
+  linkNames=$(cut -d ":" -f 1 $file | sed 's/\ /_/g' | awk '{printf $1" "}')
+  select name in $linkNames; do
+    if [ "$MPVPID" ]; then kill $MPVPID; fi
+    if [ ! "$name" ]; then break; fi
+    link=$(grep "$name" $file | cut -d ":" -f 2-);
+    if [ ! "$link" ]; then
+      linkName=$(echo $name | sed 's/_/\ /g');
+      link=$(grep "$linkName" $file | cut -d ":" -f 2-);
+    fi
+    if echo $link | grep -q "youtube"; then
+      link=$(echo $link | sed 's/\ //g');
+      if [ "$video" ]; then
+        #ytplay -v $link -f $format
+        mpv $format ytdl://$link > /dev/null 2>&1 & MPVPID=$!
+      else
+        #ytplay -a $link -f best[height=360]
+        format="--no-video --ytdl-format=best[height=360]"; 
+        mpv $format ytdl://$link > /dev/null 2>&1 & MPVPID=$!
+      fi
+    else
+      mpv --no-video $link > /tmp/pl.log 2>&1 & MPVPID=$!;
+      tail -f /tmp/pl.log | grep "icy-title" &
+    fi
+    #echo "MPV: $MPVPID";
+  done
+else
+  help;
+  exit 1;
+fi
+
+if [ -f /tmp/playlist.txt ]; then
+  rm /tmp/playlist.txt;
+fi
index d84ce45ba91dc9f56dec5e48ceb17192a969456f..cd2fe231e5beadda0590c709e0e8f91c827a44cd 100644 (file)
@@ -16,8 +16,8 @@ if [ "$1" = "--amd64" ] || [ "$1" = "--i386" ]; then
   sudo cat > base_chroot.sh <<EOF
 dhclient;
 cd;
-if [ -x /usr/bin/git ]; then GIT_SSH_COMMAND="ssh -p 2022" git clone ssh://git@searx.morketsmerke.org/~/immudex.git 
-else apt install git -y && GIT_SSH_COMMAND="ssh -p 2022" git clone ssh://git@searx.morketsmerke.org/~/immudex.git;
+if [ -x /usr/bin/git ]; then git clone https://github.com/xf0r3m/immudex 
+else apt install git -y && git clone https://github.com/xf0r3m/immudex 
 
 fi
 export VERSION=$VERSION;
diff --git a/versions/101.sh b/versions/101.sh
new file mode 100644 (file)
index 0000000..aae5687
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+dhclient;
+cd
+if [ -x /usr/bin/git ]; then git clone https://github.com/xf0r3m/immudex.git;
+else apt install git && git clone https://github.com/xf0r3m/immudex.git;
+fi
+source ~/immudex/versions/template.sh;
+
+update_packages;
+install_packages mutt;
+
+cp -vv ~/immudex/tools/${VERSION}/immudex_branch /usr/local/bin;
+cp -vv ~/immudex/tools/${VERSION}/import_gpgkeys /usr/local/bin;
+cp -vv ~/immudex/tools/${VERSION}/library.sh /usr/local/bin;
+cp -vv ~/immudex/tools/${VERSION}/immudex_hostname /usr/local/bin;
+cp -vv ~/immudex/tools/${VERSION}/newsfeed /usr/local/bin; 
+cp -vv ~/immudex/tools/${VERSION}/pl /usr/local/bin;
+
+apt remove -y thunderbird;
+rm -vf /etc/skel/Pulpit/Klient\ poczty\ Thunderbird.desktop;
+rm -vf /usr/local/bin/run-thunderbird;
+recreate_users;
+
+set_mime;
+
+tidy;
+
diff --git a/versions/102.sh b/versions/102.sh
new file mode 100644 (file)
index 0000000..982e31b
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+dhclient;
+cd
+if [ -x /usr/bin/git ]; then git clone https://github.com/xf0r3m/immudex.git;
+else apt install git && git clone https://github.com/xf0r3m/immudex.git;
+fi
+source ~/immudex/versions/template.sh;
+
+update_packages;
+
+cp -vv ~/immudex/tools/${VERSION}/create_media /usr/local/bin; 
+cp -vv ~/immudex/tools/${VERSION}/pl /usr/local/bin;
+cp -vv ~/immudex/tools/${VERSION}/immudex_hostname /usr/local/bin;
+
+cp -vv ~/immudex/files/${VERSION}/xfce4-keyboard-shortcuts.xml /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml;
+cp -vv ~/immudex/files/${VERSION}/whiskermenu-1.rc /etc/skel/.config/xfce4/panel;
+recreate_users;
+
+set_default_wallpaper altai_1920x1080.png;
+
+set_mime;
+
+tidy;
+
diff --git a/versions/103.sh b/versions/103.sh
new file mode 100644 (file)
index 0000000..e11cfe1
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+dhclient;
+cd
+if [ -x /usr/bin/git ]; then git clone https://github.com/xf0r3m/immudex.git;
+else apt install git && git clone https://github.com/xf0r3m/immudex.git;
+fi
+source ~/immudex/versions/template.sh;
+
+update_packages;
+apt purge -y xpra;
+
+cp -vv ~/immudex/tools/${VERSION}/pl /usr/local/bin;
+cp -vv ~/immudex/tools/${VERSION}/idle-clic /usr/local/bin;
+
+wget https://github.com/yt-dlp/yt-dlp/releases/download/2023.07.06/yt-dlp -O /usr/bin/yt-dlp;
+
+cp -vv ~/immudex/files/${VERSION}/xfce4-keyboard-shortcuts.xml /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml;
+cp -vv ~/immudex/files/${VERSION}/xfwm4.xml /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml;
+
+recreate_users;
+
+set_mime;
+
+tidy;
+
diff --git a/versions/104.sh b/versions/104.sh
new file mode 100644 (file)
index 0000000..98f1da9
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+ARCH=$(dpkg --print-architecture);
+dhclient;
+cd
+if [ -x /usr/bin/git ]; then git clone https://github.com/xf0r3m/immudex.git;
+else apt install git && git clone https://github.com/xf0r3m/immudex.git;
+fi
+source ~/immudex/versions/template.sh;
+
+update_packages;
+
+if [ $ARCH = "amd64" ]; then
+  wget https://ftp.morketsmerke.org/immudex/stable/software/librewolf/librewolf-117.0-1.en-US.linux-x86_64.tar.bz2;
+  tar -xf librewolf-117.0-1.en-US.linux-x86_64.tar.bz2 -C /usr/lib;
+  rm librewolf-117.0-1.en-US.linux-x86_64.tar.bz2;
+else
+  wget https://ftp.morketsmerke.org/immudex/stable/software/librewolf/librewolf-117.0-1.en-US.linux-i686.tar.bz2;
+  tar -xf librewolf-117.0-1.en-US.linux-i686.tar.bz2 -C /usr/lib;
+  rm librewolf-117.0-1.en-US.linux-i686.tar.bz2;
+fi
+ln -s /usr/lib/librewolf/librewolf /usr/bin/librewolf;
+
+cp -vv ~/immudex/files/${VERSION}/LibreWolf\ \(Firejailed\).desktop /etc/skel/Pulpit;
+rm -v /etc/skel/Pulpit/Frefox.desktop;
+
+recreate_users;
+
+set_mime;
+
+tidy;
+
index abaeafdc7a8827541ba5039a04f30c2490461349..214269aa136811a89f99c9d702d1e423418a3373 100644 (file)
@@ -10,6 +10,16 @@ function install_packages() {
   apt install $@ -y;
 }
 
+function set_notifier_packages() {
+  cp -vv ~/immudex/files/Notifier\ -\ packages.desktop /home/xf0r3m/.config/autostart;
+  chown xf0r3m:xf0r3m /home/xf0r3m/.config/autostart/Notifier\ -\ packages.desktop;
+}
+
+function set_xfce4_notes_autostart() {
+  cp -vv ~/immudex/files/autostart-x4notes.desktop /home/xf0r3m/.config/autostart;
+  chown xf0r3m:xf0r3m /home/xf0r3m/.config/autostart/autostart-x4notes.desktop;
+}
+
 function recreate_users() {
   userdel -r user;
   userdel -r xf0r3m;
@@ -18,7 +28,7 @@ function recreate_users() {
   cp -rvv /etc/skel/.??* /home/user;
   cp -rvv /etc/skel/?* /home/user;
   mkdir /home/user/.local;
-  tar -xvf ~/immudex/files/${VERSION}/local_user.tar -C /home/user/.local;
+  tar -xvf ~/immudex/files/local_user.tar -C /home/user/.local;
   rm /home/user/.face;
   cp /usr/share/images/desktop-base/immudex_xfce_greeter_logo.png /home/user/.face;
   chown -R user:user /home/user;
@@ -28,12 +38,15 @@ function recreate_users() {
   cp -rvv /etc/skel/.??* /home/xf0r3m;
   cp -rvv /etc/skel/?* /home/xf0r3m;
   mkdir /home/xf0r3m/.local;
-  tar -xvf ~/immudex/files/${VERSION}/local_xf0r3m.tar -C /home/xf0r3m/.local;
+  tar -xvf ~/immudex/files/local_xf0r3m.tar -C /home/xf0r3m/.local;
   rm /home/xf0r3m/.face;
   cp /usr/share/images/desktop-base/immudex_xfce_greeter_logo.png /home/xf0r3m/.face;
   chown -R xf0r3m:xf0r3m /home/xf0r3m;
   echo "xf0r3m:xf0r3m1" | chpasswd;
 
+  set_notifier_packages;
+  set_xfce4_notes_autostart;
+
   usermod -aG libvirt,libvirt-qemu xf0r3m;
   usermod -aG libvirt,libvirt-qemu user;
 
@@ -57,13 +70,9 @@ function set_default_wallpaper() {
   ln -s /usr/share/images/desktop-base/$1 /usr/share/images/desktop-base/default;
 }
 
-function set_notifier_packages() {
-  cp -vv ~/immudex/files/${VERSION}/Notifier\ -\ packages.desktop /home/xf0r3m/.config/autostart;
-  chown xf0r3m:xf0r3m /home/xf0r3m/.config/autostart/Notifier\ -\ packages.desktop;
-}
 
-function set_xfce4_notes_autostart() {
-  cp -vv ~/immudex/files/${VERSION}/autostart-x4notes.desktop /home/xf0r3m/.config/autostart;
-  chown xf0r3m:xf0r3m /home/xf0r3m/.config/autostart/autostart-x4notes.desktop;
+function set_mime() {
+  cp -vv ~/immudex/files/mimeinfo.cache /usr/share/applications;  
 }
 
+export VERSION=$(echo $0 | cut -d "." -f 1);