Commit graph

106 commits

Author SHA1 Message Date
Vincent Ambo
e5f7fe430d refactor(tazjin/gio-list-apps): refactor into dynamic Emacs module
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>
2023-08-29 14:07:11 +00:00
Vincent Ambo
d6bce3f83d refactor(tazjin/emacs): refactor LRU workspace list to use ring.el
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
2023-08-29 08:22:01 +00:00
Vincent Ambo
0a7a9e96ab chore(tazjin/emacs): remove EXWM gnome-terminal window naming case
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
2023-08-29 08:22:01 +00:00
Vincent Ambo
690f73074c feat(tazjin/emacs): add occasionally useful advice-remove-all helper
Change-Id: I66981e8bec300dff48d7a549f2d2847c637a4557
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9160
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2023-08-28 19:40:49 +00:00
Vincent Ambo
c6224c9ef5 feat(tazjin/emacs): implement run-xdg-app using gio-list-apps tool
Change-Id: I43111dfc7091c416035be563ca7fc17265667b33
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9158
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2023-08-26 23:30:21 +00:00
Vincent Ambo
184020a6f2 feat(tazjin/emacs): annotate remote files in reliably-switch-buffer
Change-Id: I0fa460f2d455114ca9387ad23d5a72bcb5a5d9ea
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9156
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-08-26 23:30:21 +00:00
Vincent Ambo
e78b79c6cd refactor(tazjin/emacs): ivy,swiper,counsel -> vertico,consult
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>
2023-08-26 23:30:21 +00:00
Vincent Ambo
9afa1dacf8 chore(tazjin/emacs): remove a bunch of unused code
Change-Id: Ife854e83ef97f1e9a26072f2ab2a3b23f5d64840
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9154
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-08-26 13:25:57 +00:00
Vincent Ambo
e9bbc5f2af fix(tazjin/emacs): suppress incredibly ennoying EPA error buffer
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
2023-08-23 20:22:25 +00:00
Vincent Ambo
254f81f5c9 chore(tazjin/emacs): disable some nonsensical ivy options
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>
2023-08-23 20:22:25 +00:00
Vincent Ambo
df4a09864a feat(tazjin/emacs): implement reliably-switch-buffer
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
2023-08-23 20:22:25 +00:00
Vincent Ambo
447d959143 feat(tazjin/emacs): use python-mode for Starlark files
Change-Id: I1b86ef7849f0754ba0ff37cb261b38bf9c5aed12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9016
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2023-08-08 09:44:11 +00:00
Vincent Ambo
9b8eb424eb fix(tazjin/emacs): unbind dangerous telega.el shortcut
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
2023-08-08 09:44:11 +00:00
Vincent Ambo
261ae2de95 feat(tazjin/emacs): make zoxide project opener work without git
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>
2023-08-04 16:35:47 +00:00
Vincent Ambo
0cae1a6736 fix(tazjin/emacs): reset both xrandr outputs correctly
Change-Id: I9bc7da159191b60610015cb636b9feebeb74da34
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8987
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2023-07-28 20:11:58 +00:00
Vincent Ambo
dc1711292f feat(tazjin/emacs): add screen layout for khamovnik @ home
Change-Id: I5e6213c1ebe74dc799f97a6d6c963c71ef29e66f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8986
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-07-26 08:36:46 +00:00
Vincent Ambo
29cc473d59 feat(tazjin/emacs): modeline warning if tty sessions are logged in
Change-Id: I88a9ca299f82917fb5b618766aef319aa2e141fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8981
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
2023-07-22 09:26:06 +00:00
Vincent Ambo
6ecc7a2ee4 fix(tazjin/emacs): fix path to my custom.el
Change-Id: If2a3f741a7b05358b6d09ea7c60d4a2fa3cf5263
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8968
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-07-14 15:28:53 +00:00
Vincent Ambo
80fe7ff7da feat(tazjin/emacs): always run company-mode in telega-chat-mode
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
2023-07-14 14:27:43 +00:00
Vincent Ambo
d73e8fb041 fix(tazjin/emacs): don't crash in find-cargo-project
Change-Id: I8a94892a527958946c975047204000eaf15395f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8946
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
2023-07-08 22:16:25 +00:00
Vincent Ambo
8d3229e40a feat(tazjin/emacs): update EXWM title naming for Chromium
Change-Id: I16f80741f69267863b891d7524c6b1b4d50804a2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8930
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-07-07 20:22:04 +00:00
Vincent Ambo
aa2f1bbc69 fix(tazjin/emacs): explicitly set xrandr mode for office screen
Change-Id: I2cc5ce1157a7dd551908bd0beb2fe03295447d80
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8925
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
2023-07-03 16:14:41 +00:00
Vincent Ambo
7c8fe6ccc8 fix(tazjin/emacs): call exwm-randr-refresh in khamovnik layout
Change-Id: Id0347f457cdd0f769fff19659c5a3597efee171f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8924
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
2023-07-03 14:34:22 +00:00
Vincent Ambo
c9272e0651 fix(tazjin/emacs): delegate emoji rendering in telega to emacs
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
2023-07-01 10:21:50 +00:00
Vincent Ambo
22e7e7bc99 feat(tazjin/emacs): add screen layouts for khamovnik
Change-Id: I057c996650a48cfafdcba84e1087663e212eadda
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8879
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2023-06-30 11:02:22 +00:00
Vincent Ambo
b16a2f302e chore(tazjin/emacs): disable winner-mode
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>
2023-06-13 10:13:51 +00:00
Vincent Ambo
ad0fc6549e fix(tazjin/emacs): set font weight back to normal
Whatever broke font rendering in nixpkgs briefly has been fixed.

