aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 3c25cebc3758706d2e7e4def9548897d21ff4322 (plain) (blame)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# MMOSMacs

MMOSMacs is my personal Emacs configuration, but it's also the precursor to a project I'm planning, ***Elder Linux***, which will be completely based around Emacs as a desktop environment.

MMOSMacs is the core of my computing experience, and is meant to be a jack of all trades, just like me. As such, this is a "kitchen sink" configuration. I make no attempt to separate my personal preferences from the main functionality.


## Installation

### Get the files in place

First, clone this repository into your `~/.emacs.d` directory.

```bash
git clone https://github.com/MountainMan1312/MMOSMacs.git ~/.emacs.d
```

Next create symlinks to the `.xinitrc` and `emacs.desktop` files so X
knows what to do:

```bash
# Backup your `.xinitrc` file if you feel like it.
# Replace `.xinitrc.old` with whatever you want to name the backup.
mv ~/.xinitrc ~/.xinitrc.old

# Symlink your `.xinitrc` file
ln -s ~/.emacs.d/.xinitrc ~/.xinitrc

# Symlink `emacs.desktop` to add MMOSMacs as an entry to your Display
# Manager / login screen.
sudo ln -s ~/.emacs.d/emacs.desktop /usr/share/xsessions/emacs.desktop
```

Optionally create a symlink to the `.sbclrc` file for SBCL:

```bash
ln -s ~/.emacs.d/.sbclrc ~/.sbclrc
```

### Install necessary packages

You'll also need the following packages installed on your system. Gentoo packages are listed, you'll have to find your distro's equivalent on your own:

- app-admin/sudo
- app-dicts/aspell
- app-editors/emacs (USE="dynamic-loading gui jit libxml2 threads")
- app-emacs/emacs-common (USE="gui libxml2 X")
- app-emacs/emacs-daemon
- dev-lang/ghc
- dev-lang/rust
- dev-lang/sbcl
- dev-util/shellcheck
- dev-vcs/git
- media-fonts/jetbrains-mono
- media-fonts/noto
- net-libs/nodejs
- net-p2p/syncthing
- sys-devel/gcc (USE="jit")
- x11-apps/setxkbmap
- x11-base/xorg-server
- x11-misc/arandr


### Setup `~/kb` and Syncthing for `org-roam` knowledgebase

Next you need to setup the `~/kb` directory, which will contain:

- `org-roam-directory`
- `org-agenda-files`

Follow [the Syncthing documentation](https://docs.syncthing.net/) and [the Gentoo Wiki entry for Syncthing](https://wiki.gentoo.org/wiki/Syncthing) to get Syncthing setup.

If you need to access the Syncthing GUI from a different computer, you can allow this by modifying `~/.config/syncthing/config.xml`. Find the following in that file:

```xml
<gui enabled="true" tls="false" debugging="false">
        <address>127.0.0.1:40469</address>
```

Change it to the following, but be sure to disable it later for security:

```xml
<gui enabled="true" tls="false" debugging="false">
        <address>0.0.0.0:40469</address>
```



## Plans

- Non-literate configuration
- `straight.el` + `use-package` package management
- Emacs as a desktop environment (`EXWM`, `EDNC`)
- System & network administration suite
- Security & crytography
- Software development environment
- Communications (Email, RSS, IRC, Matrix, etc.)
- Opinionated PKMS and publishing suite
- Common desktop applications
    - Web browser, FTP, Torrent
    - Multimedia production
    - OpenSCAD / ImplicitCAD
    - Finance
    - Games
- Custom modeline & anti-distraction features
- Custom theme deisnged to reduce eye-strain
- Custom keybind system, menus, & dialogs


## Contributing

This is my personal project. I will do what I can to make it accessible
to other people, but ultimately it is crafted to suit my own needs.

If you want to contribute to MMOSMacs, please read `CONTRIBUTING.md`. If
you do not have a copy of this file, it can be found at either:
- https://github.com/MountainMan1312/MMOSMacs/blob/stable/README.md
- https://raw.githubusercontent.com/MountainMan1312/MMOSMacs/stable/README.md

Feel free to fork this repository. There is no need to give me credit.
It is wrong to claim ownership of knowledge.