Commit graph

1035 commits

Author SHA1 Message Date
Vincent Ambo
0fbd6f0aeb fix(tazjin/emacs): Use telega from MELPA
The stable versions are too old to be compatible with nixpkgs-unstable

Change-Id: I8edb125024460f605ff640cd486779877fa0d256
2021-12-13 18:53:54 +03:00
Vincent Ambo
396e3a0d68 fix(tazjin/russian): Minor Elisp fixes
Change-Id: I759182ccb49d7a72ca8a031c829608c9eee70277
2021-12-13 16:36:19 +03:00
Vincent Ambo
53f8a04b33 feat(tazjin/tverskoy): Ensure ~/screenshots exists
Change-Id: Icae43b17a95c638429351273bb16111097c3e594
2021-12-13 16:24:37 +03:00
Vincent Ambo
5fd3140cf3 fix(tazjin/emacs): Gerrit remote is now 'origin'
Change-Id: I44998510ff4be2fa137ea4c81f888e63ea438a56
2021-12-09 13:24:20 +03:00
Vincent Ambo
623de7920f feat(tazjin/russian): Add words 601-700
Change-Id: I17b1362502952d96b8787ad3c055d66f212fd60b
2021-12-09 08:58:32 +00:00
Griffin Smith
a0fcec54cd feat(grfn/emacs): Tweak rust async_test snippets
Add a stop at the `flavor` argument, since some async tests can use the
default config.

Change-Id: Iffd726b304d0d9dd94938bf23b2688715d1f4e20
2021-12-09 02:08:50 +00:00
Griffin Smith
49d4d12a73 feat(grfn/emacs): Add a prolog use_module snippet
Change-Id: Ib5226a1ad0f084d3755cbfe40bf3556b3fa7fb2b
2021-12-09 02:08:42 +00:00
Griffin Smith
91f33b1a96 feat(grfn/emacs): Add some prolog-mode mappings
Change-Id: If1677024f9a211eee5d42a03413b5058dd797b9a
2021-12-09 02:08:42 +00:00
Vincent Ambo
14bf3f3cd9 feat(tazjin/russian): Add words 551-600
Change-Id: Ie2a670fc2aa24457a9fc7f3f22d5336d97e7789f
2021-12-08 20:37:49 +03:00
Vincent Ambo
b5dcb4e6df feat(tazjin/russian): Add words 501-550
Change-Id: Id9e4b9eb5e330a5331ca0cc2c7af2c4ade4a6ace
2021-12-08 20:23:09 +03:00
Vincent Ambo
a39ab958da feat(tazjin/russian): Add words 451-500
Change-Id: I5e0c8d61be0c0170370298aa4c6ee0a6607f24b7
2021-12-08 20:03:59 +03:00
Vincent Ambo
3f614a4e17 feat(tazjin/russian): Add words 401-450
Change-Id: I1101ebf2252390fc4ae308de43f09f606118615b
2021-12-08 01:19:46 +03:00
Vincent Ambo
214f422572 feat(3p/agenix): Import latest version from GitHub
It's time to automate secrets deployment on hosts like whitby.

Change-Id: If7006124b4b5fec16b4c3570488c11e484f93888
2021-12-07 18:27:54 +00:00
Vincent Ambo
9df5e1da19 feat(tazjin/tverskoy): Configure tlp to keep battery between 40-70%
This is supposedly better for battery health, and since the machine is
usually plugged in while in the office it might be a good idea.

Note for myself: `sudo tlp fullcharge` ~30 min before needing to leave
with a fully charged battery.

Change-Id: I3664264403f56c15e055822190f30c3a90c93ead
2021-12-06 16:18:06 +03:00
Vincent Ambo
9d5483e190 feat(tazjin/emacs): Ensure passively is installed
Change-Id: I58f007ba54fd0b48fdff6e8409463d5d5e105f17
2021-12-06 11:50:55 +00:00
Vincent Ambo
28759b7d66 refactor(tazjin/russian): Use passively.el for Russian learning
Replaces the functionality previously implemented here with the now
generalised implementation in passively.el

