]> gitweb.morketsmerke.org Git - e5270.git/commitdiff
Przesłanie plików na repozytorium
authorxf0r3m <jakubstasinski@protonmail.com>
Wed, 26 Feb 2025 09:34:47 +0000 (10:34 +0100)
committerxf0r3m <jakubstasinski@protonmail.com>
Wed, 26 Feb 2025 09:34:47 +0000 (10:34 +0100)
20 files changed:
16967093831.desktop [new file with mode: 0755]
base.sh [new file with mode: 0644]
bashrc [new file with mode: 0755]
displays.xml [new file with mode: 0755]
immudex-motd2 [new file with mode: 0755]
immudex-nextcloud [new file with mode: 0755]
immudex-nu.omp.json.nu-deploy [new file with mode: 0755]
immudex-run [new file with mode: 0755]
immudex-run-thunderbird [new file with mode: 0755]
launcher-17/17399705731.desktop [new file with mode: 0755]
launcher-17/index.html [new file with mode: 0755]
morketsmerke.nmconnection [new file with mode: 0755]
nextcloud [new file with mode: 0755]
nextcloud.desktop [new file with mode: 0755]
oh-my-posh-install.sh [new file with mode: 0755]
org.keepassxc.KeePassXC.2.desktop [new file with mode: 0755]
pointers.xml [new file with mode: 0755]
template.sh [new file with mode: 0644]
whiskermenu-1.rc [new file with mode: 0755]
xfce4-panel.xml [new file with mode: 0755]

