Instructions for Ubuntu 22 LTS Desktop
First step is to follow the Ubuntu server installation instructions for preliminary setup common to both servers and GUI versions. Note that some requirements may be different, e.g. generally no need to host a mail server in Ubuntu Desktop.
Add new user / users to groups. For me, the default user is also already superuser. Adding to dialout for tty access:
sudo adduser justin dialout
If SSH access to the desktop is needed, install OpenSSH server:
sudo apt install openssh-server sudo systemctl start ssh sudo systemctl enable ssh
A general listing of what I typically use:
# Command line stuff sudo apt install git minicom vim subversion # Programming stuff sudo apt install tk docker docker-compose # Utilities sudo apt install ffmpeg pandoc imagemagick okular xfig # Sysadmin utilities sudo apt install htop # Other utilities from different channels # Inkscape sudo add-apt-repository ppa:inkscape.dev/stable sudo apt install inkscape # Visual Studio Code # Alternatively using downloader: https://code.visualstudio.com/download sudo apt-get install wget gpg wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' rm -f packages.microsoft.gpg sudo apt install apt-transport-https sudo apt update sudo apt install code # Tailscale curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list sudo apt update sudo apt install tailscale sudo tailscale up --accept-routes # Zerotier curl -s https://install.zerotier.com | sudo bash sudo zerotier-cli info sudo zerotier-cli join d5e04297a16fa690 sudo zerotier-cli listnetworks # Signal, from https://signal.org/download/# wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg cat signal-desktop-keyring.gpg | sudo tee -a /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\ sudo tee -a /etc/apt/sources.list.d/signal-xenial.list sudo apt update && sudo apt install signal-desktop # Telegram sudo snap install telegram-desktop # Ubuntu application settings editor sudo apt install dconf-editor
See the following links for other software:
Deprecated list of software (inherited from Ubuntu 20.04 LTS Desktop):
wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list' sudo apt update sudo apt install atom # text editor sudo snap install bitwarden # password management wget https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub | sudo apt-key add - sudo wget -O /etc/apt/sources.list.d/openvpn3.list https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-focal.list sudo apt update sudo apt install openvpn3 # OpenVPN client
Double-clicking in Nautilus to run scripts is effectively deprecated. The AskUbuntu forum answer suggests one of the following:
~/bin
and run from command palette (Alt-F2).desktop
launcher within ~/.local/share/applications
According to a different answer, the directory to store executable scripts is actually /usr/bin
. Using the Alternatives system to invoke your default terminal and execute the command:
#!/usr/bin/env bash x-terminal-emulator -e "ssh -t belgianwit \"cd ~/projects/qkd/; exec \$SHELL -l\""
The script is invoked by bringing up the Run interface with Alt-F2:
Quick tip on GNOME Shell Extensions for Ubuntu 22.04: GNOME Extensions connector for Firefox is effectively not supported since Firefox now comes as a snap package (which is thoroughly sandboxed) by default. Don't install the Firefox connector and chrome-gnome-shell
, and use the extension manager instead:
sudo apt install gnome-shell-extension-manager
Struggling with enabling VNC to serve :0 display. Also need to disable gnome-remote-desktop
, which does not have an easily searchable way to disable via command line (gconftool
seems to be an old method not applicable to Ubuntu 22). Note to also avoid instructions that tell you to install a desktop environment - these are catered to people running hosted servers that do not automatically come with a desktop environment.
Turns out for x0vncserver
, need to install a scraping server edition supplied by TigerVNC instead of the standalone server that uses virtual displays.
Sudden realization that the display is Wayland, and not X, and hence does not seem fully compatible with X-related software.
For corner snapping like in Windows (solution adapted from SO), use the fork of WinTile with PRs merged (to allow out-of-box support for Ubuntu 22). Instructions below:
mkdir -p ~/.local/share/gnome-shell/extensions cd ~/.local/share/gnome-shell/extensions git clone https://github.com/Captn138/wintile-reloaded.git mv wintile-reloaded wintile-reloaded@jaajeur.xyz # Reload GNOME to load extension, by logging out gnome-session-quit # Alternatively, enable from Extensions Manager gnome-extensions enable wintile-reloaded@jaajeur.xyz