configuration of my ThinkPad
backup of the preinstalled version of Ubuntu (Ubuntu 20.04 LTS)
upgrade to Ubuntu 22.04 LTS using this guide:
- update system
sudo apt update && sudo apt upgrade -y
- change
Promt=never
in/etc/update-manager/release-upgrades
toPromt=lts
- start Ubuntu Upgrade Utility
sudo do-release-upgrade -d
installed
nala
:
sudo apt install nala
sudo nala fetch
set my own keyboard layout:
- define keyboard layout in
usr/share/X11/xkb/symbols/de
:
// my own keyboard layout based on neo // Toggle CapsLock when pressed together with an other Shift key. partial modifier_keys xkb_symbols "altshift_both_capslock" { key <LALT> { type[Group1]="TWO_LEVEL", symbols[Group1] = [ Shift_L, Caps_Lock ] }; }; partial modifier_keys xkb_symbols "three_capslock" { include "shift(lshift_both_capslock)" include "shift(rshift_both_capslock)" include "de(altshift_both_capslock)" }; // Right Ctrl functions as an Alt. partial modifier_keys xkb_symbols "rctrl_alt" { key <RCTL> { symbols[Group1]= [ Alt_L ] }; modifier_map Mod1{ <RCTL> }; }; // Druck key functions as another right Ctrl. partial modifier_keys xkb_symbols "druck_rctrl" { replace key <PRSC> { [ Control_R, Control_R ] }; modifier_map Control { Control_L, <PRSC> }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "jab" {
};include "de(neo_base)" name[Group1]= "German (jab, based on Neo 2)"; include "de(three_capslock)" include "de(rctrl_alt)" include "de(druck_rctrl)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)"
- create layout variant in
usr/share/X11/xkb/rules/evdev.xml
andusr/share/X11/xkb/rules/base.xml
:
<variant> <configItem> <name>jab</name> <description>German (my own layout)</description> </configItem> </variant>
- add to layout lists
usr/share/X11/xkb/rules/evdev.lst
andusr/share/X11/xkb/rules/base.lst
:
jab de: German (my own layout)
- select layout temporary:
setxkbmap de jab
- set layout permanent in
etc/default/keyboard
:
XKBVARIANT="jab"
- additional actions for short keystroke of the modifier:
xcape -e "Shift_L=Return;Alt_L=Control_R|C;Control_R=Control_R|Shift_L|V;ISO_Level3_Shift=Escape"
- restart laptop:
sudo shutdown -r now
- define keyboard layout in
set up
i3wm
:- install:
sudo nala install i3
- install brightnessctl, to adjust screen brightness:
sudo nala install brightnessctl sudo usermod -aG video jab # zur video-Gruppe hinzufügen, damit ich brightnessctl ohne root-Rechte ausführen darf sudo shutdown -r now
changed text color of the terminal to
#A0A8B7
and background color to#1F2329
installed Brave:
sudo nala install apt-transport-https curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo nala update
sudo nala install brave-browser
- added `Copy Title and Url as Markdown Style`
- added [`Dark Reader`](https://darkreader.org)
- added `vimium`
- set up Thunderbird
- installed
oh-my-zsh
with the themepowerlevel10k
:
sudo nala install zsh
chsh -s $(which zsh) # make zsh the default shell
sudo nala install git
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
followed this instructions to install Meslo Nerd Font
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
exec zsh
installed
UbuntuMono Nerd Font
(unfortunatelyUbuntu Nerd Font
only with huge letter-spacing)installed
vifm
:sudo nala install vifm
installed
zathura
:sudo nala install zathura
installed
lunarvim
:- installed
neovim
:
# download 'nvim-linux64.deb' sudo apt install ~/Downloads/nvim-linux64.deb
python
:
sudo nala install python-is-python3 sudo nala install python3-pip
node.js
andnpm
:
sudo nala install nodejs sudo nala install npm
cargo
:
sudo nala install cargo
lunarvim
:
LV_BRANCH='release-1.2/neovim-0.8' bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
- to make the
lvim
command accessible, I had to add~/.local/bin
toPATH
(see here):
export PATH=$HOME/.local/bin:$PATH # in ~/.zshrc 9.Zeile
- installed
installed
VSCode
andjupyter-notebook
:
bash # download .deb-file from website sudo nala install code.deb pip install notebook
installed
Signal
:# NOTE: These instructions only work for 64 bit Debian-based # Linux distributions such as Ubuntu, Mint etc. # 1. Install our official public software signing key 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 # 2. Add our repository to your list of repositories 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 # 3. Update your package database and install signal sudo nala update sudo nala install signal-desktop
installed
gimp
:
bash sudo nala install gimp
continued to set up
i3wm
:# to use modifier_keys for special actions sudo nala install xcape
created
/etc/systemd/system/i3lock.service
to have a lock screen aftersuspend
:[Unit] Description=i3lock Before=sleep.target suspend.target [Service] User=jab Type=forking Environment=DISPLAY=:0 ExecStart=i3lock -i /usr/share/backgrounds/jammyJellyfish.png [Install] WantedBy=sleep.target suspend.target
and started with the following commands
sudo systemctl start i3lock.service
andsudo systemctl enable i3lock.service
. (see here or here)installed
pandoc
:sudo nala install pandoc
installed
coffeescript
:# remove node sudo nala remove nodejs # install node version manager (nvm) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash # install node again nvm install --lts npm install --global coffeescript npm install --global file-system
additional packages:
sudo nala install texlive sudo nala install texlive-xetex sudo nala install texlive-luatex sudo nala install pandoc-citeproc npm install -g mermaid-filter sudo nala install texlive-fonts-extra texlive-fonts-extra-links texlive-lang-german texlive-lang-greek texlive-science
set up
vifm
:sudo nala install xclip # for image-preview with ueberzug sudo nala install libjpeg8-dev sudo nala install libjpeg-dev sudo nala install libx11-dev libxtst-dev python3-docopt python3-xlib python3-pil python3-attr pip install ueberzug sudo nala install ffmpegthumbnailer sudo nala install djvulibre-bin # to install fontpreview git clone https://github.com/sdushantha/fontpreview cd fontpreview sudo make install cd ../ sudo rm fontpreview sudo nala install xdotool sudo nala install sxiv sudo nala install imagemagick sudo nala install fzf
Because the image preview didn't work immediately, I tested
ueberzug
with the following script:#!/bin/bash [ -z "$5" ] && echo "Usage: $0 <image> <x> <y> <max height> <max width>" && exit source "`ueberzug library`" ImageLayer 0< <( ImageLayer::add [identifier]="example0" [x]="$2" [y]="$3" [max_width]="$5" [max_height]="$4" [path]="$1" read )
it worked after I installed the following package based on the error message:
sudo nala install python3-tk
(started directly by
i3wm
lvim
andvifmrun
ran only after a restart)set up
polybar
as an alternative for i3bar:sudo nala install polybar mkdir -p ~/.config/polybar/scripts git clone https://github.com/madhat2r/polybar-i3-window.git ~/.config/polybar/scripts/polybar-i3-window pip install i3ipc
downloaded and installed
discord
:sudo nala install ~/Downloads/discord-0.0.21.deb
set up
eduroam
:# Installer unter cat.eduroam.org heruntergeladen und anschließend ausgeführt python eduroam-linux-Hochschule_Flensburg.py
audio problemes, when an external monitor is connected; solution: change output device in settings
downloaded and unpacked
activitywatch
.made some firmware updates
installed
rofi
:sudo nala install rofi
installed and deleted
networkmanager-dmenu
installed
KeePassXC
:sudo nala install keepassxc
installed
gnome-screenshot
(old software), because the new tool doesn’t work since the setup ofi3wm
fix bluetooth issues following this guide (additional annotations for
i3wm
):systemctl status bluetooth.service systemctl is-enabled bluetooth.service # wenn nicht gestartet: systemctl bluetooth start rfkill # wenn Bluetooth blockiert ist: rfkill unblock bluetooth bluetoothctl
installed
spotify
:sudo nala install spotify-client
updated
fzf
:git clone --depth 1 https://github.com/junegunn/fzf.git ~/bin/fzf ~/bin/fzf/install # bei fuzzy-Suche in history Fehler bekommen, da nicht die neue (frisch installierte) Version gefunden wurde, daher: sudo nala remove fzf
installed
pandoc-xnos
:pip install pandoc-fignos pandoc-eqnos pandoc-tablenos pandoc-secnos --user
installed
libfuse2
forRemNote
:sudo nala install libfuse2
installed
unison
:sudo nala install unison unison-gtk
installed
ripgrep
:sudo nala install ripgrep
annotations and explanations
- no
snap
-packages (except the preinstalled:chromium
&firefox
) - replaced
vimium
throughVimium C
and the correspondingPDF Viewer for Vimium C
keyboard layout
My keyboard layout is called jab
and is based on the neo_base
layout from the de
file.
The description is German (jab, based on Neo 2)
.
The layout embeds different blocks to define the modifiers.
The first three are from the same file (de
) and are defined by me.
They ensure that Alt_L
, Shift_L
and Shift_R
are all a shift modifier and two pressed together activate Caps_Lock
, Control_R
becomes Alt_L
and Print
becomes Control_R
.
The other block are from the files level3
and level5
.
They ensure thet Caps_Lock
and the #
key become leevel3 modifier and AltGr
and the <>|
key become level5 modifier.
The command localectl list-x11-keymap-variants de
shows all available variants of the german keyboard layout.
The command setxkbmap -query
shows the currently selected keyboard layout.
colors
My choice of color is based on the onedark.nvim
color palette (darker):
black = "#0e1013",
bg0 = "#1f2329",
bg1 = "#282c34",
bg2 = "#30363f",
bg3 = "#323641",
bg_d = "#181b20",
bg_blue = "#61afef",
bg_yellow = "#e8c88c",
fg = "#a0a8b7",
purple = "#bf68d9",
green = "#8ebd6b",
orange = "#cc9057",
blue = "#4fa6ed",
yellow = "#e2b86b",
cyan = "#48b0bd",
red = "#e55561",
grey = "#535965",
light_grey = "#7a818e",
dark_cyan = "#266269",
dark_red = "#8b3434",
dark_yellow = "#835d1a",
dark_purple = "#7e3992",
diff_add = "#272e23",
diff_delete = "#2d2223",
diff_change = "#172a3a",
diff_text = "#274964",