diff --git a/16967093831.desktop b/16967093831.desktop
new file mode 100755 (executable)
index 0000000..856da29
--- /dev/null
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Thunderbird
+Comment=Uruchom thunderbirda w datastore
+Exec=/usr/local/bin/immudex-run-thunderbird
+Icon=/usr/lib/thunderbird/chrome/icons/default/default64.png
+Path=
+Terminal=false
+StartupNotify=false
diff --git a/base.sh b/base.sh
new file mode 100644 (file)
index 0000000..6d7f2dd
--- /dev/null
+++ b/base.sh
@@ -0,0 +1,290 @@
+#!/bin/bash
+
+set -e
+
+DEBVER="$1";
+ARCH=$(dpkg --print-architecture);
+
+if [ $ARCH = "amd64" ]; then
+  KARCH="amd64";
+else
+  KARCH="686-pae";
+fi
+
+cd;
+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
+source ~/immudex/versions/template.sh;
+
+echo "deb http://deb.debian.org/debian/ ${DEBVER} main" > /etc/apt/sources.list;
+echo "deb-src http://deb.debian.org/debian/ ${DEBVER} main" >> /etc/apt/sources.list;
+echo "deb http://security.debian.org/debian-security ${DEBVER}-security main" >> /etc/apt/sources.list;
+echo "deb-src http://security.debian.org/debian-security ${DEBVER}-security main" >> /etc/apt/sources.list;
+echo "deb http://deb.debian.org/debian/ ${DEBVER}-updates main" >> /etc/apt/sources.list;
+echo "deb-src http://deb.debian.org/debian/ ${DEBVER}-updates main" >> /etc/apt/sources.list;
+update_packages;
+
+
+install_packages --no-install-recommends linux-image-${KARCH} live-boot systemd-sysv -y;
+
+install_packages tzdata locales keyboard-configuration console-setup;
+
+dpkg-reconfigure tzdata;
+dpkg-reconfigure locales;
+dpkg-reconfigure keyboard-configuration;
+dpkg-reconfigure console-setup;
+
+install_packages task-desktop task-xfce-desktop;
+
+#Dodanie pakiet 'make' - wdrożenie projektu ytfzf - 12.05.2024;
+install_packages firejail ufw cryptsetup lsof extlinux grub-efi-amd64 efibootmgr bash-completion etherwake wakeonlan cifs-utils wget figlet mpv vim-gtk3 redshift irssi nmap nfs-common remmina python3-pip ffmpeg debootstrap squashfs-tools xorriso syslinux-efi grub-pc-bin grub-efi-amd64-bin mtools dosfstools chrony python3-venv isolinux rsync mutt gimp openvpn netselect-apt gvfs-backends dnsutils lolcat thunderbird make mc blueman libspa-0.2-bluetooth screen traceroute extrepo keepassxc webext-keepassxc-browser
+
+#wget https://ftp.morketsmerke.org/librewolf/librewolf-133.0.3-1.en-US.linux-x86_64.tar.bz2;
+#tar -xf librewolf-133.0.3-1.en-US.linux-x86_64.tar.bz2 -C /usr/lib;
+#rm librewolf-133.0.3-1.en-US.linux-x86_64.tar.bz2
+
+#ln -s /usr/lib/librewolf/librewolf /usr/bin/librewolf;
+
+extrepo enable librewolf;
+apt update;
+install_packages librewolf;
+
+update-alternatives --remove x-www-browser /usr/bin/firefox-esr;
+update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/librewolf 70;
+
+#Missing packages
+if [ $DEBVER = "testing" ]; then
+  install_packages xfce4-notes-plugin yt-dlp;
+  head -1 /etc/apt/sources.list | sed "s/${DEBVER}/stable/" > /etc/apt/sources.list.d/stable.list;
+  apt update;
+  install_packages newsboat;
+  rm /etc/apt/sources.list.d/stable.list;
+  apt update;
+else
+  install_packages newsboat;
+  #head -1 /etc/apt/sources.list | sed "s/${DEBVER}/testing/" > /etc/apt/sources.list.d/testing.list;
+  #apt update;
+  #install_packages xfce4-notes-plugin yt-dlp;
+  #rm /etc/apt/sources.list.d/testing.list;
+  #apt update;
+fi
+if [ -f /usr/bin/youtube-dl ]; then rm /usr/bin/youtube-dl; fi
+#ln -s /usr/bin/yt-dlp /usr/bin/youtube-dl;
+
+ytdlpVer=$(curl https://github.com/yt-dlp/yt-dlp/releases.atom 2>/dev/null | grep '<title>.*</title>$' | sed -n '2p' | sed 's/\ /\n/g' | tail -1 | sed 's,</title>,,');
+wget https://github.com/yt-dlp/yt-dlp/releases/download/${ytdlpVer}/yt-dlp -O /usr/bin/yt-dlp
+ln -s /usr/bin/yt-dlp /usr/bin/youtube-dl;
+
+cd;
+
+git clone https://github.com/xf0r3m/xfcedebian;
+cd xfcedebian;
+bash install.sh;
+
+cd;
+
+git clone https://github.com/xero/figlet-fonts /usr/share/figlet-fonts;
+
+cp -vv ~/immudex/tools/bin/immudex-autostart-x4notes /usr/local/bin;
+cp -vv ~/immudex/tools/bin/immudex-branch /usr/local/bin;
+cp -vv ~/immudex/tools/bin/immudex-import-gpgkeys /usr/local/bin;
+cp -vv ~/immudex/tools/bin/immudex-import-sshkeys /usr/local/bin;
+cp -vv ~/immudex/tools/bin/immudex-meteo /usr/local/bin;
+cp -vv ~/immudex/tools/bin/immudex-morketsmerke /usr/local/bin;
+#cp -vv ~/immudex/tools/bin/immudex-motd2 /usr/local/bin;
+wget localhost/~xf0r3m/e5270/immudex-motd2 -O /usr/local/bin/immudex-motd2;
+wget localhost/~xf0r3m/e5270/immudex-run -O /usr/local/bin/immudex-run;
+#wget localhost/~xf0r3m/e5270/immudex-updates -O /usr/local/bin/immudex-updates;
+wget localhost/~xf0r3m/e5270/immudex-nextcloud -O /usr/local/bin/immudex-nextcloud;
+cp -vv ~/immudex/tools/bin/immudex-padlock /usr/local/bin;
+cp -vv ~/immudex/tools/bin/immudex-pl /usr/local/bin;
+#cp -vv ~/immudex/tools/bin/immudex-protected /usr/local/bin;
+#cp -vv ~/immudex/tools/bin/immudex-protected-firefox /usr/local/bin;
+wget https://ftp.morketsmerke.org/librewolf/immudex-secured-firefox -O /usr/local/bin/immudex-secured-firefox;
+cp -vv ~/immudex/tools/bin/immudex-shoutcasts /usr/local/bin;
+cp -vv ~/immudex/tools/bin/immudex-version /usr/local/bin;
+
+#Wdrożenie projektu ytfzf - 12.05.2024;
+install_packages fzf jq ueberzug;
+git clone https://github.com/pystardust/ytfzf /tmp/ytfzf;
+(cd /tmp/ytfzf && make install doc)
+
+#cp -vv ~/immudex/tools/bin/immudex-ytplay /usr/local/bin;
+cp -vv ~/immudex/tools/bin/library.sh /usr/local/bin;
+cp -vv ~/immudex/tools/bin/idle-clic /usr/local/bin;
+cp -vv ~/immudex/tools/bin/sync.sh /usr/local/bin;
+chmod +x /usr/local/bin/*;
+
+cp -vv ~/immudex/tools/sbin/immudex-create-media /usr/local/sbin;
+cp -vv ~/immudex/tools/sbin/immudex-crypt /usr/local/sbin;
+cp -vv ~/immudex/tools/sbin/immudex-hostname /usr/local/sbin;
+cp -vv ~/immudex/tools/sbin/immudex-install /usr/local/sbin;
+cp -vv ~/immudex/tools/sbin/immudex-upgrade /usr/local/sbin;
+#wget localhost/~xf0r3m/e5270/immudex-packages-update -O /usr/local/sbin/immudex-packages-update;
+chown root:root /usr/local/sbin/*;
+chmod 544 /usr/local/sbin/*;
+
+mkdir /etc/skel/.irssi
+
+#cp -vv ~/immudex/files/config /etc/skel/.irssi;
+#cp -vv ~/immudex/files/default.theme /etc/skel/.irssi;
+#wget localhost/~xf0r3m/e5270/irssi-dark.png -O /usr/share/pixmaps/irssi-dark.png;
+#wget localhost/~xf0r3m/e5270/irssi.desktop -O /usr/share/applications/irssi.desktop;
+cp -rvv ~/immudex/files/libreoffice /etc/skel/.config;
+cp -vv ~/immudex/files/firejail.config /etc/firejail;
+cp -vv ~/immudex/files/redshift.conf /etc/skel/.config;
+cp -vv ~/immudex/files/redshift.desktop /etc/skel/.config/autostart;
+wget localhost/~xf0r3m/e5270/nextcloud.desktop -O /etc/skel/.config/autostart/nextcloud.desktop
+
+cp -rvv ~/immudex/files/sync.sh /usr/share;
+#cp -vv ~/immudex/files/gtk-main.css /usr/share/xfce4/notes/gtk-3.0/gtk.css;
+#wget https://ftp.morketsmerke.org/librewolf/librewolf.desktop  -O /usr/share/applications/librewolf.desktop;
+wget localhost/~xf0r3m/e5270/org.keepassxc.KeePassXC.2.desktop -O /usr/share/applications/org.keepassxc.KeePassXC.2.desktop
+if [ -f /usr/share/applications/qmmp.desktop ]; then
+  ln -s /usr/share/applications/qmmp.desktop /usr/share/applications/qmmp-1.desktop;
+fi
+cp -vv ~/immudex/files/immudex_hostname.service /etc/systemd/system;
+#wget localhost/~xf0r3m/e5270/immudex_updates.service -O /etc/systemd/system/immudex_updates.service;
+
+
+tar -xf ~/immudex/files/mozilla.tgz -C /etc/skel;
+wget  https://ftp.morketsmerke.org/librewolf/librewolf.tgz -O /tmp/librewolf.tgz;
+tar -xf /tmp/librewolf.tgz -C /etc/skel;
+
+wget https://ftp.morketsmerke.org/librewolf/16844254192.desktop -O /etc/skel/.config/xfce4/panel/launcher-5/16844254192.desktop;
+
+#mv /usr/bin/firefox /usr/bin/firefox.old;
+#chmod -x /usr/bin/firefox.old;
+#rm /usr/bin/firefox-esr;
+#ln -s /usr/local/bin/immudex-protected-firefox /usr/bin/firefox-esr;
+#sed -i "s,Exec=/usr/lib/firefox-esr/firefox-esr %u,Exec=/usr/local/bin/immudex-protected /usr/lib/firefox-esr/firefox-esr," /usr/share/applications/firefox-esr.desktop;
+
+#sed -i 's/firefox-esr/librewolf/g' /etc/skel/.config/mimeapps.list;
+#sed -i 's/firefox-esr/librewolf/g' /usr/share/applications/mimeinfo.cache;
+
+#Wyłączenie dla mnie immudex_hostname, ze względu na VPN
+#systemctl enable immudex_hostname.service;
+#systemctl enable immudex_updates.service;
+
+
+cat >> /etc/bash.bashrc << EOL
+if [ ! -f /tmp/.motd ]; then
+/usr/local/bin/immudex-motd2
+touch /tmp/.motd;
+fi
+EOL
+
+echo "alias immudex-chhome='export HOME=\$(pwd)'" >> /etc/bash.bashrc;
+echo "alias immudex-changelogs='immudex-upgrade --check --print'" >> /etc/bash.bashrc;
+echo "alias immudex-version='immudex-upgrade --myversion'" >> /etc/bash.bashrc;
+echo "alias immudex-pt='firejail --net=none packettracer'" >> /etc/bash.bashrc;
+
+chmod u+s /usr/bin/ping;
+
+/usr/sbin/ufw default deny incoming;
+/usr/sbin/ufw default allow outgoing;
+#/usr/sbin/ufw enable;
+sed -i '/^ENABLED=/s/ENABLED=no/ENABLED=yes/' /etc/ufw/ufw.conf
+
+echo "e5270" > /etc/hostname;
+echo "127.0.1.1   e5270" >> /etc/hosts;
+
+# Zmiany można umieścić również tutaj jeśli dotyczą one użytkowników lub ich
+# plików konfiguracyjnych
+
+wget localhost/~xf0r3m/e5270/immudex-run-thunderbird -O /usr/local/bin/immudex-run-thunderbird;
+chmod +x /usr/local/bin/*;
+
+wget localhost/~xf0r3m/e5270/displays.xml -O /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml;
+wget localhost/~xf0r3m/e5270/pointers.xml -O /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/pointers.xml
+mkdir /etc/skel/.config/xfce4/panel/launcher-16;
+mkdir /etc/skel/.config/xfce4/panel/launcher-17;
+wget localhost/~xf0r3m/e5270/16967093831.desktop -O /etc/skel/.config/xfce4/panel/launcher-16/16967093831.desktop;
+wget localhost/~xf0r3m/e5270/launcher-17/17399705731.desktop -O /etc/skel/.config/xfce4/panel/launcher-17/17399705731.desktop;
+wget localhost/~xf0r3m/e5270/xfce4-panel.xml -O /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml;
+wget localhost/~xf0r3m/e5270/whiskermenu-1.rc -O /etc/skel/.config/xfce4/panel/whiskermenu-1.rc
+wget localhost/~xf0r3m/e5270/bashrc -O /etc/skel/.bashrc;
+
+echo -n "Username: ";
+read username;
+useradd -m -s /bin/bash $username;
+cp -r /etc/skel/.??* /home/${username};
+chown -R ${username}:${username} /home/${username};
+passwd $username;
+usermod -aG sudo $username;
+
+
+dd if=/dev/random bs=1M of=random count=1;
+rootPassword=$(md5sum random | awk '{printf $1}');
+rm random;
+echo "root:${rootPassword}" | chpasswd;
+usermod -L root;
+
+# Miejsce na twoje zmiany, przed poleceniem 'tidy'
+#bash ~/immudex/addons/nvidiaLatest;
+bash ~/immudex/addons/kvm;
+wget localhost/~xf0r3m/e5270/nextcloud;
+bash ~/nextcloud;
+rm ~/nextcloud;
+install_packages wireshark;
+#cd;
+#mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.old
+#wget https://archive.chirpmyradio.com/chirp_next/next-20240319/chirp-20240319-py3-none-any.whl
+#trashFile=$(basename "https://archive.chirpmyradio.com/download?stream=next");
+#chirpRepoURL=$(wget -v "https://archive.chirpmyradio.com/download?stream=next" 2>&1 | grep 'Lokalizacja:' | head -1 | awk '{printf $2}');
+#rm $trashFile;
+#chirpVer=$(basename $chirpRepoURL | cut -d "-" -f 2);
+#chirpFilename="chirp-${chirpVer}-py3-none-any.whl";
+#wget ${chirpRepoURL}/${chirpFilename};
+#pip3 install $chirpFilename;
+#rm $chirpFilename;
+#install_packages python-wxtools
+#cd - 
+#sed -i -e 's/chirpw/sudo chirpw/' -e 's/false/true/' /usr/share/applications/chirp.desktop;
+bash ~/immudex/addons/chirp;
+bash ~/immudex/addons/iwlwifi;
+bash ~/immudex/addons/ncspot;
+bash ~/immudex/addons/lampstack;
+bash ~/immudex/addons/realtek;
+#wget localhost/~xf0r3m/e5270/WLAN1-84AJFG.nmconnection -O /etc/NetworkManager/system-connections/WLAN1-84AJFG.nmconnection
+#wget localhost/~xf0r3m/e5270/HUAWEI_B818_4461_5G.nmconnection -O /etc/NetworkManager/system-connections/HUAWEI_B818_4461_5G.nmconnection
+#wget localhost/~xf0r3m/e5270/HUAWEI_B818_4461.nmconnection -O /etc/NetworkManager/system-connections/HUAWEI_B818_4461.nmconnection
+#wget localhost/~xf0r3m/e5270/MikroTik-715BEF.nmconnection -O /etc/NetworkManager/system-connections/MikroTik-715BEF.nmconnection
+#wget localhost/~xf0r3m/e5270/TP-Link_E0A0_5G.nmconnection -O /etc/NetworkManager/system-connections/TP-Link_E0A0_5G.nmconnection
+#wget localhost/~xf0r3m/e5270/TP-Link_E0A0.nmconnection -O /etc/NetworkManager/system-connections/TP-Link_E0A0.nmconnection
+wget localhost/~xf0r3m/e5270/AP301A-2.4GHz.nmconnection -O /etc/NetworkManager/system-connections/AP301A-2.4GHz.nmconnection
+wget localhost/~xf0r3m/e5270/AP301A-5GHz.nmconnection -O /etc/NetworkManager/system-connections/AP301A-5GHz.nmconnection
+
+chmod 600 /etc/NetworkManager/system-connections/*;
+usermod -aG www-data xf0r3m
+chown -R www-data:www-data /var/www
+chmod -R 775 /var/www;
+#mkdir /home/xf0r3m/.ssh;
+#wget localhost/~xf0r3m/e5270/known_hosts -O /home/xf0r3m/.ssh/known_hosts;
+#chown -R xf0r3m:xf0r3m /home/xf0r3m/.ssh;
+#chmod 600 /home/xf0r3m/.ssh/known_hosts;
+#chmod 700 /home/xf0r3m/.ssh;
+wget localhost/~xf0r3m/e5270/oh-my-posh-install.sh -O /tmp/oh-my-posh-install.sh;
+bash /tmp/oh-my-posh-install.sh
+mv /root/.cache/oh-my-posh /usr/share;
+rm /tmp/oh-my-posh-install.sh;
+wget localhost/~xf0r3m/e5270/immudex-nu.omp.json.nu-deploy -O /usr/share/oh-my-posh/immudex-nu.omp.json;
+cd
+MLDepsUrl="https://gitweb.morketsmerke.org/?p=ML.git;a=blob_plain;f=dependecies.txt;hb=5e30c5b6d7f490bfdfffaa2cff615dc794534f8a";
+install_packages $(curl "$MLDepsUrl" 2> /dev/null | awk '{printf $1" "}')
+
+cd /tmp
+git clone https://git.morketsmerke.org/git/backup
+bash backup/cisco_pt.sh
+
+git clone https://github.com/aristocratos/bashtop.git
+cd bashtop;
+sudo make install;
+cd ..
+
+#git clone https://git.morketsmerke.org/git/backup;
+#bash ~/backup/cisco_pt.sh
+#rm -rf ~/backup;
+tidy;
diff --git a/bashrc b/bashrc
new file mode 100755 (executable)
index 0000000..1f121d0
--- /dev/null
+++ b/bashrc
@@ -0,0 +1,191 @@
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+# If not running interactively, don't do anything
+case $- in
+    *i*) ;;
+      *) return;;
+esac
+
+# don't put duplicate lines or lines starting with space in the history.
+# See bash(1) for more options
+HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+
+# make less more friendly for non-text input files, see lesspipe(1)
+#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+    debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+    xterm-color|*-256color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+#force_color_prompt=yes
+
+if [ -n "$force_color_prompt" ]; then
+    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+       # We have color support; assume it's compliant with Ecma-48
+       # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+       # a case would tend to support setf rather than setaf.)
+       color_prompt=yes
+    else
+       color_prompt=
+    fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+    ;;
+*)
+    ;;
+esac
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+    alias ls='ls --color=auto'
+    #alias dir='dir --color=auto'
+    #alias vdir='vdir --color=auto'
+
+    #alias grep='grep --color=auto'
+    #alias fgrep='fgrep --color=auto'
+    #alias egrep='egrep --color=auto'
+fi
+
+# colored GCC warnings and errors
+#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+# some more ls aliases
+#alias ll='ls -l'
+#alias la='ls -A'
+#alias l='ls -CF'
+
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ]; then
+    . ~/.bash_aliases
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if ! shopt -oq posix; then
+  if [ -f /usr/share/bash-completion/bash_completion ]; then
+    . /usr/share/bash-completion/bash_completion
+  elif [ -f /etc/bash_completion ]; then
+    . /etc/bash_completion
+  fi
+fi
+export POSH_THEME=/usr/share/oh-my-posh/immudex-nu.omp.json
+export POSH_SHELL_VERSION=$BASH_VERSION
+export POWERLINE_COMMAND="oh-my-posh"
+export POSH_PID=$$
+export CONDA_PROMPT_MODIFIER=false
+omp_start_time=""
+
+# start timer on command start
+PS0='${omp_start_time:0:$((omp_start_time="$(_omp_start_timer)",0))}$(_omp_ftcs_command_start)'
+# set secondary prompt
+PS2="$(/usr/local/bin/oh-my-posh print secondary --config="$POSH_THEME" --shell=bash --shell-version="$BASH_VERSION")"
+
+function _set_posh_cursor_position() {
+    # not supported in Midnight Commander
+    # see https://github.com/JanDeDobbeleer/oh-my-posh/issues/3415
+    if [[ "false" != "true" ]] || [[ -v MC_SID ]]; then
+        return
+    fi
+
+    local oldstty=$(stty -g)
+    stty raw -echo min 0
+
+    local COL
+    local ROW
+    IFS=';' read -sdR -p $'\E[6n' ROW COL
+
+    stty $oldstty
+
+    export POSH_CURSOR_LINE=${ROW#*[}
+    export POSH_CURSOR_COLUMN=${COL}
+}
+
+function _omp_start_timer() {
+    /usr/local/bin/oh-my-posh get millis
+}
+
+function _omp_ftcs_command_start() {
+    if [ "false" == "true" ]; then
+        printf "\e]133;C\a"
+    fi
+}
+
+# template function for context loading
+function set_poshcontext() {
+    return
+}
+
+function _omp_hook() {
+    local ret=$? pipeStatus=(${PIPESTATUS[@]})
+    if [[ "${#BP_PIPESTATUS[@]}" -gt "${#pipeStatus[@]}" ]]; then
+        pipeStatus=(${BP_PIPESTATUS[@]})
+    fi
+
+    local omp_stack_count=$((${#DIRSTACK[@]} - 1))
+    local omp_elapsed=-1
+    local no_exit_code="true"
+
+    if [[ -n "$omp_start_time" ]]; then
+        local omp_now=$(/usr/local/bin/oh-my-posh get millis --shell=bash)
+        omp_elapsed=$((omp_now-omp_start_time))
+        omp_start_time=""
+        no_exit_code="false"
+    fi
+
+    set_poshcontext
+    _set_posh_cursor_position
+
+    PS1="$(/usr/local/bin/oh-my-posh print primary --config="$POSH_THEME" --shell=bash --shell-version="$BASH_VERSION" --status="$ret" --pipestatus="${pipeStatus[*]}" --execution-time="$omp_elapsed" --stack-count="$omp_stack_count" --no-status="$no_exit_code" | tr -d '\0')"
+    return $ret
+}
+
+if [ "$TERM" != "linux" ] && [ -x "$(command -v /usr/local/bin/oh-my-posh)" ] && ! [[ "$PROMPT_COMMAND" =~ "_omp_hook" ]]; then
+    PROMPT_COMMAND="_omp_hook; $PROMPT_COMMAND"
+fi
+
+if [ "false" == "true" ]; then
+    echo ""
+fi
diff --git a/displays.xml b/displays.xml
new file mode 100755 (executable)
index 0000000..d55587d
--- /dev/null
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<channel name="displays" version="1.0">
+  <property name="ActiveProfile" type="string" value="Default"/>
+  <property name="Default" type="empty">
+    <property name="eDP-1" type="string" value="Laptop">
+      <property name="Active" type="bool" value="false"/>
+      <property name="EDID" type="string" value="5343d405190276b633aa40643bd5e4d49a184837"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="59.933878003184937"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="false"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="0"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+    <property name="HDMI-1" type="string" value="AOC International 22&quot;">
+      <property name="Active" type="bool" value="true"/>
+      <property name="EDID" type="string" value="54bea14d20b51c57cb8c8863163f1fe4b84263d9"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="60"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="true"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="0"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+    <property name="DP-1-1" type="string" value="Lenovo 24&quot;">
+      <property name="Active" type="bool" value="true"/>
+      <property name="EDID" type="string" value="905023039eff9dafaa23e5fcf9a53173842377e5"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="60"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="true"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="0"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+    <property name="DP-1-2" type="string" value="Lenovo 24&quot;">
+      <property name="Active" type="bool" value="true"/>
+      <property name="EDID" type="string" value="5ae21f008398468e984faebf9b6bf14817916fa8"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="60"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="false"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="1920"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+  </property>
+  <property name="Fallback" type="empty">
+    <property name="eDP-1" type="string" value="Laptop">
+      <property name="Active" type="bool" value="false"/>
+      <property name="EDID" type="string" value="5343d405190276b633aa40643bd5e4d49a184837"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="59.933878003184937"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="false"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="0"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+    <property name="HDMI-1" type="string" value="AOC International 22&quot;">
+      <property name="Active" type="bool" value="true"/>
+      <property name="EDID" type="string" value="54bea14d20b51c57cb8c8863163f1fe4b84263d9"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="60"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="true"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="0"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+    <property name="DP-1-1" type="string" value="Lenovo 24&quot;">
+      <property name="Active" type="bool" value="true"/>
+      <property name="EDID" type="string" value="905023039eff9dafaa23e5fcf9a53173842377e5"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="60"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="true"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="0"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+    <property name="DP-1-2" type="string" value="Lenovo 24&quot;">
+      <property name="Active" type="bool" value="true"/>
+      <property name="EDID" type="string" value="5ae21f008398468e984faebf9b6bf14817916fa8"/>
+      <property name="Resolution" type="string" value="1920x1080"/>
+      <property name="RefreshRate" type="double" value="60"/>
+      <property name="Rotation" type="int" value="0"/>
+      <property name="Reflection" type="string" value="0"/>
+      <property name="Primary" type="bool" value="false"/>
+      <property name="Scale" type="empty">
+        <property name="X" type="double" value="1"/>
+        <property name="Y" type="double" value="1"/>
+      </property>
+      <property name="Position" type="empty">
+        <property name="X" type="int" value="1920"/>
+        <property name="Y" type="int" value="0"/>
+      </property>
+    </property>
+  </property>
+  <property name="Notify" type="int" value="1"/>
+</channel>
diff --git a/immudex-motd2 b/immudex-motd2
new file mode 100755 (executable)
index 0000000..b15b2b5
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+#/usr/bin/figlet immudex;
+#source /usr/local/bin/library.sh;
+#ascii_colors;
+#echo -en "\e[1m"; echo "immudex" | /usr/bin/figlet | lolcat; echo -en "\e[0m";
+#echo "immudex" | /usr/bin/figlet | lolcat
+echo "E5270" | /usr/bin/figlet -f /usr/share/figlet-fonts/3d.flf | lolcat
+echo;
+echo "Today is: $(date)";
+echo;
+echo "System summary: ";
+cpuIdle=$(vmstat | tail -1 | awk '{printf $15}');
+cpuUsage=$((100 - $cpuIdle));
+echo -e "  \tCPU: ${cpuUsage}%";
+echo -e "  \tMEM: $(free -h | sed -n '2p' | awk '{printf $7}' | sed 's/i//') Free";
+if $(df -h 2> /dev/null | grep -q '/dev/mapper'); then
+  i=1;
+  echo -e "  \tCRYPT_PARTi: Free/Total (Usage%)";
+  amountOfDisks=$(df -h 2> /dev/null | grep '/dev/mapper' | wc -l | awk '{printf $1}');
+  while [ $i -le $amountOfDisks ]; do
+    diskSize=$(df -h 2> /dev/null | grep '/dev/mapper' | sed -n "${i}p" | awk '{printf $2}');
+    diskFree=$(df -h 2> /dev/null | grep '/dev/mapper' | sed -n "${i}p" | awk '{printf $4}');
+    diskUsage_perc=$(df -h 2> /dev/null | grep '/dev/mapper' | sed -n "${i}p" | sed 's/%//' | awk '{printf $5}');
+  #FCP = First Crypt Partition
+    echo -e "  \tCRYPT_PART${i}: ${diskFree}/${diskSize}   (${diskUsage_perc}%)";
+    i=$((i + 1));
+  done
+else
+  echo -e "  \tCRYPT_PART: N/A";
+fi
+echo -e "  \tIP: $(ip addr show $(sed -n '2p' /proc/net/route | awk '{printf $1}') | grep 'inet\ ' | awk '{printf $2"\n"}')";
+echo -e "  \tPROCESSES: $(ps -aux | wc -l | awk '{printf $1}')";
+if $(uptime | grep -q 'day'); then
+  utime=$(uptime | awk '{printf $3" "$4" "$5}' | sed -e 's/\,$//' -e 's,:,h ,');
+  echo -e "\tUPTIME: ${utime}m";
+else
+  utime=$(uptime | awk '{printf $3}' | sed -e 's/,//' -e 's,:,h ,');
+  if $(echo $utime | grep -q "h"); then
+    echo -e "  \tUPTIME: ${utime}m";
+  else
+    echo -e "  \tUPTIME: 0h ${utime}m";
+  fi
+fi
+echo -e " \t$(uptime | grep -o "load.*$" | tr '[a-z]' '[A-Z]')";
+echo;
+echo -e "morketsmerke.org @ 2025 https://github.com/xf0r3m/immudex";
+#source /usr/local/bin/immudex-updates;
+echo;
+echo "====================================================================";
diff --git a/immudex-nextcloud b/immudex-nextcloud
new file mode 100755 (executable)
index 0000000..792f536
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+export HOME='/ic0';
+
+while [ true ]; do
+  if [ -d /ic0/wymiana ]; then
+    /usr/local/bin/nextcloud;
+    exit 0;
+  else
+    sleep 5;
+  fi
+done
diff --git a/immudex-nu.omp.json.nu-deploy b/immudex-nu.omp.json.nu-deploy
new file mode 100755 (executable)
index 0000000..c641806
--- /dev/null
@@ -0,0 +1,68 @@
+{
+  "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
+  "blocks": [
+    {
+      "alignment": "left",
+      "segments": [
+        {
+          "background": "#000000",
+          "foreground": "#487cff",
+          "style": "plain",
+          "template": "<b>\udb86\ude4a</b> {{ .UserName }}@{{ .HostName }}/",
+          "type": "session"
+        },
+        {
+          "background": "#000000",
+          "foreground": "#5ac8ea",
+          "properties": {
+            "style": "folder"
+          },
+          "style": "plain",
+          "template": "\ue5ff {{ .Path }}/",
+          "type": "path"
+        },
+        {
+          "background": "#000000",
+          "foreground": "#de076f",
+          "properties": {
+            "branch_icon": "",
+            "fetch_upstream_icon": true
+          },
+          "style": "plain",
+          "template": "{{ .UpstreamIcon }}{{ .HEAD }}/",
+          "type": "git"
+        },
+        {
+          "background": "#000000",
+          "foreground": "#491545",
+          "properties": {
+            "paused_icon": "\uf04c ",
+            "playing_icon": "\ue602 ",
+            "stopped_icon": "\uf04d ",
+            "track_separator": " - "
+          },
+          "style": "plain",
+          "template": "\uf1bc {{ .Icon }}{{ if ne .Status \"stopped\" }}{{ .Artist }} - {{ .Track }}{{ end }}/",
+          "type": "spotify"
+        },
+        {
+          "background": "#000000",
+          "foreground": "#05b92d",
+         "foreground_templates": [
+            "{{ if gt .Code 0 }}#f1184c{{ end }}"
+          ],
+          "properties": {
+            "always_enabled": true
+          },
+          "style": "plain",
+          "template": "<f>\udb82\udfc6</f>",
+          "trailing_diamond": "\ue0b4",
+          "type": "status"
+        }
+      ],
+      "type": "prompt"
+    }
+  ],
+  "final_space": true,
+  "version": 2
+}
diff --git a/immudex-run b/immudex-run
new file mode 100755 (executable)
index 0000000..0f9fce2
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if [ $(ls /ic0 | wc -w) -gt 0 ]; then
+  export HOME=/ic0;
+  $1;
+else
+  notify-send "Run" "Datastore seems to be empty." --icon=dialog-error
+fi
+
diff --git a/immudex-run-thunderbird b/immudex-run-thunderbird
new file mode 100755 (executable)
index 0000000..c08389a
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+export HOME=/ic0;
+thunderbird;
diff --git a/launcher-17/17399705731.desktop b/launcher-17/17399705731.desktop
new file mode 100755 (executable)
index 0000000..192f29c
--- /dev/null
@@ -0,0 +1,20 @@
+[Desktop Entry]
+Name=Firefox ESR
+Name[pl]=Firefox ESR
+Comment=Browse the World Wide Web
+Comment[pl]=Przeglądanie stron WWW 
+GenericName=Web Browser
+GenericName[pl]=Przeglądarka WWW
+X-GNOME-FullName=Firefox ESR Web Browser
+X-GNOME-FullName[pl]=Przeglądarka WWW Firefox ESR
+Exec=/usr/local/bin/immudex-run firefox-esr
+Terminal=false
+X-MultipleArgs=false
+Type=Application
+Icon=firefox-esr
+Categories=Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
+StartupWMClass=firefox-esr
+StartupNotify=true
+X-XFCE-Source=file:///usr/share/applications/firefox-esr.desktop
+Path=
diff --git a/launcher-17/index.html b/launcher-17/index.html
new file mode 100755 (executable)
index 0000000..ab1d539
--- /dev/null
@@ -0,0 +1 @@
+<h1>It works</h1>
diff --git a/morketsmerke.nmconnection b/morketsmerke.nmconnection
new file mode 100755 (executable)
index 0000000..28d5fb5
--- /dev/null
@@ -0,0 +1,30 @@
+[connection]
+id=morketsmerke
+uuid=aebf5ac0-72a5-432f-ad57-08c125942378
+type=vpn
+autoconnect=false
+permissions=user:xf0r3m:;
+timestamp=1740503929
+
+[vpn]
+ca=/ic0/vpn/cacert.pem
+cert=/ic0/vpn/e5270_crt.pem
+cert-pass-flags=0
+comp-lzo=adaptive
+connection-type=tls
+dev=tun0
+key=/ic0/vpn/e5270_key.pem
+port=17003
+remote=194.110.5.148
+service-type=org.freedesktop.NetworkManager.openvpn
+
+[ipv4]
+ignore-auto-routes=true
+method=auto
+never-default=true
+
+[ipv6]
+addr-gen-mode=stable-privacy
+method=auto
+
+[proxy]
diff --git a/nextcloud b/nextcloud
new file mode 100755 (executable)
index 0000000..fe78e30
--- /dev/null
+++ b/nextcloud
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+nextcloudVersion=$(curl https://github.com/nextcloud-releases/desktop/releases.atom 2> /dev/null | grep -o '<title>.*</title>' | grep -v 'rc' | sed -n '2p' | sed -e 's,<title>,,' -e 's,</title>,,' | awk '{printf $2}')
+
+#echo $nextcloudVersion;
+sudo wget https://github.com/nextcloud-releases/desktop/releases/download/v${nextcloudVersion}/Nextcloud-${nextcloudVersion}-x86_64.AppImage -O /usr/local/bin/nextcloud;
+sudo chmod +x /usr/local/bin/nextcloud;
+
+sudo ln -s /usr/local/bin/nextcloud /usr/bin/nextcloud;
+
+# https://github.com/nextcloud-releases/desktop/releases/download/v3.15.1/Nextcloud-3.15.1-x86_64.AppImage
diff --git a/nextcloud.desktop b/nextcloud.desktop
new file mode 100755 (executable)
index 0000000..52d1249
--- /dev/null
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=3.15.1
+Type=Application
+Name=nextcloud
+Comment=Desktopowy klient usługi Nextcloud
+Exec=/usr/local/bin/immudex-nextcloud
+OnlyShowIn=XFCE;
+RunHook=0
+StartupNotify=false
+Terminal=false
+Hidden=false
+
diff --git a/oh-my-posh-install.sh b/oh-my-posh-install.sh
new file mode 100755 (executable)
index 0000000..5626860
--- /dev/null
@@ -0,0 +1,232 @@
+#!/usr/bin/env bash
+
+install_dir=""
+themes_dir=""
+executable=""
+
+error() {
+    printf "\e[31m$1\e[0m\n"
+    exit 1
+}
+
+info() {
+    printf "$1\n"
+}
+
+warn() {
+    printf "⚠️  \e[33m$1\e[0m\n"
+}
+
+help() {
+    # Display Help
+    echo "Install script for Oh My Posh"
+    echo
+    echo "Syntax: install.sh [-h|d|t]"
+    echo "options:"
+    echo "-h     Print this help."
+    echo "-d     Specify the installation directory. Defaults to /usr/local/bin or the directory where oh-my-posh is installed."
+    echo "-t     Specify the themes installation directory. Defaults to the oh-my-posh cache directory."
+    echo
+}
+
+while getopts ":hd:t:" option; do
+   case $option in
+      h) # display Help
+         help
+         exit;;
+      d) # Enter a name
+         install_dir=${OPTARG};;
+      t) # themes directory
+         themes_dir=${OPTARG};;
+     \?) # Invalid option
+         echo "Invalid option command line option. Use -h for help."
+         exit 1
+   esac
+done
+
+SUPPORTED_TARGETS="linux-386 linux-amd64 linux-arm linux-arm64 darwin-amd64 darwin-arm64 freebsd-386 freebsd-amd64 freebsd-arm freebsd-arm64"
+
+validate_dependency() {
+    if ! command -v $1 >/dev/null; then
+        error "$1 is required to install Oh My Posh. Please install $1 and try again.\n"
+    fi
+}
+
+validate_dependencies() {
+    validate_dependency curl
+    validate_dependency unzip
+    validate_dependency realpath
+    validate_dependency dirname
+}
+
+set_install_directory() {
+    if [ -n "$install_dir" ]; then
+        # expand directory
+        install_dir="${install_dir/#\~/$HOME}"
+        return 0
+    fi
+
+    # check if we have oh-my-posh installed, if so, use the executable directory
+    # to install into and follow symlinks
+    if command -v oh-my-posh >/dev/null; then
+        posh_dir=$(command -v oh-my-posh)
+        real_dir=$(realpath $posh_dir)
+        install_dir=$(dirname $real_dir)
+        info "Oh My Posh is already installed, updating existing installation in:"
+        info "  ${install_dir}"
+    else
+        install_dir="/usr/local/bin"
+    fi
+}
+
+validate_install_directory() {
+    #check if installation dir exists
+    if [ ! -d "$install_dir" ]; then
+        error "Directory ${install_dir} does not exist, set a different directory and try again."
+    fi
+        
+    # Check if regular user has write permission
+    if [ ! -w "$install_dir" ]; then
+        error "Cannot write to ${install_dir}. Please check write permissions or set a different directory and try again: \ncurl -s https://ohmyposh.dev/install.sh | bash -s -- -d {directory}"
+    fi
+
+    # check if the directory is in the PATH
+    good=$(
+        IFS=:
+        for path in $PATH; do
+        if [ "${path%/}" = "${install_dir}" ]; then
+            printf 1
+            break
+        fi
+        done
+    )
+
+    if [ "${good}" != "1" ]; then
+        warn "Installation directory ${install_dir} is not in your \$PATH"
+    fi
+}
+
+validate_themes_directory() {
+    
+    # Validate if the themes directory exists
+    if ! mkdir -p "$themes_dir" > /dev/null 2>&1; then
+        error "Cannot write to ${themes_dir}. Please check write permissions or set a different directory and try again: \ncurl -s https://ohmyposh.dev/install.sh | bash -s -- -t {directory}"
+    fi
+
+    #check user write permission
+    if [ ! -w "$themes_dir" ]; then
+        error "Cannot write to ${themes_dir}. Please check write permissions or set a different directory and try again: \ncurl -s https://ohmyposh.dev/install.sh | bash -s -- -t {directory}"
+    fi
+}
+
+install_themes() {
+    if [ -n "$themes_dir" ]; then
+        # expand directory
+        themes_dir="${themes_dir/#\~/$HOME}"
+    fi
+
+    cache_dir=$($executable cache path)
+
+    # validate if the user set the path to the themes directory
+    if [ -z "$themes_dir" ]; then
+        themes_dir="${cache_dir}/themes"
+    fi
+
+    validate_themes_directory
+
+    info "🎨 Installing oh-my-posh themes in ${themes_dir}\n"
+
+    zip_file="${cache_dir}/themes.zip"
+
+    url="https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v21.9.0/themes.zip"
+
+    http_response=$(curl -s -f -L $url -o $zip_file -w "%{http_code}")
+
+    if [ $http_response = "200" ] && [ -f $zip_file ]; then
+        unzip -o -q $zip_file -d $themes_dir
+        # make sure the files are readable and writable for all users
+        chmod a+rwX ${themes_dir}/*.omp.*
+        rm $zip_file
+    else
+        warn "Unable to download themes at ${url}\nPlease validate your curl, connection and/or proxy settings"
+    fi
+}
+
+install() {
+    arch=$(detect_arch)
+    platform=$(detect_platform)
+    target="${platform}-${arch}"
+
+    good=$(
+        IFS=" "
+        for t in $SUPPORTED_TARGETS; do
+        if [ "${t}" = "${target}" ]; then
+            printf 1
+            break
+        fi
+        done
+    )
+
+    if [ "${good}" != "1" ]; then
+        error "${arch} builds for ${platform} are not available for Oh My Posh"
+    fi
+
+    info "\nℹ️  Installing oh-my-posh for ${target} in ${install_dir}"
+
+    executable=${install_dir}/oh-my-posh
+    url=https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v21.9.0/posh-${target}
+
+    info "⬇️  Downloading oh-my-posh from ${url}"
+
+    http_response=$(curl -s -f -L $url -o $executable -w "%{http_code}")
+
+    if [ $http_response != "200" ] || [ ! -f $executable ]; then
+        error "Unable to download executable at ${url}\nPlease validate your curl, connection and/or proxy settings"
+    fi
+
+    chmod +x $executable
+
+    install_themes
+
+    info "🚀 Installation complete.\n\nYou can follow the instructions at https://ohmyposh.dev/docs/installation/prompt"
+    info "to setup your shell to use oh-my-posh."
+    if [ $http_response = "200" ]; then
+        info "\nIf you want to use a built-in theme, you can find them in the ${themes_dir} directory:"
+        info "  oh-my-posh init {shell} --config ${themes_dir}/{theme}.omp.json\n"
+    fi
+}
+
+detect_arch() {
+  arch="$(uname -m | tr '[:upper:]' '[:lower:]')"
+
+  case "${arch}" in
+    x86_64) arch="amd64" ;;
+    armv*) arch="arm" ;;
+    arm64) arch="arm64" ;;
+    aarch64) arch="arm64" ;;
+    i686) arch="386" ;;
+  esac
+
+  if [ "${arch}" = "arm64" ] && [ "$(getconf LONG_BIT)" -eq 32 ]; then
+    arch=arm
+  fi
+
+  printf '%s' "${arch}"
+}
+
+
+detect_platform() {
+  platform="$(uname -s | awk '{print tolower($0)}')"
+
+  case "${platform}" in
+    linux) platform="linux" ;;
+    darwin) platform="darwin" ;;
+  esac
+
+  printf '%s' "${platform}"
+}
+
+validate_dependencies
+set_install_directory
+validate_install_directory
+install
diff --git a/org.keepassxc.KeePassXC.2.desktop b/org.keepassxc.KeePassXC.2.desktop
new file mode 100755 (executable)
index 0000000..ee62ded
--- /dev/null
@@ -0,0 +1,47 @@
+[Desktop Entry]
+Name=KeePassXC (immudex)
+GenericName=Password Manager
+GenericName[ar]=مدير كلمات المرور
+GenericName[bg]=Мениджър на пароли
+GenericName[ca]=Gestor de contrasenyes
+GenericName[cs]=Aplikace pro správu hesel
+GenericName[da]=Adgangskodehåndtering
+GenericName[de]=Passwortverwaltung
+GenericName[es]=Gestor de contraseñas
+GenericName[et]=Paroolihaldur
+GenericName[fi]=Salasanamanageri
+GenericName[fr]=Gestionnaire de mot de passe
+GenericName[hu]=Jelszókezelő
+GenericName[id]=Pengelola Sandi
+GenericName[it]=Gestione password
+GenericName[ja]=パスワードマネージャー
+GenericName[ko]=암호 관리자
+GenericName[lt]=Slaptažodžių tvarkytuvė
+GenericName[nb]=Passordhåndterer
+GenericName[nl]=Wachtwoordbeheer
+GenericName[pl]=Menedżer haseł
+GenericName[pt_BR]=Gerenciador de Senhas
+GenericName[pt]=Gestor de palavras-passe
+GenericName[ro]=Manager de parole
+GenericName[ru]=Менеджер паролей
+GenericName[sk]=Správca hesiel
+GenericName[sv]=Lösenordshanterare
+GenericName[th]=แอพจัดการรหัสผ่าน
+GenericName[tr]=Parola yöneticisi
+GenericName[uk]=Розпорядник паролів
+GenericName[zh_CN]=密码管理器
+GenericName[zh_TW]=密碼管理員
+Comment=Community-driven port of the Windows application “KeePass Password Safe”
+Comment[da]=Fællesskabsdrevet port af Windows-programmet “KeePass Password Safe”
+Comment[et]=Kogukonna arendatav port Windowsi programmist KeePass Password Safe
+Comment[ru]=Разработанный сообществом порт Windows-приложения KeePass Password Safe
+Exec=/usr/local/bin/immudex-run keepassxc
+TryExec=keepassxc
+Icon=keepassxc
+StartupWMClass=keepassxc
+StartupNotify=true
+Terminal=false
+Type=Application
+Version=1.0
+Categories=Utility;Security;Qt;
+MimeType=application/x-keepass2;
diff --git a/pointers.xml b/pointers.xml
new file mode 100755 (executable)
index 0000000..1aecdb4
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<channel name="pointers" version="1.0">
+  <property name="AlpsPS2_ALPS_GlidePoint" type="empty">
+    <property name="Properties" type="empty">
+      <property name="libinput_Tapping_Enabled" type="int" value="1"/>
+    </property>
+  </property>
+</channel>
diff --git a/template.sh b/template.sh
new file mode 100644 (file)
index 0000000..8fbe442
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+function update_packages() {
+  apt update;
+  apt upgrade -y;
+}
+
+function install_packages() {
+  apt install $@ -y;
+}
+
+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() {
+  useradd -m -s /bin/bash user;
+  cp -rvv /etc/skel/.??* /home/user;
+  chown -R user:user /home/user;
+  echo "user:user1" | chpasswd;
+
+  useradd -m -s /bin/bash xf0r3m;
+  cp -rvv /etc/skel/.??* /home/xf0r3m;
+  chown -R xf0r3m:xf0r3m /home/xf0r3m;
+  echo "xf0r3m:xf0r3m1" | chpasswd;
+  set_xfce4_notes_autostart
+
+  usermod -aG libvirt,libvirt-qemu xf0r3m;
+  usermod -aG libvirt,libvirt-qemu user;
+
+  echo "root:toor" | chpasswd;
+}
+
+function tidy() {
+  apt-get clean;
+  apt-get clean;
+  apt-get autoremove -y;
+  apt-get autoclean;
+  rm -rf ~/immudex;
+  if [ -d ~/xfcedebian ]; then rm -rf ~/xfcedebian; fi
+  rm /var/cache/apt/*.bin;
+  echo > ~/.bash_history;
+  history -c   
+}
+
+function set_default_wallpaper() {
+  rm /usr/share/images/desktop-base/default;
+  ln -s /usr/share/images/desktop-base/$1 /usr/share/images/desktop-base/default;
+}
+
+function make_changelog_file() {
+  ARCH=$1;
+  DEBVER=$debver;
+  COMPILATION_DATE=$(date);
+  COMMIT=$(cd ${HOME}/immudex && git log --pretty=oneline | head -1);
+  ADDONS=$(grep 'bash ~/immudex/addons' ${HOME}/immudex/versions/base.sh | grep -v '^#' | cut -d "/" -f4 | sed 's/;//g' | awk '{printf $1" "}');
+
+  echo "ARCH=\"${ARCH}\"" > $FILE;
+  echo "DEBVER=\"${DEBVER}\"" >> $FILE;
+  if [ "$cname" ]; then
+    echo "CANONICAL_NAME=\"${cname}\"" >> $FILE;
+  fi
+  if [ "$version" ]; then
+    echo "VERSION=\"${version}\"" >> $FILE;
+  fi
+  echo "COMPILATION_DATE=\"${COMPILATION_DATE}\"" >> $FILE;
+  echo "COMMIT=\"${COMMIT}\"" >> $FILE;
+  echo "ADDONS=\"${ADDONS}\"" >> $FILE;
+  echo "-== Diffrences in version file ==-" >> $FILE;
+  (cd ${HOME}/e5270; git diff versions/base.sh) >> $FILE;
+}
diff --git a/whiskermenu-1.rc b/whiskermenu-1.rc
new file mode 100755 (executable)
index 0000000..29145f0
--- /dev/null
@@ -0,0 +1,83 @@
+favorites=gvim.desktop,virt-manager.desktop,org.keepassxc.KeePassXC.2.desktop,qmmp-1.desktop,vlc.desktop,chirp.desktop,libreoffice-calc.desktop
+recent=vlc.desktop,xfce4-web-browser.desktop,librewolf.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=1
+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/xfce4-panel.xml b/xfce4-panel.xml
new file mode 100755 (executable)
index 0000000..1572829
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<channel name="xfce4-panel" version="1.0">
+  <property name="configver" type="int" value="2"/>
+  <property name="panels" type="array">
+    <value type="int" value="1"/>
+    <property name="dark-mode" type="bool" value="true"/>
+    <property name="panel-1" type="empty">
+      <property name="position" type="string" value="p=8;x=640;y=786"/>
+      <property name="length" type="uint" value="100"/>
+      <property name="position-locked" type="bool" value="true"/>
+      <property name="icon-size" type="uint" value="16"/>
+      <property name="size" type="uint" value="26"/>
+      <property name="plugin-ids" type="array">
+        <value type="int" value="1"/>
+        <value type="int" value="15"/>
+        <value type="int" value="5"/>
+        <value type="int" value="17"/>
+        <value type="int" value="7"/>
+        <value type="int" value="14"/>
+        <value type="int" value="16"/>
+        <value type="int" value="2"/>
+        <value type="int" value="3"/>
+        <value type="int" value="6"/>
+        <value type="int" value="8"/>
+        <value type="int" value="9"/>
+        <value type="int" value="10"/>
+        <value type="int" value="11"/>
+        <value type="int" value="12"/>
+        <value type="int" value="13"/>
+        <value type="int" value="4"/>
+      </property>
+      <property name="enable-struts" type="bool" value="true"/>
+    </property>
+  </property>
+  <property name="plugins" type="empty">
+    <property name="plugin-2" type="string" value="tasklist">
+      <property name="grouping" type="uint" value="1"/>
+    </property>
+    <property name="plugin-3" type="string" value="separator">
+      <property name="expand" type="bool" value="true"/>
+      <property name="style" type="uint" value="0"/>
+    </property>
+    <property name="plugin-6" type="string" value="systray">
+      <property name="square-icons" type="bool" value="true"/>
+      <property name="known-legacy-items" type="array">
+        <value type="string" value="nawiązano bezprzewodowe połączenie sieciowe wi-fi „ap301a-2.4ghz”: ap301a-2.4ghz (86%)"/>
+        <value type="string" value="notatki"/>
+        <value type="string" value="nawiązano ethernetowe połączenie sieciowe „połączenie przewodowe 1”"/>
+        <value type="string" value="nawiązano ethernetowe połączenie sieciowe „wired connection 1”"/>
+        <value type="string" value="aplet networkmanager"/>
+      </property>
+      <property name="known-items" type="array">
+        <value type="string" value="blueman"/>
+        <value type="string" value="vlc"/>
+      </property>
+    </property>
+    <property name="plugin-8" type="string" value="pulseaudio">
+      <property name="enable-keyboard-shortcuts" type="bool" value="true"/>
+      <property name="show-notifications" type="bool" value="true"/>
+      <property name="mpris-players" type="string" value="vlc"/>
+    </property>
+    <property name="plugin-9" type="string" value="power-manager-plugin"/>
+    <property name="plugin-10" type="string" value="notification-plugin"/>
+    <property name="plugin-11" type="string" value="separator">
+      <property name="style" type="uint" value="0"/>
+    </property>
+    <property name="plugin-12" type="string" value="clock">
+      <property name="digital-format" type="string" value="%_H:%M"/>
+      <property name="digital-time-format" type="string" value="%_H:%M"/>
+      <property name="digital-layout" type="uint" value="3"/>
+    </property>
+    <property name="plugin-13" type="string" value="separator">
+      <property name="style" type="uint" value="0"/>
+    </property>
+    <property name="plugin-1" type="string" value="whiskermenu">
+      <property name="button-title" type="string" value="Start"/>
+      <property name="button-icon" type="string" value="debian-logo"/>
+      <property name="show-button-title" type="bool" value="true"/>
+      <property name="launcher-icon-size" type="int" value="3"/>
+      <property name="favorites-in-recent" type="bool" value="true"/>
+      <property name="position-search-alternate" type="bool" value="true"/>
+      <property name="position-categories-alternate" type="bool" value="true"/>
+      <property name="show-command-logoutuser" type="bool" value="true"/>
+      <property name="show-command-restart" type="bool" value="true"/>
+      <property name="show-command-shutdown" type="bool" value="true"/>
+      <property name="show-command-suspend" type="bool" value="true"/>
+      <property name="show-command-logout" type="bool" value="false"/>
+      <property name="favorites" type="array">
+        <value type="string" value="xfce4-web-browser.desktop"/>
+        <value type="string" value="xfce4-file-manager.desktop"/>
+        <value type="string" value="xfce4-terminal-emulator.desktop"/>
+        <value type="string" value="qmmp-1.desktop"/>
+        <value type="string" value="gvim.desktop"/>
+        <value type="string" value="vlc.desktop"/>
+        <value type="string" value="virt-manager.desktop"/>
+      </property>
+      <property name="recent" type="array">
+      </property>
+    </property>
+    <property name="plugin-4" type="string" value="showdesktop"/>
+    <property name="plugin-5" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="16844254192.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-7" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="16844254905.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-14" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="16844255236.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-15" type="string" value="separator">
+      <property name="style" type="uint" value="0"/>
+    </property>
+    <property name="plugin-16" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="16967093831.desktop"/>
+      </property>
+    </property>
+    <property name="plugin-17" type="string" value="launcher">
+      <property name="items" type="array">
+        <value type="string" value="17399705731.desktop"/>
+      </property>
+    </property>
+  </property>
+</channel>