Skip to content

Latest commit

 

History

History
180 lines (132 loc) · 12.1 KB

Readme.org

File metadata and controls

180 lines (132 loc) · 12.1 KB
Emacs Logo

psimacs - Yet another Emacs configuration

https://img.shields.io/badge/Psimacs-2.0-red.svg?style=plastic https://img.shields.io/badge/GNU%20Emacs-29.2-green.svg?style=plastic https://img.shields.io/badge/License-GPL%20v3-blue.svg?style=plastic https://img.shields.io/badge/MSYS2-latest-magenta.svg?style=plastic

This is an attempt to create a Emacs configuration from the ground up. It has the following objectives:

  • Literally programming style. The complete configuration is written in one org-mode file.
  • Primarily targets the Windows and Linux operating systems. It started on Windows and works very well on that platform.
  • Simple to use.
  • Provides bootstrapping of used tools.
  • Straight package manager.
  • Support of Dropbox configuration and file sharing.
  • Classic Emacs keyboard handling.
  • Use of which-key. This is a game changer for me.
  • Use of hydra. And another beautiful package that I like a lot.
  • Use of ivy. I started with ivy and I am quite comfortable with it. Likely, ido, helm and the more recent incarnations are also worth trying.
  • Use of projectile. Another great package that I am used to.
  • Use of company. Great text completion framework.
  • Use of ELSE for programming.
  • Use of yasnippet.
  • … and many more packages.
  • Focus on ORG, programming and LaTeX text writing.

Motivation

A lot of Emacs configurations can be found on the Internet. Many of them are well crafted and could be used out of the box. Especially, the great Emacs distributions like Spacemacs, Doom-Emacs and Centaur-Emacs are worth giving it a try. But I wanted to craft my own configuration that is tailored to my needs and that allows me to learn more about the vast Emacs universe. My configuration it not perfect for everyone, and it will not be able to compete against the big frameworks that are build by a lot of talented people. So feel free to use it or blame it. I am fine with it.

The name Psimacs is arbitrarily. I was in search for a catchy name with just one syllable in front of the macs.

Installation

Windows

The Powershell script bootstrap.ps1 is able to bootstrap Psimacs and all its dependencies into the user’s %HOME%\psimacs directory. No administrator privileges are required for the installation.

Download the raw booststrap.ps1 file into a temporary directory and run

.\booststrap.ps1

in a Powershell console.

The Psimacs bootstrapping installs the following tools into the %HOME%\psimacs directory:

ToolsRemarks
MSYS2Psimacs uses the Emacs provided by MSYS2.
ConEmuOptionally, Psimacs can install the ConEmu console emulation. Use option -conemu to install the console.
JavaPsimacs installs the GPL OpenJDK Java distribution provided by Oracle.
LanguageToolLanguageTool is a spell and grammar checker supported by Psimacs.
pandocPsimacs uses the universal document converter Pandoc.
plantUMLPlantUML diagram generation is supported by Psimacs.
pythonPsimacs installs Python and uses a virtual environment created from this installation.
SumatraPDFPsimacs uses the free SumatraPDF viewer.
ELSE Grammar CompilerTool allowing to create ELSE language specification files.

To get detail help on the options bootstrap.ps1 provides run:

.\booststrap.ps1 --help

On bootstrapping Psimacs installs the most recent versions of the tools that are known to work properly in the context of Psimacs. Any other tools used by Psimacs are installed within the MSYS2 environment, e.g. doxygen, graphviz or mermaid.

The bootstrapping operation tries hard to not modify the target system outside of %HOME%\psimacs directory, but there are some exceptions:

  • In case that no %HOME% variable is defined inside of the active environment, a variable %HOME% is created and set to value c:\home\%UserName%. After that, the %HOME% directory is created, if it does not already exists.
  • Bootstrapping installs a number of font files into the user’s font directory.
  • A raw python installation is performed into the local %HOME%\psimacs directory. The official python installer does modify the registry, which cannot be avoided easily.
  • A number of desktop shortcuts are created.

After bootstrapping, the Straight based Psimacs configuration is performed on the very first startup of Psimacs. This process takes a couple of minutes and asks two times for confirmation to allow the download of

  1. a suitable emacs-zmq binary,
  2. for the emacs-emojify icons.

Attention:

  • At least 22 GByte of free disk space is used by the default Psimacs installation!
  • Performing a Psimacs bootstrapping operation is at one’s own risk!

Remark: Windows Powershell typically restricts the execution of scripts. You can take the following measures in order to get the bootstrap.ps1 script running:

  • Set a proper execution policy for powershell scripts with respect to the user profile:
    Get-ExecutionPolicy -list
    Set-ExecutionPolicy -ExecutionPolicy unrestricted -Scope CurrentUser
        
  • Downloaded powershell scripts are blocked and not allowed to executed. They need to be unlocked:
    Unblock-File -Path .\bootstrap.ps1
        

Maybe, better ways exists for these problems ;-)

Linux

Psimacs is able to run on Ubuntu 24.04 LTS. Currently, no automatic installation method for bootstrapping Psimacs exists on this platform.

Install the following parts:

PartSourceInstallationDestination / Remark
Psimacshttps://github.com/hatlafax/psimacsgit clone https://github.com/hatlafax/psimacs.git~/psimacs/psimacs
LanguageToolhttps://languagetool.org/download/https://languagetool.org/download/LanguageTool-6.4.zip~/psimacs/LanguageTool
Antlrhttps://www.antlr.org/download/antlr-4.13.1-complete.jarcopy file.~/psimacs/Antlr
ELSE-grammar-compilerhttps://github.com/hatlafax/ELSE-grammar-compilergit clone https://github.com/hatlafax/ELSE-grammar-compiler.git~/psimacs/ELSE-grammar-compiler
Sumatra PDFhttps://www.sumatrapdfreader.org/free-pdf-readerwith snap over the App Center of Ubuntu.
Various toolsubuntu package managersee ~/psimacs/psimas/assets/dependencies/ubuntu/linux/requirements_ubuntu_installed.txtThis file contains all modules that were installed when writing this text.
Python packagespip toolsee ~/psimacs/psimas/assets/dependencies/ubuntu/python/requirements_linux_versions.txtThis file contains all packages installed when writing this text.

A virtual python environment is used and created by running python3 -m venv ./python-0/venv/. This virtual python environment is activated before starting Psimacs. There are better methods, but that worked for me.

MacOS

Currently, MacOS is also not supported by Psimacs.

Usage

The full documentation of the configuration can be found in the init.org file. The Org exported html file can be visited here.

Dependencies

Psimacs does have a number of dependencies to unfold its full potential. The files bootstrap.ps1 and init.org details about them.

Disclaimer

This is an Emacs beginners configuration and the usage is at one’s own risk. It is not tested thoroughly. Please bear in mind.

Many of the configuration settings are borrowed from other similar endeavors out there.

This is work in progress. Sometimes this Readme is ahead of times or not yet updated.

Limitations / Known Issues

  • Tested on Windows operating system only
  • Linux usage on Ubuntu 24.04 LTS is only started recently and does have some rough edges.

License (GPL v3)

Copyright (C) 2020-2021 Johannes Brunen (hatlafax@gmx.de)

License: GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.