Edwood
Go version of Plan9 Acme Editor
Install / Use
/learn @rjkroege/EdwoodREADME
Overview
Go port of Rob Pike's Acme editor. Derived from ProjectSerenity but now increasingly divergent. ProjectSerenity was itself a transliteration of the original Acme and libframe C code from plan9port
Named edwood in celebration of the formative influence of Ed Wood on Plan9 and the truth of ed-iting.
Note that on unix systems, Edwood (as with Acme) requires by default some
infrastructure from plan9port:
in particular devdraw, 9pserve and fontsrv. (Note that many other
utilities like win and 9pfuse that contribute to Edwood's utility
are also found in plan9port.) So, you'll want to
install plan9port first, unless
you choose to use the more experimental pure-Go Edwood described below.
Edwood without plan9port
On Windows, plan9port is never used. On unix systems, plan9port is not
used only when the duitdraw and mux9p tags are used:
go get -u -tags 'duitdraw mux9p' github.com/rjkroege/edwood
These tags replaces devdraw with
duitdraw and 9pserve with
mux9p. Note that there are several
outstanding issues
which makes Edwood more unstable and slower when not using plan9port.
Duitdraw can use TTF fonts or compressed Plan 9 bitmap fonts. If the font name is empty, the Go Font is used. Example usage:
edwood # Use Go font at 10pt
edwood -f @12pt -F @12pt # Go font at 12pt
edwood -f /usr/share/fonts/TTF/DejaVuSans.ttf@12pt -F /usr/share/fonts/TTF/DejaVuSansMono.ttf@12pt
edwood -f $PLAN9/font/lucsans/euro.8.font -F $PLAN9/font/lucm/unicode.9.font
Edwood on Plan 9
To build Edwood on Plan 9, use 9fans.net/go PR#28:
hget https://github.com/rjkroege/edwood/archive/master.tar.gz | tar xvz
cd edwood-master
go mod edit -replace '9fans.net/go=github.com/fhs/9fans-go@plan9-pr'
go build
./edwood
Contributions
Contributions are welcome. Just submit a pull request and we'll review the code before merging it in.
Discussion
Have thoughts? Questions? Want to talk about Edwood (or Acme and other related Plan9 things)? If so, I've now enabled Edwood GitHub Discussions.
Project Status
Edwood has reached the useful milestone (v0.1) and should serve as drop-in replacement for Plan9 Port Acme. (But probably with different bugs.) Please file issues if Acme client apps don't work with Edwood or if your favourite Acme feature doesn't work.
Tools
A selection of perhaps useful helpers are in cmd. In particular:
cmd/winis a slightly wip Golang version of thewinprogram from p9p. (Aside: I'd expect to move this into the rjkroege/go: Packages and commands for using Plan 9 from Go package eventually.)
Install with:
go install ./cmd/*
For more tools and Acme integration, see rjkroege/go: Packages and commands for using Plan 9 from Go. In particular, use that
package's editinacme as EDITOR.
Roadmap
- More idiomatic Go and tests.
- Internal API modernization.
- More configurability: styles, keyboard shortcuts, autocomplete.
- See the issues list for the details.
- Improve the testing code coverage
- More tools and documentation for an "ecosystem" (maybe this word is a bit cringe) of external scripts and software that make Acme/Edwood windows of text an important part of a larger editing system. I've started adding these in rjkroege/go: Packages and commands for using Plan 9 from Go. Way more documentation and examples are needed.
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
351.2kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
