apt install aptitude emacs-nox
emacs /etc/apt/sources.list # <name> -> stable + contrib non-free
aptitude update
aptitude install intel-microcode firmware-iwlwifi
aptitude install awesome xfce4-power-manager xscreensaver xterm
aptitude install vlc transmission-gtk pavucontrol blueman
aptitude install network-manager-openvpn
dpkg-reconfigure tzdata
Be careful, the battery icon could be turned off, see xfce4-power-manager-settings
.
- Binary install
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh bash guix-install.sh
Do not forget to add the
gpg
key as hinted by the helper script. - Update (could be long)
guix pull
- Install the locales used for the daemon
guix install glibc-locales
- Do not forget to restart the daemon:
systemctl restart guix-daemon.service
and see the configuration file
/etc/systemd/system/guix-daemon.service
.
- Update
guix pull hash guix
Now
~/.config/guix/current
should be created. - Clone the configuration files
guix shell git nss-certs -- \ git clone https://github.com/zimoun/my-conf.git
Usually in
~/src/
. - Populate the profiles
- Create the folder and track the origin
GUIX=~/.config/guix/current/bin/guix
GUIX_MYPROFILES=~/.config/guix/profiles
mkdir -p $GUIX_MYPROFILES
$GUIX describe -f channels \
> $GUIX_MYPROFILES/from-channels.scm
- Install for example the Emacs related packages
mkdir -p ${GUIX_MYPROFILES}/emacs/emacs
$GUIX package \
-m .config/guix/manifests/emacs.scm \
-p ${GUIX_MYPROFILES}/emacs/emacs \
--fallback
The file my-dumb-manifest-installer.sh
should automatize this for all the manifests.
Note that the option --fallback
is required because some substitutes
should be missing.
Maybe create ~/.config/emacs
.
- Propagate all the configurations files
guix shell stow \ -- stow -d $(pwd) -t $HOME . -R
Sometimes the folder does not exist yet and should be used by other applications, so to avoid issues and mix files in
my-conf/
let create them before stowing them, e.g.,mkdir -p ~/.emacs.d/
- Optionally cleanup the store
guix gc
- Create email encrypted password
gpg -o ~/mail/pass-kikoo.gpg -c -
- Enable sync of Emails
export XDG_RUNTIME_DIR=/run/user/$(id -u) systemctl --user start mbsync.service mbsync.timer systemctl --user enable mbsync.timer systemctl --user start smtp.service smtp.timer systemctl --user enable smtp.timer
Now logout and relog (or maybe reboot).
env -i $(which bash) --login --noprofile --norc
GUIX_PROFILE=path/to/project
. $GUIX_PROFILE/etc/profile
Be careful !
# as root
echo "kernel.unprivileged_userns_clone = 1" > /etc/sysctl.d/local.conf
sysctl --system
Trick for Debian.
guix build texlive -K
guix gc --list-dead | grep texmf
# As root
ln -s /gnu/store/<hash>-texlive-<date>-texmf.tar.xz \
/var/guix/gcroots/texlive-<date>-texmf.tar.xz
# As user
guix gc
- Check if
/dev/kvm
is there:ls -l /dev/kvm
- Add the user to the KVM group
sudo usermod -a -G kvm <user> newgrp kvm
- If it does not work, then try:
sudo chmod 777 /dev/kvm
- Verify with e.g.
guix system image -t docker gnu/system/examples/docker-image.scm
sudo chmod 666 /var/run/docker.sock
One of the issue is that Gmail holds forever all the emails in All Mails and it is then hard to definitively remove them. They claim it works with some IMAP settings but I have failed. The solution I came up is:
- Add the tag
+deleted
to messages. - Remove them:
notmuch tag -unread tag:deleted notmuch search --output=files --format=text0 tag:deleted \ | xargs -0 --no-run-if-empty rm
- Sync:
mbsync -Va
- Remove them time to time by hand using the WebApp interface, using the query:
-in:inbox -from:me -label:protected -label:starred
Be careful, it seems not working as expected, since Gmail outputs all the thread. Aside, the label
protected
is to skip the archived emails.
Last, do not forget to allow IMAP for some folders, e.g., [Gmail]/Bin
.
Example of query – size the detached GPG signatures:
guix shell pv
notmuch search --output=messages tag:signed \
| xargs -I{} notmuch show --part=3 {} \
| pv -b 1> /dev/nul
# Assumption!
# Part: 1 all message, 2 body, 3 first attachment
git remote add origin https://<token>@github.com/<username/<repo>
where <token>
has to be generated from their WebUI: User settings ->
Developer Settings -> Personal access tokens; uniquely defined, thus
redefined for each repo .git/config
.
date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"