Skip to content

semiosis/pen.el

Repository files navigation

Pen.el (a holy OS)

Pen.el is an emacs-based operating system designed with holiness in mind. It’s a free and holy OS made with emacs, debian linux and docker.

It’s holy because:

  • This software is dedicated to supporting one’s Christian faith
    • Facilitate:
      • Praying
      • Praising
      • Running churches
      • Maintaining holiness
      • Bible studies
  • Features:
    • Bible software comparable to Logos / e-Sword.
    • Integrates lots of Christian resources.
    • Lots of scripts for working with Bible-verses etc.
      • Extracting Bible verses from websites, documents, etc.
      • Canonicalising Bible-refs
      • Formatting Bible passages in various ways.
      • etc.
  • Policies:
    • Avoid AI fiction and ensure it is kept at a safe distance
    • Strict ban on proprietary software

Aims

  • Provide the user with free (but advanced) Bible study software, and
  • Provide trustworthy Christian resources that are all offline.
  • Make it easier to maintain one’s Christian faith by eliminating all the distractions, yet being featureful and fun.
  • Able to be the main operating system somebody uses (It’s my main OS).

Using Pen.el, there should be no need to go online most of the time, as it should contain everything you need to be content with your computing. The Bible-software I hope will be as featureful as any of the other options available, but completely free, and also low maintenance.

Intended users

  • emacs/linux savvy:
    • pastors,
    • church deacons,
    • chaplains,
    • theology students
    • anyone wanting software that respects a user’s desire to remain holy

Bible word-study

./docs/asciinema/637135.gif

Technical details

  • It runs in a docker container.
  • It’s primarily text-based computing environment with emacs as the main component towards that end.

Quick run

This should just start the Pen.el docker image.

./scripts/pen-boot-basic:

export PEN_USE_GUI=n
export PEN_SHARE_X=y
export PEN_CONTAINER_NAME=pen
export TTYD_PORT=7689
export KHALA_PORT=9845
export PEN_ENGINE=nil
export PEN_N_WORKERS=2
export TERM=screen-256color

docker run -d --rm -ti --hostname pen-agia --env PEN_USE_GUI --env PEN_SHARE_X --env PEN_NO_TM --env INTERACTIVE --env EXPOSE_ETHEREUM --env PEN_CONTAINER_NAME --env TTYD_PORT --env KHALA_PORT --env PEN_ENGINE --env PEN_NO_TIMEOUT --env PEN_N_WORKERS --env NO_EMACS --env PEN_PROMPT --env PEN_HELP --env PEN_OVERLAY --env NO_QUIT_WORKERS --env USE_NVC --env TERM --env USE_NVC "--detach-keys=ctrl-q,ctrl-q" --privileged --env COLORFGBG -e "DISPLAY=:0" --env EMAIL --env "PEN_USER=shane" --env GIT_AUTHOR_EMAIL --env GIT_AUTHOR_NAME --env GIT_COMMITTER_EMAIL --env GIT_COMMITTER_NAME --env SSH_AUTH_SOCK --env "TIMEZONE=UTC" --env "VIDEO_GROUP_ID=44" -v /dev/dri:/dev/dri -v /dev/shm:/dev/shm -v /tmp/.X11-unix:/tmp/.X11-unix "--cap-add=SYS_PTRACE" "--cap-add=SYS_ADMIN" "--cap-add=NET_ADMIN" --ulimit "rtprio=100:100" -v /var/log/coredumps:/var/log/coredumps --network host --expose 7689 -p 7689:7689 --expose 9845 -p 9845:9845 "--entrypoint=" "--name=pen" semiosis/pen.el:latest /root/run.sh

docker exec "--detach-keys=ctrl-q,ctrl-q" -e "DISPLAY=:0" -it pen sh -c ". /root/.profile; . /root/.emacs.d/pen.el/scripts/setup-term.sh; 'pen-tm' 'init-or-attach' '-n' 'pen'"

Exiting

Typically, to shut down Pen.el, you would run penq from within Pen.el or from the host machine.

penq

# To forcefully shut down Pen.el use the docker command
docker container stop pen

Quick installation - on the host machine

This will still run Pen.el inside a docker container. However, running Pen.el in this way allows you to make changes to Pen.el, such as modifying the emacs configuration in the pen.el repository, and when the docker image starts, it will use the pen.el repo on the host machine (which contains your modifications) instead of the default repo inside the docker container. Also, this will allow you to configure pen with the ~/.pen directory on your host machine.

git clone "https://github.com/semiosis/pen.el"

# This is where the optional configuration lives
mkdir -p ~/.pen

# Add the scripts to the PATH
export PATH="$(realpath .)/pen.el/scripts:\$PATH"

# Prevent C-s from freezing the terminal
stty stop undef 2>/dev/null; stty start undef 2>/dev/null

# Run pen in GUI
pen

# Or run pen in the terminal
pin

It’s about holiness

holiness
    The state of being holy.
    "a life of holiness and total devotion to
    God"

    Set-apart from the world, and drawing
    nearer to God.

    A life of discipline, focus, and attention
    to matters of righteous living.

    It is, as Paul states in Romans 12:1-2, a
    life fully presented to God in a way that
    transforms our lives to God's glory rather
    than conforming our lives to the ways of
    the world.

    Romans 12:1-2
      Therefore, I urge you, brothers and
      sisters, in view of God’s mercy, to
      offer your bodies as a living sacrifice,
      holy and pleasing to God—this is your
      true and proper worship. 2 Do not
      conform to the pattern of this world,
      but be transformed by the renewing of
      your mind. Then you will be able to test
      and approve what God’s will is—his good,
      pleasing and perfect will.

Weekly Bible-study

./docs/asciinema/637136.gif

Always pray

Ephesians 6:18 - With all prayer and petition pray at all times in the Spirit, and with this in view, be on the alert with all perseverance and petition for all the saints, (NASB)

My thoughts and bible references regarding theology

Acts 13:48 - And when the Gentiles heard this, they began rejoicing and glorifying the word of the Lord, and as many as were appointed to eternal life believed. (ESV)

I’ve been thinking about belief, faith, works, law and receiving the Holy Spirit! Please let me know what you think if you have the time. I’m trying to get clearer on this.

Jesus Christ is Lord! :)