]> git.ekhem.eu.org Git - guix.git/log
guix.git
16 months ago[emacs] Configure lisp mode.
Jakub Czajka [Fri, 23 Dec 2022 16:19:10 +0000 (17:19 +0100)]
[emacs] Configure lisp mode.

Elisp is the configuration language of emacs. This commit configures
lisp mode.

16 months ago[emacs] Configure vanilla emacs.
Jakub Czajka [Fri, 23 Dec 2022 16:13:45 +0000 (17:13 +0100)]
[emacs] Configure vanilla emacs.

This commit configures features present in vanilla emacs.

16 months ago[emacs] Structure working with packages.
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.

16 months ago[emacs] Define a group for custom variables.
Jakub Czajka [Thu, 22 Dec 2022 20:58:36 +0000 (21:58 +0100)]
[emacs] Define a group for custom variables.

Variables in emacs can be grouped which simplifies changing their
values. This commit creates a group for custom variables.

16 months ago[emacs] Customize theme.
Jakub Czajka [Thu, 22 Dec 2022 20:55:00 +0000 (21:55 +0100)]
[emacs] Customize theme.

Emacs themes consist of faces. Each face represents a specific element
of the interface. This commit defines a set of faces, forming a theme.

16 months ago[emacs] Define dotfile.
Jakub Czajka [Thu, 22 Dec 2022 20:51:57 +0000 (21:51 +0100)]
[emacs] Define dotfile.

This commit creates init.el, which is evaluated on startup.

16 months ago[emacs] Enable emacs daemon and wrap `emacsclient`.
Jakub Czajka [Thu, 22 Dec 2022 20:42:56 +0000 (21:42 +0100)]
[emacs] Enable emacs daemon and wrap `emacsclient`.

Emacs can be run locally as a daemon. `emacsclient` connects to it and
can open multiple windows during the same session.

16 months ago[home] Set emacs as the default editor.
Jakub Czajka [Thu, 22 Dec 2022 20:29:57 +0000 (21:29 +0100)]
[home] Set emacs as the default editor.

16 months ago[home] Install emacs.
Jakub Czajka [Thu, 22 Dec 2022 20:27:48 +0000 (21:27 +0100)]
[home] Install emacs.

16 months ago[home] Install xresources and symlink its dotfile.
Jakub Czajka [Thu, 22 Dec 2022 20:08:41 +0000 (21:08 +0100)]
[home] Install xresources and symlink its dotfile.

Xresources sets configuration parameters for many applications. This
commit installs Xresources and symlinks its dotfile.

16 months ago[home] Bind keys to functions.
Jakub Czajka [Thu, 22 Dec 2022 19:59:44 +0000 (20:59 +0100)]
[home] Bind keys to functions.

`xbindkeysrc` dotfile file is sourced inside `.bash_profile`.

16 months ago[home] Symlink profile.d files.
Jakub Czajka [Thu, 22 Dec 2022 19:52:13 +0000 (20:52 +0100)]
[home] Symlink profile.d files.

16 months ago[bash] Keep history in `${XDG_DATA_HOME}/bash/history`.
Jakub Czajka [Thu, 22 Dec 2022 19:47:43 +0000 (20:47 +0100)]
[bash] Keep history in `${XDG_DATA_HOME}/bash/history`.

16 months ago[bash] Specify default configuration files.
Jakub Czajka [Thu, 22 Dec 2022 19:35:52 +0000 (20:35 +0100)]
[bash] Specify default configuration files.

16 months ago[home] Resolve symlinks starting from `GUIX_PACKAGE_PATH`.
Jakub Czajka [Thu, 22 Dec 2022 19:14:58 +0000 (20:14 +0100)]
[home] Resolve symlinks starting from `GUIX_PACKAGE_PATH`.

Files to symlink are located inside `GUIX_PACKAGE_PATH`. Specifying
this variable every time is redundant. This commit hides the lookup.

