]> git.ekhem.eu.org Git - guix.git/log
guix.git
3 days ago[ai] Add commit policy and hook-sharing guidelines.
Jakub Czajka [Tue, 7 Jul 2026 22:36:36 +0000 (00:36 +0200)]
[ai] Add commit policy and hook-sharing guidelines.

3 days ago[ai] Set worktree baseRef to head.
Jakub Czajka [Tue, 7 Jul 2026 22:35:36 +0000 (00:35 +0200)]
[ai] Set worktree baseRef to head.

3 days ago[home] Add npm-install-build-system.
Jakub Czajka [Tue, 7 Jul 2026 16:10:10 +0000 (18:10 +0200)]
[home] Add npm-install-build-system.

4 days ago[ai] Replace guard-commands with block-builds, block-worktrees, and create-worktree...
Jakub Czajka [Mon, 6 Jul 2026 10:23:44 +0000 (12:23 +0200)]
[ai] Replace guard-commands with block-builds, block-worktrees, and create-worktree hooks.

Splits the monolithic guard-commands hook into three single-purpose
hooks with more granular matchers in settings.json.

block-builds:
  Guards guix and make build/reconfigure commands. Asks on main,
  denies in worktrees for destructive operations (reconfigure,
  home-*, system-*).

block-worktrees:
  Denies git checkout/switch outright. Enforces EnterWorktree
  (must not already be in a worktree) and ExitWorktree (must not
  have unpushed commits diverging from main). Sends a desktop
  notification on EnterWorktree success.

create-worktree:
  Uses a universal matcher ("*") to deny all tool calls on main
  unless already inside the session's worktree. Allows
  EnterWorktree through to let the user enter an isolated session.

4 days ago[ai] Move ask-build-queue from hooks/ to scripts/.
Jakub Czajka [Mon, 6 Jul 2026 09:43:07 +0000 (11:43 +0200)]
[ai] Move ask-build-queue from hooks/ to scripts/.

Relocates the build-queue dialog from the hooks directory to the
scripts directory, reflecting its role as a manually-invoked helper
rather than an automatic hook. Also adds branch-awareness: the
script now asks about builds on non-main branches and reconfigures
on main.

4 days ago[ai] Add merge-worktree workflow: branch-summary, merge script, and skill doc.
Jakub Czajka [Mon, 6 Jul 2026 09:24:17 +0000 (11:24 +0200)]
[ai] Add merge-worktree workflow: branch-summary, merge script, and skill doc.

Introduces a workflow for merging feature branches into main via
rebase + fast-forward merge. The skill document teaches Claude
the merge-worktree procedure so it can be invoked as a slash command.

4 days ago[ai] Add status-line hook showing worktree session in prompt.
Jakub Czajka [Mon, 6 Jul 2026 08:37:59 +0000 (10:37 +0200)]
[ai] Add status-line hook showing worktree session in prompt.

Displays the current worktree session ID or branch name in the
Claude Code status line, making it visible at a glance whether
the session is running in an isolated worktree or on main.

4 days ago[ai] Extract build-queue dialog to standalone ask-build-queue script.
Jakub Czajka [Tue, 23 Jun 2026 20:49:10 +0000 (22:49 +0200)]
[ai] Extract build-queue dialog to standalone ask-build-queue script.

Move the AskUserQuestion dialog out of the guix-build Stop hook into
a separate script so it can be invoked proactively (before code changes
begin) rather than only at Stop time.

- ask-build-queue: new script with the build-target selection dialog.
  Exits early if a queue file already exists for the session.
- guix-build: simplified to use $CLAUDE_CODE_SESSION_ID directly
  instead of JSON parsing.  Delegates the no-queue case to
  ask-build-queue.
- CLAUDE.md: instructs to run ask-build-queue before any prompt that
  looks like it will modify code.

Co-Authored-By: Claude <noreply@anthropic.com>
4 days ago[home] Use guix repl as the Geiser Guile REPL backend.
Jakub Czajka [Mon, 22 Jun 2026 08:56:24 +0000 (10:56 +0200)]
[home] Use guix repl as the Geiser Guile REPL backend.

Set geiser-guile-binary to ("guix" "repl") so the Geiser REPL
starts inside the Guix execution environment, giving it access to all
Guix-installed Guile libraries.

