]> git.ekhem.eu.org Git - guix.git/log
guix.git
16 months ago[home] Simplify imports.
Jakub Czajka [Fri, 23 Dec 2022 20:15:28 +0000 (21:15 +0100)]
[home] Simplify imports.

16 months ago[common] Package libxft with the bgra patch.
Jakub Czajka [Fri, 23 Dec 2022 19:57:37 +0000 (20:57 +0100)]
[common] Package libxft with the bgra patch.

Libxft has a bug which crashes the library when displaying colorful
emojis. A patch is available online. This commit packages libxft with
the patch applied.

16 months ago[common] Install programs from local source code.
Jakub Czajka [Fri, 23 Dec 2022 19:47:12 +0000 (20:47 +0100)]
[common] Install programs from local source code.

Guix downloads programs and source code from the internet. However, if
we want to install custom versions of these programs, we need to
compile them manually from local source code. This commit adds helper
functions for working with such programs.

16 months ago[home] Change screen layouts with autorandr.
Jakub Czajka [Fri, 23 Dec 2022 19:43:09 +0000 (20:43 +0100)]
[home] Change screen layouts with autorandr.

16 months ago[home] Combine all desktop services.
Jakub Czajka [Fri, 23 Dec 2022 19:41:19 +0000 (20:41 +0100)]
[home] Combine all desktop services.

16 months ago[home] Run a compositor as a shepherd service.
Jakub Czajka [Fri, 23 Dec 2022 19:32:26 +0000 (20:32 +0100)]
[home] Run a compositor as a shepherd service.

16 months ago[home] Set the wallpaper using a shepherd service.
Jakub Czajka [Fri, 23 Dec 2022 19:30:29 +0000 (20:30 +0100)]
[home] Set the wallpaper using a shepherd service.

16 months ago[home] Represent the status bar as a package.
Jakub Czajka [Fri, 23 Dec 2022 19:27:18 +0000 (20:27 +0100)]
[home] Represent the status bar as a package.

This commit adds a script which generates the status bar. It also
wraps this script as a GNU Guix package.

16 months ago[home] Create a notification service.
Jakub Czajka [Fri, 23 Dec 2022 19:25:38 +0000 (20:25 +0100)]
[home] Create a notification service.

This commit configures dunst for displaying system notifications.

16 months ago[emacs] Install a git client.
Jakub Czajka [Fri, 23 Dec 2022 18:39:17 +0000 (19:39 +0100)]
[emacs] Install a git client.

This commit installs and configures magit, which is a git client for
emacs.

16 months ago[emacs] Install a RSS client (elfeed).
Jakub Czajka [Fri, 23 Dec 2022 18:37:10 +0000 (19:37 +0100)]
[emacs] Install a RSS client (elfeed).

16 months ago[emacs] Configure org-mode.
Jakub Czajka [Fri, 23 Dec 2022 18:30:29 +0000 (19:30 +0100)]
[emacs] Configure org-mode.

Org-mode is a built-in advanced mode for writing documents. This
commit configures org-mode. It also installs org-roam and org-agenda.

16 months ago[emacs] Configure a music player.
Jakub Czajka [Fri, 23 Dec 2022 18:18:55 +0000 (19:18 +0100)]
[emacs] Configure a music player.

This commit installs bongo as a music player with mpv as the backend.

16 months ago[emacs] Extend the default minibuffer.
Jakub Czajka [Fri, 23 Dec 2022 18:01:17 +0000 (19:01 +0100)]
[emacs] Extend the default minibuffer.

Minibuffer is a special window for selecting from a set of
values (e.g. a file to open). This commit extends the default emacs
minibuffer with orderless (narrowing the set of values) and
vertico (live preview of the set of values).

16 months ago[emacs] Enable spellchecker.
Jakub Czajka [Fri, 23 Dec 2022 17:49:25 +0000 (18:49 +0100)]
[emacs] Enable spellchecker.

This commit enables flyspell with aspell backend for spellchecking.

16 months ago[emacs] Simplify entering long keybindings.
Jakub Czajka [Fri, 23 Dec 2022 17:40:24 +0000 (18:40 +0100)]
[emacs] Simplify entering long keybindings.

Emacs has a lot of built-in keybindings and users can define
more. They can be long. This commit installs which-key and
transient which help when entering long keybindings.

16 months ago[emacs] Read and send email.
Jakub Czajka [Fri, 23 Dec 2022 17:19:42 +0000 (18:19 +0100)]
[emacs] Read and send email.

This commit installs and configures clients for sending (`sendmail`)
and receiving (`notmuch`) email.

16 months ago[emacs] Read documents within emacs.
Jakub Czajka [Fri, 23 Dec 2022 17:11:27 +0000 (18:11 +0100)]
[emacs] Read documents within emacs.

Emacs has built-in support for reading PDFs. However, pdf-tools is
better than the default PDF reader. This commit installs pdf-tools and
the necessary dependencies.

16 months ago[emacs] Customize dired.
Jakub Czajka [Fri, 23 Dec 2022 17:03:58 +0000 (18:03 +0100)]
[emacs] Customize dired.

Dired is the built-in file manager for emacs. For example, it can open
files with `xdg-open`.

16 months ago[emacs] Interface with password store.
Jakub Czajka [Fri, 23 Dec 2022 16:59:14 +0000 (17:59 +0100)]
[emacs] Interface with password store.

Password store is a password manager for GNU/Linux. This commit
configures an emacs interface for password-store.

16 months ago[emacs] Configure consult.
Jakub Czajka [Fri, 23 Dec 2022 16:41:28 +0000 (17:41 +0100)]
[emacs] Configure consult.

`completing-read` is the standard emacs function for reading
input. Consult extends `completing-read` based on the context in which
it runs.

16 months ago[emacs] Customize calender.
Jakub Czajka [Fri, 23 Dec 2022 16:38:05 +0000 (17:38 +0100)]
[emacs] Customize calender.

Caflw is an advanced calendar for emacs.

16 months ago[emacs] Edit multiple files at once.
Jakub Czajka [Fri, 23 Dec 2022 16:31:13 +0000 (17:31 +0100)]
[emacs] Edit multiple files at once.

Emacs can present views which aggregate multiple files. Editing these
views applies changes to the actual files (batch editing).

16 months ago[emacs] Configure the built-in eww web browser.
Jakub Czajka [Fri, 23 Dec 2022 16:20:44 +0000 (17:20 +0100)]
[emacs] Configure the built-in eww web browser.

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.