~abcdw/rde

ref: 54a2ae9745862b524b9b5d9b163a3d5fc6f79ea8 rde/README -rw-r--r-- 3.8 KiB
54a2ae97Andrew Tropin rde: Use forked shell-profile service type. 7 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# -*- mode: org; org-html-head-include-scripts: nil; -*-
#+OPTIONS: toc:nil

* rde
Set of tools for managing computing environments with GNU Guix.  Also,
rde contains additional home services for Guix Home and packages for
GNU Guix.  More info is available at [[http://trop.in/rde][trop.in/rde]].

*Disclaimer:* The project is in an active development stage.

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

** 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.

** Usage
rde heavily relies on Guix Home and Guix System, it's able to provide
both a ~home-environment~ and ~operating-system~ records, which can be
used by ~guix home~ and ~guix system~ respectively.  It's not ready for
wide audience yet, but for very curious people: my current [[file:rde/examples/abcdw/configs.scm][config]] is
here and I use following commands to apply it:

#+begin_src shell
git clone https://git.sr.ht/~abcdw/rde
cd rde
make
#+end_src

Read more about ~home-environment~ at [[http://guix.gnu.org/en/manual/devel/en/guix.html#Home-Configuration][Home Configuration]].

GNU Guix and git should be installed before invoking commands above.

The alternative and more apropriate way to use rde will be described
later.
** Guix Home
~Guix Home~ is a part of GNU Guix now, no additional installation steps
are required.

*** People's Guix Home configurations
- [[https://hg.sr.ht/~yoctocell/guixrc/browse/yoctocell/home][yoctocell]]'s full-blown configuration with variety of software.
- [[https://git.sr.ht/~krevedkokun/dotfiles/tree/master/item/home/yggdrasil][krevedkokun]]'s Emacs(Evil)/Wayland(Sway) compact and clean config.

** Channel introduction
In case you want to use rde as a channel, add the following code to
your ~~/.config/guix/channels.scm~, and call ~guix pull~.
#+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

** Just a screenshot
A picture to catch your eye)
#+CAPTION: Latest rde screenshot
#+NAME:   fig:latest-screenshot
https://cdn.fosstodon.org/media_attachments/files/106/900/674/950/793/851/original/4b17f03528571ca0.png

*** Tools
| Purpose                | Tool      |
|------------------------+-----------|
| Window Manager         | Sway      |
| Terminal               | Alacritty |
| Login Shell            | Bash      |
| Interactive Unix Shell | Zsh       |
| Service Manager/Init   | Shepherd  |
| Filesystem             | Btrfs     |
| Everything Else (:     | Emacs     |

** Community
There are a 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 patches and development related
  discussions.

** Contributing
*** New features, fixes or ideas
Send mails, optionally with inline patches to rde-devel mailing list.

*** Documentation
For Guix Home documentation maintained in [[https://git.savannah.gnu.org/cgit/guix.git/tree/doc][guix repo]].