~abcdw/rde

Tools for managing reproducible development environments w/ guix
10 minutes ago

891e6cf TODO: Add tasks, update description for Emacs task

~abcdw pushed to ~abcdw/rde git

18 minutes ago
-*- mode: org -*-
* rde
Set of tools for managing computing environments with GNU Guix. More
info is available on [[http://trop.in][trop.in]].

*Disclaimer:* project in a proof of concept stage.

*Tip:* older Nix source code is available under ~stale/~ directory.

~guix home~'s [[./gnu/README][README]] for very curious people.

** Principles
*** Main
- Ergonomic :: Sane keybindings, good contrast, readable fonts.
- Reproducible :: Setup can be easily replicated.
- Hackable :: Easy to throw out or modify any part of setup.
- Stateless :: All state must be explicit and syncable or temporary.
*** Secondary
- Lightweight and battery efficient :: wayland, fast native apps.
- Offline :: most of workflows and apps should work without network.
- Attention-friendly :: minimal use of notification and other
  distractive things.
** Community
There are few [[https://lists.sr.ht/~abcdw][mailing lists]] you can subscribe and/or post with your
existing email account:
- [[https://lists.sr.ht/~abcdw/rde-announce/][~abcdw/rde-announce@lists.sr.ht]] :: for news and updates.
- [[https://lists.sr.ht/~abcdw/rde-discuss/][~abcdw/rde-discuss@lists.sr.ht]] :: for discussions and questions.
- [[https://lists.sr.ht/~abcdw/rde-devel/][~abcdw/rde-devel@lists.sr.ht]] :: for development and related discussion.
** Tools
| Purpose        | tool  |
|----------------+-------|
| Window Manager | Sway  |
| Text editing   | Emacs |
** Latest screenshot
Just a picture to catch your eye.
#+CAPTION: Latest rde screenshot
#+NAME:   fig:latest-screenshot
[[https://user-images.githubusercontent.com/1218615/78423008-06bfcc80-766c-11ea-8a79-ec63f1237126.png]]
** Usage [WIP]

#+begin_src shell
make everything
#+end_src
** COMMENT Draft sections [WIP]
*** src content
- modules :: small configuration for one or few packages
- profiles :: collection of modules
- hosts :: combination of profiles and modules

*** Directories and partitions

**** XDG intro
Read [[https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html][XDG Base Directory Specification]] for more information.
***** User directories
| variable        | default value     | description |
|-----------------+-------------------+-------------|
| XDG_CONFIG_HOME | [[file:~/.config][~/.config]]         | /hehe/      |
| XDG_CACHE_HOME  | [[file:~/.cache][~/.cache]]          | =test=      |
| XDG_DATA_HOME   | [[file:~/.local/share][~/.local/share]]    |             |
| XDG_RUNTIME_DIR | /run/user/USER-ID |             |
*** Tools
| type     | component        | tool      | source |
|----------+------------------+-----------+--------|
| dev      | editor           | emacs     |        |
| im       | telegram         | telega.el |        |
| news     | rss              | elfeed.el |        |
| security | password manager | pass      |        |
|          | encryption tool  | gpg2      |        |
|          | backup           | borg      |        |
** COMMENT Channel introduction
#+begin_src scheme
(cons*
 (channel
  (name 'rde)
  (url "https://git.sr.ht/~abcdw/rde")
  (introduction
   (make-channel-introduction
    "257cebd587b66e4d865b3537a9a88cccd7107c95"
    (openpgp-fingerprint
     "2841 9AC6 5038 7440 C7E9  2FFA 2208 D209 58C1 DEB0"))))
 %default-channels)
#+end_src