repo: Remove leftover stow setup

Removed stow-related files, switched dotlink
to use dotter instead of stow.
This commit is contained in:
Marty Oehme 2023-10-03 16:00:36 +02:00
parent f8cd642555
commit a316eeead2
Signed by: Marty
GPG key ID: EDBF2ED917B2EF6A
9 changed files with 30 additions and 43 deletions

View file

@ -1 +0,0 @@
^/.* # everything

View file

@ -4,14 +4,17 @@
# a development environment based on git and nvim. # a development environment based on git and nvim.
[base] [base]
depends = ["shell", "git", "nvim", "scripts", "ssh", "terminal"] depends = ["shell", "git", "nvim", "scripts", "ssh", "terminal", "bootstrap"]
[bootstrap.files]
"bootstrap/dotlink.sh" = "~/.config/sh/alias.d/dotlink.sh"
[shell.files] [shell.files]
"sh/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "sh/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
sh = "~" sh = "~"
[git.files] [git.files]
"git/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "git/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
git = "~" git = "~"
[nvim.files] [nvim.files]
@ -20,14 +23,14 @@ git = "~"
nvim = "~" nvim = "~"
[scripts.files] [scripts.files]
"scripts/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "scripts/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
scripts = "~" scripts = "~"
[ssh.files] [ssh.files]
ssh = "~" ssh = "~"
[terminal.files] [terminal.files]
"terminal/.config/vifm" = { target = "~/.config/vifm", type = "symbolic" } "terminal/.config/vifm" = "~/.config/vifm"
terminal = "~" terminal = "~"
# LINUX: A linux machine, with systemd enabled, auto-mounting set up and a nice productivity suite. # LINUX: A linux machine, with systemd enabled, auto-mounting set up and a nice productivity suite.
@ -36,28 +39,28 @@ terminal = "~"
depends = ["base", "disks", "pass", "office", "services", "social", "writing"] depends = ["base", "disks", "pass", "office", "services", "social", "writing"]
[disks.files] [disks.files]
"disks/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "disks/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
disks = "~" disks = "~"
[pass.files] [pass.files]
"pass/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "pass/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
"pass/.local/share/pass-pick/assets/rofi-menu.gif" = { target = "~/nowhere", type = "symbolic", if = "false" } "pass/.local/share/pass-pick/assets/rofi-menu.gif" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
pass = "~" pass = "~"
[office.files] [office.files]
"office/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "office/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
"office/.config/glow/email.json" = { target = "~/.config/glow/email.json", type = "symbolic" } "office/.config/glow/email.json" = { target = "~/.config/glow/email.json", type = "symbolic" }
office = "~" office = "~"
[services.files] [services.files]
"services/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "services/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
services = "~" services = "~"
[social.files] [social.files]
social = "~" social = "~"
[writing.files] [writing.files]
"writing/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "writing/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
"writing/.config/papis/papistui.yaml" = { target = "~/.config/papis/papistui.yaml", type = "symbolic" } "writing/.config/papis/papistui.yaml" = { target = "~/.config/papis/papistui.yaml", type = "symbolic" }
"writing/.config/sioyek/prefs_user.config" = { target = "~/.config/sioyek/prefs_user.config", type = "template", prepend = "# TEMPLATED BY DOTTER\n" } "writing/.config/sioyek/prefs_user.config" = { target = "~/.config/sioyek/prefs_user.config", type = "template", prepend = "# TEMPLATED BY DOTTER\n" }
writing = "~" writing = "~"
@ -71,11 +74,11 @@ depends = ["linux", "desktop", "multimedia", "qutebrowser"]
"desktop/.config/flavours/templates" = { target = "~/.config/flavours/templates", type = "symbolic" } "desktop/.config/flavours/templates" = { target = "~/.config/flavours/templates", type = "symbolic" }
"desktop/.config/waybar/config" = { target = "~/.config/waybar/config", type = "symbolic" } "desktop/.config/waybar/config" = { target = "~/.config/waybar/config", type = "symbolic" }
"desktop/.config/mako/config" = { target = "~/.config/mako/config", type = "template", prepend = "# TEMPLATED BY DOTTER\n" } "desktop/.config/mako/config" = { target = "~/.config/mako/config", type = "template", prepend = "# TEMPLATED BY DOTTER\n" }
"desktop/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "desktop/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
desktop = "~" desktop = "~"
[multimedia.files] [multimedia.files]
"multimedia/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } "multimedia/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" }
"multimedia/.config/mpv/scripts" = { target = "~/.config/mpv/scripts", type = "symbolic" } "multimedia/.config/mpv/scripts" = { target = "~/.config/mpv/scripts", type = "symbolic" }
"multimedia/.config/ncmpcpp/config" = { target = "~/.config/ncmpcpp/config", type = "symbolic" } "multimedia/.config/ncmpcpp/config" = { target = "~/.config/ncmpcpp/config", type = "symbolic" }
"multimedia/.config/mpv/fonts/uosc_icons.otf" = { target = "~/.config/mpv/fonts/uosc_icons.otf", type = "symbolic" } "multimedia/.config/mpv/fonts/uosc_icons.otf" = { target = "~/.config/mpv/fonts/uosc_icons.otf", type = "symbolic" }