4 days ago[ai] Add guix-build stop hook, guard-commands hook, and Makefile build targets
Jakub Czajka [Sun, 21 Jun 2026 22:05:33 +0000 (00:05 +0200)]
[ai] Add guix-build stop hook, guard-commands hook, and Makefile build targets

guard-commands guards against dangerous or branch-inappropriate
commands: guix reconfigure (denied on branches), guix build
(ask everywhere), make reconfigure targets (denied on
branches), git checkout/switch (denied everywhere).

Makefile gains build-home-nonfree, build-home-libre,
build-system-nonfree, and build-system-libre targets for
the build queue.

2 weeks ago[system] Add passwordless sudo for guix system reconfigure.
Jakub Czajka [Sun, 21 Jun 2026 22:03:46 +0000 (00:03 +0200)]
[system] Add passwordless sudo for guix system reconfigure.

Allow AI agents to build the system without asking for password.

Co-Authored-By: Claude <noreply@anthropic.com>
2 weeks ago[home] Install system-wide CLAUDE.md via Guix home as a dotfile.
Jakub Czajka [Sun, 21 Jun 2026 14:44:16 +0000 (16:44 +0200)]
[home] Install system-wide CLAUDE.md via Guix home as a dotfile.

Co-Authored-By: Claude <noreply@anthropic.com>
2 weeks ago[home] Add desktop notification hooks for Claude Code.
Jakub Czajka [Sun, 21 Jun 2026 13:43:30 +0000 (15:43 +0200)]
[home] Add desktop notification hooks for Claude Code.

Send dunstify notifications on permission_prompt and idle_prompt
events via a shell script alongside the existing guix-check hook.
Uses a single Notification matcher entry in project settings.json
referenced via CLAUDE_PROJECT_DIR.

Co-Authored-By: Claude <noreply@anthropic.com>
2 weeks ago[home] Introduce Claude Code settings.json installed via Guix home.
Jakub Czajka [Sat, 20 Jun 2026 22:39:24 +0000 (00:39 +0200)]
[home] Introduce Claude Code settings.json installed via Guix home.

- Add claude/.config/claude/settings.json with model overrides, max
- effort and apiKeyHelper wired to pass.
- Add conf/home/claude.scm service module bundling the claude-code
  package with its dotfile.
- Wire claude-service into home.scm, replacing the raw claude-code
  package.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2 weeks ago[emacs] Add geiser-guile and flymake-guile for Scheme editing.
Jakub Czajka [Sat, 20 Jun 2026 22:38:14 +0000 (00:38 +0200)]
[emacs] Add geiser-guile and flymake-guile for Scheme editing.

Configure geiser-guile and flymake-guile in conf-lisp.el, gated on the
guile binary being present for portability.  Document the Lisp/Scheme
ecosystem and the environment variables set in .dir-locals.el.

Update .dir-locals.el copyright year to 2026.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2 weeks ago[home] Fix duplicate service type conflict in home reconfigure.
Jakub Czajka [Sat, 20 Jun 2026 21:44:28 +0000 (23:44 +0200)]
[home] Fix duplicate service type conflict in home reconfigure.

home-symlink-service-type was named 'home-profile', colliding with
the built-in home-profile-service-type.  Additionally, both
profile-service (bash.scm) and channels-service (guix.scm) directly
instantiated home-symlink-service-type — but Guix allows only one
direct (service <type> ...) per service type across the entire service
graph.

Changes:
- symlink.scm: Rename service type from 'home-profile' to
  'home-symlink', reflecting its actual purpose.
- bash.scm: Route profile-service through home-program-service-type
  (which extends home-symlink-service-type via service-extension)
  instead of directly instantiating it.  Remove unused
  (conf home symlink) import.
- guix.scm: Same for channels-service.  Switch import from
  (conf home symlink) to (conf home program).

Service extensions can be merged by Guix; direct instantiations
cannot, hence the "more than one target service" error.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2 weeks ago[home] Install Claude Code.
Jakub Czajka [Sat, 20 Jun 2026 21:40:24 +0000 (23:40 +0200)]
[home] Install Claude Code.

Introduce a Guix package for the upstream Claude Code binary.  The
binary is prebuilt for FHS systems, so wrap it in a shell script that
sets LD_LIBRARY_PATH to Guix store paths and invokes it via ld-linux.

Set CLAUDE_CONFIG_DIR to store its configuration under ~/.config/claude
instead of ~/.claude.  Document manual version-update instructions in
the README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2 weeks ago[emacs] Set Guile environment variables in dir-locals.
Jakub Czajka [Sat, 20 Jun 2026 20:58:16 +0000 (22:58 +0200)]
[emacs] Set Guile environment variables in dir-locals.