Change-Id: Ibe7a1b7d512ddcb700bc330cbdf62811399c6cfe
2021-12-06 11:50:55 +00:00
Vincent Ambo
ba8db7b6da chore(tazjin/emacs): Configure persistence location for passively
Change-Id: I00965fc24ccfddc278e7ab9243661aea282ff385
2021-12-06 02:14:35 +03:00
Griffin Smith
909c1d02a2 fix(gs/emacs): Return empty string if nothing in inbox
otherwise we'd return the string "nil", which with the substring-ing
that was happening would end up as "Inbox: i" in the status bar

Change-Id: I567a6042b592dd9313bfa22d480c22936494a8c1
2021-12-03 12:23:54 -05:00
Griffin Smith
9eec83843e fix(gs/emacs): Fix title of clocked-in task
For the i3 status bar - this API changed to return a list recently,
which is super frustrating

Change-Id: Ib921b6431331c766b67ea5053f2d9f3d86cf54b4
2021-12-03 12:23:54 -05:00
sterni
ca159626dd feat(sterni/emacs): subscribe to the TVL feed
Change-Id: Iac08e992a4c610a6f152c1dc5e681b17298b8834
2021-12-01 18:17:29 +00:00
sterni
9472bb6b04 feat(sterni/aoc/2021): day 1 solution
Change-Id: I0781b2aa3624df9a3158296edcbbbf2ee845102b
2021-12-01 18:17:29 +00:00
Griffin Smith
8de6c07153 refactor(gs/emacs): Switch to doom's built-in fuzzy ivy
This seems to do sorting slightly better.

Change-Id: I0d354a77b45b1a83d4bb5eb0acd024187b06929f
2021-11-29 10:52:47 -05:00
Griffin Smith
ac2fa80f75 feat(gs/home): Add shell alias for graphvizzing
for work

Change-Id: Ib8a8928f8315823a34b653d3e3dff46d10f930e6
2021-11-29 10:52:21 -05:00
Griffin Smith
e1e78f7abc feat(gs/system): Install dev man pages
I wanna be able to man libc stuff

Change-Id: Ie38e6751af24ffcffa912621dc217dcef5c84dda
2021-11-29 10:50:04 -05:00
Vincent Ambo
d143c3735f chore(tazjin/russian): Reduce timer interval to 4 seconds
Change-Id: I85025754695a6173a23c9ea2eb19ddc8e97e4dcd
2021-11-29 17:33:47 +03:00
Vincent Ambo
2789e013af feat(tazjin/russian): Function to look up last word in Wiktionary
For cases where a word raises more questions than are answered by my
existing notes, roots, translations and so on.

Change-Id: Ic9dd79ba4aef6e3c8e7e8e965195b67f7a0c65f3
2021-11-29 17:33:47 +03:00
Vincent Ambo
e4c82c2a34 feat(tazjin/russian): Exclude known words from random display
Adds a set of words that I consider "known" (but that should be in the
most frequent word list anyways). This set can be populated by
invoking `mark-last-russian-word-as-known` after display, and is
automatically persisted.

Right now there's nothing automatically loading it back in, just as
there is nothing loading any of this automatically, that's for the
future.

Change-Id: I51ee4f37114c6b95925e8ad5bdc5dc9b8657bdad
2021-11-29 17:33:47 +03:00
Vincent Ambo
7843363225 feat(tazjin/russian): Remember the last displayed word
This will make it possible to do operations on that word (i.e. marking
it as known, or opening the full definition page).

Change-Id: Ib77f7d2e4e96d6ab754b311a69f72e2b080657ac
2021-11-29 14:24:25 +00:00
Vincent Ambo
f7c87fd774 feat(tazjin/russian): Echo Russian words when Emacs is idle
This should keep up passive exposure to words, but needs a subsequent
function for filtering out things that are definitely known.

