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"