about summary refs log tree commit diff
path: root/users/tazjin/emacs/config/functions.el
AgeCommit message (Collapse)AuthorFilesLines
2023-11-28 r/7079 refactor(tazjin/emacs): move global-mode-line info into tab-barVincent Ambo1-10/+0
This removes the wonky hack with detecting the bottom right window, and gives me saner, unified handling of this display in the tab bar (of which there is only one!) Change-Id: Id21c6b2472d0c89fc4d000a10a9e90d2ddba86b6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10165 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-08-29 r/6534 refactor(tazjin/gio-list-apps): refactor into dynamic Emacs moduleVincent Ambo1-6/+3
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-28 r/6531 feat(tazjin/emacs): add occasionally useful advice-remove-all helperVincent Ambo1-0/+5
Change-Id: I66981e8bec300dff48d7a549f2d2847c637a4557 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9160 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-08-26 r/6529 feat(tazjin/emacs): implement run-xdg-app using gio-list-apps toolVincent Ambo1-0/+17
Change-Id: I43111dfc7091c416035be563ca7fc17265667b33 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9158 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-08-26 r/6527 feat(tazjin/emacs): annotate remote files in reliably-switch-bufferVincent Ambo1-3/+15
Change-Id: I0fa460f2d455114ca9387ad23d5a72bcb5a5d9ea Reviewed-on: https://cl.tvl.fyi/c/depot/+/9156 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-08-26 r/6526 refactor(tazjin/emacs): ivy,swiper,counsel -> vertico,consultVincent Ambo1-8/+0
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 r/6525 chore(tazjin/emacs): remove a bunch of unused codeVincent Ambo1-64/+0
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-23 r/6522 fix(tazjin/emacs): suppress incredibly ennoying EPA error bufferVincent Ambo1-1/+3
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 r/6520 feat(tazjin/emacs): implement reliably-switch-bufferVincent Ambo1-0/+19
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-04 r/6462 feat(tazjin/emacs): make zoxide project opener work without gitVincent Ambo1-3/+7
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-07-08 r/6400 fix(tazjin/emacs): don't crash in find-cargo-projectVincent Ambo1-4/+5
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-04-01 r/6070 fix(tazjin/nixos): scrot is out, maim is inVincent Ambo1-3/+8
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>
2022-08-26 r/4509 feat(tazjin/emacs): add `find-cargo-project` functionVincent Ambo1-0/+10
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-10 r/4397 feat(tazjin/emacs): add helper function for navigating tvix testsVincent Ambo1-0/+11
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-02-26 r/3867 fix(tazjin/emacs): Set defaults for multiple-cursor hydra commandsVincent Ambo1-1/+11
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
2021-12-20 r/3327 feat(tazjin/emacs): add zoxide-open-magit and a binding for itVincent Ambo1-0/+5
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-02-22 r/2225 feat(tazjin/emacs): Add #'rg-in-projectVincent Ambo1-0/+8
Uses project.el to anchor the ripgrep search. In combination with my project detection logic, this means that grepping in TVL subprojects works automatically. Change-Id: I2705466d1de156c08ff0401a71112864aa24f976 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2542 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-20 r/2020 chore(tazjin/emacs): Remove #'fefes-blogVincent Ambo1-5/+0
It's not worth reading anymore, he's getting old. Change-Id: Ia9bac99169949c3f057c0e9c526cbc99e925af76 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2283 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-09 r/1994 refactor(tazjin/emacs): Always use completing-read instead of ivyVincent Ambo1-35/+34
This is a step towards making the completing-read framework more easily interchangeable (I'm eyeing selectrum). Change-Id: I7a066e212a5384136defbba8f11ef9ed57abf22e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2240 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-09-27 r/1817 feat(tazjin/emacs): Add function for quick Songwhip lookupsVincent Ambo1-0/+27
Adds a function `songwhip-lookup-url` which looks up the supplied URL on Songwhip and copies the Songwhip link if a result was found. This is bound to `s-s w` for convenience. Change-Id: I3b529a058ee56f992942760910822490e6324259 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2002 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-08-23 r/1708 feat(tazjin/emacs): Add magit-find-file-worktree functionVincent Ambo1-0/+7
This will look up a file in the current worktree of the git repository enclosing `default-directory'. In combination with project-find-file this lets me toggle between switching to a file within a project, and within the whole depot. Change-Id: Ie1011f10051fc2c4bd4279b0944a79c7edf92f3b Reviewed-on: https://cl.tvl.fyi/c/depot/+/1838 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-08-23 r/1707 feat(tazjin/emacs): Add depot-aware project.el extensionVincent Ambo1-2/+10
If this ends up working well I'll extract it to tvl.el Change-Id: I83722abf33a3346ccc7957c8d64d6381b15c6ee9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1837 Tested-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi>
2020-06-19 r/1040 feat(emacs-pkgs/tvl): Add #'tvl-depot-status functionVincent Ambo1-3/+0
This function opens the depot in magit. By default the depot path is assumed to be `/depot`, but that is made available as a customise option that users can override. Change-Id: Iefc127cad515dbae330d7af3aa69a0c53aa02015 Reviewed-on: https://cl.tvl.fyi/c/depot/+/504 Reviewed-by: glittershark <grfn@gws.fyi>
2020-06-18 r/1025 chore(tazjin/emacs): Move //tools/emacs to //users/tazjin/emacsVincent Ambo1-0/+287
Change-Id: I9dfbd0bb1fd3e215bb91c5734fb0934ee3faeae6