Enable build support by adding .onedev-buildspec.yml
apkv Loading last commit info...
base
bin
etc
gnupg
gui/fonts
librewolf
ssh
syslinux
termux
.editorconfig
.gitignore
.gitmodules
LICENSE
NOTICE
README.md
install.sh
README.md

sev's dotfiles

I call them dotfiles, but really these files cover a large number of softwares, and not just traditional "dotfiles" as expected by the *nix ecosystem.

Software versions

In general, the versions of any software that have provided configuration(s) in this repository are expected to be fully up-to-date with the latest release version of said software at the time of commit, which may be one or several versions newer than what many "stable" or "long-term service" operating systems/package repositories provide. For example, as of this writing, many stable repos do not have the latest Vim 9, which contains the editorconfig optional package. Users of older Vim versions will see errors when trying to load these new packages every time Vim is started.

Supported software

This project configures the following software:

  • Git
  • GnuPG
    • Note: I specify my own key ID and keygrip in gnupg.conf and sshcontrol, so you should specify your own if you will be using GPG.
  • LibreWolf
  • Python
  • SSH
  • Syslinux
  • Termux
  • Vim
  • XDG User Directories
    • Note: Both environment variables (loaded by Zsh) and files (etc/user-dirs.*) are configured.
  • Zsh

Provided files

Outside of configuration, I also provide data files:

  • Fonts
    • Dina (TTF and PCF)
    • Adobe Source Pro (Sans and Serif)
  • Scripts
    • apkv
    • colors: Shows all 8-bit terminal color foreground and background combinations, including effects like bold.
    • gpg-learn-keys: Update GPG Agent with any recently plugged in hardware security keys.
    • pinentry: A wrapper script that picks out the best pinentry script installed on the system, by my own metrics of course.
    • setup-perl5: Short script that sets up Perl 5 with the local::lib package using cpanm. Because I always forget when I need it most.
    • ykman-oath-reload: Clear a YubiKey's OATH entries and reload them from a file or standard input, using Google's otpauth scheme. One per line.

Install

Run install.sh from the project directory. It will handle linking all the files to the correct places, and moving user directories to their new homes, if present.

Should I use this?

Honestly, I wouldn't recommend installing this to your own profile. Install it to a new profile and see if you like my changes. If so, take the parts you like for yourself. In particular, my Zsh configuration is very overengineered and specific to my tastes. It has the same kind of effect as if you had installed an opinionated configuration like Oh My Zsh, but without the end-user configuration, community, and plugins.

I do, however, spend a lot of time trying to make sane baselines (by my own metrics and sensibilities) for both Zsh and Vim, which includes providing compatibility for other softwares. For example, my Zsh supports loading SSH and GPG agents based on a number of factors, including support for Termux OkcAgent, and automatic GPG socket forwarding; Vim supports providing a like-for-like experience no matter if you're using vanilla Vim, Vim with a system-installed sensible.vim by Tim Pope (this is the case on Termux), and Neovim. If anything, there is much to be learned in such areas. I try to leave as many comments as I can in the configurations and code I make, mostly for future me, but also for anyone else that might be reading.

License

This project, except for directory trees containing their own LICENSE file or where otherwise noted, is licensed under the Apache License, Version 2.0 (the "License"); you may not use it except in compliance with the License. A copy of the License is made available in the LICENSE file. You may also obtain a copy of the license at the Apache website.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Please wait...
Page is in error, reload to recover