Installation steps¶
This is intended for and has been tested on Ubuntu 24.04 noble numbat.
Important
Paste the code copied from this guide in the terminal using Ctrl+Shift+V.
Important
Do everything below in order, otherwise things will break.
Important
Do NOT run the commands twice. Some will not produce undesired effects, but others will create problems.
Todo
Put all scripts into shell files and include them via mkdocs snippet. Inlcude the following for all to ensure they fail fast:
Grub¶
Warning
Perform only if you gave problems booting due to graphics drivers.
This is useful to prevent graphic driver issues, since the OS makes assumptions and changes to video resolution before loading the GUI.
This basically removes quiet and splash while adding nomodeset.
The only downside is cosmetic, i.e. no splash screen and verbose output.
sudo sed -i \
's~GRUB_CMDLINE_LINUX_DEFAULT=.*~GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"~' \
/etc/default/grub
sudo update-grub
Swap¶
Info
Nothing to do here yet, only pending research.
Reference articles: Part 1 Part 2
Apt Packages - tools and prerequisites¶
Follow the guide.
Set up Keyring for subsequent apt packages¶
Warning
You MUST do this before continuing, otherwise scripts are likely to fail.
To ensure keyring dir is created and has the right permissions:
All the keyring-using apt installations are updated to respect the deprecation of the insecure
keyring management methods apt-key add, apt-key adv, and apt-add-repository.
This is a painful departure from a simple process to understanding the new system, which is both more secure and more complex to use.
A comprehensive article on the topic can be found here:
Warning
The assertion below doesn’t match some of the installation guides from major vendors
On /usr/share/keyrings vs /etc/apt/keyrings:
if it is a key from a maintainer and it should be eventually updated by him (at the latest if you install a package called
REPONAME-archive-keyring) then it must be placed at/usr/share/keyrings, if no mater what, only you as the “local admin” should be able touch the key, you must place it at/etc/apt/keyrings
Source:
https://askubuntu.com/questions/1437207/what-is-the-right-place-to-put-keyrings-for-repositories
Networking¶
Follow the guide.
Browsers¶
Follow the guide.
Gnome extensions¶
Follow the guide.
Fonts¶
Follow the guide.
Terminal¶
We strongly recommend using terminator, which should replace the native terminal
and be available via the ++Ctrl+Alt+T++ shortcut.
To set the color of the title bar from red to something less tiring:
tee ${HOME}/.config/terminator/config > /dev/null <<EOF
[profiles]
[[default]]
title_transmit_bg_color = "#613583"
EOF
NyanCat for terminal, an absolute must¶
Todo
See what the correct install dir for this should be, likely in .local
NYANCAT_INSTALL_DIR="${HOME}/.nyancat"
git clone "https://github.com/klange/nyancat.git" "${NYANCAT_INSTALL_DIR}"
make -C "${NYANCAT_INSTALL_DIR}"
ln -s -f "${NYANCAT_INSTALL_DIR}/src/nyancat" "${HOME}/.local/bin/nyancat"
Shell: Zsh + Oh My Zsh + PowerLevel10k¶
Follow the guide.
Languages and tool chains¶
Warning
Every language is optional based on your project needs and inclinations.
Python¶
Follow the guide.
Golang¶
Follow the guide.
Java¶
Todo
Implement.
Scala¶
SCALA_CLI_SETUP="$(mktemp)"
curl -sS -L -f "https://github.com/coursier/launchers/raw/master/cs-x86_64-pc-linux.gz" \
| gzip -d > "${SCALA_CLI_SETUP}"
chmod +x "${SCALA_CLI_SETUP}"
"${SCALA_CLI_SETUP}" setup
rm "${SCALA_CLI_SETUP}"
# TODO: put java home in .zshrc
# get java home, enter for the Metals extension in VS Code in settings
cs java -XshowSettings:properties -version 2>&1 | grep "java.home" | sed 's/.*= *//'
Rust¶
https://www.rust-lang.org/tools/install
Todo
Implement.
SSH¶
Warning
You MUST do this before the GitHub setup to set up access via SSH key.
Follow the guide.
Source control¶
Git¶
Follow the guide.
Github¶
Follow the guide.
GitLab¶
Follow the guide.
Docker¶
Follow the guide.
Communication¶
Slack¶
Warning
Optional. Install only if the web version has issues for you.
Teams¶
Use the web version.
Do NOT install any version you may find online. All versions are outdated and Microsoft advises to use the web app.
Software Development¶
Visual Studio Code¶
https://code.visualstudio.com/docs/setup/linux
Pycharm¶
https://www.jetbrains.com/help/pycharm/installation-guide.html#snap
Depending on your license choice:
or:
Media¶
Spotify¶
File management¶
Double Commander¶
Todo
Add config
System monitor¶
Glances¶
https://github.com/nicolargo/glances
Benchmarking¶
Hyperfine¶
HYPERFINE_DEB="$(mktemp)"
HYPERFINE_REPO_URL="https://api.github.com/repos/sharkdp/hyperfine/releases/latest"
HYPERFINE_URL=$(
curl -sS -L "${HYPERFINE_REPO_URL}" \
| grep 'browser_download_url.*hyperfine_.*amd64\.deb' \
| sed -E 's/.*"([^"]+)"\s*$/\1/' \
)
curl -sS -L -o "${HYPERFINE_DEB}" "${HYPERFINE_URL}"
sudo dpkg -i "${HYPERFINE_DEB}"
rm "${HYPERFINE_DEB}"
Disable Ctr-Shift-U system shortcut¶
https://superuser.com/questions/358749/how-to-disable-ctrlshiftu-in-ubuntu-linux
Problem
The problem is that with the “Ibus” input method, Ctrl+Shift+U is by default configured to the “Unicode Code Point” shortcut.
You can try this: Type Ctrl+Shift+U, then an (underlined) u appears. If you then type a unicode code point number in hex (e.g. 21, the ASCII/unicode CP for !) and press enter, it is replaced with the corresponding character.
Check if this is set:
Set it to something else:
If the shell command fails, this shortcut can be changed or disabled using the ibus-setup utility:
graph TD
a1[Run 'ibus-setup'] --> b[Go to 'Emoji']
a2[Open IBus Preferences] -.-> b
b --> c(Go to 'Unicode code point:' <br />Click on the three dots, i.e. ...)
c --> d[In the dialog, click 'Delete', then 'OK']
d --> e[Close the IBus Preferences window]
Autostart¶
Warning
Optional.
USER_AUTOSTART_DIR="${HOME}/.config/autostart"
mkdir -p ${USER_AUTOSTART_DIR}
APT_AUTOSTART_APPS=( \
doublecmd \
terminator \
# google-chrome \
org.flameshot.Flameshot.desktop \
)
for app in "${APT_AUTOSTART_APPS[@]}"; do
cp -v "/usr/share/applications/${app}.desktop" "${USER_AUTOSTART_DIR}"
done
SNAP_AUTOSTART_APPS=( \
pycharm-professional_pycharm-professional \
spotify_spotify \
)
for app in "${SNAP_AUTOSTART_APPS[@]}"; do
cp -v "/var/lib/snapd/desktop/applications/${app}.desktop" "${USER_AUTOSTART_DIR}"
done
Sample .desktop file creation:
tee -a ${HOME}/.config/autostart/cisco_anyconnect.desktop > /dev/null <<EOF
[Desktop Entry]
Type=Application
Name=Cisco Anyconnect Secure Mobility Client
Comment=Connect to a private network using the Cisco Anyconnect Secure Mobility Client
Exec=/opt/cisco/anyconnect/bin/vpnui
Icon=cisco-anyconnect
Terminal=false
Encoding=UTF-8
StartupNotify=true
EOF
Keyboard shortcuts¶
Warning
Optional.
See the guide.
UI¶
Todo
Add favorite apps to task bar and remove default ones
Input devices¶
Warning
Optional.
See the guide.