From a316eeead2ec0fe2895adf5a001b0f43f0468185 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Tue, 3 Oct 2023 16:00:36 +0200 Subject: [PATCH] repo: Remove leftover stow setup Removed stow-related files, switched dotlink to use dotter instead of stow. --- .assets/.stow-local-ignore | 1 - .dotter/global.toml | 29 ++++++++++--------- .githooks/.stow-local-ignore | 1 - .stowrc | 5 ---- README.md | 21 +++++++------- bootstrap/.stow-local-ignore | 8 ----- bootstrap/{.config/sh/alias.d => }/dotlink.sh | 5 ++-- bootstrap/packages_stable.tsv | 1 - install.sh | 2 +- 9 files changed, 30 insertions(+), 43 deletions(-) delete mode 100644 .assets/.stow-local-ignore delete mode 100644 .githooks/.stow-local-ignore delete mode 100644 .stowrc delete mode 100644 bootstrap/.stow-local-ignore rename bootstrap/{.config/sh/alias.d => }/dotlink.sh (85%) diff --git a/.assets/.stow-local-ignore b/.assets/.stow-local-ignore deleted file mode 100644 index 96787ae..0000000 --- a/.assets/.stow-local-ignore +++ /dev/null @@ -1 +0,0 @@ -^/.* # everything diff --git a/.dotter/global.toml b/.dotter/global.toml index 2a07138..5424ccf 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -4,14 +4,17 @@ # a development environment based on git and nvim. [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] -"sh/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } +"sh/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } sh = "~" [git.files] -"git/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } +"git/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } git = "~" [nvim.files] @@ -20,14 +23,14 @@ git = "~" nvim = "~" [scripts.files] -"scripts/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } +"scripts/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } scripts = "~" [ssh.files] ssh = "~" [terminal.files] -"terminal/.config/vifm" = { target = "~/.config/vifm", type = "symbolic" } +"terminal/.config/vifm" = "~/.config/vifm" terminal = "~" # 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"] [disks.files] -"disks/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } +"disks/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } disks = "~" [pass.files] -"pass/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } -"pass/.local/share/pass-pick/assets/rofi-menu.gif" = { target = "~/nowhere", 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 = "~" [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 = "~" [services.files] -"services/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } +"services/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } services = "~" [social.files] social = "~" [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/sioyek/prefs_user.config" = { target = "~/.config/sioyek/prefs_user.config", type = "template", prepend = "# TEMPLATED BY DOTTER\n" } writing = "~" @@ -71,11 +74,11 @@ depends = ["linux", "desktop", "multimedia", "qutebrowser"] "desktop/.config/flavours/templates" = { target = "~/.config/flavours/templates", 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/README.md" = { target = "~/README.md", type = "symbolic", if = "false" } +"desktop/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } desktop = "~" [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/ncmpcpp/config" = { target = "~/.config/ncmpcpp/config", type = "symbolic" } "multimedia/.config/mpv/fonts/uosc_icons.otf" = { target = "~/.config/mpv/fonts/uosc_icons.otf", type = "symbolic" } diff --git a/.githooks/.stow-local-ignore b/.githooks/.stow-local-ignore deleted file mode 100644 index 96787ae..0000000 --- a/.githooks/.stow-local-ignore +++ /dev/null @@ -1 +0,0 @@ -^/.* # everything diff --git a/.stowrc b/.stowrc deleted file mode 100644 index e310a31..0000000 --- a/.stowrc +++ /dev/null @@ -1,5 +0,0 @@ ---target=~ ---ignore='^.gitlab-ci.yml$' ---ignore='^.stowrc$' ---ignore='^.githooks$' ---ignore='^README.md$' diff --git a/README.md b/README.md index c5de3a4..3d97a7e 100644 --- a/README.md +++ b/README.md @@ -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. ## 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] simple, efficient waybar with package update notification, and spotify (mpris) integration -* [x] tmux session management through `tm` and `tl` tools -* [x] tmux fuzzy-searching of terminal sessions to switch to with hot-key (``) in addition to normal session switching +* [x] simple, efficient waybar with package update notification and mpris integration * [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 `=+S`) -* [x] many vim color-schemes with quick light/dark switching (`F8`) and individual theme switch (`+F8`) * [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] 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) ## 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. 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. 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** > 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. 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. Dotfiles are too personal to be standardized like that. @@ -60,7 +59,7 @@ Enjoy! * [`vifm`](https://github.com/vifm/vifm) - vim-like file-manager * [`qutebrowser`](https://github.com/qutebrowser/qutebrowser) - vim-key enabled web browser * [`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. * [`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. * `.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. -* 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. diff --git a/bootstrap/.stow-local-ignore b/bootstrap/.stow-local-ignore deleted file mode 100644 index 140842b..0000000 --- a/bootstrap/.stow-local-ignore +++ /dev/null @@ -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 diff --git a/bootstrap/.config/sh/alias.d/dotlink.sh b/bootstrap/dotlink.sh similarity index 85% rename from bootstrap/.config/sh/alias.d/dotlink.sh rename to bootstrap/dotlink.sh index a8fb1eb..9cf3d69 100644 --- a/bootstrap/.config/sh/alias.d/dotlink.sh +++ b/bootstrap/dotlink.sh @@ -9,6 +9,7 @@ # # to customize this to your own needs, change the `push folder` to the # location of your dotfiles (stow) repository + alias dotlink="pushd ~/.dotfiles;\ - stow -R */ 2> >(grep -v 'Absolute/relative mismatch between Stow dir' 1>&2) ;\ - popd" + dotter deploy;\ + popd" diff --git a/bootstrap/packages_stable.tsv b/bootstrap/packages_stable.tsv index 89aac74..665ae96 100644 --- a/bootstrap/packages_stable.tsv +++ b/bootstrap/packages_stable.tsv @@ -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 sshfs FUSE client based on the SSH File Transfer Protocol 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 surfraw Shell Users' Revolutionary Front Rage Against the Web R swaybg Wallpaper tool for Wayland compositors R diff --git a/install.sh b/install.sh index 966d12d..46211ae 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,7 @@ # # 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}" unattended_install="${DOT_UNATTENDED_INSTALL:-false}"