User configuration files (dot-files)
bash/
– Configuration for Bash shell, most notablly~/.bashrc
, i.e. bash/dot.bashrc
.
bat/
– Configuration for bat
command, seebat/README.md
for more information.
bazel/
– Bazel build system user-specific configuration.
See baze/README.md
command-wrapper/
– Global Command Wrapper
configuration. See command-wrapper/README.md
for more information.
ghc/
– GHCi configuration, seeghc/README.md
for more information.
git/
– Git configuration, seegit/README.md
for more information.
habit/
– Configuration of Command Wrapper toolset optimised
for work environment. See habit/README.md
for more
details.
haskeline/
– Haskeline configuration, seehaskeline/README.md
for more information.
kitty/
– Kitty terminal emulator configuration, seekitty/README.md
.
mplayer/
– MPlayer configuration, seemplayer/README.md
for more information.
nvim/
– Neovim configuration, seenvim/README.md
for more information.
psql/
– PostgreSQL interactive terminal (psql
) configuration,
see psql/README.md
for more information.
readline/
– Readline configuration, seereadline/README.md
for more information.
ripgrep/
– Ripgrep configuration, seeripgrep/README.md
.
sensible-editor/
– Configuration files forsensible-editor
, a Debian-specific tool. See sensible-editor(1)
andsensible-editor/README.md
for more
information.
stack/
– Haskell Stack, seestack/README.md
.
tldr/
— Configurable tldr-pages client
with support for custom pages, see tldr/README.md
.
tmux/
– Tmux configuration, seetmux/README.md
for more information.
yx/
– Configuration of Command Wrapper toolset optimised for
personal use. See yx/README.md
for more details.
user-dirs.dirs and
user-dirs.locale are XDG configuration files for
special user directories. See xdg-user-dir(1)
andxdg-user-dirs-update(1)
for more information.
Xresources
– ~/.Xresources
configuration file.
TODO:
Some dependencies need to be installed. On Debian it is:
sudo apt install haskell-stack curl libtinfo-dev zlib1g-dev
We are expecting that there are some files already present in your ~/.config/
directory. This installation process will leave them untouched, but you may
need to resolve issues with files that exist both locally and in the
repository.
cd ~/.config/
git init
git remote add origin git@github.com:trskop/dot.config.git
git fetch --all
git checkout -b master origin/master
If installing on a clean system then ~/.config
directory may not exist, in
which case it becomes a little bit easier. We’ll be using HTTPS protocol
instead of SSH, since SSH key for accessing GitHub may not be present on a
pristine system. Just reconfigure remote URL afterwards.
git clone https://github.com/trskop/dot.config.git ~/.config
Make sure to use ~/.local/bin
for your executables instead of ~/bin
:
cd ~
mkdir -p ~/.local/bin
if [ -e ~/bin ]; then mv ~/bin/* ~/.local/bin/; fi
rmdir bin
For backward compatibility it is possible to do this:
ln -s .local/bin bin
Now make sure that ~/.profile
and ~/.bash_profile
add ~/.local/bin
into
your $PATH
instead of ~/bin
.
Make sure that stack
installed through the system package is sufficiently
new. If not then run:
stack upgrade
To avoid long bootstrapping sequence when calling Haskell scripts it may be a
good idea to run:
stack setup 8.10.4
Where 8.10.4
is GHC version used by ~/.config/dot.config.init.hs
. Please
check the Stackage LTS version specified in it to be sure as this documentation
may be out of date.
Now we need to install everything:
~/.config/dot.config.init.hs bootstrap
yx this -Uusin
Host-specific configuration is stored in ~/.local/src/localhost
repository
with following directory structure:
~/.local/src/localhost/
├── ${host}/
│ ├── dot.config/ <── Private configuration that would normally go to
│ │ │ ${XDG_CONFIG_HOME:-${HOME}/.config}
│ │ └── ...
│ │
│ └── notes/ <── Notes about the hardware, installation specifics, etc.
│ │ Basically anything that is easily forgotten once the
│ │ system is installed and configured.
│ └── ...
│
├── this -> ${host}
└── dot.config -> this/dot.config
Where ${host}
is the result of hostname --fqdn
. This allows us to
reuse/share the repository for multiple machines. One such example is when one
machine dies, and new one has to be installed. Copying over existing
repository can serve as a nice starting point.
Script scripts/init-host-specific-config-repo.bash
is provided to create the
repository with the above structure. It can be invoked as:
bash ~/.config/scripts/init-host-specific-config-repo.bash
scripts/init-host-specific-config-repo.bash
– Initialise version-controlled host-specific configuration repo. See
Version-controlled Host-specific Configuration
section for more
information.
scripts/dhall-lsp-server-wrapper
–
Run dhall-lsp-server
, but if it’s not available locally then download it
first.