Change-Id: Ie14aa3e4893c2828b57deacda125561202628b26
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8713
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-06 11:19:16 +00:00
Vincent Ambo
31e15ace01 fix(tazjin/emacs): make font a little bolder
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
2023-04-20 10:52:53 +00:00
Vincent Ambo
f687f5c3a3 fix(tazjin/nixos): scrot is out, maim is in
Scrot doesn't work very well anyways, it keeps producing crazy
artifacts. Maim seems more sane.

Change-Id: I0823b1755b7810c8b35a9c53f232d2e7f1722943
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8414
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
2023-04-01 15:21:30 +00:00
Vincent Ambo
18481db54d chore(tazjin/emacs): shuffle workspace layout on 2-screen tverskoy
Change-Id: I5b4baf1f7f971caee90bd30e7c133abf02bd33c8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7737
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
2023-01-03 13:12:06 +00:00
Vincent Ambo
edea7ecc18 feat(tazjin/emacs): add german-qwerty input method
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
2022-11-27 12:23:43 +00:00
sterni
419a9ab0fe chore(3p/sources): Bump channels & overlays
* //users/tazjin/emacs: string-edit was renamed to string-edit-at-point
  1b2c64ce1b

* //users/grfn/…/modules:

    - readyset.nix: use rain from nixpkgs

    - obs.nix: use input-overlay from nixpkgs (newer version, untested)

Change-Id: I5887078cee22673c129d186a8448855b92d7b250
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7306
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-23 21:25:08 +00:00
Vincent Ambo
0dc2b19ebe fix(tazjin/emacs): globally unbind C-x s
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
2022-09-11 20:12:47 +00:00
Vincent Ambo
e70ef017ff feat(tazjin/emacs): add find-cargo-project function
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
2022-08-26 17:26:30 +00:00
Vincent Ambo
8f4beaaba2 feat(tazjin/emacs): add helper function for navigating tvix tests
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
2022-08-10 16:48:30 +00:00
Vincent Ambo
15a9aad658 chore(tazjin/emacs): keep only one workspace on tverskoy's screen
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
2022-06-16 13:13:02 +00:00
Vincent Ambo
c55f61cd9b feat(tazjin/emacs): Configure zetteldeft for Markdown
Change-Id: Ib652374d42b6f701a7371325355871f8cc5325f9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5650
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-05-25 11:46:13 +00:00
Vincent Ambo
739434f417 revert(tazjin/emacs): Don't ignore messages from blocked senders
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
2022-05-25 11:46:11 +00:00
Vincent Ambo
9d3145df48 chore(tazjin/emacs): Improve TV screen layout positioning
Change-Id: Ic9a6b30c04382c57ccb8620786f8f6a091c8e306
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5532
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-05-07 11:10:22 +00:00
Vincent Ambo
404d92356d fix(tazjin/emacs): Stop undo-tree's new file barfing
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
2022-04-24 12:05:56 +00:00
Vincent Ambo
dd797f8d3e feat(tazjin/emacs): Add randr layout with TV screen above laptop
Change-Id: I302f9d86d7325ce97c95fd61deb9ff722f9d0ce1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5426
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-03-31 13:24:27 +00:00
tazjin
270a4de7ac style(tazjin/emacs): Disable my dark theme (again)
The Egyptian sky fireball has returned.