View file

@ -1 +0,0 @@
^/.* # everything

View file

@ -1,5 +0,0 @@
--target=~
--ignore='^.gitlab-ci.yml$'
--ignore='^.stowrc$'
--ignore='^.githooks$'
--ignore='^README.md$'

View file

@ -1,26 +1,25 @@
# `~/🌹` # `~/🌹`
Note that the below screenshots still show the X configuration from [v0.1](https://gitlab.com/marty-oehme/dotfiles/-/tags/v0.1) which is very old by now. Note that the below screenshots still show the X configuration from [v0.1](https://gitlab.com/marty-oehme/dotfiles/-/tags/v0.1) which is *very* old by now.
The current dotfiles are geared toward wayland for which the setup looks similar but not identical to the previews below. The current dotfiles are geared toward wayland for which the setup looks similar but not identical to the previews below.
## What's in these dotfiles ## What's in these dotfiles
* [x] vim configuration for simple programming tasks (especially go/typescript/python/bash) and prose * [x] wayland setup using `riverwm` with quick access to many overlays and picking tools for styles, downloads, browsing history, passwords and more
* [x] vim configuration for simple programming tasks (especially python/bash/lua) and prose (markdown/quarto/latex)
* [x] academic workflow tools, to allow quick citation, pdf compilation, and preview * [x] academic workflow tools, to allow quick citation, pdf compilation, and preview
* [x] simple, efficient waybar with package update notification, and spotify (mpris) integration * [x] simple, efficient waybar with package update notification and mpris integration
* [x] tmux session management through `tm` and `tl` tools
* [x] tmux fuzzy-searching of terminal sessions to switch to with hot-key (`<C-A><C-s>`) in addition to normal session switching
* [x] system-wide color management (terminals, vim, qutebrowser, polybar, xresources) through [`flavours`](https://github.com/Misterio77/flavours) application using [base16](http://chriskempson.com/projects/base16/) themes * [x] system-wide color management (terminals, vim, qutebrowser, polybar, xresources) through [`flavours`](https://github.com/Misterio77/flavours) application using [base16](http://chriskempson.com/projects/base16/) themes
* [x] quick theme switching by activating `flavours` and fuzzy-searching themes with hot-key (default `<Super>=<Shift>+S`) * [x] quick theme switching by activating `flavours` and fuzzy-searching themes with hot-key (default `<Super>=<Shift>+S`)
* [x] many vim color-schemes with quick light/dark switching (`F8`) and individual theme switch (`<Space>+F8`)
* [x] quick directory jumping using `z`, with `fzf` integration * [x] quick directory jumping using `z`, with `fzf` integration
* [x] `fzf`-like integrations for bibtex citation, vim buffer management, most recently used switching, shell command history, and more * [x] `fzf`-like integrations for bibtex citation, vim buffer management, most recently used switching, shell command history, and more
* [x] password management with `pass` and picking it with automatic typing into any window
[![Styler recoloring demo](https://gitlab.com/marty-oehme/dotfiles/-/wikis/uploads/bde87deda694590a2e08e21552e11309/styler.webp)](https://gitlab.com/marty-oehme/dotfiles/-/wikis/uploads/90894e53eff378db4d7f9f49e7a69fab/styler.mp4) [![Styler recoloring demo](https://gitlab.com/marty-oehme/dotfiles/-/wikis/uploads/bde87deda694590a2e08e21552e11309/styler.webp)](https://gitlab.com/marty-oehme/dotfiles/-/wikis/uploads/90894e53eff378db4d7f9f49e7a69fab/styler.mp4)
## Quick-Start ## Quick-Start
The dotfiles use `GNU stow` to link themselves in the home directory. You can clone this repository anywhere (though I have mine in `~/.dotfiles` as it seemed most logical for me). The dotfiles use `dotter` to link themselves in the home directory. You can clone this repository anywhere (though I have mine in `~/.dotfiles` as it seemed most logical for me).
I would recommend doing an initial `git clone --recursive` for this repository, since it contains git [submodules](https://nering.dev/2016/git-submodules-vs-subtrees/), which will then automatically get pulled in as well. I would recommend doing an initial `git clone --recursive` for this repository, since it contains git [submodules](https://nering.dev/2016/git-submodules-vs-subtrees/), which will then automatically get pulled in as well.
Of course, you can do it non-recursively and then just pull those modules selectively which you actually want. Of course, you can do it non-recursively and then just pull those modules selectively which you actually want.
@ -29,7 +28,7 @@ Once in the repository directory, when you then run `./install.sh` it will insta
I would mostly recommend this on fresh machines or a test machine first - it *will* link my personal dotfiles and, if you allow it, *will* install quite a few packages. I would mostly recommend this on fresh machines or a test machine first - it *will* link my personal dotfiles and, if you allow it, *will* install quite a few packages.
By default it will ask your consent for some steps -- use `./install.sh -f` to force yes to everything. By default it will ask your consent for some steps -- use `./install.sh -f` to force yes to everything.
The dotfile installation procedure is based on `stow`, it will *not overwrite* anything already in the home directory (though you can force it to if you really want, using `stow --override='.*'` -- I do not recommend this). The dotfile installation procedure is based on `dotter`, it will generally *not overwrite* anything already in the home directory, but of course be observant when doing ptentially destructive operations.
> **NOTE** > **NOTE**
> The same non-destructive installation procedure does *not* apply to the package installation and system setting file linking, where it can potentially overwrite or remove existing files. > The same non-destructive installation procedure does *not* apply to the package installation and system setting file linking, where it can potentially overwrite or remove existing files.
@ -38,7 +37,7 @@ After all files are linked and you open a new shell session, the `dotlink` alias
[^1]: This alias only works when the dotfiles are cloned into `~/.dotfiles`, mirroring my setup. [^1]: This alias only works when the dotfiles are cloned into `~/.dotfiles`, mirroring my setup.
This is due to a hard-coded cd into this directory. This is due to a hard-coded cd into this directory.
If your dotfiles lie in another directory and you want to use the dotlink alias, simply change the corresponding line in `bootstrap/.config/sh/alias.d/dotlink.sh`] If your dotfiles lie in another directory and you want to use the dotlink alias, simply change the corresponding line in `bootstrap/.config/sh/alias.d/dotlink.sh`
Both automatic installation paths are presumably somewhat brittle. In any case, I would suggest to manually look through the files for things you want instead of copying and activating everything. Both automatic installation paths are presumably somewhat brittle. In any case, I would suggest to manually look through the files for things you want instead of copying and activating everything.
Dotfiles are too personal to be standardized like that. Dotfiles are too personal to be standardized like that.
@ -60,7 +59,7 @@ Enjoy!
* [`vifm`](https://github.com/vifm/vifm) - vim-like file-manager * [`vifm`](https://github.com/vifm/vifm) - vim-like file-manager
* [`qutebrowser`](https://github.com/qutebrowser/qutebrowser) - vim-key enabled web browser * [`qutebrowser`](https://github.com/qutebrowser/qutebrowser) - vim-key enabled web browser
* [`pass`](pass/README.md) - Password management suite * [`pass`](pass/README.md) - Password management suite
* [`bibtex`](bibtex/README.md) - LateX/BibteX/pandoc plaintext writing & reference suite * [`bibtex`] - LateX/BibteX/pandoc plaintext writing & reference suite
* [`git`](git/README.md) - distributed version control system. * [`git`](git/README.md) - distributed version control system.
* [`office`](office/README.md) - office/productivity software for writing e-mail and setting appointments * [`office`](office/README.md) - office/productivity software for writing e-mail and setting appointments
@ -72,7 +71,7 @@ Enjoy!
* Whereas `sh` module scripts are requirements for other scripts, `.local/bin` in the `scripts` module contains most executable user scripts. Most of these have been migrated to other corresponding modules (e.g. if a script exclusively targets git functionality, it will live there), some useful --- or left-over --- stand-alone scripts remain however. * Whereas `sh` module scripts are requirements for other scripts, `.local/bin` in the `scripts` module contains most executable user scripts. Most of these have been migrated to other corresponding modules (e.g. if a script exclusively targets git functionality, it will live there), some useful --- or left-over --- stand-alone scripts remain however.
* `.local/share/pandoc` contains configuration for academic latex writing (pandoc, really) and is of interest if you want to use this functionality. * `.local/share/pandoc` contains configuration for academic latex writing (pandoc, really) and is of interest if you want to use this functionality.
* `.xinitrc` is used for x initialization and program startup. At some point, some of the consistently running applications may be moved to systemd/runit as supervised services. * `.xinitrc` is used for x initialization and program startup. At some point, some of the consistently running applications may be moved to systemd/runit as supervised services.
* Generally, top-level directories starting with a . are only meaningful for the *repository* not for the functionality of the machine that these dotfiles are deployed on. That means `.gitlab-ci.yml`, `.assets/`, `.stowrc` and similar files and directories will not show up in the final deployment in any home directory. Perhaps they should be called dotdot-files since they're the dotfiles for my dotfiles. 🙂 (Also, '[dotfiles](https://en.wikipedia.org/wiki/Semantic_satiation)'.) * Generally, top-level directories starting with a . are only meaningful for the *repository* not for the functionality of the machine that these dotfiles are deployed on. That means `.gitlab-ci.yml`, `.assets/`, `.gitignore` and similar files and directories will not show up in the final deployment in any home directory. Perhaps they should be called dotdot-files since they're the dotfiles for my dotfiles. 🙂 (Also, '[dotfiles](https://en.wikipedia.org/wiki/Semantic_satiation)'.)
[^shreq]: I may remove this requirement in the future to make modules more self-contained. However, relying on some base utility scripts makes it easier to avoid duplicating such functionality for each individual script in other modules. [^shreq]: I may remove this requirement in the future to make modules more self-contained. However, relying on some base utility scripts makes it easier to avoid duplicating such functionality for each individual script in other modules.

View file

@ -1,8 +0,0 @@
# TODO find a more generic way to express 'ignore any non-folder files'
^/install_packages.sh
^/update_package_list.sh
^/packages.*.tsv
^/Dockerfile
^/README.md
^/system-packages

View file

@ -9,6 +9,7 @@
# #
# to customize this to your own needs, change the `push folder` to the # to customize this to your own needs, change the `push folder` to the
# location of your dotfiles (stow) repository # location of your dotfiles (stow) repository
alias dotlink="pushd ~/.dotfiles;\ alias dotlink="pushd ~/.dotfiles;\
stow -R */ 2> >(grep -v 'Absolute/relative mismatch between Stow dir' 1>&2) ;\ dotter deploy;\
popd" popd"

View file

@ -278,7 +278,6 @@ snap-pac Pacman hooks that use snapper to create pre/post btrfs snapshots like o
speedtest-cli Command line interface for testing internet bandwidth using speedtest.net R speedtest-cli Command line interface for testing internet bandwidth using speedtest.net R
sshfs FUSE client based on the SSH File Transfer Protocol R sshfs FUSE client based on the SSH File Transfer Protocol R
steam Valve's digital software delivery system R steam Valve's digital software delivery system R
stow Manage installation of multiple softwares in the same directory tree R
sudo Give certain users the ability to run some commands as root R sudo Give certain users the ability to run some commands as root R
surfraw Shell Users' Revolutionary Front Rage Against the Web R surfraw Shell Users' Revolutionary Front Rage Against the Web R
swaybg Wallpaper tool for Wayland compositors R swaybg Wallpaper tool for Wayland compositors R

Can't render this file because it has a wrong number of fields in line 29.

View file

@ -7,7 +7,7 @@
# #
# Will first install yay, then all my used packages (read from bootstrap/packages.txt) # Will first install yay, then all my used packages (read from bootstrap/packages.txt)
# #
# Finally, symlinks all dotfiles into their correct locations using stow # Finally, symlinks all dotfiles into their correct locations using dotter
bootstrap_dir="${DOT_BOOTSTRAP_DIR:-./bootstrap}" bootstrap_dir="${DOT_BOOTSTRAP_DIR:-./bootstrap}"
unattended_install="${DOT_UNATTENDED_INSTALL:-false}" unattended_install="${DOT_UNATTENDED_INSTALL:-false}"