In hope that iwlwifi works again on this commit, and I don't actually
have to debug it.
Includes following changes:
* users/aspen: home-manager is shuffling around pinentry options again
* users/flokli: rebase ipu6-softisp patches to Linux 6.8
make cl/11097 a separate patch
* ops/modules: remove unused (and now broken) v4l2loopback module
Co-Authored-By: Florian Klink <flokli@flokli.de>
Change-Id: I763f1f075778f2ed8db7803f87248c9dabde4213
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11174
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: aspen <root@gws.fyi>
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This version is gonna be better for the Volga Sprint logo.
Change-Id: Ib33c9055e5171168c56634c0e4b3d0b0626014ff
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11025
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I never ended up actually using this for anything.
Change-Id: I2bd9a46f6284d8283453d34eab6134efc92ea684
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11023
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
The old helper function for setting multiple keys at once has been
removed.
Change-Id: I5089973bcb42ce1fae4afdd1d27ea22b46b63cbf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10956
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This cleans up the clang-tools_11 attribute, affects tazjin's frog and
aspen's home-manager configuration. achilles remains with pinned
llvmPackages, but it doesn't build at the moment, so it's impossible to
test.
Change-Id: I53416bf7c99f363163de29b32678a82b9eb5adbd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10644
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: aspen <root@gws.fyi>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Following a discussion on Telegram about window management ... might
come in useful!
Change-Id: If50741e4281c658bccc55e2f591ef945ef4b3b5d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10592
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Creates a simple dot graph that shows the internal dependencies of an
elisp module. Useful for certain kinds of refactoring ...
Change-Id: Id7a7756b866751d0e7288e0d22b72ec8056a9eef
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10591
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This thing has been introduced recently and prints annoying warnings
when running manually patchelfed binaries with the default loader
path (which used to work fine!).
This doesn't actually fix running the binaries, which now segfault,
but at least it doesn't print a paragraph of annoying text in the
terminal instead.
Change-Id: Ie0d8c3cc124b71d244e10f3755431fb3401ff81b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10479
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This has some effect on the Emacs 29 hollow cursor bug, though I
honestly don't fully understand what this does.
Change-Id: I03eaa0a64e81f01a86736ad17b4c1b3a56fe3d5a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10461
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
The correct one is cache.tvl.su:kjc6KOMupXc1vHVufJUoDUYeLzbwSr9abcAKdn/U1Jk=,
defined in ops/modules/tvl-cache.nix for example, but as
ssh://nix-ssh@whitby.tvl.fyi is configured, these signatures don't apply
anyways.
Change-Id: I7008a005fe34568d7504b66d979de68bfcfc7acf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10192
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
This passes all tests I could find so far, but doesn't work on the
website. I wrote an interactive debugger for looking at the input, and
haven't found anything incorrect, so not sure what it wants from me.
Change-Id: I506001735e15b2d02eaaebc6d1da8c26e92acde0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10188
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Deletes some stuff that I think isn't necessary anymore, and
consolidates the modes.el content into settings.el.
Change-Id: Ib682dbdb4eb89b3a7ee2eca89da4151af806a508
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10187
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
The second task was very annoying because you had to guess the actual
rules (overlapping words), as they're not explained correctly in the
task. My solution hardcodes those cases.
Change-Id: Idf24579a78a1b8ede368504d3ff0c58c9978f069
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10183
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Lets see if it's good now. Chrom(e|ium) (and by extension (pun
intended) derivatives) are getting rid of ad blockers, so need to
do *something*.
Change-Id: Id7c69d38ddb0ad929aed9e6fbae4d9919ed0731f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10177
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
I have a suspicion that some strange behaviour I occasionally get is
related to company mode.
Change-Id: I26f25c31967ae092d15248a806acdf4f28cb4c10
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10176
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I don't really like this package, it's kinda wonky, and now that part
of my mode line logic is in the tab-bar, it's no longer needed.
Change-Id: I4791a75e5ce2f0c49ef0d239cadf6a4f81c73636
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10171
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
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
This removes everything related to workspaces, as well as the current
RandR configuration, creating a (cleaner) slate for switching to tabs.
This was supposed to be committed earlier, but got broken by
clbot (see b/333).
Change-Id: I2d110bca0d6629a505699210f0aba12882f83d48
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10115
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Sets up tab-bar-mode for EXWM, and adds simple initial configuration
and shortcuts to make it behave sanely. I had to assign tab switching
shortcuts myself, as the EXWM input key stuff doesn't work correctly
with the built-in way of setting these shortcuts in tab-bar-mode.
Change-Id: Icd96f03ae7bd2bd5f7c2d59f9aca7a1ca2e7f788
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10116
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Adds an `exwm-assign-workspaces` function that automatically creates
and assigns workspaces to each currently connected monitor. The first
workspace (index 0) is always on the primary monitor.
This function should be idempotent and can be called at any point to
synchronise X outputs and what EXWM is displaying on them.
This works because tabs are disconnected from workspaces completely,
so I don't have to care about what's going on on other workspaces
anymore.
Still missing:
* functions to connect/disconnect outputs
* switching to other outputs from within emacs commands (i.e. without
the mouse)
Change-Id: I7c24aa1b45218fe35de6939e799852b5d11d1272
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10119
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This one is a bit stupid because I couldn't figure out a way to
determine the active workspace. It's definitely possible (either
through some XCB calls, or through state management in screen change
hooks), but for now this is fine.
Change-Id: I5e4c531b248caa0021664bad9dc196bef60cfbac
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10122
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
By default, this will be the (only) remaining monitor. In N>2
situations, ask the user.
Change-Id: Id68fcf60d56d0414d1072b8ffeef72c608678f52
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10121
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Uses a bunch of weird xrandr invocations and completing reads to
configure screens the way I want.
Note that this has a known bug where disconnecting a primary screen
will *not* make one of the remaining screens primary.
Change-Id: Ide5322df446685cc4740d4ddd7b6ca8682375050
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10120
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Something changed in the machinery and broke the overriding. I didn't
notice this, as a I was temporarily using an unpatched EXWM.
Change-Id: I1a4e8ea63bd116d86a430e680c2b631474e9a0fe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10047
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This was previously only in my Telegram channel, but it might as well
be on the blog itself.
Change-Id: I301ebeaa4dd1875f3858cee5259a5c689b950790
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10009
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This can apparently work around some of the CPU throttling bugs on
~modern~ computers.
Change-Id: I807ece85d3eba53857a1cb1e73a33f7924538e96
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9895
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
nixpkgs changed something in how it deals with configuration of the
package set itself when that is externally instantiated (like in
depot)
It seems like we can work around this mostly by just ... deleting some
code, as all instances of this were for allowing unfree code, which
we've already set on the top-level anyways.
* //users/sterni: fix nixpkgs config assertion to point at
pkgs.config
* //users/wpcarro: disable locate service, which is broken in nixpkgs
Change-Id: Iacf6f1c8fd5b5289e7265e155d74f8269a858ceb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9541
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Without this line, accessing external APIs from Gonic (e.g. scrobbling
to Listenbrainz) does not work (unless a local resolver exists). This
is because in the pure Go DNS implementation used in gonic, only
/etc/resolv.conf can provide resolvers.
Change-Id: I26dd9a845b0a70c4cfb983c68da2b76b7e57dfec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9502
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
* zramSwap: during reindexing, geesefs can be pushed to the boundaries
of what the new overaggressive OOM killer accepts, and I don't want
to bother configuring that thing instead.
* umount: geesefs dying unexpectedly leaves broken mounts around,
clean these up before proceeding
This bakes in the assumption that there's only ever one geesefs
service, but that assumption is baked in anyways.
Change-Id: Id85c2f5bc2312a7246ea20229eb36d2cc1bd82c0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9500
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
... this will make sense soon!
Change-Id: I1f8f32d655afdf868fff4bd09e1fea2943fd7558
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9496
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Can't be bothered to make something more automated for now.
Change-Id: Ie245af90c1a62a5988b97d16f86b6567e1ffafd0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9493
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Telega tries to use some random completing-read functions, but I just
want it to use the default one, which I've configured the way I want.
Change-Id: I33da24f257e8ac0cae4a7d25ba6c5e4e656fcad5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9478
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Some of these I don't use, some of these have been replaced with
tree-sitter, some of these have moved into core.
Change-Id: Id0a8aac4189607a89db861bbc09b95c75c45dc0f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9310
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
The mechanism in nixpkgs does not work, but doing it myself is not
that difficult.
Change-Id: I91b12e9c1f5d381c9990fd46e02169f5275f88da
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9309
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Especially interested in the C++ mode, as I am regularly dealing with
extremely large C++ files where the existing mode is having trouble.
Change-Id: I8c17a35011a23b67043de5de58c4269c636de68b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9308
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I want to experiment with the new tree-sitter modes in Emacs, maybe
they're good.
Change-Id: I706fc8a889fcfa61d0f11d50ecbc67a2899b5bbf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9307
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Also expose both formats, then use it from
users/tazjin/presentations/tvix-eval-2023.
Change-Id: Id906e8aff5510a7a4f33336326472e86db18ea32
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9280
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Makes it possible for people in the audience to get to the link
collection reasonably quickly.
Later on that post can also have the talk itself added. For now it is
unlisted.
Change-Id: If9ae1d88d3c6f22bbd70b2b3cbea0b0d42895a93
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9208
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: Mark Shevchenko <markshevchenko@gmail.com>
Tested-by: BuildkiteCI
This demonstrates a Rust stdlib call that just causes runtime panics
on WASM, for explaining the problems with porting Tvixbolt.
Change-Id: Ief974f1bba509fdac4b9bc9f862ee8f4dfc5158e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9206
Tested-by: BuildkiteCI
Reviewed-by: Mark Shevchenko <markshevchenko@gmail.com>
Autosubmit: tazjin <tazjin@tvl.su>
refine doesn't work anymore, inspector seems to be a more modern
alternative.
it's impressive that they managed to write elisp code that broke.
Change-Id: I672de68abdc3d780f66769043afefd8d37438548
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9209
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I spent way too much time fighting LaTeX to do roughly what I want
here again, but all the alternatives are even worse.
Change-Id: Ibe12a4ce175ceb73e9d6e276613dcd4827dd76c4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9150
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: Mark Shevchenko <markshevchenko@gmail.com>
Tested-by: BuildkiteCI
This gives me the ability to override the Emacs per-machine easily.
Change-Id: Id480889c108833b0a11c377a9b1e946900c5aba1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9166
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I only wrote this as a hack to make my Emacs config run on gLinux, but
that isn't relevant anymore.
Change-Id: I19c49d500e0ec75bb85644d25a63b0b6c530aa62
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9165
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Instead of staying up-to-date with Emacs master, I'd like to be a bit
more laid back and stay with stable releases. Now that native
compilation is in this is not a big difference.
I tried to use `-pgtk`, but it broke EXWM.
Change-Id: I0789a1f73d0149bda912987e726de396545abce1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9164
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
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
This does nothing other than dump out the list of XDG apps to stdout
in JSON format. There are no options or anything.
This can be used for selection in app launchers (e.g. dmenu, something
based on completing-read in emacs, rofi, etc.).
I wrote this because I don't want to deal with having to do this in
Elisp. It's also unclear what logic actually hides behind under the
hood here, so why not just use the official library.
Change-Id: I16fed2c92760cadecc02c59a4e537a1fa247aff9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9157
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>