add readme, install script; v9001-a01

This commit is contained in:
Iris Lightshard 2022-02-21 11:54:27 -07:00
parent 27aa20a319
commit 65086bf370
Signed by: Iris Lightshard
GPG key ID: 3B7FBC22144E6398
4 changed files with 81 additions and 2 deletions

56
README.md Normal file
View file

@ -0,0 +1,56 @@
# acme9k
This is a fork of the `acme` text editor from the `plan9port` distribution. It combines the customizability of [lumar](https://github.com/lumar)/[sminez](https://github.com/sminez/plan9port)'s forks and [acme2k](https://github.com/karahobny/acme2k) with upstream fixes from [9fans](https://github.com/9fans/plan9port) and some custom work.
See the `config.def.h` for out of the box customizations that can be done.
[![screenshot](./scrot.png)](./scrot.png)
## usage
Keybindings are as follows:
- Ctrl
- c: copy
- x: cut
- v: paste
- z: undo
- y: redo
- s: save
- e: move to end of line
- a: move to begining of line
- f: filename completion
- u: kill line
- w: kill word (backwords)
- Up/Down: move cursor
- PgUp/PgDown: the obvious
- Esc: cut if there is a selection, otherwise hilight the most recently edited text
Users unfamiliar with acme in general should check the following resources:
- [Acme: A User Interface for Programmers](http://doc.cat-v.org/plan_9/4th_edition/papers/acme/) - the definitive guide from Rob Pike
- [A Tour of Acme](https://research.swtch.com/acme) - Russ Cox giving a tour of acme on plan9port (video)
- [acme(1)](http://man.cat-v.org/plan_9/1/acme) - manual page
## build
- Clone this repository
- From the repo root, if desired, copy `config.def.h` to `config.h` and make your modifications
- Run `./build.sh` from the repo root.
## install
After building, run `./install.sh`; If run as a regular user, it will install to `~/bin/9`; if run as root, it will overwrite the systemwide `acme` in `$PLAN9/bin`
## TODO
* [ ] add an indicator of the active window when click to focus (`bartflag`) is enabled
## thanks
* [rob pike](https://github.com/robpike) author of the original acme for plan9
* [russ cox](https://research.swtch.com) and the rest of the [9fans](https://github.com/9fans) for plan9port
* [lumar](https://github.com/lumar) - looks like they deleted their github repos but I originally pulled my keybinds from there
* [sminez](https://github.com/sminez) - possibly the original source of lumar's keybindings
* [karahobny](https://github.com/karahobny) - creator of acme2k, a big inspiration for this project
* [aksr](https://github.com/aksr) - source of the missing tag border pixel fix

11
acme.c
View file

@ -9,6 +9,7 @@
#include <fcall.h>
#include <plumb.h>
#include <libsec.h>
#include <stdio.h>
#include "dat.h"
#include "fns.h"
/* for generating syms in mkfile only: */
@ -42,6 +43,8 @@ Rune snarfrune[NSnarf + 1];
char* fontnames[2] = {PRIMARY_FONT, SECONDARY_FONT};
char version[] = "acme9k v9001-a01";
Command* command;
void shutdownthread(void*);
@ -117,6 +120,10 @@ void threadmain(int argc, char* argv[]) {
if (winsize == nil)
goto Usage;
break;
case 'v':
fprintf(stdout, "%s\n", version);
exit(0);
break;
default:
Usage:
fprint(
@ -983,7 +990,7 @@ void iconinit(void) {
Image* tmp;
if (tagcols[BACK] == nil) {
/* Black */
/* TAG */
tagcols[BACK] =
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_TAG_BG);
tagcols[HIGH] =
@ -995,7 +1002,7 @@ void iconinit(void) {
tagcols[HTEXT] =
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_TAG_HT);
/* Blue */
/* BODY */
textcols[BACK] =
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_BODY_BG);
textcols[HIGH] =

16
install.sh Executable file
View file

@ -0,0 +1,16 @@
#!/bin/sh
if [ -z "$PLAN9" ]; then
echo "PLAN9 not set;"
echo "Please set it to the location of your plan9port installation."
exit 1
fi
if [ $(whoami) != "root" ]; then
mkdir -p ~/bin/9
cp acme ~/bin/9/acme
echo "acme has been installed to '${HOME}/bin/9/'"
else
cp acme ${PLAN9}/bin/acme
echo "acme has been installed to '${PLAN9}/bin/'"
fi

BIN
scrot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB