Commit graph

16647 commits

Author SHA1 Message Date
Ben Cartwright-Cox
d4fc093383 fix(tvl-ebooks): Update code to bring up to date with reality
Fixes include:

1) users can now opt out of being mkov'd, instead their messages
will be ascii blocked out.

2) highlights are avoided, by learning names from the main tvl
channel and adding a dot after the first char, for example:

> 21:31:35 <•eta-eb> m.ulti: bas1l we quickly connect controller is mostly agreed

3) highlight avoidance is now stored in redis, to avoid restarts
from destroying the map and causing a bunch of highlights
upon restart

Change-Id: I1055992aab3a06aa1f4ba937fc3ef45f2f78cedc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2054
Tested-by: BuildkiteCI
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: ben <tvl@benjojo.co.uk>
2020-10-20 22:26:23 +00:00
Vincent Ambo
e9e42d5d20 feat(web/tvl): Add graph nodes for AfRA & friends
Change-Id: Iac50cea9277167b28695dd908af66548e0e414b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2052
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
2020-10-20 22:04:33 +00:00
Vincent Ambo
6100e44e72 feat(web/tvl): Accommodate the passage of time in TVL's graph
Some overdue updates: People leaving, people joining. Not all new
people are in here yet either, but you have to start somewhere.

Change-Id: I66dfae443f60d090c02c619d09c12599b936b2dc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2051
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-10-20 16:44:00 +00:00
htbf
41f1b01ba4 feat(tvl-slapd): add htbf
Change-Id: I6da03700708bcafc4f476b01c0a27d27fb85cc4a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2050
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2020-10-18 02:20:19 +00:00
Griffin Smith
df77855beb feat(gs/system): Setup for yubikey
Install some packages and enable the necessary services + udev stuff to
make yubikeys usable

Change-Id: I8aee8a8b06895880c8195f02fb57b1216a5fdffc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2049
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
963088aff6 feat(gs/system): Install htop on all systems
In this case mostly so I can have it on mugwump

Change-Id: Ifa24caf607b30c1d034f4a9e7044ece88fcee38e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2048
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
703407b2d4 feat(gs/chupacabra): Use mugwump as a binary cache
Since buildkite is running on there, it'll be nice to be able to
download things. Obviously if this laptop ever becomes a laptop again
this'll have to go away (or just become the external domain)

Change-Id: I5fc49c061dbf79f8d523244bcf822e8d96fa6d42
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2047
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
3d610828a3 feat(gs/chupacabra): Include desktop module
I accidentally dropped this when reconfiguring things around to get
mugwump working, and when I rebuilt my x session turned off!

Change-Id: I252c90b6f4d796fef1f8183739fcc8dbfdd0fbf4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2046
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
c83b7e7da3 fix(gs/mugwump): Make nginx scraper play well with SSL
Having SSL on all the vhosts in nginx breaks the prometheus scraper with
the default config, since because it's targeting a different domain the
cert validation fails. It's pointing at localhost, so it's fine to just
have it not validate.

Change-Id: I1cbddc73335d4fa060115c253d69e27059a3113f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2045
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
8cb7118f7d feat(gs/mugwump): Add some buildkite agents
Add a couple of buildkite agents, based off of the config we're using
for whitby (thanks!) for building my own projects that are closed
source.

Change-Id: I2c73538595002fdf4116f534dc9a5806f17e0558
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2044
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
199738955c feat(wigglydonke.rs): Make image the width of the page
The default size is a little bit large

Change-Id: I9f7096cdf9f9ba8433e6ead6124bdc04fc88877b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2043
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
bb6e1b8c07 feat(wigglydonke.rs): Add image
The one I had downloaded before was empty, accidentally

Change-Id: I37c2ce8c556aa3f728ee675ccf14ace8416dcca4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2042
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
28df5a585b feat(gs/mugwump): wigglydonke.rs
Kids Love Wiggly Donkers!

Change-Id: I1d37ecc88dd81d91e05fb597155bb91b93f1bccb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2041
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-12 18:50:58 +00:00
Griffin Smith
db66e1d010 feat(gs/mugwump): Enable prometheus-fail2ban-exporter
Change-Id: I200f206b609675632ad6103c84cc37b629ef9708
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2025
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-12 18:50:58 +00:00
William Carroll
2290aac2a8 Tweak styles
Add spacing to help the app breathe.
2020-10-11 16:47:31 +01:00
William Carroll
767fed75c3 Support multiple HabitTypes
I could have and should have broken this change into smaller pieces, but when I
came up for air, I had changed too much, and most of the changes are
intermingled. Oh well... this is an exciting change!

Include habits for:
- Morning
- Evening
- Payday (the 25th)
- First of the Month
- First of the Year

Since the Morning and Evening routines might be a bit noisy, I'm excluding them
from the output using a flag, `include{Morning,Evening}`, which I support in the
UI to toggle their visibility.

