The following recipes are generally applicable.
- Debian 12 (Bookworm)
- Include Gnome, Xfce
- Install Nix package manager: https://nixos.org/download.html
- Enable experimental features in
~/.config/nix
:experimental-features = nix-command flakes
- Install
home-manager
as follows:nix registry add flake:nixpkgs github:... #(insert version pinned in global-config) nix registry add flake:home-manager github:... #(insert version pinned in global-config) nix profile install home-manager
sudo apt install python3 python3-fire
- Install the newest Ansible version: Link
- Clone the following repositories to some location, say
~/repos
.~/repos/system-config
(this repo)~/repos/system-config-priv
(private repo)- Optional, needed for activation via
--private
. See details further down.
- Optional, needed for activation via
- Go to
~/repos/system-config/bin
.- There is one script
system_config.py
with three commands.store
is used to store static dotfiles.restore
is used to restore static dotfiles.activate_hm
is used to activate an hm-config.run_ansible
is used to run an Ansible playbook.activate
is a shortcut to activate all three.- The flag
--private
requires the locally clonedsystem-config-priv
repo.
- Here are two representative examples with explanations.
system_config.py activate t470p-pub-only
- Activate the public config for my Thinkpad T470p
- This should work right out of the box, just by cloning this very repo.
system_config.py activate t470p --private
- Activate the public+private config for my Thinkpad T470p
- This option should only be available to me.
- After running the hm config, the
~/.nix-profile/bin
dir points to the installed software ("activated")
- There is one script
- Install
oh-my-zsh
, which will be placed automatically in~/.oh-my-zsh
. No further plugins needed. - Select
/bin/zsh
as standard shell using thechsh
command - Configure colors in
gnome-terminal
- Install
lightdm
- Run
sudo dpkg-reconfigure lightdm
- In config file
/etc/lightdm/lightdm.conf
, activate the lineautologin-user=luk
but be careful: It must be in the[Seat:*]
section!
- Normally, nix is activated in
/etc/zsh/zshrc
and/etc/bash/bash.bashrc
- "Activation" means
. '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh'
- Problem: When i3 is started, nix is not yet activated, therefore nix-installed software is not in the
PATH
- Solution: Remove these activations
- "Activation" means
- Instead, activate before starting the i3 session:
- The script
~/bin/i3-with-nix
is prepared to wrap the standardi3
session, along with an ativation account - Copy
~/bin/i3-with-nix
to/usr/bin/i3-with-nix
- Change file permissions to 655
- Copy
/usr/share/xsessions/i3.desktop
to/usr/share/xsessions/i3-with-nix.desktop
and replace in the filei3
byi3-with-nix
- The script
- Run
sudo dpkg-reconfigure locales
with en-US_UTF8
de-DE_UTF8
- Set default browser:
sudo update-alternatives \ --install /usr/bin/x-www-browser x-www-browser firefox 210`
- Install "Driver Install Tool" from Brother website, Version 19.08.2021 (2.2.3-1), file is
linux-brprinter-installer-2.2.3-1
- After cartridge change, may need to delete printer on CUPS (
http://localhost:631
) and runlinux-brprinter-installer-2.2.3-1
to install the printer again
- Signal Messenger
- Threema
- Google Chrome
- Dropbox
- Docker (add group "docker" to user)
- Xournal++
- Veracrypt
- Node.js