.dir-locals.el now sets GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH
so that Emacs can compile Guile files with guild compile. TAGS file is
no longer necessary as geiser provides references.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2 weeks agoRun guix style and remove unused code.
Jakub Czajka [Sat, 20 Jun 2026 20:41:54 +0000 (22:41 +0200)]
Run guix style and remove unused code.

2 weeks ago[home][system] Introduce a nonfree configuration.
Jakub Czajka [Sat, 20 Jun 2026 20:17:47 +0000 (22:17 +0200)]
[home][system] Introduce a nonfree configuration.

Pull nonguix guix channel. Select configuration through $PROFILE.

2 weeks ago[ai] Add a Claude Code hook to format and compile guile files.
Jakub Czajka [Sat, 20 Jun 2026 19:18:20 +0000 (21:18 +0200)]
[ai] Add a Claude Code hook to format and compile guile files.

2 weeks ago[ai] Initialize CLAUDE.md.
Jakub Czajka [Sat, 30 May 2026 14:42:29 +0000 (16:42 +0200)]
[ai] Initialize CLAUDE.md.

6 months ago[emacs] Upgrade built-in transient package.
Jakub Czajka [Tue, 16 Dec 2025 14:46:44 +0000 (15:46 +0100)]
[emacs] Upgrade built-in transient package.

7 months ago[home] Install emacs-org-roam through emacs.
Jakub Czajka [Sat, 22 Nov 2025 19:51:35 +0000 (20:51 +0100)]
[home] Install emacs-org-roam through emacs.

15 months ago[system] Enable DNS over TLS.
Jakub Czajka [Sun, 30 Mar 2025 09:49:11 +0000 (11:49 +0200)]
[system] Enable DNS over TLS.

15 months ago[system] Configure custom DNS.
Jakub Czajka [Sat, 29 Mar 2025 23:00:23 +0000 (00:00 +0100)]
[system] Configure custom DNS.

18 months ago[emacs] Pull RSS feed from a RSS server.
Jakub Czajka [Wed, 18 Dec 2024 18:11:14 +0000 (19:11 +0100)]
[emacs] Pull RSS feed from a RSS server.

2 years ago[system] Install Noto Emoji from a separate package.
Jakub Czajka [Sun, 12 May 2024 22:09:30 +0000 (00:09 +0200)]
[system] Install Noto Emoji from a separate package.

2 years ago[system] Install nss-certs from %base-packages instead of specifying it explicitly.
Jakub Czajka [Sun, 12 May 2024 12:40:04 +0000 (14:40 +0200)]
[system] Install nss-certs from %base-packages instead of specifying it explicitly.

2 years ago[system] Explicly disable Wayland.
Jakub Czajka [Sun, 12 May 2024 10:54:23 +0000 (12:54 +0200)]
[system] Explicly disable Wayland.

Accordion to documentation, `(wayland? #f)` is the default
setting. However, Guix installed Xwayland which broke the
system. By disabling Wayland explicitly Guix returned to Xorg.

2 years ago[system] Format system.scm.
Jakub Czajka [Sun, 12 May 2024 10:53:19 +0000 (12:53 +0200)]
[system] Format system.scm.

2 years ago[system] Import golang dependencies from `(gnu packages golang-build)`.
Jakub Czajka [Sun, 21 Apr 2024 21:03:28 +0000 (23:03 +0200)]
[system] Import golang dependencies from `(gnu packages golang-build)`.

2 years ago[system] Format dns.scm.
Jakub Czajka [Sun, 21 Apr 2024 21:03:07 +0000 (23:03 +0200)]
[system] Format dns.scm.

2 years ago[home] Install `pinentry`.
Jakub Czajka [Sun, 21 Apr 2024 13:51:10 +0000 (15:51 +0200)]
[home] Install `pinentry`.

2 years ago[home] Format emacs.scm.
Jakub Czajka [Sun, 21 Apr 2024 13:50:52 +0000 (15:50 +0200)]
[home] Format emacs.scm.

2 years agoUpdate copyright year for 2024.
Jakub Czajka [Sun, 21 Apr 2024 11:10:44 +0000 (13:10 +0200)]
Update copyright year for 2024.

2 years ago[home] Import `dunst` from `(gnu packages wm)`.
Jakub Czajka [Sun, 21 Apr 2024 10:59:53 +0000 (12:59 +0200)]
[home] Import `dunst` from `(gnu packages wm)`.

2 years ago[emacs] Append date when inserting calendar event.
Jakub Czajka [Sun, 21 Apr 2024 10:41:41 +0000 (12:41 +0200)]
[emacs] Append date when inserting calendar event.

If the date is not present, org-gcal appends it. However, it requires
full date+time timestamp specification which is not always
appropriate.

2 years ago[emacs] Format conf-calendar.el.
Jakub Czajka [Sun, 21 Apr 2024 10:41:16 +0000 (12:41 +0200)]
[emacs] Format conf-calendar.el.

2 years ago[emacs] Do not archive calendar entries.
Jakub Czajka [Sat, 10 Feb 2024 12:17:24 +0000 (13:17 +0100)]
[emacs] Do not archive calendar entries.

2 years ago[emacs] Do not append Message-Id to emails.
Jakub Czajka [Sun, 14 Jan 2024 13:48:44 +0000 (14:48 +0100)]
[emacs] Do not append Message-Id to emails.

2 years agoSpecify full log-file path.
Jakub Czajka [Thu, 7 Dec 2023 19:52:49 +0000 (20:52 +0100)]
Specify full log-file path.

XDG_LOG_HOME is no longer available when shephard starts.

2 years ago[emacs] Install binutils as a dependency for gcal.
Jakub Czajka [Sat, 2 Dec 2023 13:33:39 +0000 (14:33 +0100)]
[emacs] Install binutils as a dependency for gcal.

2 years ago[suckless] Update commits after switching branches to main.
Jakub Czajka [Sat, 14 Oct 2023 20:57:22 +0000 (22:57 +0200)]
[suckless] Update commits after switching branches to main.

2 years ago[emacs] Fix use-package failing to load packages.
Jakub Czajka [Wed, 9 Aug 2023 06:37:42 +0000 (08:37 +0200)]
[emacs] Fix use-package failing to load packages.

2 years ago[emacs] Use org-roam from installed externally.
Jakub Czajka [Tue, 8 Aug 2023 18:43:35 +0000 (20:43 +0200)]
[emacs] Use org-roam from installed externally.

2 years agoUninstall stow.
Jakub Czajka [Sat, 17 Jun 2023 20:09:05 +0000 (22:09 +0200)]
Uninstall stow.

2 years agoInstall icecat-minimal.
Jakub Czajka [Sat, 17 Jun 2023 13:10:45 +0000 (15:10 +0200)]
Install icecat-minimal.

2 years ago[emacs] Connect calfw to Google Calendar API.
Jakub Czajka [Fri, 2 Jun 2023 17:25:57 +0000 (19:25 +0200)]
[emacs] Connect calfw to Google Calendar API.

2 years ago[emacs] Install `notmuch` extensions.
Jakub Czajka [Fri, 2 Jun 2023 17:02:31 +0000 (19:02 +0200)]
[emacs] Install `notmuch` extensions.

2 years ago[emacs] Use `mbsync` from `PATH`.
Jakub Czajka [Fri, 2 Jun 2023 17:01:47 +0000 (19:01 +0200)]
[emacs] Use `mbsync` from `PATH`.

2 years ago[emacs] Initialize environment variable for `notmuch`.
Jakub Czajka [Fri, 2 Jun 2023 17:01:11 +0000 (19:01 +0200)]
[emacs] Initialize environment variable for `notmuch`.

2 years ago[notmuch] Add refresh script.
Jakub Czajka [Fri, 2 Jun 2023 16:58:42 +0000 (18:58 +0200)]
[notmuch] Add refresh script.

2 years ago[emacs] Prefer emacs package manager to guix.
Jakub Czajka [Fri, 2 Jun 2023 16:41:17 +0000 (18:41 +0200)]
[emacs] Prefer emacs package manager to guix.

Emacs package versions are more up to date.

2 years ago[emacs] Switch from mpv to mplayer as the music backend.
Jakub Czajka [Wed, 24 May 2023 19:01:03 +0000 (21:01 +0200)]
[emacs] Switch from mpv to mplayer as the music backend.

mpv stopped working.

2 years agoUpdate copyright year.
Jakub Czajka [Wed, 3 May 2023 08:57:18 +0000 (10:57 +0200)]
Update copyright year.