I made *much* more progress on this app that I expected to today, and I *think*
-- short of supporting a database and a server -- I'm close to
being *completely* finished.

Wahoo!
2020-10-11 16:40:10 +01:00
William Carroll
abf1875934 Support Msg to clear all completed tasks
Add a simple button to clear all completed tasks.
2020-10-11 15:39:01 +01:00
William Carroll
79cf42abd5 Render time remaining in UI
Show the number of minutes remaining before completing all of the tasks.
2020-10-11 15:17:20 +01:00
William Carroll
5684608fed Move tailwind function into Utils module
Instead of accepting `List (String, Int)`, accept `List Strategy` where
`Strategy` defines whether or not the string of selectors should be applied to
the element.

I'm also renaming it `class` so I can just use `Utils.class`; `tailwind` has
little to do with the function itself.
2020-10-11 14:59:42 +01:00
William Carroll
1c8a8f5d2c Expand Habit type
Include:

- habitType: Daily, Weekly, Yearly... what's the trigger?
- minutesDuration: Estimation of how long it'll take to complete
2020-10-11 14:58:49 +01:00
William Carroll
ea0cd01e18 Watch a few movies
Here's what I watched:
- Ran
- Children of Heaven
- Lawrence of Arabia

Only 78/250 movies to go!
2020-10-11 10:28:46 +01:00
William Carroll
05d52e403c Tweak styles
- Change header to blue
- Change habit to gray when completed
- Prefer app font for footer instead of monospaced font
2020-10-11 10:24:11 +01:00
William Carroll
0a15ea7366 Create UI module for common components
Create UI.elm to house components like `button`, which is a simple HTML button
with `focus:outline-none` applied as a `class`, which is an accessibility
feature that I don't need for this touch-screen application.

I like this pattern more than my more opinionated patterns for UI modules in Elm
where I'd define all of the arguments as a record type (i.e. kwargs).
2020-10-11 10:15:03 +01:00
William Carroll
106457de4b Prefer handwritten font
Use the Google Fonts API to fetch a handwritten font, which gives the app a
modicum of personality. There are more "best practices" ways to do this, such
as:

- Download the font once, and include it in the bundle
- Extend the Tailwind configure to recognize the font
- Ditch the inline <style> block

But I don't need the performance benefits that the first bullet provides. And
the second two bullets are more relevant for a larger application with more than
one font. So I think in this case, the easiest solution is best.

Also:
- Use `container` and `mx-auto` to constrain content for wide screens
2020-10-11 10:09:15 +01:00
William Carroll
19fbdad1c0 Support viewing different days
Allow users to browse the habits of the other days of the week.
2020-10-10 18:20:24 +01:00
William Carroll
487232d1aa Ensure weekday is updated
This ensures us that our view is consistent within ~1 minute of reality.
2020-10-10 17:34:14 +01:00
William Carroll
7d425de48d Tweak styles
- Increase font size for header
- Prefer a bulleted list
- Reduce horizontal padding
2020-10-10 17:31:34 +01:00
William Carroll
bfbe7dc988 Add a footer
With personal information and information about the project's stack.
2020-10-10 17:31:00 +01:00
William Carroll
df8e45681d Remove Nap from Saturday; prefer Yin Yoga
Since Warm Yin Yoga is at 15:00, it's difficult to attend that *and* nap.
2020-10-10 17:30:22 +01:00
William Carroll
9d331f3077 Begin working on Habit Screens project
Created a small MVP for digitizing my weekly habits. Much more to come.

Lots of things happening:

- Copied the boilerplate to get started
- Added a brief project-level README
- Outlined my ambitions in design.md

See README and design.md for more context on this project.
2020-10-10 17:04:24 +01:00
William Carroll
02ce74eada Add elm-format-on-save-mode to elm-mode-hook
Instead of calling this manually.
2020-10-10 17:03:08 +01:00
Griffin Smith
ca4d698cb0 feat(gs/mugwump): Add prometheus+grafana
Add config for prometheus+grafana to mugwump, served at metrics.gws.fyi
with an Acme SSL cert.

Change-Id: Icc22b5079a24edbc4469233e938f926d92f63eb3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2024
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-05 14:48:58 +00:00
Griffin Smith
bc8bac74d7 feat(gs/system): Install dnsutils
Change-Id: I577b42abe76c7be3434e7ca4f34bcf84a4a6e6bc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2023
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-05 14:48:58 +00:00
Griffin Smith
3a4b4568bb feat(gs/home): Install gh
Change-Id: I13d918565b9a46b3e5e11936e5b7787e9ecce719
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2022
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-05 14:48:58 +00:00
Griffin Smith
ccce934454 feat(gs/home): Alias ec=emacsclient
Change-Id: Ia6633731dbd26c842830f548f909a37a129a7477
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2021
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-05 14:48:58 +00:00
Griffin Smith
6a65d73731 feat(gs/home): Add ssh host alias for home
Change-Id: Ie3a6ce172eccba3040210c581313981cdd79e2eb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2020
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-05 14:48:58 +00:00
Cynthia Revström
df6a1d47d2 chore(tvl-slapd): use ARGON2 for cynthia
Change-Id: I81efffe384644cc2d2a625fc96ef5264dedd76ea
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2019
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2020-10-05 13:00:59 +00:00
William Carroll
fbd5e7fb18 Remove evil dependency from window-manager.el
When `keybindings` requires `window-manager`, the `evil-want-integration`
warning emerges. If I remove the `evil` dependency from `window-manager`, it
resolves the issue.
2020-10-04 18:27:38 +01:00
Vincent Ambo
7a62272d20 feat(tazjin/camden): Install flatcam tooling
This was previously set up manually in a nix-shell.

