Additional software installation
With apt repository
After adding a repository, run sudo aptitude update
.
Brave
Site: https://brave.com/
Install signature:
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
Add to /etc/apt/sources.list
:
deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main
Install brave-browser
, and the the ‘Plasma Integration’ extension from the Chrome Web Store.
Configuration in ~/.config/BraveSoftware/Brave-Browser/
can be kept. Bookmarks are stored in the subdirectories Default/Bookmarks
, Profile\ 1/Bookmarks
, …
Signal
Site: https://signal.org/
Install signature:
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
Add to /etc/apt/sources.list
:
deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main
Install signal-desktop
.
Modify the desktop entry by adding --start-in-tray
to the arguments so that Signal starts in the tray.
R
Site: https://cran.r-project.org/bin/linux/debian/
Install signature:
gpg --keyserver keyserver.ubuntu.com \
--recv-key '95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7'
gpg --armor --export '95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7' | \
sudo tee /etc/apt/trusted.gpg.d/cran_debian_key.asc
Add to /etc/apt/sources.list
:
deb http://cloud.r-project.org/bin/linux/debian bookworm-cran40/
Install r-base
and r-base-dev
, and libopenblas0-serial
(?) to speed up calculations.
Put the line
export R_LIBS_USER='/home/ca/Store/R'
in ~/.bashrc
. This is where R will install packages.
Additional Debian packages are sometimes necessary to install R packages.
tidyverse
-
libcurl4-openssl-dev
,libssl-dev
,libfontconfig1-dev
,libxml2-dev
,libharfbuzz-dev
,libfribidi-dev
,libfreetype6-dev
,libpng-dev
,libtiff5-dev
,libjpeg-dev
lme4
-
cmake
Seafile Client
Site: https://www.seafile.com/
Install signature:
sudo wget https://linux-clients.seafile.com/seafile.asc -O /usr/share/keyrings/seafile-keyring.asc
Add to /etc/apt/sources.list
:
deb [arch=amd64 signed-by=/usr/share/keyrings/seafile-keyring.asc] https://linux-clients.seafile.com/seafile-deb/bookworm/ stable main
Install seafile-gui
.
Using Seafile’s repository may not be absolutely necessary since Seafile is packaged in bookworm.
Configure ~
as Seafile directory. Unfortunately, that is not possible through the GUI, so accept the default on first configuration. Then, before synchronizing anything, stop the tray applet, and make sure that ~/.ccnet/seafile.ini
contains <HOME>/.seafile-data
Log files are in ~/.ccnet/logs/
, internal files in ~/.seafile-data
.
Care must be taken with changes occurring while Seafile is not running. Files deleted in the meantime may pop up again, older versions of files substituted for newer ones.
To be on the safe side, create a checksum file before synchronizing (and maybe a zip archive, though theoretically nothing should be lost). Based on the check results, resurrected files should be deleted, and for changed files the SFConflict
substituted for the other one.
Visual Studio Code
Site: https://code.visualstudio.com/
Install signature:
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
Add to /etc/apt/sources.list
:
deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main
Install code
.
Use ⚙️ / Turn On Settings Sync to get settings back.
Getting Micromamba to work with VS Code
I don’t really understand, but this seems to work:
- ‘Python: Conda Path’:
~/.local/bin/micromamba
- ‘Python: Default Interpreter Path’:
~/Store/micromamba/envs/std/bin/python3
- create a file
~/.local/bin/activate
which containsmicromamba activate -p "$1"
- in the command palette, select ‘Python: Select Interpreter’
When VS Code opens a terminal, e.g. to run Python, it pastes
source /home/ca/.local/bin/activate /path/to/env
as the first command.
VirtualBox
Site: https://www.virtualbox.org/
Install signature:
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg
Add to /etc/apt/sources.list
:
deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian bookworm contrib
Install virtualbox
, or rather one of its dependencies.
Add user to group:
sudo gpasswd --add ca vboxusers
If not already, turn on virtualisation in BIOS.
Windows 10 VM
- Name
- Win10
- Folder
-
/home/ca/Store/VirtualBox/
- ISO image
-
/home/ca/Store/Disk Images/Win10_20H2_v2_EnglishInternational_x64.iso
Do not skip unattended installation. Adjust username (ca) and password.
- Base memory
-
8192 MB (8 GB)
fourth of actual memory - Processors
-
4
half of the actual (virtual) cores - Virtual Hard Disk Size
-
100 GB
preset is 50 GB, but actual Windows installation hasC:
almost full at 50 GB
After the installation is complete, make a snapshot.
Move disk to SSD, if possible.
Configure Windows, including:
- Turn Off Windows Defender
- Turn off the visual effects: Performance Options / Visual Effects / Adjust for best performance
- Disable unnecessary Startup apps and background processes.
- Disable Defender and virus scan, etc.
- Uninstall non-essential apps.
- Disable search indexing
- Switch off power saving (power plan: High Performance)
Zotero
Site: https://www.zotero.org/
Configure the unofficial apt repository of https://github.com/retorquere/zotero-deb via its configuration script:
curl -sL https://raw.githubusercontent.com/retorquere/zotero-deb/master/install.sh | sudo bash
Install zotero
.
Got to Edit / Preferences / Advanced / Files and Folders. Under ‘Data Directory Location’ select ‘Custom’ and choose the directory /home/ca/work/Lit/Zotero/
(which has to exist already).
Papers are stored in the subdirectory storage
of the Zotero data directory. Configuration is stored in ~/.zotero/zotero
.
Better BibTeX
Better BibTeX enables exporting references in a collection to a bibliography file in CSL YAML format and to quickly copy the citation key, for use with Pandoc / Quarto.
Install the Better BibTeX for Zotero extension from https://github.com/retorquere/zotero-better-bibtex. Download the latest release and drag it into the Zotero dialog Tools / Plugins.
Under Edit / Settings / Export, set ‘Item Format’ to ‘Better BibTeX Citation Key Quick Copy’. Under Edit / Settings / Better BibTeX, set ‘Quick-Copy format’ to ‘Pandoc citation’, ‘Fields to omit from export’ to abstract,accessed,source,container-title-short,title-short,citation-key
, and ‘Sort TeX/CSL output’ to ‘citation key’.
Export of a collection can be done manually, automatically, or via a URL. Quick copy of a citation key can be done via Ctrl+Shift+CCtrl+Shift+C or drag & drop.
GPXSee
Site: https://www.gpxsee.org/
Install signature:
curl -fsSL https://download.opensuse.org/repositories/home:tumic:GPXSee/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_tumic_GPXSee.gpg > /dev/null
Add to /etc/apt/sources.list
:
deb http://download.opensuse.org/repositories/home:/tumic:/GPXSee/Debian_12/ /
Install gpxsee
.
OpenVPN 3
Site: https://community.openvpn.net/openvpn/wiki/OpenVPN3Linux
Install signature:
curl -sSfL https://packages.openvpn.net/packages-repo.gpg > /etc/apt/keyrings/openvpn.asc
Add to /etc/apt/sources.list
:
deb [signed-by=/etc/apt/keyrings/openvpn.asc] https://packages.openvpn.net/openvpn3/debian bookworm main
Install openvpn3
.
With downloadable deb
package
Place downloaded packages into ~/Config/Packages/deb/
.
To avoid manually installed packages to appear as ‘obsolete’ in Aptitude, we can build a local apt repository from this directory:
The line for /etc/apt/sources.list
is
deb [trusted=yes] file:/home/ca/Config/Packages/deb ./
This expects a file Packages.gz
in the directory, which is created by
dpkg-scanpackages --multiversion . | gzip -9c > Packages.gz
Needs Debian package dpkg-dev
.
There is a convenience script to do so in the directory; run ./rescan
. There is also a script which downloads new versions of some of the packages automatically; run ./update
.
Pulsar
Site: https://pulsar-edit.dev/
Download the latest (stable, released) *amd64.deb
package from https://github.com/pulsar-edit/pulsar/releases.
Modify the desktop entry by adding -n
to the arguments so that each time a new instance is started. If a file should be edited in an existing instance, drag and drop it.
To edit files owned by root with Pulsar, add the following line to ~/.bashrc
:
export SUDO_EDITOR="/usr/bin/pulsar -n -w"
Files can then be edited using sudoedit </path/file>
.
Configuration in ~/.pulsar/
can be kept. Packages are installed in ~/.pulsar/packages/
.
Installation of community packages from within Pulsar does not work at the moment. Instead, find the package on https://web.pulsar-edit.dev/, copy the atom:
-link from the ‘Install’ button, and run pulsar <link>.
Currently I use dark-blue-candy-store-syntax
, language-markdown
, document-outline
, markdown-scroll-sync
, and todo-show
.
Quarto & Pandoc
Site: https://quarto.org/.
Download the current package from https://quarto.org/docs/get-started/.
After installation, make the Pandoc executable included with Quarto accessible:
sudo ln -s /opt/quarto/bin/tools/pandoc /usr/local/bin/
And install [pandoc-eqnos
].
RStudio
Site: https://posit.co/products/open-source/rstudio/
Download the Debian package from https://posit.co/download/rstudio-desktop/#download.
AppImageLauncher
Site: https://github.com/TheAssassin/AppImageLauncher
Download the latest (stable, released) *amd64.deb
package from https://github.com/TheAssassin/AppImageLauncher/releases.
Configure to use ~/Config/Packages/appimage
as applications directory. Disable the auto-integration demon.
PDF Studio
Site: https://www.qoppa.com/
Use the ‘Linux 64-Bit Download’ from https://www.qoppa.com/pdfstudio/download/#linux64. Run the installer script via sudo
.
Zoom
Site: https://zoom.us/
Download the Debian package from https://zoom.us/download?os=linux
Prince
Site: https://www.princexml.com/
Download the latest *debian12_amd64.deb
from https://www.princexml.com/download/.
wkhtmltopdf
Site: https://wkhtmltopdf.org/
Download the latest *bookworm_amd64.deb
from https://github.com/wkhtmltopdf/packaging/releases.
lsd
Site: https://github.com/lsd-rs/lsd
Download the latest *_amd64.deb
from https://github.com/lsd-rs/lsd/releases.
With AppImage
AppImages should be integrated into the Desktop by opening the downloaded file with AppImageLauncher.
Maybe better to do this ourselves, to better manage versions?
How to get the stuff for desktop integration
Mount the AppImage with
<name>.appimage --appimage-mount
. This creates a temporary mount point whose name is printed to stdout.In the mounted filesystem are:
- the desktop file in.
and in./usr/share/applications/geeqie.desktop
- icon file(s) in.
and in./usr/share/icons/
Easiest approach: Install the desktop file and icon file(s) from
.
usingxdg-desktop-icon
andxdg-icon-resource
. The icon has to be installed under the name referenced in the desktop file.The desktop file refers to the executable by a simple filename. Either this has to be adjusted to include a path, or the AppImage has to be copied or symlinked into
~/.local/bin/
.
Geeqie
Site: https://www.geeqie.org/
Download latest *x86_64.AppImage
package from https://github.com/BestImageViewer/geeqie/releases.
Configuration in ~/.config/geeqie/
can be kept.
Libreoffice
Site: https://www.libreoffice.org/
Download the ‘Fresh Standard’ AppImage from https://www.libreoffice.org/download/appimage/.
The version packaged with Debian does not integrate with the current theme and the UI looks broken. The AppImage does not have this problem.
The LibreOffice desktop entry has to be manually associated with docx
, xlsx
, and pptx
.
LosslessCut
Site: https://github.com/mifi/lossless-cut
Download latest *x86_64.AppImage
package from https://github.com/mifi/lossless-cut/releases.
With pipx
Use Debian package pipx
. Upgrade installed software with pipx upgrade-all
. Executables are installed to ~/.local/bin
which should be on the PATH
.
cfv
Site: https://github.com/cfv-project/cfv
pipx install cfv
yt-dlp
Site: https://github.com/yt-dlp/yt-dlp
pipx install yt-dlp
SubDownloader
Site: https://github.com/subdownloader/subdownloader
pipx install subdownloader
pipx inject subdownloader pyqt5
pandoc-eqnos
Site: https://github.com/tomduck/pandoc-eqnos
pipx install pandoc-eqnos
regex-rename
Site: https://igrek51.github.io/regex-rename/
pipx install regex-rename
Jupytext
Site: https://jupytext.readthedocs.io/
pipx install jupytext
radian
Site: https://github.com/randy3k/radian
pipx install radian
For nicer colors, create ~/.config/radian/profile
containing e.g.
options(radian.prompt = "\033[0;94mr$>\033[0m ") # visible prompt
options(radian.color_scheme = "fruity")
With pnpm
Make sure that the Debian package npm
is installed.
Configure and install pnpm
:
# set directory for globally installed executables to existing directory
npx pnpm config set global-bin-dir ~/.local/bin
# install pnpm
npx pnpm install -g pnpm
~/.local/bin
should exist and be on the PATH
.
After that,
pnpm install -g <packagename>
installs executables in ~/.local/bin
, and
pnpm update -g
updates all installed packages.
pagedjs-cli
Site: https://gitlab.coko.foundation/pagedjs/pagedjs-cli
pnpm install -g pagedjs-cli
Carbonyl
Site: https://github.com/fathyb/carbonyl
pnpm install -g carbonyl
Other
Keep downloads in ~/Config/Packages/other/
.
Calibre
Site: https://calibre-ebook.com/
Use the binary install:
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
or as root:
wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin
Configuration in ~/.config/calibre/
can be kept.
The bundled ebook-viewer
needs a proper working OpenGL installation. A workaround is
export QTWEBENGINE_CHROMIUM_FLAGS="--disable-gpu"
Spotify
Just use the webplayer: https://open.spotify.com/
Python via micromamba
Site: https://mamba.readthedocs.io/
Installation:
bash <(curl -L micro.mamba.pm/install.sh)
Keep the micromamba binary directory at ~/.local/bin
, but set the prefix location to ~/Store/micromamba
.
Answer yes to the following questions. The first adds to ~/.bashrc
the code
# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba init' !!
export MAMBA_EXE='/home/ca/.local/bin/micromamba';
export MAMBA_ROOT_PREFIX='/home/ca/Store/micromamba';
__mamba_setup="$("$MAMBA_EXE" shell hook --shell bash --root-prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__mamba_setup"
else
alias micromamba="$MAMBA_EXE" # Fallback on help from mamba activate
fi
unset __mamba_setup
# <<< mamba initialize <<<
The second sets ~/.condarc
to
channels:
- conda-forge
- nodefaults
channel_priority: strict
To that, add changeps1: False
to avoid the Micromamba’s buggy prompt modification; see ~/.bashrc
for a nicer solution.
Then create the std
environment by
cd ~/Config/Python
./recreate_std
The script creates the environment based on std.yml
, installs the Matlab Engine, and links local packages. It also illustrates how to activate an environment within a shell script.
Matlab
Site: https://matlab.mathworks.com/
Sign into Mathworks site via City and download the installer zip-file. Create a temporary directory and move the zip file there. From the directory, run
unzip -X -K matlab_<revision>_glnxa64.zip
sudo ./install
Within the installer, again sign into Mathworks via City. Accept the conditions. The license should already be selected. Edit the destination to be below /opt
. Select toolboxes. Accept the offer to create symbolic links. When the installation is finished, delete the temporary directory. To install additional toolboxes later, the same installer is needed, so it should be kept.
Used toolboxes: ‘Statistics and Machine Learning’
Install Debian package matlab-support
for desktop integration.
Use userpath
to set the directory where Matlab looks for startup.m
.
Transmission via PIA VPN
Site: https://haugene.github.io/docker-transmission-openvpn/
Install Debian package docker.io
.
Run the script ~/bin/dto
, which calls docker with the image haugene/transmission-openvpn
and command line options to configure PIA. If the image does not already exist, it is downloaded.
The running image opens a VPN connection to PIA, and starts Transmission to transfer through it. The Transmission web-interface is available under http://127.0.0.1:9091/transmission/web/. The directory /home/ca/Store/transmission
is mapped within the container onto /data
, and Transmission stores downloaded torrents as well as configuration in subdirectories.
Moreover, the image runs the Privoxy web proxy routing all web traffic through the PIA VPN. It is accessible outside of the container under 127.0.0.1:8118
. In theory, it should be configurable under https://www.privoxy.org/config/.
Evolution
Site: https://wiki.gnome.org/Apps/Evolution
We use Evolution to access City email via EWS, but we install it via Flatpak to avoid cluttering the system with GNOME libraries, especially GNOME keyring.
Install Debian package flatpak
, then run
flatpak install flathub org.gnome.Evolution
and accept installation of dependencies.
Run it with flatpak run org.gnome.Evolution
.
In the Configuration Assistant (either automatically started or from File / New / Mail account):
- fill out Full Name and Email Address
- uncheck Look up mail server details based on entered e-mail address
- select Next
- under Server Type select Exchange Web Services
- under Username, keep the email address
- under Host URL enter ‘https://outlook.office365.com/EWS/Exchange.asmx’
- select authentication via OAuth2 (Office 365)
- check Override Office365 OAuth2 settings
- under Tenant enter the provided
tenant
- under Application ID enter the provided
client_id
- go through the next pages by selecting Next
After this, the account is configured but not yet authenticated. Try to open the account in the panel left, and you will be prompted for password and 2FA.
MRIcroGL
Site: https://www.nitrc.org/plugins/mwiki/index.php/mricrogl:MainPage
Download latest MRIcroGL_linux.zip
package from https://github.com/rordenlab/MRIcroGL/releases.
As root, unzip the file into /opt/MRIcroGL
cd /opt/
unzip MRIcroGL_linux.zip
and link the QT5 version from a directory on the path:
cd /usr/local/bin/
ln -s /opt/MRIcroGL/MRIcroGL_QT MRIcroGL
This version additionally needs the Debian package libqt5pas1
.
To associate NIfTI files with MRIcroGL, create a media type image/x-nifti
called ‘NIfTI file’ with extensions *.nii
and *.nii.gz
, create a desktop file
echo "[Desktop Entry]
Name=MRIcroGL
Exec=/opt/MRIcroGL/MRIcroGL_QT
Icon=/opt/MRIcroGL/Resources/mricrogl.svg
MimeType=image/x-nifti;
StartupNotify=true" > /usr/share/applications/mricrogl.desktop
and run update-desktop-database
.