diff --git a/README.md b/README.md
index bc6fcb144a9fe627b68360d0e6561866ff6a47a2..eb1804cb69bc4b56b0152ed097b0b61033f8931c 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,3 @@
 # pc-setup-scripts
 
 ## todos
-- proton vpn (if repo does not change)
-- flatseal
-- editors as flatpak
-- obsidian as flatpak
-- add user to docker & vboxusers group
diff --git a/install.sh b/install.sh
index cf11e4f92d73027176ca83df0fe692ea30fe39a2..d0370731a8359c7dc7515f6894c4149f5cc158eb 100644
--- a/install.sh
+++ b/install.sh
@@ -45,6 +45,10 @@ $element_desktop_key "$element_desktop_label" $element_desktop_enabled \
 $dconf_editor_key "$dconf_editor_label" $dconf_editor_enabled \
 $openssh_server_key "$openssh_server_label" $openssh_server_enabled \
 $openconnect_key "$openconnect_label" $openconnect_enabled \
+$protonvpn_key "$protonvpn_label" $protonvpn_enabled \
+$flatseal_key "$flatseal_label" $flatseal_enabled \
+$wireguard_key "$wireguard_label" $wireguard_enabled \
+$remmina_key "$remmina_label" $remmina_enabled \
 $swap_key "$swap_label" $swap_enabled \
 3>&1 1>&2 2>&3)
 IFS=' ' read -a selected_options <<< $selected_tags
@@ -114,9 +118,6 @@ do
     elif [ $option = $intellij_idea_key ]
     then
         install_intellij_idea
-    elif [ $option = $teams_key ]
-    then
-        install_teams
     elif [ $option = $linssid_key ]
     then
         install_linssid
@@ -174,6 +175,18 @@ do
     elif [ $option = $openconnect_key ]
     then
         install_openconnect
+    elif [ $option = $protonvpn_key ]
+    then
+        install_protonvpn
+    elif [ $option = $flatseal_key ]
+    then
+        install_flatseal
+    elif [ $option = $wireguard_key ]
+    then
+        install_wireguard
+    elif [ $option = $remmina_key ]
+    then
+        install_remmina
     elif [ $option = $swap_key ]
     then
         setup_swap
diff --git a/install_functions.sh b/install_functions.sh
index 28b3f1ce989440d2374e749dd91c833291b5375e..0737d3639c4d135030f6602d35cbe42ea451a03b 100644
--- a/install_functions.sh
+++ b/install_functions.sh
@@ -7,11 +7,12 @@ snap_classic_arg="--classic"
 snap_channel_arg="--channel"
 snap_dangerous_arg="--dangerous"
 snap_alias_cmd="sudo snap alias"
-flatpak_install_cmd="sudo flatpak install -y"
+flatpak_install_cmd="flatpak install --user -y"
 flathub_repo="flathub"
 mkdir_cmd="mkdir -p"
 gtk_launch_cmd="gtk-launch"
 flatpak_run_cmd="flatpak run"