Invocation works like this:

  screen fswebcam --title 'tazflat' --font 'JetBrains Mono' \
                  --timestamp "%Y-%m-%d %H·%M+01" -l 60 -r 1280x720 \
                  -d /dev/video0 --jpeg 95 /var/www/blobs/flat.jpg \
                  --exec 'cp /var/www/blobs/flat.jpg /var/www/blobs/flat/at_$(date +%s).jpg'

Change-Id: I5ecf8fdf67240faf885fd12f428e368e2bc64dc8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2018
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-10-04 16:06:25 +00:00
Vincent Ambo
2670f84f5f fix(tazjin/camden): Backport 19.09 ACME module
The new one is causing breakage for me, but I have no time to debug
this, so I'm backporting the old one.

AFAICT the simp_le included in this channel should be new enough to
have ACMEv2 compat, we'll see if it works.

Change-Id: Ib8b869a5af8a0418a66017a0cf3b9336df5f2d05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2017
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-10-04 15:51:59 +00:00
William Carroll
3ba4112849 Enable spell-checking during magit commit
This is another (overdue) change about which I'm quite excited. Add
spell-checking to my Git commit buffers. :)
2020-10-04 16:25:15 +01:00
William Carroll
48d9a70253 Extend "l" -> "L" KBD remapping for magit-{log,revision}-mode-map
Thankfully `general` made this change super easy and maintainable to support.
2020-10-04 16:23:25 +01:00
William Carroll
f3ee628a4c Support display-arrangement macro
I was tired of using `arandr` to manually configure my monitor positions, so I
encoded the settings in Elisp in the `display.el` module.

TL;DR:
- Drop support for `position` kwarg in `display-register` macro
- Support `coords` kwarg in `display-register`.
- `defconst` the `xrandr` arguments and command in `display-register`.
- Define `display-arrangement` macro that consumes the `xrandr` arguments that
  `display-register` defines to create an interactive function,
  `display-arrange-<NAME>`, which -- when invoked -- runs one xrandr command to
  configure a display "arrangement".
2020-10-04 16:20:16 +01:00
William Carroll
4187e888c8 Disable company-mode during git commits
Why didn't I configure this earlier? For years, my workflow involved checking a
buffer's major mode and then extending that major-mode's hook. Confusingly (to
me), the `major-mode` for `COMMIT_EDITMSG` is `text-mode`, and I didn't want to
disable `company-mode` for *all* `text-mode` buffers, which is what the
following would have done:

```elisp
(add-hook 'text-mode-hook (lambda () (company-mode -1))
```

Thankfully I recently invested some time into learning more about Emacs's
offline help system, `Info-mode`, so -- putting that knowledge to work -- I ran
`info-apropos` and searched "magit commit". After ~5 minutes of reading I knew
the recommended way of configuring this was to modify `git-commit-setup-hook`.

How validating!
2020-10-04 14:57:23 +01:00
William Carroll
6df182d45e Move KBDs from window-manager.el to keybindings.el
Assuming (hoping) that this doesn't break anything.
2020-10-04 13:57:01 +01:00
William Carroll
6eac1de187 Debug Emacs initialization
Since "Briefcase" doesn't exist, `window-manager--switch` fails and so does
`exwm-init-hook`. It'd be nice to catch these errors earlier...
2020-10-04 13:54:57 +01:00
William Carroll
562c82f3f2 Bind "g SPC" to #'Info-scroll-up
I'm using the "g <char>" pattern that evil-collection uses, which I think is
okay.
2020-10-03 18:15:32 +01:00
William Carroll
4cd552de28 Alter doom-acario-dark's font for comments
Thanks to my newly acquired `Info-mode` navigation skills, I quickly learned how
to alter fonts in Emacs!
2020-10-03 18:14:34 +01:00
William Carroll
a8704bb54d Define KBDs for ibuffer
I'd like to start using ibuffer more, so I'm making it a more hospitable place
by defining useful KBDs.
2020-10-03 14:51:04 +01:00
William Carroll
990b6278a8 Define KBDs for Info-mode
I took the Info-mode tutorial (finally) and I found some things from
evil-collection that I liked, other things that I didn't like.
2020-10-03 14:50:38 +01:00