Since I'm keeping the frequent word list mostly intact the majority of
words are very basic, but it's those last 15-20% I'm interested
in (not completely imported yet).

Change-Id: I7a5684b8dca1fe5301e8b394be2627550a60e3c6
2021-11-28 17:39:23 +03:00
Vincent Ambo
48290298ad feat(tazjin/russian): Add macro to populate word table
Adds a stupid macro that populates a 'russian-words' hash table in
which merged definitions of words are available.

Change-Id: Ide7825577ba26d63ff564e54601541f39ab5a1a6
2021-11-28 17:14:15 +03:00
Vincent Ambo
465f3d3f14 chore(tazjin/tverskoy): Minor config cleanups
Change-Id: I434c0b8d5e5ce2d077630de2dd71de309b7d076f
2021-11-27 20:56:21 +03:00
Vincent Ambo
67d7bc2fa8 fix(tazjin/tverskoy): Persist Zoxide state between reboots
Change-Id: Ib1e1fe9749e56eefc83016b1946e6fe0b1f72339
2021-11-27 17:53:24 +03:00
Griffin Smith
604319850c feat(gs/xanthous): Creatures drop their items when they die
When a creature is killed, it now drops all the contents of its
inventory on the ground.

Change-Id: Ie95c397308ba2c9861f10e58b99c91c9cc759c56
2021-11-25 17:31:01 +00:00
Griffin Smith
a3d220b631 feat(gs/xanthous): Creatures use their weapons to attack
If a creature has a weapon wielded, then they now use that weapon to
attack the player *instead of* their natural attacks. This uses a new
`creatureAttackMessage` field on the Item raw for the message to use.

Change-Id: I73614f33dbf88dd4c68081f15710fa27b7b21ba2
2021-11-25 17:31:01 +00:00
Griffin Smith
4b11859d04 feat(gs/xanthous): Allow generating creatures with items
Add an `equippedItems` field to the CreatureType raw, which provides a
chance for generating that creature with an item equipped, which goes
into a new `inventory` field on the creature entity itself. Currently
the creature doesn't actually *use* this equipped item, but it's a step.

This commit also adds a broken-dagger equipped 90% of the time to the
"husk" creature.