+add_user_to_group_cmd="sudo usermod -aG"
 
 command_exists() {
     cmd=$1
@@ -40,7 +41,7 @@ flatpak_add_repo() {
     repo_name=$1
     repo_url=$2
 
-    sudo flatpak remote-add --if-not-exists $repo_name $repo_url
+    flatpak remote-add --user --if-not-exists $repo_name $repo_url
 }
 
 install_flatpak() {
@@ -51,9 +52,10 @@ install_flatpak() {
 
 install_flatpak_app() {
     app_name=$1
+    flatpak_repo="flathub"
 
     install_flatpak
-    $flatpak_install_cmd $app_name
+    $flatpak_install_cmd $flatpak_repo $app_name
 }
 
 make_application_entry() {
@@ -86,8 +88,11 @@ install_firefox() {
 }
 
 install_vs_code() {
-    $snap_install_cmd code $snap_classic_arg
-    make_autostart_entry vscode "Visual Studio Code" "code" # flatpak not possible due to sandboxing (virtualenv modules not working)
+    # set titlebar style: https://stackoverflow.com/questions/64344700/vscode-remove-white-file-menu-on-linux
+    flatpak_id="com.visualstudio.code"
+
+    install_flatpak_app $flatpak_id
+    make_autostart_entry vscode "Visual Studio Code" "$flatpak_run_cmd $flatpak_id"
 }
 
 install_spotify() {
@@ -119,6 +124,7 @@ install_mono_complete() {
 
 install_virtualbox() {
     $apt_install_cmd virtualbox
+    $add_user_to_group_cmd vboxusers $username
 }
 
 install_vlc() {
@@ -127,6 +133,8 @@ install_vlc() {
 
 install_docker() {
     $apt_install_cmd docker.io
+    $add_user_to_group_cmd docker $username
+
 }
 
 install_kubectl() {
@@ -171,6 +179,7 @@ install_gridsite-clients() {
 }
 
 install_flameshot() {
+    # Due to a bug in flameshot, follow those steps: open flameshot launcher, take screenshot from tray icon, allow permissions
     flatpak_id="org.flameshot.Flameshot"
 
     install_flatpak_app $flatpak_id
@@ -181,10 +190,6 @@ install_intellij_idea() {
     install_flatpak_app com.jetbrains.IntelliJ-IDEA-Community
 }
 
-install_teams() {
-    $snap_install_cmd teams
-}
-
 install_linssid() {
     $apt_install_cmd linssid
 }
@@ -218,21 +223,10 @@ install_dl_driver() {
 }
 
 install_obsidian() {
-    install_curl
-    obsidian_folder="$portable_programs_path/Obsidian"
-    obsidian_file="$obsidian_folder/Obsidian.AppImage"
-    obsidian_logo_file="$obsidian_folder/logo.png"
+    flatpak_id="md.obsidian.Obsidian"
 
-    firefox --new-window https://obsidian.md/download
-    read -p "enter obsidian release number (e.g. 0.15.9): " obsidian_release
-    ensure_dir $obsidian_folder
-    curl -L https://github.com/obsidianmd/obsidian-releases/releases/download/v$obsidian_release/Obsidian-${obsidian_release}.AppImage -o $obsidian_file
-    chmod +x $obsidian_file
-
-    curl "https://upload.wikimedia.org/wikipedia/commons/1/10/2023_Obsidian_logo.svg" -o $obsidian_logo_file
-
-    make_application_entry obsidian Obsidian $obsidian_file $obsidian_logo_file
-    make_autostart_entry obsidian Obsidian "$gtk_launch_cmd obsidian"
+    install_flatpak_app $flatpak_id
+    make_autostart_entry obsidian Obsidian "$flatpak_run_cmd $flatpak_id"
 }
 
 install_staruml() {
@@ -252,7 +246,12 @@ install_staruml() {
 }
 
 install_node() {
-    $snap_install_cmd node $snap_classic_arg
+    install_curl
+    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
+
+    export NVM_DIR="$HOME/.nvm"
+    \. "$NVM_DIR/nvm.sh"
+    nvm install 20
 }
 
 install_webstorm() {
@@ -303,7 +302,7 @@ install_virtualenv() {
 }
 
 install_rider() {
-    $snap_install_cmd rider $snap_classic_arg
+    install_flatpak_app com.jetbrains.Rider
 }
 
 install_nextcloud_client() {
@@ -339,3 +338,30 @@ install_openssh_server() {
 install_openconnect() {
     $apt_install_cmd openconnect network-manager-openconnect network-manager-openconnect-gnome
 }
+
+install_protonvpn() {
+    firefox --new-window https://protonvpn.com/support/official-linux-vpn-ubuntu
+    read -p "latest repo version (e.g. 1.0.4) " proton_repo_version
+    repo_installer_file="$downloads_path/proton_repo.deb"
+    wget https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_${proton_repo_version}_all.deb -O $repo_installer_file
+    sudo dpkg -i $repo_installer_file
+
+    $apt_update_cmd
+    $apt_install_cmd proton-vpn-gnome-desktop
+
+    make_autostart_entry proton-vpn "proton vpn" "protonvpn-app"
+}
+
+install_flatseal() {
+    flatpak_id="com.github.tchx84.Flatseal"
+
+    install_flatpak_app $flatpak_id
+}
+
+install_wireguard() {
+    $apt_install_cmd wireguard
+}
+
+install_remmina() {
+    install_flatpak_app org.remmina.Remmina
+}
diff --git a/options.sh b/options.sh
index a2bf19d29773c45707788c783fe9cf730d36d230..52ca3effdad0756030439a2d2f900c94fced0ac8 100644
--- a/options.sh
+++ b/options.sh
@@ -42,6 +42,10 @@ element_desktop_enabled=$checkbox_unchecked
 dconf_editor_enabled=$checkbox_unchecked
 openssh_server_enabled=$checkbox_unchecked
 openconnect_enabled=$checkbox_unchecked
+protonvpn_enabled=$checkbox_unchecked
+flatseal_enabled=$checkbox_unchecked
+wireguard_enabled=$checkbox_unchecked
+remmina_enabled=$checkbox_unchecked
 swap_enabled=$checkbox_unchecked
 
 # labels
@@ -84,6 +88,10 @@ element_desktop_key="element_desktop"
 dconf_editor_key="dconf_editor"
 openssh_server_key="openssh_server"
 openconnect_key="openconnect"
+protonvpn_key="proton_vpn"
+flatseal_key="flatseal"
+wireguard_key="wireguard"
+remmina_key="remmina"
 swap_key="swap"
 
 # show text
@@ -126,4 +134,8 @@ element_desktop_label="element desktop"
 dconf_editor_label="dconf-editor"
 openssh_server_label="openssh-server"
 openconnect_label="openconnect"
+protonvpn_label="proton-vpn"
+flatseal_label="flatseal"
+wireguard_label="wireguard"
+remmina_label="remmina"
 swap_label="swap"