2022-04-26 14:33:53 +00:00
# eufon
2022-08-02 23:24:05 +00:00
**Broken, not ready for use**
2022-04-26 20:14:46 +00:00
2022-08-14 10:46:55 +00:00
> *euphony*: _noun_ Harmonious arrangement of sounds in composition; a smooth and agreeable combination of articulate elements in any piece of writing.
2022-08-02 23:24:05 +00:00
A mostly Fennel-based graphical environment tailored for Linux-based
mobile devices. The principles we aspire to are
2022-04-26 20:14:46 +00:00
* "habitable software" - build the system in such a way that a
technically competent user may change it to serve their needs,
potentially even in ways that weren't anticipated in the original
design. Emacs has this quality.
* optimised for touchscreens. My phone has no hardware keyboard and few
hardware buttons, let's play to its strengths instead of compensating for
its weaknesses
2022-08-02 23:24:05 +00:00
As of 2022 these principles are more aspirational than actual. _This
repo is basically in an advanced state of brokenness_
## Running the shell/apps locally
2022-04-26 20:14:46 +00:00
2022-08-14 10:46:55 +00:00
Eufon is intendfed for phones, but you may prefer to develop on a
desktop device of some kind, especially if you're changing C code and
have that edit/compile run cycle to go round. You can start the shell
locally with
2022-04-26 20:14:46 +00:00
2022-07-01 21:39:59 +00:00
$ nix-shell --run "kiwmi -c init.lua"
`shell.nix` sets `LUA_PATH` and `LUA_CPATH` settings appropriately -
if you want to write a real derivation (I'll get to it eventually)
you'll need to sort that out yourself. Nix generates a wrapper script
for the Lua interpreter itself, but it doesn't do the same for kiwmi.
2022-04-26 20:14:46 +00:00
2022-07-01 21:28:41 +00:00
## Connecting to the repl
2022-08-14 10:46:55 +00:00
If you are using the example rc.fnl, it opens a Unix socket to which
you can connect to interact with a Fennel REPL. The `eufonctl`
script is a wrapper around [socat ](http://www.dest-unreach.org/socat/ )
$ eufonctl $WAYLAND_DISPLAY
## Building for a device
Eufon can be installed as a [Mobile NixOS ](https://github.com/NixOS/mobile-nixos/ ) module, by adding
`module.nix` to the `imports` in `your configuration.nix` . For example, on my development phone I
have
```nix
imports = [
(import < mobile-nixos / lib / configuration . nix > {
device = "motorola-potter";
})
/home/dan/src/phoen/eufon/module.nix
];
```
Instructions for using Mobile NixOS are currently outside the scope of
this README.
2022-07-01 21:28:41 +00:00
2022-04-27 08:47:17 +00:00
# TODO
## Packages
2022-07-01 21:39:59 +00:00
- [X] notifications (crier)
- [X] web browser (just)
- [ ] keyboard
- [ ] wifi network chooser
- [ ] settings: toggle network interfaces, change volume & screen brightness
2022-04-27 08:47:17 +00:00
## Other
2022-07-01 21:39:59 +00:00
- [ ] better window management
- gestures to switch view
- gesture to launch terminal?
- some way to kill an app
2022-08-02 23:24:05 +00:00
- finish adding touch support to Kiwmi - https://github.com/buffet/kiwmi/pull/64
2022-07-01 21:39:59 +00:00
- [ ] some way to add launcher shortcuts for Fennel functions
- [ ] hook up system to session bus, to handle incoming calls
- [X] kiwmi: support reloading config or otherwise making live changes
- [ ] why are overlay windows overlapping regular view?
- [ ] screen lock