Change-Id: I6416c0678ba7bc1b002c5ce6119f7dc97dd86437
2021-11-25 17:31:01 +00:00
sterni
750ef6c693 feat(sterni/nix/utf8): check if codepoint valid/encodeable
* Enforce the U+0000 to U+10FFFF range in `count` and throw an error if
  the given codepoint exceeds the range (encoding U+0000 won't work of
  course, but this is Nix's fault…).

* Check if the produced bytes are well formed and output an error if
  not. This indicates that the codepoint can't be encoded as UTF-8, like
  U+D800 which is reserved for UTF-16.

Change-Id: I18336e527484580f28cbfe784d51718ee15c5477
2021-11-25 12:15:35 +01:00
sterni
0e9c770972 refactor(sterni/nix/utf8): let wellFormedByte check first byte
Previously we would check the first byte only when trying to figure out
the predicate for the second byte. If the first byte was invalid, we'd
then throw with a helpful error message. However this made
wellFormedByte a very weird function.

At the expense of doing the same check twice, we now check the first
byte, when it is first passed, and always return a boolean.

Change-Id: I32ab6051c844711849e5b4a115e2511b53682baa
2021-11-25 12:15:35 +01:00
sterni
87a0aaa77d feat(sterni/nix/utf8): implement UTF-8 encoding
This implementation is still a bit rough as it doesn't check if the
produced string is valid UTF-8 which may happen if an invalid Unicode
codepoint is passed.

Change-Id: Ibaa91dafa8937142ef704a175efe967b62e3ee7b
2021-11-25 12:15:35 +01:00
sterni
9370ea5e33 chore(sterni/nix/utf8): remove decodeSafe
This is not really used anywhere and kind of useless. A better
decodeSafe would never return null and instead make use of replacement
characters to represent invalid bytes in the input.

Change-Id: Ib4111529bf0e472dbfa720a5d0b939c2d2511de5
2021-11-25 12:15:35 +01:00
Vincent Ambo
a935570a22 feat(tazjin/tverskoy): Install some more frequently used tools
... rather than nix-shelling them every time.

Change-Id: I9ab6ad67efbd6c16c7fd8cc9938d86d35f8418bc
2021-11-24 10:58:06 +03:00
Vincent Ambo
4f1249e46f refactor(readTree): Move 'drvTargets' into readTree
This function is also generally useful for readTree consumers that
have the concept of subtargets.

Change-Id: Ic7fc03380dec6953fb288763a28e50ab3624d233
2021-11-23 14:42:08 +00:00
sterni
ab92c42f59 feat(sterni/nix/utf8): allow decoding the empty string
Change-Id: I8de9cd28c822ac5befbcd16e118440cd13cd86e9
2021-11-23 14:23:41 +01:00
sterni
8615322bc8 refactor(sterni/nix/utf8): use genericClosure for decoding iteration
builtins.genericClosure is a quite powerful (and undocumented) Nix
primop: It repeatedly applies a function to values it produces and
collects them into a list. Additionally individual results can be
identified via a key attribute.

Since genericClosure only ever creates a single list value internally,
we can eliminate a huge performance bottleneck when building a list in a
recursive algorithm: list concatenation. Because Nix needs to copy the
entire chunk of memory used internally to represent the list, building
big lists one element at a time grinds Nix to a halt.

After rewriting decode using genericClosure decoding the LaTeX source
of my 20 page term paper now takes 2s instead of 14min.

Change-Id: I33847e4e7dd95d7f4d78ac83eb0d74a9867bfe80
2021-11-23 14:22:24 +01:00
Griffin Smith
95ee86225b refactor(gs/xanthous): Break out inventory into a common module
Creatures are going to have an inventory too now in addition to
characters, so all the data types and lenses and stuff that define
inventory need to be broken out into a separate module so the Creature
entity can use them.

Change-Id: I83f1c70d316afaaf2e75901f9dc28f79fd2cd31f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3901
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-11-22 19:12:56 +00:00
Griffin Smith
3a01398672 refactor(gs/xanthous): Define local field lens aliases in AI
This slightly improves how the module reads imo

Change-Id: Ib1efcbbd5392ece6b46461e8075162f03846d421
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3886
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-11-22 19:12:56 +00:00
Griffin Smith
21c218542c fix(gs/xanthous): Check for reaching destination in AI
Because floating points, it's possible that a creature has reached their
destination even if the *progress* to that destination is at 0 - if that
happens, they should pick a new destination regardless. This fixes the
issue where creatures would occasionally get "stuck" and never move
after wandering around for a bit.

Change-Id: I01a11ce4bd448c25a818c886825e4fad56dffe03
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3885
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-11-20 21:49:30 +00:00
Griffin Smith
ed0447ea0d chore(gs/emacs): Update org<->jira state mapping
Change-Id: If941c0237f5291bebe201e22cc74484f17b148ae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3884
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-11-20 21:41:10 +00:00
sterni
12eed85374 chore(nixpkgs-crate-holes): whitelist more maintainers
Change-Id: I6ed03ff8cbc590087cfa58264c0c28a7b1496740
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3825
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-11-16 10:37:43 +00:00
Profpatsch
70d01b201f docs(users/profpatsch/blog): rust string conversions: &str -> &OsStr
Change-Id: I215cd311551d54ce42c71d4e80ea18f9a17d4cf8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3879
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-15 00:31:11 +00:00
Vincent Ambo
1ef8a6c153 feat(tazjin/tverskoy): Enable picom by default
... rather than launching it manually in a shell when I need it, which
is more often now that I have a large screen.

Change-Id: Ia526af98e513d29e70aeb093442465dce256c333
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3874
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-11-13 21:09:12 +00:00