These are some notes on how to install the author's system. These aren't expected to be useful to anyone else.
- Install debian's minimal version (the one that includes non-free firmware, if necessary)
- Select nothing at the software selection menu
- Partition:
- A 512 MiB EFI partition (536870912 bytes)
- A 8 GiB ext4 partition for / (8589934592 bytes)
- A swap partition; 1.5 * RAM (for hibernation) (12 GiB = 12884901888 bytes)
- An ext4 partition for /home, using the remaining space
In the install script, set use-substitutes?
to #f
. Note:
https://guix.gnu.org/manual/en/html_node/Using-the-Configuration-System.html https://guix.gnu.org/manual/en/html_node/Getting-Substitutes-from-Other-Servers.html https://guix.gnu.org/manual/en/html_node/Base-Services.html#index-guix_002dconfiguration
/sbin/dpkg-reconfigure -plow console-setup
To get the network working, add the following to /etc/network/interfaces
:
# enable wifi
auto [device name from `ip link`]
# enable this if it's external:
# allow-hotplug [device name]
iface [device name] inet dhcp
wpa-ssid {{ WIFI_NAME }}
wpa-psk {{ WIFI_PASSWORD }}
Then run:
/sbin/service networking restart
apt install network-manager
nano /etc/network/interfaces # remove what was added above
/sbin/service networking restart
/sbin/service network-manager restart
nmtui
apt update
apt upgrade
apt full-upgrade
apt install sudo
/sbin/adduser [user] sudo
su - [user]
cd ~
sudo apt install git
git clone https://github.com/bedax/system
mkdir -p ~/.local/src
mkdir -p ~/.local/bin
mkdir -p ~/.local/opt
sudo apt install [name]
adwaita-icon-theme
adwaita-qt
adwaita-qt4
(as it's not in buster, install it andadwaita-qt-data
from stretch withgdebi
)alsa-utils
(amixer
used byvolume-mute
)apt-file
audacity
binutils
blender
bspwm
bzip2
clang
clang-tools
cloc
compton
coreutils
cron
dbus-x11
(used bynotify-send.py
incrontab
)djview
dunst
ffmpeg
firefox-esr
fontconfig
gcc
gcc-doc
(enablebuster-backports
withcontrib
andnon-free
)gdebi
gimp
gimp-help-en
git
gnome-themes-standard
gparted
gzip
hexchat
hsetroot
(used to set the background inautostart
)htop
inkscape
jshon
(used bydesktop-get
)keepassx
less
libx11-dev
(used to compilest
anddmenu
)libxft-dev
(used to compilest
anddmenu
)libxinerama-dev
(used to compilest
anddmenu
)links2
lua5.3
luarocks
maim
(used byscreenshot
)make
man
manpages
manpages-dev
manpages-posix
manpages-posix-dev
meld
mpv
nano
ncdu
netcat-traditional
openssh-client
pandoc
pm-utils
(used by thesleep
andhibernate
scripts)pulseaudio
pulseaudio-utils
(used byvolume-get
andvolume-set
)python3
python3-pip
qt4-qtconfig
redshift
shellcheck
sigil
sxhkd
tar
tcc
thunar
thunar-archive-plugin
thunar-volman
transmission-gtk
tree
ttf-mscorefonts-installer
unzip
viewnior
wget
x11-utils
(containsxev
)x11-xserver-utils
(xsetroot
used inautostart
to set the cursor;xmodmap
used inautostart
to disable the capslock)xarchiver
xbacklight
(used insxhkdrc
,autostart
, andbrightness-get
)xclip
(used byscreenshot
)xdotool
(used byscreenshot
)xinit
(containsstartx
)xinput
(for disabling the touchpad inautostart
)xz-utils
yash
youtube-dl
(orpython3 -m pip install youtube-dl
)zip
cd ~
sudo apt install gdb nemiver strace
python3 -m pip install pygments
wget -P ~ https://git.io/.gdbinit
mv .gdbinit .gdb-dashboard
sudo apt install fish
wget https://git.io/fisher
mkdir -p ~/.config/fish/functions
mv fisher ~/.config/fish/functions/fisher.fish
fish -c "fisher install fischerling/plugin-wd"
fish -c "fisher install oh-my-fish/plugin-pbcopy"
curl -sL https://deb.nodesource.com/setup_14.x | sudo TERM=xterm bash -
sudo apt install npm
npm config set prefix "$HOME/.local"
Add non-free to the first source in /etc/apt/sources.list
.
For ThinkPad x2?0, install firmware-misc-nonfree
.
cd ~/.local/src
rm -rf st-0.8.2
wget https://dl.suckless.org/st/st-0.8.2.tar.gz
tar zxf st-0.8.2.tar.gz
rm -f st-0.8.2.tar.gz
cd ~/.local/src
rm -rf dmenu-4.9
wget https://dl.suckless.org/tools/dmenu-4.9.tar.gz
tar zxf dmenu-4.9.tar.gz
rm -f dmenu-4.9.tar.gz
# may need to do this first:
# python3 -m pip install --upgrade pip
sudo apt install libdbus-1-dev libglib2.0-dev
python3 -m pip install --user notify-send.py
sudo apt install geany
sudo apt install geany-plugin-addons
git clone https://github.com/geany/geany-themes/
mkdir -p ~/.config/geany/colorschemes
mv geany-themes/colorschemes/*.conf ~/.config/geany/colorschemes/
rm -rf geany-themes
git clone https://github.com/robloach/base16-geany
mv base16-geany/*.conf ~/.config/geany/colorschemes/
rm -rf base16-geany
Add the following to /etc/apt/sources.list
:
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib
And run the following:
wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
sudo apt-key add oracle_vbox_2016.asc
rm -f oracle_vbox_2016.asc
sudo apt update
sudo apt install virtualbox-5.2
cd ~/.local/opt/
wget https://github.com/OpenRCT2/OpenRCT2/releases/download/v0.2.5/OpenRCT2-0.2.5-linux-x86_64.AppImage
chmod +x OpenRCT2-0.2.5-linux-x86_64.AppImage
ln -s ~/.local/opt/OpenRCT2-0.2.5-linux-x86_64.AppImage ~/.local/bin/openrct2
cd ~/.local/opt/
wget https://github.com/libretro/ludo/releases/download/v0.11.0/Ludo-Linux-x86_64-0.11.0.tar.gz
tar zxf Ludo-Linux-x86_64-0.11.0.tar.gz
# no need to create a symlink, as a script lauches it
sudo addgroup demi
sudo adduser [user] demi
Run visudo
and add:
%demi ALL=NOPASSWD:/sbin/shutdown
%demi ALL=NOPASSWD:/usr/sbin/pm-suspend
%demi ALL=NOPASSWD:/usr/sbin/pm-suspend-hybrid
%demi ALL=NOPASSWD:/usr/sbin/pm-hibernate
Run crontab -e
and add:
*/3 * * * * . "$HOME/.profile"; DISPLAY=:0 react-to-low-battery 12 6
0 */3 * * * . "$HOME/.profile"; flock --nonblock "$HOME/.backup.lock" "$HOME/.backup.sh" || DISPLAY=:0 notify-confirmation --urgency critical "backup failed"
If the crontab is running a backup script, then it can contain something like:
#!/bin/sh
files=$(find ~ \
-type d \( \
-path "$HOME/.*" \
-or -path ~/downloads \
-or -path ~/videos \
-or -name ".git" \
\) -prune -or -print)
echo "$files" | backup --keep 14 /media/usb/backups/ /media/sdcard/backups/ || exit 1
To automount the usb/sdcard on boot, add the following to /etc/fstab
:
UUID=[UUID from `lsblk -f`] /media/[usb] [ext4] noauto,nofail,x-systemd.automount,x-systemd.idle-timeout=2,x-systemd.device-timeout=2,user
UUID=[UUID from `lsblk -f`] /media/[shared] [vfat/ntfs] noauto,nofail,x-systemd.automount,x-systemd.idle-timeout=2,x-systemd.device-timeout=2,user,uid=[username],gid=[username]
And run the following:
sudo mkdir /media/[usb]
sudo chown [user]:[user] /media/[usb]
mount /media/[usb]
enable persistent logging by running:
sudo mkdir /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald
To automatically clean old logs, run sudo crontab -e
and add:
0 */6 * * * journalctl --vacuum-time=14d
sudo rmmod pcspkr
. ~/system/home/.profile
connect-dots --with-root --with-suckless --with-fonts
restart
apt-list > ~/.fresh-apt-list
- meld
- EPUBReader
- Open Image in New Tab (robines)
- Save Page WE
- Tab Session Manager
- uBlock Origin
ln -s ~/.mozilla/firefox/user.js ~/.mozilla/firefox/[profile]/user.js
See about:profiles
to find the current profile.
Then set up the developer tools.