Skip to content
mb6ockatfPublic

Latest commit

 

History

280 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles -- mb6ockatf's configuration files
===========================================

mb6ockatf's configuration files, installed into $HOME with GNU stow.

Install
-------

    make install      link everything into $HOME, enable the git hooks
    make dry-run      show what install would do
    make uninstall    remove the links
    make check        syntax-check shell files, scan for personal data
    make lint         shellcheck the shell files
    make man          regenerate the manual pages from man/*.m4

or by hand:

    stow -t $HOME -R .
    stow -t $HOME -D .

What is not linked
------------------

.stow-local-ignore keeps these out of $HOME: README, NEWS, TODO,
Makefile, man/, system/, .githooks/, .github/, archive/, .shellcheckrc
and *.bak backups.

man/ holds the m4 sources of the manual pages.  Edit those, not the
generated pages under .local/share/man; make man (and make install)
regenerates them.

system/ holds root-owned files that live outside $HOME, laid out like
their paths under /.  make system installs them with sudo (stow does
not touch them):

    system/usr/local/sbin/nala-predownload
    system/etc/cron.d/nala-predownload

        Every 15 minutes, cron checks whether the laptop has been on AC
        and awake for 8 hours without a break, last downloaded at least
        8 hours ago, and can reach the first apt mirror.  If so, it runs
        "nala upgrade --full --download-only" at idle priority, so the
        next upgrade only installs.  Log: /var/log/nala-predownload.log.

    system/etc/cron.weekly/fstrim

        Trims the SSD weekly through anacron (there is no systemd
        fstrim timer here).  Log: /var/log/fstrim.log.

    system/etc/sysctl.d/90-zram.conf

        vm.swappiness 180 and vm.page-cluster 0, which suit zram.

Docker does not start at boot (update-rc.d docker disable); start it
with "sudo service docker start" when needed.

archive/ holds configs for software that is no longer installed (NixOS,
pacman, PowerShell, fish, kakoune, csh, Tor Browser, neofetch, htop,
nano, GIMP 2.6, and vim and vi, replaced by neovim).  Move a file back
out of archive/ and restow to use it again.

Generated files stay untracked: ~/.fehbg (rewritten by feh).  The
neovim vim-stats plugin keeps its data in ~/.local/state/nvim/vim-stats.

Private and machine-specific settings
-------------------------------------

Nothing personal belongs in this repository.  Put private or
machine-specific settings in ~/.profile.local, which ~/.profile sources
if it exists.  It may call path_prepend, for example:

    path_prepend "${HOME}/.local/opt/gcc-16/bin"
    export SOME_HOST=...

Your git name and email go in ~/.gitconfig.local, which the tracked
~/.gitconfig includes:

    [user]
    	name = ...
    	email = ...

.githooks/pre-commit refuses commits that add email addresses, IPv4
addresses, ssh logins, private keys or credentials.  Harmless matches go
in .githooks/allowlist.

GitHub
------

.github/workflows/check.yml runs make check, make lint and a stow
install into an empty directory on every push.
.github/workflows/gitleaks.yml scans the whole history for secrets.
.github/dependabot.yml opens a monthly pull request for the workflow
actions.

Shell start-up
--------------

~/.profile       PATH and ~/.profile.local; POSIX sh, safe to re-run
~/.bash_profile  sources ~/.profile and ~/.bashrc
~/.bashrc        sources ~/.profile, then the interactive settings,
                 ~/.bash_aliases and ~/.config/functions.sh
~/.xsessionrc    read by lightdm (Debian Xsession); sources ~/.profile
                 and ~/.xprofile
~/.xprofile      X settings: compose key, Xresources
~/.xinitrc       sources ~/.xprofile, then starts bspwm (startx)

~/.local/bin/clean-history tidies ~/.bash_history with
~/.config/clean_history.sed.  It is not run automatically.

Credits
-------

@adi1090x's configuration setup https://github.com/adi1090x/rofi

Copying
-------

Copyright (C) 2022-2026 mb6ockatf

These files are free software: you can redistribute them and/or modify
them under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version, except where a file says otherwise.
See COPYING.