Commit graph

1030 commits

Author SHA1 Message Date
Vincent Ambo
ce55786ffe chore(infra/gcp): Allow k8s nodes to access GCSR 2019-12-18 21:37:31 +00:00
Vincent Ambo
1677a27632 refactor(cgit-taz): Use Google Cloud SDK to authenticate repo access
Fighting SSH's peculiarities around how hard it tries to not be
scriptable is tiresome.
2019-12-18 21:05:48 +00:00
Vincent Ambo
065cb64d0a fix(cgit-taz): Create users required by SSH in the container
This might not actually work because SSH will have issues with key
permissions, presumably.
2019-12-18 20:24:20 +00:00
Vincent Ambo
c551f35b03 fix(cgit-taz): Pin SSH into image via Nix 2019-12-18 20:21:30 +00:00
Vincent Ambo
5894d521b9 fix(cgit-taz): Clone depot via SSH
Keys are provided in a Kubernetes secret.
2019-12-18 20:20:10 +00:00
Vincent Ambo
d6a653d7a3 fix(cgit-taz): Explicitly configure CA certs for git 2019-12-18 20:02:17 +00:00
Vincent Ambo
9448326b9b feat(cgit-taz): Clone depot on container launch
This makes for a pretty static server for now, but we'll get there.
2019-12-18 19:37:41 +00:00
Vincent Ambo
51ad58f8de fix(build): Add missing packages for Nixery images 2019-12-18 19:08:10 +00:00
Vincent Ambo
7b4e893a36 chore(infra/k8s): Bump Nixery popularity URL 2019-12-18 19:01:59 +00:00
Vincent Ambo
0538b1f500 chore(infra/k8s): Point Nixery at the depot on GCSR 2019-12-18 17:54:44 +00:00
Vincent Ambo
3b86979e32 feat(third_party/nixery): Add OpenSSH to Nixery image 2019-12-18 17:54:29 +00:00
Vincent Ambo
1e2766c612 feat(cgit-taz): Apply cgit configuration by patching thttpd
This is just an optimisation because it compiles faster v0v
2019-12-18 17:53:57 +00:00
Vincent Ambo
c776bd383d fix(build): Fix compatibility with Nixery instance 2019-12-18 17:39:00 +00:00
Vincent Ambo
3359ce12cf feat(infra/k8s): Provision certificate for git.tazj.in 2019-12-18 17:27:30 +00:00
Vincent Ambo
c3d31e0ba6 feat(infra/gcp): Configure source repository for the depot 2019-12-18 17:24:28 +00:00
Vincent Ambo
11022c1b88 feat(services/cgit-taz): Check in initial cgit configuration
This is currently just a test to serve examples from my local machine,
nothing more fancy than that.
2019-12-18 16:22:56 +00:00
Vincent Ambo
a40c2474fe feat(emacs.d): Set screen-specific default text scales 2019-12-17 17:48:13 +00:00
Vincent Ambo
be28071e56 feat(emacs.d): Add functions & bindings to manage global font size
This makes it possible to quickly adjust the size of text in all
frames using one keyboard shortcut. Each of these functions
understands a prefix argument to mean "please only operate on the
current buffer", hence the following bindings and effects:

Global:
* `C-=`: Increase the global font size (chosen because `+` lies on the
  `=` key)
* `C--`: Decrease the global font size
* `C-x C-0`: Restore the global default font size

