add readme, install script; v9001-a01
This commit is contained in:
parent
27aa20a319
commit
65086bf370
4 changed files with 81 additions and 2 deletions
56
README.md
Normal file
56
README.md
Normal 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
11
acme.c
|
@ -9,6 +9,7 @@
|
||||||
#include <fcall.h>
|
#include <fcall.h>
|
||||||
#include <plumb.h>
|
#include <plumb.h>
|
||||||
#include <libsec.h>
|
#include <libsec.h>
|
||||||
|
#include <stdio.h>
|
||||||
#include "dat.h"
|
#include "dat.h"
|
||||||
#include "fns.h"
|
#include "fns.h"
|
||||||
/* for generating syms in mkfile only: */
|
/* for generating syms in mkfile only: */
|
||||||
|
@ -42,6 +43,8 @@ Rune snarfrune[NSnarf + 1];
|
||||||
|
|
||||||
char* fontnames[2] = {PRIMARY_FONT, SECONDARY_FONT};
|
char* fontnames[2] = {PRIMARY_FONT, SECONDARY_FONT};
|
||||||
|
|
||||||
|
char version[] = "acme9k v9001-a01";
|
||||||
|
|
||||||
Command* command;
|
Command* command;
|
||||||
|
|
||||||
void shutdownthread(void*);
|
void shutdownthread(void*);
|
||||||
|
@ -117,6 +120,10 @@ void threadmain(int argc, char* argv[]) {
|
||||||
if (winsize == nil)
|
if (winsize == nil)
|
||||||
goto Usage;
|
goto Usage;
|
||||||
break;
|
break;
|
||||||
|
case 'v':
|
||||||
|
fprintf(stdout, "%s\n", version);
|
||||||
|
exit(0);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Usage:
|
Usage:
|
||||||
fprint(
|
fprint(
|
||||||
|
@ -983,7 +990,7 @@ void iconinit(void) {
|
||||||
Image* tmp;
|
Image* tmp;
|
||||||
|
|
||||||
if (tagcols[BACK] == nil) {
|
if (tagcols[BACK] == nil) {
|
||||||
/* Black */
|
/* TAG */
|
||||||
tagcols[BACK] =
|
tagcols[BACK] =
|
||||||
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_TAG_BG);
|
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_TAG_BG);
|
||||||
tagcols[HIGH] =
|
tagcols[HIGH] =
|
||||||
|
@ -995,7 +1002,7 @@ void iconinit(void) {
|
||||||
tagcols[HTEXT] =
|
tagcols[HTEXT] =
|
||||||
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_TAG_HT);
|
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_TAG_HT);
|
||||||
|
|
||||||
/* Blue */
|
/* BODY */
|
||||||
textcols[BACK] =
|
textcols[BACK] =
|
||||||
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_BODY_BG);
|
allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, COLOR_BODY_BG);
|
||||||
textcols[HIGH] =
|
textcols[HIGH] =
|
||||||
|
|
16
install.sh
Executable file
16
install.sh
Executable 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
BIN
scrot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 MiB |
Loading…
Reference in a new issue