2 years ago[home] Suspend the machine with `loginctl`.
Jakub Czajka [Sat, 4 Feb 2023 12:20:00 +0000 (13:20 +0100)]
[home] Suspend the machine with `loginctl`.

2 years ago[system] Lock the screen with `xsecurelock`.
Jakub Czajka [Sun, 29 Jan 2023 14:17:36 +0000 (15:17 +0100)]
[system] Lock the screen with `xsecurelock`.

`xsecurelock` must be added to `setuid-programs`. See documentation
for more information.

2 years ago[system] Use polish keyboard layout in Xorg.
Jakub Czajka [Tue, 3 Jan 2023 16:56:10 +0000 (17:56 +0100)]
[system] Use polish keyboard layout in Xorg.

2 years ago[home] Select emoji with dmenu.
Jakub Czajka [Mon, 26 Dec 2022 19:09:39 +0000 (20:09 +0100)]
[home] Select emoji with dmenu.

2 years ago[system] Install pulseaudio.
Jakub Czajka [Mon, 26 Dec 2022 17:33:55 +0000 (18:33 +0100)]
[system] Install pulseaudio.

2 years ago[home] Install flameshot.
Jakub Czajka [Mon, 26 Dec 2022 17:30:40 +0000 (18:30 +0100)]
[home] Install flameshot.

2 years ago[font] Use Meslo LG and Noto Color Emoji.
Jakub Czajka [Sat, 24 Dec 2022 12:38:46 +0000 (13:38 +0100)]
[font] Use Meslo LG and Noto Color Emoji.

2 years ago[st] Configure with Xresources.
Jakub Czajka [Sat, 24 Dec 2022 12:35:30 +0000 (13:35 +0100)]
[st] Configure with Xresources.

2 years ago[bash] Set st as the default terminal.
Jakub Czajka [Sat, 24 Dec 2022 12:34:41 +0000 (13:34 +0100)]
[bash] Set st as the default terminal.

2 years ago[system] Install custom versions of dwm and dmenu.
Jakub Czajka [Sat, 24 Dec 2022 12:33:33 +0000 (13:33 +0100)]
[system] Install custom versions of dwm and dmenu.

The source code is obtained from a self-hosted git instance.

2 years ago[common] Package the Meslo LG font.
Jakub Czajka [Sat, 24 Dec 2022 12:38:06 +0000 (13:38 +0100)]
[common] Package the Meslo LG font.

2 years ago[home] Install custom st.
Jakub Czajka [Sat, 24 Dec 2022 12:31:41 +0000 (13:31 +0100)]
[home] Install custom st.

This commit installs custom version of the st terminal. It includes
the libxft-bgra patche and more. The source code is obtained from a
self-hosted git instance.

2 years ago[system] Uninstall gnome.
Jakub Czajka [Sat, 24 Dec 2022 09:13:00 +0000 (10:13 +0100)]
[system] Uninstall gnome.

2 years ago[system] Enable bluetooth.
Jakub Czajka [Sat, 24 Dec 2022 09:08:53 +0000 (10:08 +0100)]
[system] Enable bluetooth.

This commit install bluez as the bluetooth daemon.

2 years ago[system] Encrypt DNS traffic.
Jakub Czajka [Sat, 24 Dec 2022 09:01:36 +0000 (10:01 +0100)]
[system] Encrypt DNS traffic.

Redirect DNS requests through `dnscrypt-proxy`, which encrypts the
traffic.

2 years ago[system] Package a script for controlling volume level.
Jakub Czajka [Fri, 23 Dec 2022 20:45:38 +0000 (21:45 +0100)]
[system] Package a script for controlling volume level.

2 years ago[home] Install a symlink manager.
Jakub Czajka [Fri, 23 Dec 2022 20:32:37 +0000 (21:32 +0100)]
[home] Install a symlink manager.

2 years ago[home] Simplify imports.
Jakub Czajka [Fri, 23 Dec 2022 20:15:28 +0000 (21:15 +0100)]
[home] Simplify imports.

2 years 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.

2 years 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.

2 years 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.

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

2 years 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.

2 years 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.

2 years 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.

2 years 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.

2 years 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.

2 years 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).

2 years 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.

2 years 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.

2 years 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).

2 years 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.

2 years 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.

2 years 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.

2 years 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.

2 years 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`.

2 years 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.

2 years 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.

2 years 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.

2 years 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).

2 years 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.

2 years 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.

2 years 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.

2 years 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.