Jakub Czajka [Thu, 22 Dec 2022 21:05:02 +0000 (22:05 +0100)]
[emacs] Structure working with packages.
Elisp code can be packaged and shared as a package. This commit
structures how emacs should work with packages. It installs
`use-package` which simplifies installation of other packages.
Jakub Czajka [Fri, 3 Jun 2022 18:10:58 +0000 (20:10 +0200)]
Load tags as a capf.
Completion at point functions extend the completion at point
mechanism. This commit enables `tags-completion-at-point-function` and
points it to the TAGS table. It is loaded as a directory local
variable.
Jakub Czajka [Fri, 3 Jun 2022 17:58:40 +0000 (19:58 +0200)]
Ignore the TAGS file.
TAGS is an output file for `etags` tag tables. Tag tables may be large
and may change over time. It is better to regenerate them instead of
tracking with `git'. This commit adds TAGS to .gitignore.
Jakub Czajka [Mon, 30 May 2022 07:24:20 +0000 (09:24 +0200)]
[bash] Avoid sourcing .bash_profile in .bashrc.
.bashrc is sourced by interactive non-login shells. However, these
shells are run in an environment that was started through a login
shell. Therefore, an interactive non-login shell should have inherited
environment variables created by a login shell in .bash_profile.
Jakub Czajka [Sat, 28 May 2022 15:44:37 +0000 (17:44 +0200)]
[bash] Define XDG base directories.
XDG base directory standard [1] defines environment variables with
important paths in user home directory. For example, XDG_CONFIG_HOME
points to a directory with configuration files.
Many programs respect the XDG base directory specification. For
example, git looks for it dotfile as either $HOME/.gitconfig or
$XDG_CONFIG_HOME/git/config. Therefore, XDG environment variables
should be defined early during startup.
This commit adds 10-xdg.sh which defines XDG base directory
variables. Prefix '10-' ensures that the files will be sourced by
~/.profile before other files in ~/.config/profile.d.
Jakub Czajka [Sun, 29 May 2022 20:23:22 +0000 (22:23 +0200)]
[bash] Define dotfiles.
Shells are command line interpreter for UNIX systems. These shells can
operate in one of three modes: interactive, non-interactive or
login. Login mode starts with a login prompt. After that it works
similarly to either interactive or non-interactive mode.
~/.bash_profile is the dotfile for bash in the login mode. It sources
program-specific *.sh profiles in {XDG_CONFIG_HOME}/profile.d. This
mimics behaviour of /etc/profile, the global shell dotfile.
~/,bashrc is the dotfile for bash in the interactive mode.