Skip to content

Latest commit

 

History

History
150 lines (115 loc) · 5.15 KB

README.org

File metadata and controls

150 lines (115 loc) · 5.15 KB

Dotfiles

dotfiles for the following tools:

others (experimental):

Dependencies

I should switch to a package manager that supports declarative package definitions (e.g. nix/guix). Until then, I’m listing the requirements here.

Required binaries

emacs

sway

swaylock

swayidle

waybar

zsh

Optional binaries

swaylock-effects

`dnf copr enable eddsalkield/swaylock-effects`

dnf install swaylock-effects

U2F auth

Supported services

  • github.com
  • gitlab.com
  • porkbun.com
  • namecheap.com

-

How to enable

Heavily based on this article and adapted from the Arch guide.

  1. Install required packages: sudo dnf install pamu2fcfg pam-u2f
  2. Generate the key mappings pamu2fcfg > ~/.config/u2f_keys

    If you have multiple hardware keys, you need to run the following for every subsequent key: pamu2fcfg -n >> ~/.config/u2f_keys

  3. Move it so it can be used for centralized authentication: sudo mv ~/.config/u2f_keys /etc/u2f_mappings
  4. To use it with GDM/GNOME, you need to edit this file: sudo -e '/etc/pam.d/gdm-password'

    And add the following line underneath the `pam_selinux_permit.so` entry: auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue

  5. And for sudo, it’s a similar process; edit the following file: sudo -e '/etc/pam.d/sudo'

    And add a similar looking line for line 2: auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue

  6. swaylock: sudo -e '/etc/pam.d/swaylock'

    and add the following line (before `auth include login`, if that’s present): auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue

    Press the key button and then enter to log-in

Poetry

All good, don’t forget to enable completions As of 2022-04-22: fpath+=$ZDOTDIR/zfunc (before compinit) poetry completions zsh > $ZDOTDIR/zfunc/_poetry

Nix

home-manager

home-manager switch to apply a configuration

Guix

On a new system

  • Add all channels: guix pull -C ~~/.config/guix/channels.scm
  • Install packages defined in manifest: guix package -m ~~/.config/guix/packages.scm

Maintenance

  • On a foreign distro:
    • upgrade the build daemon by running: sudo -i guix pull
    • if the distro uses systemd also run: systemctl restart guix-daemon.service
    • don’t forget to upgrade the guix channels sha every now and then
    • Fedora: Use `dnf history userinstalled` to see which packages have been installed and to replace with guix packages
    • Ubuntu: Use `apt list –installed` to see list of installed packages

Do not forget

  • /usr/share/applications/[...].desktop cannot be executed: Remote peer disconnected Open the desktop file, look for a DBusActivatable=true line and comment it out An alternative solution (running exec dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus) didn’t seem to work for me…
  • Unable to connect to /run/user/1000/sway-ipc.1000.3043.sock export SWAYSOCK=/run/user/$(id -u)/sway-ipc.$(id -u).$(pgrep -x sway).sock
  • Build fails with 8GB space on /tmp - No space left on device mount -o remount,size=15G /tmp Adjust size to your needs

Known issues

  • [sway] Coming back from sleep doesn’t restore the laptop screen (it’s all black)
  • [sway] Reloading sway/returning from sleep causes firefox-wayland to crash
    • workaround: don’t use `input *` to switch kb layout
  • [waybar] Disappears every now and then
    • “workaround”: run `nohup waybar &` to restart it
    • last incident on 2022-03-15
  • [sway] reloading sway sometimes does not load gammastep
  • [firefox] Doesn’t use $XDG_CONFIG_HOME
  • [thunderbird] Doesn’t use $XDG_CONFIG_HOME
  • [tmux] “SSH/Mosh aware username and hostname status line information” from oh-my-tmux
  • [kodi] Doesn’t use $XDG_CONFIG_HOME
    • Setting $KODI_HOME doesn’t seem to be working, kodi still looks for ~/.kodi and creates it if missing
  • [zsh] has to be installed on the fedora side as well, otherwise the OS doesn’t see the PATH to the guix version and reverts to bash.
  • [swaylock] & guix: swaylock needs to be setuid to read /etc/shadow