This reverts commit 88b3f367e9.

Change-Id: I323b8b976a1212258b6914f07acffe8eb9827caa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5361
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-03-07 11:44:25 +00:00
Vincent Ambo
e4f2797e01 fix(tazjin/emacs): Set defaults for multiple-cursor hydra commands
Change-Id: Ic07ed0d507ffd112f46953efbf6554b93a208671
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5325
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-26 10:52:01 +00:00
Vincent Ambo
aacd03db7e feat(tazjin/emacs): Add #'exwm-jump-to-buffer
This allows me to jump to a workspace that is already displayed on
some buffer.

This also interfaces correctly with my back-and-forth jump
functionality, setting the variables to allow quick jumping back to
the previous buffer via the numerical index of the destination or - of
course - via s-b.

Change-Id: I25db7535089bcb17b3d61d53030b9154cfeac023
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5323
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
2022-02-23 14:58:46 +00:00
Vincent Ambo
cae274808f fix(tazjin/emacs): suppress emacs warnings in warnings buffer
Change-Id: I78e431da01dc900344044f1571e35565f8361f3a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5281
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-14 17:43:03 +00:00
Vincent Ambo
f82f459e2c fix(tazjin/emacs): allow jumping to front of workspace history
Classic off-by-one error.

Change-Id: I53e143d900f1d3751ad16b3b33532f32e2c6b411
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5245
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-07 19:12:16 +00:00
Vincent Ambo
d522e75554 feat(tazjin/emacs): emulate i3's "jump back-and-forth" feature
this feature makes it so that if you jump to a workspace by index, and
then ask to jump that same index again, you end up where you started.

this is useful for quickly jumping to something to look at it, and
then back.

Change-Id: I12f5bba88c0d5b3ae5956d2b6a606f49146551f7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5244
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-07 19:08:01 +00:00
Vincent Ambo
e00dd88b66 feat(tazjin/emacs): implement MRU navigation for exwm workspaces
this makes it possible to move forwards/backwards in workspace history
in the order in which I used them, while tracking the offset (e.g. it
is possible to go 3 steps back, do something, then move 2 steps
forward again).

this should make it possible to learn ad-hoc relative layouts for
whatever task i'm working on and reduce the number of times where i
frantically flip through all workspaces and try to figure out where
anything is.

note that this key binding is not very ergonomic, but i've remapped it
on my kinesis to the prior/next buttons. i never use those. using
<prior>/<next> directly doesn't work because too many modes override
them.

Change-Id: I257723b9e14a68b53be68539dd752db3445546e7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5243
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-02-07 19:08:01 +00:00
Vincent Ambo
1935b41620 feat(tazjin/emacs): Use Emacs input methods in X11 buffers
This is much easier than the shitty keyboard layout switcher which
caused all kinds of terrifying bugs.

Unfortunately the layout switcher remains additionally because this
doesn't work with Quassel (Qt dropped support for XIM).

Change-Id: I7c58cebf9391216b6e7134d8c283d52cb18332de
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3497
Tested-by: BuildkiteCI
Autosubmit: tazjin <mail@tazj.in>
Reviewed-by: tazjin <mail@tazj.in>
2021-12-24 19:33:50 +00:00
Vincent Ambo
6328f1c7c8 feat(tazjin/emacs): add zoxide-open-magit and a binding for it
Change-Id: Ibe3264769ab6e6d1400088e8a72d3ef22dc4cd78
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4514
Reviewed-by: tazjin <mail@tazj.in>
Autosubmit: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-12-20 08:52:49 +00:00