Local:
* `C-u C-=`: Increase the local font size
* `C-u C--`: Decrease the local font size
* `C-u C-x C-0`: Restore the local default font size
2019-12-17 17:48:13 +00:00
Vincent Ambo
caf23a9e2a chore(emacs.d): Clean up unused functions 2019-12-17 12:33:15 +00:00
Vincent Ambo
940a9c580c feat(emacs.d): Add function to insert TODO comments 2019-12-17 12:09:44 +00:00
Vincent Ambo
cc68e28514 chore(emacs.d): Include all git repos under ~/ in magit 2019-12-17 11:47:30 +00:00
Vincent Ambo
ef3e5072ef fix(emacs.d): Fix regex passing in counsel-rg 2019-12-17 11:46:58 +00:00
Vincent Ambo
5727b6d24f refactor(emacs.d): Move ivy configuration to use-package 2019-12-17 11:46:41 +00:00
Vincent Ambo
7965f3ba3a fix(emacs.d): Disable C-x C-c 2019-12-17 00:45:30 +00:00
Vincent Ambo
3a719993fc fix(emacs.d): Change binding for ivy-browse-repositories
This avoids a conflict with some work tooling.
2019-12-17 00:38:18 +00:00
Vincent Ambo
0b6365efe5 fix(emacs): withLocalEmacs now loads packages via $EMACSLOADPATH
For some reason setting the initial load-path via `--directory` does
not work and leads to an Emacs without any packages.
2019-12-17 00:37:49 +00:00
Vincent Ambo
7e0d4d097b
merge(PR#16): Add override function to run Nix-built Emacs configuration with external Emacs
Say you're on a non-NixOS system and need to run this Emacs configuration, but without using an Emacs from Nix, building ...

```nix
tools.emacs.withLocalEmacs "/usr/bin/emacs"
```

... will create a derivation that does exactly that.
2019-12-17 00:00:32 +00:00
Vincent Ambo
05168b9a3c feat(emacs): Add 'withLocalEmacs' override function
This function makes it possible to build an Emacs instance that,
instead of launching an Emacs built by Nix, configures an Emacs
already present on the system to use the packages built by Nix.

This **requires** that the versions of the two Emacsen (i.e. the one
used by Nix to build and the one used to run the packages) are kept in
sync, otherwise byte-code incompatibilities may lead to undefined
behaviour.
2019-12-16 23:57:32 +00:00
Vincent Ambo
43f07099a7 feat(emacs): Install 'request.el', an HTTP client 2019-12-16 23:57:17 +00:00
William Carroll
13030cc158 docs: fix typo
Prefer "Platform" to "Platofrm".
2019-12-16 14:24:16 +00:00
Vincent Ambo
99909ddd04 feat(emacs): Add withLocalConfig override function
This function makes it possible to pass in a folder with additional
local configuration from somewhere downstream.
2019-12-16 13:33:29 +00:00
Vincent Ambo
0e5da6c34c feat: Expose readTree for downstream consumers
Exposes readTree from the package set but with a twist: It's exposed
as a functor that references the `.config` field from itself to get at
the configuration to be passed to packages.

This makes it possible for downstream users to make use of `readTree`
but with their own configuration.
2019-12-16 13:32:10 +00:00
Vincent Ambo
6ae799e8c8 feat(emacs): Make list of packages overridable
Exposes an `overrideEmacs` which can take a package function that
receives the current package list and can make arbitrary modifications
to it.

This makes it possible for me to maintain a private overlay for e.g.
work purposes with packages that should not be visible in my public
repos.
2019-12-16 11:59:07 +00:00
Vincent Ambo
67a9b3cc52 feat(emacs.d): Install refine 2019-12-16 11:38:22 +00:00
Vincent Ambo
e5839306f8 fix(emacs.d): Set correct magit-repository-directories path
This was set to my old home directory name from a different machine
and I had low-key been wondering why it didn't work, but not enough to
go do something about it.
2019-12-16 10:04:46 +00:00
Vincent Ambo
6108759688 fix(term-switcher): Add dependency on vterm 2019-12-16 03:57:03 +00:00
Vincent Ambo
20ef6710e0 fix(emacs.d): Only highlight current line in prog-modes
This is extremely annoying in vterms, so now it's gone!
2019-12-16 03:56:12 +00:00
Vincent Ambo
4897669f50
merge(PR#12): Switch Emacs terminals over to libvterm
This moves the terminals inside of my Emacs from being `gnome-terminal` instances under EXWM over to [emacs-libvterm](https://github.com/akermu/emacs-libvterm).

This incredible package embeds a fully featured terminal emulator (based on `libvterm`) into Emacs with the killer feature of being able to switch a terminal buffer to read-only text mode and use normal Emacs selection commands.

This is something I've wanted for a long time and that `ansi-term` etc. just weren't good enough for!
2019-12-16 03:53:17 +00:00
Vincent Ambo
d63996c3cb feat(term-switcher): Use emacs-libvterm instead of launching X-terms 2019-12-16 03:51:28 +00:00
Vincent Ambo
e991834275 feat(emacs.d): Install and configure emacs-libvterm
This incredible package provides a fully functional, libvterm based
terminal emulator inside of Emacs.

Killer feature: It's possible to switch the buffer into a full Emacs
text mode (read-only) for selections and such.
2019-12-16 03:51:28 +00:00
Vincent Ambo
d4f6c5a399 chore(third_party): Bump naersk 2019-12-16 03:14:21 +00:00
Vincent Ambo
6b72c45ad3 feat(aoc2019): Add solutions for day4
Finally an excuse to use some cl-defstruct magic in Elisp!
2019-12-16 01:42:29 +00:00
Vincent Ambo
cc51fb6ce7 feat(aoc2019): Add solution for day3/2 2019-12-16 00:45:25 +00:00
Vincent Ambo
e8b184adcc
merge(PR#11): Move bits of Emacs configuration into local packages
As requested by @wpcarro, some bits of my Emacs configuration are now in separate local packages (located at `//depot/tools/emacs-pkgs/`).

Specifically this change introduces:

* `tools.emacs-pkgs.dottime`: A package to render time in the modeline as [dottime](https://dotti.me)
* `tools.emacs-pkgs.term-switcher`: A package to quickly switch between and open new terminal instances in EXWM using ivy

My Emacs configuration is updated to accomodate these refactorings.
2019-12-15 22:59:43 +00:00
Vincent Ambo
458163910b chore(emacs.d): Use local term-switcher package 2019-12-15 22:55:43 +00:00
Vincent Ambo
f34c82f765 refactor(emacs-pkgs): Extract term-switcher into separate emacs pkg 2019-12-15 22:54:58 +00:00
Vincent Ambo
9f8542fe75 chore(emacs.d): Remove smartparens
I actually find a lot of its behaviour very annoying, rather than
smart. Good old electric-pair-mode usually does what I want.
2019-12-15 22:54:58 +00:00
Vincent Ambo
97555884e2 fix(emacs.d): Fix uses use-package's :config instead of :init
In several places I used `:init` instead of `:config` and things
worked due to lazy loading anyways.

That's no excuse not to fix it though ...
2019-12-15 22:54:58 +00:00
Vincent Ambo
6ee061e205 refactor(emacs.d): Use dottime from my dottime package
Instead of locally advicing format-time-string, use my dottime
package.
2019-12-15 22:54:58 +00:00
Vincent Ambo
2bf2567284 feat(emacs-pkgs): Check in separate dottime package
This package adds a toggle for displaying modeline time in dottime, as
well as a function for formatting time as dottime generically.
2019-12-15 22:54:58 +00:00