Instead of producing a binary that gets called by Emacs, with
input/output serialisation, use a dynamic Emacs module that lets Emacs
more-or-less directly call the relevant GTK functions.
I'm doing this mostly as an experiment. Might be interesting to end up
with a dynamic module that I can dump some experimental code into that
improves my workflows.
To do this, I've exposed the emacs binary used by my Emacs
configuration in an additional `passthru` field. This ensures that the
module is linked against the right version of Emacs.
Change-Id: I1426994fe3455ed1b2a685c5a09705e29fa40950
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9163
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
This built-in emacs library actually provides a data structure that
can work as an LRU list through the existing helper function to move
an element to the front of the ring if it already exists.
As a result, the code for workspace history moving becomes a lot less
brittle and complicated than it was before. No more carefully figuring
out when to modify state, just push it in the ring unless it's being
rotated already.
Change-Id: If354e0618fc5a6d7333776468eec077596cfe9df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9162
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I haven't used that since ... 2018 or so, time for it to go.
Change-Id: I5e1b729bd553940b98335e3d9c7ca5b134fdf692
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9161
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
vertico and consult are more modern versions of interactive narrowing
helpers, as those implemented by ivy and its related packages.
The primary differences (and what I care about here) is that they are
more focused on integration with the core Emacs primitives, rather
than building an ecosystem around them.
For example:
* vertico enhances `completing-read' and friends, but does not attempt
to provide its own ecosystem of functions to *trigger* completions.
* vertico integrates with the default `completion-style' system,
meaning that I can continue to use things like prescient without
extra packages that integrate it with vertico
* consult does not rely on vertico or any other specific completion
framework (such as counsel/swiper do with ivy), and simply
implements its functions using completing-read
This reduces the overall amount of code in the dependency closure and
leads to a less special setup.
Functionality is basically equivalent, except for two things which
counsel came with that I will need to substitute:
* counsel-notmuch (actually this was a separate package, but I didn't
use it much anyways, so just ignoring it for now)
* counsel-linux-app (opening desktop shortcuts, this I will need to make)
As a side note, consult notes "This package is a part of GNU Emacs",
but it doesn't seem to be the case.
Change-Id: Ia046b763bf3d401b505e0f6393cfe1ccd6f41293
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9155
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
When entering an incorrect GPG key password, I don't want my whole
buffer layout ruined. A small error message in the modeline is enough.
Change-Id: I7318d685e74fa4e110a9bff30d0de9f7f18b2be4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9149
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Especially the recursive minibuffers only cause a mess.
Change-Id: I6f7f790acd6a2f8cc4cec26c9cf97d5e53e77106
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9148
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Adds a completing-read function (defaulting to ivy for me, but it
doesn't matter) that offers a reliable alternative to standard
buffer-switching implementations.
In particular, this implementation retains a mapping of
buffer names to their buffer *objects*, so that the correct buffer is
selected even if some renaming took place during the selection.
I tried to account for a bunch of the common behaviours I could think
of:
* invisible buffers are ... invisible
* entering a buffer name manually creates that buffer, if there is no
match
* ... unless that buffer is an invisible buffer, in which case it is
selected and switched to
* the first element is always `(other-buffer (current-buffer))`,
because of the ordering of #'buffer-list
Yet, the entire code of my implementation is less than the *setup*
code of ivy-switch-buffers, so it's possible I missed something. Well,
I'll find out ...
Change-Id: I08be0da0863d06c9a930e5efaf916719655db90e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9147
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
The `a` shortcut of telega makes it dangerously easy to accidentally
add users whose username starts with `a` to a group.
This unbinds the shortcut, and leaves the member-adding function to be
called manually and explicitly only.
Change-Id: Iedb6291f16a299fc5d4ef824a1be6eb0a449001f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9015
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Work projects are not in git, but I still want to fuzzy jump to them.
Change-Id: Iced78519da69b6992d253e2a0c9ed485f1347164
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9005
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Gonna try to use this not for what it's intended ))
Change-Id: I669422323197cd4dc3812af399f17ed429871108
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9002
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
It does the emoji completion, very important!
Change-Id: I1160e2cf0415b2a4e2b6ebc194cd643a2b18793e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8966
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
The images displayed by telega are usually not displaying correctly,
this is fixed by simply .. not rendering them, and letting emacs do it
through an emoji-supporting font (which I do have installed).
Change-Id: I429ff2865c60633329437687c1c09a1aaf8ae29d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8884
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
* //3p/sources: switch stable channel from 21.11 (!) to 23.05
* //users: adapt to emacsUnstable to emacs-unstable rename
* //users/grfn: use default Linux kernel version everywhere,
as 5.15 has broken in this version of nixos-unstable.
* //3p/cgit: adapt to git 2.41.0
The committed changes are the same as the [patch1] I've submitted
to cgit-pink which is in turn based on Christian Hesse's [patch2].
patch1: https://causal.agency/list/thread/20230624144033.802270-1-sternenseemann%40systemli.org.html#20230624144033.802270-2-sternenseemann@systemli.org>
patch2: https://lists.zx2c4.com/pipermail/cgit/2023-June/004843.html
Co-authored-by: Christian Hesse <mail@eworm.de>
Change-Id: I549a62e7c85c66d772edda997819a40f2d5835d7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8855
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Reviewed-by: grfn <grfn@gws.fyi>
I don't actually use this, and it might be responsible for some EXWM
bugs in the latest version.
Change-Id: I8817e0cdd9d1b68ed6a9bdd072616f63f9f20d21
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8758
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Something in recent nixpkgs made things a little ... less bold. This
makes them more bold again. It looks vaguely correct after.
Change-Id: I6fc60cc1ec2d21d193f46f4d80998f041941add0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8488
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I often have to type text in German, but on the German keyboard layout
'Y' and 'Z' are in the wrong place (why? who knows). To avoid this
confusion, this defines an input method with the positions of those
keys corrected.
Change-Id: Ie446329d151cd3ed2bbeae1a34fc82d3c29f1d12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7440
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Upstream nixpkgs removed a lot of aliases this time, so we needed to do
the following transformations. It's a real shame that aliases only
really become discoverable easily when they are removed.
* runCommandNoCC -> runCommand
* gmailieer -> lieer
We also need to work around the fact that home-manager hasn't catched
on to this rename.
* mysql -> mariadb
* pkgconfig -> pkg-config
This also affects our Nix fork which needs to be bumped.
* prometheus_client -> prometheus-client
* rxvt_unicode -> rxvt-unicode-unwrapped
* nix-review -> nixpkgs-review
* oauth2_proxy -> oauth2-proxy
Additionally, some Go-related builders decided to drop support for
passing the sha256 hash in directly, so we need to use the generic hash
arguments.
Change-Id: I84aaa225ef18962937f8616a9ff064822f0d5dc3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6792
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: wpcarro <wpcarro@gmail.com>
This shortcut is so unbelievably annoying on some keyboards.
Change-Id: I5c96d490fd42aa8422fa48be87079b60af81fcd3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6527
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This is useful for eglot launching rust-analyzer when I'm outside of a
depot project.
Change-Id: I1fa1dc11e3eabe4bdedbd6389b55411641391c7e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6176
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
the upstream Nix test suite uses the pattern of having `.nix` and
`.exp` files for input/expected output, and with this shitty function
navigating between them is a lot simpler
Change-Id: I9d91290057521fe1e1599f69fd6b0f35e1b59960
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6058
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
this machine is now sort of permanently stationed in the office, and
thus permanently connected to the big screen.
with this setup, it's comfortable to have it available for a single
workspace (e.g. for videos playing there), but it's too confusing and
unergonomic to use that screen for anything else.
Change-Id: I03556b777c79f68d65d4d8bf1ba1f18982650a8b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5872
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
The buildup to the showdown of org-roam vs. zetteldeft.
I can never quite get into org, but I wanna find a solution to the
problem I think I have which I think these solve
Change-Id: I03f7ee63b0af8dc3f8c52ad6fa4d6fa5048540bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5644
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This reverts commit a989a91f9f.
This seemingly doesn't work anymore, and it is also not required
anymore because I no longer have the problem this solved.
Change-Id: I3c9c076b45f9aa865260ce7cb103538f694fe3e0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5643
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
undo-tree recently change dsome behaviour and started barfing "history
backup files" all over the place. These are really annoying and this
commit disables them completely.
Change-Id: I1c4ac0b12ba12d1f45c3f0516d16ba4f1f090700
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5504
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI