# 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
127.0.0.1:40469
``` Change it to the following, but be sure to disable it later for security: ```xml
0.0.0.0:40469
``` ## 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.