sev [Tue, 28 Nov 2023 18:51:22 +0000 (12:51 -0600)]
zsh: fixup env vars and update a comment
- removed graphical env vars as they aren't really doing anything. would be
useful for unmanaged invocations of xorg/wayland, but I don't do those
anymore. if graphical configuration is ever needed it should be added to site
local rc anyway since it relies heavily on underlying system configuration.
- scoped vars inside functions instead of unsetting.
- scoped some arithmetic vars inside _sev_setpath that were not being unset.
- added /opt/<provider>/<package>/bin and /opt/<package>/bin to path per FHS.
- be more aggressive in unsetting GNUPGHOME after forwarding.
- updated a gpg comment for clarification while there.
sev [Fri, 20 Oct 2023 19:26:06 +0000 (14:26 -0500)]
zshenv: fix xdg array logic
$xdg_*_dirs parameter expansion was augmented to use :# to remove empty
elements, to replace the old system that used the scalar $XDG_*_DIRS
parameters. the old code was originally added to remove the first value of the
DIRS arrays if they were empty. however, the $XDG_*_HOME vars were unquoted a
while ago, and zsh should already remove empty elements from unquoted array
expansions, rendering that safeguard unnecessary. the newest change also
introduced a regression where the arrays were being flattened into scalars.
this also caused KDE to not start due to being unable to find necessary system
files elided by the broken vars.
this was all fixed by removing the empty var removal code, and simply unquoting
everything. since SH_WORDSPLIT is not set, the parameters will not be
wordsplit.
this also fixed an issue where duplicate array values were not being removed
due to the presence of a trailing slash.
sev [Fri, 20 Oct 2023 17:03:44 +0000 (12:03 -0500)]
more zsh fixes
- various comment updates
- moved some stuff out of zprofile and into zshenv for earlier use
- fixed zoxide bug until upstream fixes it
- PATH will now be updated twice, once in zshenv and once in zprofile
- rehash alias will update PATH before rehashing
- FPATH is now deduplicated like PATH is
Arch Linux and other systems (especially FreeBSD around version 10 and 11, last
I used it) do a lot of stuff to your shell environment via /etc/profile{,d},
and this may end up being sourced by the system zprofile for compatibility.
rather than shove everything into our local zprofile to override this aberrant
and often unwanted behavior as was previously done, let's just set things up in
zshenv as it should be, and if there are any problems, use load-site-dotfile
to fix things up instead. system profile scripts that make use of env vars will
also be taken care of with this approach, like flatpak-bindir.sh in the Arch
Linux flatpak package for example.
we also now update PATH twice so it can be set up early for our own purposes,
and so that any weird changes made by system profile scripts can be fixed.
sev [Mon, 16 Oct 2023 23:41:05 +0000 (18:41 -0500)]
more zsh refactoring
- fixed bug where zshenv would not be called after setting ZDOTDIR since it
lives in $HOME
- moved some stuff from .zprofile to .zshenv and fixed ordering
- added load-site-dotfile instead of sourcing per-file
- _sev_home still not done yet... just ignore it
sev [Wed, 11 Oct 2023 22:10:05 +0000 (17:10 -0500)]
zsh: reorder zshrc, fix zoxide, git aliases
zoxide completion was not working since compinit was being loaded after zoxide
init was being run, so compinit was moved to the top. also added some git
aliases while there.
sev [Sun, 27 Aug 2023 02:51:17 +0000 (21:51 -0500)]
ykman-oath-reload: new + restored features
- pull in codes from local files, or from stdin if not present
- look for binaries outside of *nix PATH for cygwin/msys2 envs
- handle non-*nix line endings sent by ykman
- ignore blank lines and comments (#) in input
- add script comments
sev [Sun, 23 Jul 2023 18:11:20 +0000 (13:11 -0500)]
small fixes
zsh
- detect Termux env and skip pointless zprofile early load
- don't show error on gpg setup if gpg-agent.conf doesnt exist
- remove temp var from env
sev [Mon, 17 Jul 2023 07:50:51 +0000 (02:50 -0500)]
major rework
- remove unused configs, themes, icons, scripts
- update installer
- now respect xdg env vars
- clean out old links from our source tree before reinstall
- apply default permissions to created dirs
- update vim
- remove unused plugins
- move vim dir to xdg config dir (zsh VIMINIT)
- undo and backup dirs are autocreated and are moved to xdg
- remove modeline support
- add editorconfig plugin
- update zsh
- move zsh dotfiles to xdg config subdir
- all zsh local dotfiles are now relative to ZDOTDIR
- xdg env vars are now mostly default
- better xdg handling in general
- fixed xdg *_DIRS empty array index
- redesign tmpdir generation method
- ~/bin moved to ~/.local/bin per xdg
- better broken TERM handling
- ~/.gnupg moved to ~/.config/gnupg
- gpgagent refresh is more usable now
- preferred list of EDITORs, PAGERs, and TERMINALs
- ~/.zcompdump moved to ~/.cache/zsh/.zcompdump
- prompt_arrows_preexec removed because it's annoying
- python
- ~/.pythonrc moved to ~/.config/pythonrc (zshrc PYTHONSTARTUP)
sev [Tue, 15 Mar 2022 10:47:15 +0000 (05:47 -0500)]
tweaks to zsh/env (xdg, dbus, gpg, tmp), sway, ...
.gitignore: fix paths and add sway config.d
install.sh: handle gui stuff better, fix icons, fix linking
gui:
- mostly fix cursor and size, still doesn't work sometimes
- add Qt4 and GTK4 config
sway:
- remove export section, turns out it never worked
- float wayland pinentry-qt
- start pipewire on launch
bin: fix pinentry early exit, reorganize choices
gpg: point to system pinentry
zsh:
- rewrite gpg-agent.conf to update pinentry-program
- better logout/cleanup
- allow overwriting CHARSET, LANG, LC_CTYPE
- rewrite tmp setup and usage
- rewrite xdg cache and runtime setup and usage
- add dbus launch
- split gpg home setup into own block
- split gpg and ssh agent setup
- move cleanup of gpg forwarding and tmp into function
- run gpg/tmp cleanup on logout
- update gpg/ssh agent setup to be more intelligent
- fix using wrong pinentry with better gui detection
- debounce perl local::lib setup
sev [Fri, 11 Mar 2022 05:48:11 +0000 (23:48 -0600)]
switch to sway/wayland, update zsh/mod, move files
zsh:
- update submodules
- finalize development work on zprofile
- complete refactor of most code
- now much more stable and compatible
wayland move:
- rename i3 -> sway
- update config for sway compat
- remove xorg specific files
- .xinitrc migrated to sway config
- .Xmodmap replaced with sway input block
- keep .Xresources but remove urxvt stuff, for Xwayland
- remove dmenu/dpass shims, replaced with nwg
- remove urxvt module
- update GTK configs for proper theme support
refactor:
- rename xorg directory to gui since it holds wayland and xorg content now
- rename xdg to etc
- rename root to syslinux since that's all it contains
install.sh:
- complete refactor for better functionality and new dir name support
sev [Thu, 10 Mar 2022 02:20:43 +0000 (20:20 -0600)]
remove msys/cygwin support, bugfixes, and cleanup
zshenv:
- check for and fix broken TERM
- reset path to home for login shells, for convenience
zprofile:
- fixed agent setup
- tmp folders are now handled better and do not use XDG_CACHE_HOME as root
- remove all msys/cywgin compat
zlogout:
- safer cleanup of paths
- don't clear if not interactive
prompt_arrows_setup:
- fixed color detection
- GPG forwarding has been expanded from simply overwriting the existing
sockets to instead create a new environment for each connection.
- GPG SSH agent handling has been reworked.
- default-recipient-self was added to config.
sev [Mon, 28 Jun 2021 12:58:36 +0000 (07:58 -0500)]
apkv: orphan listing, update comments
apkv list -o will show orphaned packages that are not part of any
virtual package. orphans will also be shown when listing all virtual
packages with apkv list.
apkv add will now remove packages from world if present, since their
addition to a virtual package will keep them around as part of its
dependency chain.
sev [Mon, 5 Apr 2021 10:04:23 +0000 (05:04 -0500)]
update colors, fonts, and related configs
get rid of solarized—it does not serve my purpose. replace with original
scheme based on symmetric variances on the color wheel. yellow is now
orange, magenta is purple.
a script has been added to display term color sequences in a nicer way
than what is commonly available.
update cursor, fade, etc. in .Xresources. also, delete yeahconsole from
Xresources while we are here.
first attempt at building a TTF from Dina BDFs. Vim and tmux appear to
use bold italic where it shouldn't which looks weird, but terminal color
codes come out fine. underscore is also misplaced, it is at the bottom
of the glyphs instead of at the baseline.
Dina and other monospace fonts are fixed upstream, so re-enable in
fontconfig. add some small tweaks while we are there.
https://savannah.nongnu.org/bugs/?56067
add termux colors.properties, and font.ttf link to installer.
sev [Wed, 3 Mar 2021 08:35:53 +0000 (02:35 -0600)]
add termux, organize .Xresources, export FPATH
a side-effect of a the FPATH cleanup and fixes is that the export was
removed for it. PATH is automatically flagged for export by default, but
FPATH is not, so it must be exported to survive subshells.
sev [Wed, 3 Mar 2021 07:14:34 +0000 (01:14 -0600)]
code cleanup, add su support
cleanup renames some internal vars, moves SSH/GPG setup back to .zshenv,
and upgrades SSH setup to give more information about what it is doing.
su support will allow you to switch to another user with a non-login
shell and, as long as they are using zsh with the same dotfiles, you
will get a proper environment set up as if it were a login shell; this
is a lot easier and more comfortable than making an alias to or manually
passing SSH_AUTH_AGENT and other vars via sudo... for now.
an attempt should be made to make super user switching more portable by
adding support for doas and bog-standard su in aliases and elsewhere.
sev [Tue, 23 Feb 2021 11:51:04 +0000 (05:51 -0600)]
partially revert zsh refactor, fix zsh conf bugs
some systems do not like having everything in zprofile due to how their
system configs are laid out, and some things that were assumed to carry
over into subshells did not actually do so. partially revert zsh
refactor by moving affected stuff back into .zshrc, such as promptinit,
compinit, vcs_info, bindkeys, etc.
this commit also fixes a bug in preexec that caused unnecessary
expansion due to using incorrect opts for print.
sev [Tue, 23 Feb 2021 07:54:28 +0000 (01:54 -0600)]
update zsh, X, gpg config; add ssh config, gpg bin
significant changes:
- gpg socket and ssh agents are now automatically forwarded
- big zsh refactor with better gpg and ssh agent support, and better keybinds
Xresources:
- fix Xft
gitconfig:
- set default branch to master
xinitrc:
- remove outdated code to source site local/system scripts, that should
not be our problem
- load xrdb/xmodmap sooner
- fix gnu find opt ordering
- move ssh-agent to zsh startup
- suppress test urxvtc output
zsh:
- move PATH, FPATH, LANG, XDG, ~/tmp to zshenv
- shim /etc/zprofile changing path in .zprofile
- move .zshrc contents to .zprofile
- replace magic functions with add-zsh-hook and add-zle-hook-widget
- automate bindkey with zkbd and terminfo
bin:
- add gpg-learn-keys for scd
- fix pinentry
gpg:
- disable throw-keyids, this breaks other stuff
install.sh:
- do not run .zprofile
- add .ssh folder support
sev [Wed, 14 Oct 2020 04:26:29 +0000 (23:26 -0500)]
more gpg stuff
revert pointless gpg-agent.conf comments
update pinentry config to point to user-local bin
add pinentry script to auto-pick pinentry like Debian, but portable
add sshcontrol
sev [Tue, 13 Oct 2020 06:00:57 +0000 (01:00 -0500)]
refactored zsh configs, commented gpg-agent.conf
zsh:
- added vim modeline and site-local import to every file
- added .zlogin following the above
- moved arrows prompt to subdirectory
- updated arrows prompt to make right mode look better
- moved everything out of .zshenv, it never should have went there
- moved interactive content to .zshrc and set-once content to .zprofile
- updated application loading (perl, gpg)
sev [Thu, 8 Oct 2020 14:20:14 +0000 (09:20 -0500)]
add gpg, update install.sh, fix .zshenv.local
gpg configs added and install.sh updated for them
gpg agent started under .zshenv
fixed .zshenv.local not being read
removed oboslete dabuild references from install.sh
sev [Mon, 8 Jun 2020 07:52:23 +0000 (02:52 -0500)]
update urxvtd detection, new script `wall'
TERMINAL checks for urxvtd will now use `which' for portability.
`wall' script added that pulls from Mysplash API for random backgrounds
updated .xinitrc to use wall
sev [Tue, 12 May 2020 00:07:50 +0000 (19:07 -0500)]
head all which, fix dmenu recursion, fix syncthing
synthing still used hardcoded BSD path, swith to dynamic searches.
always use `head -1` with which due to non-portability.
use $HOME instead of ~ to avoid non-portability.