16 months ago[bash] Source `.profile`.
Jakub Czajka [Thu, 22 Dec 2022 17:48:30 +0000 (18:48 +0100)]
[bash] Source `.profile`.

Guix puts its environment variables inside `.profile`. However, it is
not sourced automatically. This commit sources it in `.bash_profile`.

16 months agoRemove unused files with `make clean`.
Jakub Czajka [Sat, 30 Jul 2022 18:43:41 +0000 (20:43 +0200)]
Remove unused files with `make clean`.

16 months ago[system] Initialize configuration.
Jakub Czajka [Mon, 11 Jul 2022 18:07:57 +0000 (20:07 +0200)]
[system] Initialize configuration.

`guix system` installs a whole GNU/Linux system configuration. This
commit adds a basic configuration with the GNOME desktop.

16 months ago[home] Do not save `less` history.
Jakub Czajka [Sat, 4 Jun 2022 20:28:07 +0000 (22:28 +0200)]
[home] Do not save `less` history.

By default `less` remembers commands issued by the user.

16 months ago[home] Install `git`.
Jakub Czajka [Sat, 4 Jun 2022 19:47:22 +0000 (21:47 +0200)]
[home] Install `git`.

This commit adds a guix-home service which installs `git` and its
dotfile. See git(1) for explaination of the dotfile structure and its
location.

16 months ago[home] Install programs using a service.
Jakub Czajka [Sat, 4 Jun 2022 19:43:12 +0000 (21:43 +0200)]
[home] Install programs using a service.

This commit adds a service-type for installing programs and symlinking
their dotifles.

16 months ago[home] Symlink dotfiles using a service.
Jakub Czajka [Fri, 3 Jun 2022 20:49:56 +0000 (22:49 +0200)]
[home] Symlink dotfiles using a service.

This commit adds a custom service-type for symlinking files. It uses
it to symlink profile.d scripts.

16 months ago[home] Specify bash dotfiles as strings.
Jakub Czajka [Fri, 3 Jun 2022 20:38:39 +0000 (22:38 +0200)]
[home] Specify bash dotfiles as strings.

This commit changes bash dotfiles argument type from `local-file` to
`string`. Hide the `local-file` as an implementation detail.

16 months agoLoad tags as a capf.
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.

16 months agoIgnore the TAGS file.
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.

16 months agoPreserve `guix home` and `etags` instructions in a Makefile.
Jakub Czajka [Fri, 3 Jun 2022 17:52:49 +0000 (19:52 +0200)]
Preserve `guix home` and `etags` instructions in a Makefile.

16 months ago[home] Customize the bash service.
Jakub Czajka [Thu, 2 Jun 2022 21:49:35 +0000 (23:49 +0200)]
[home] Customize the bash service.

This commit adds a custom service-type for installing bash. It is
placed in a separate module. It explicitly requires .bash_profile and
.bashrc.

16 months ago[bash] Avoid sourcing .bash_profile in .bashrc.
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.

16 months ago[bash] Define XDG base directories.
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.

[1] https://specifications.freedesktop.org/basedir-spec

16 months ago[home] Install bash and symlink its dotfiles.
Jakub Czajka [Sun, 29 May 2022 20:49:48 +0000 (22:49 +0200)]
[home] Install bash and symlink its dotfiles.

`home-bash-service-type` installs bash. This commit configures the
service through `home-bash-configuration` to symlink .bashrc and
.bash_profile.

16 months ago[bash] Define dotfiles.
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.

16 months ago[home] Initialize configuration.
Jakub Czajka [Sat, 28 May 2022 16:25:31 +0000 (18:25 +0200)]
[home] Initialize configuration.

This commit adds a basic home directory configuration which returns an
empty home-environment object.

16 months agoDescribe the repository in a README.
Jakub Czajka [Mon, 1 May 2023 20:35:41 +0000 (22:35 +0200)]
Describe the repository in a README.