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 14:45:41 +00:00
$ nix-shell
nix-shell$ kiwmi -c init.lua
2022-04-26 20:14:46 +00:00
2022-08-14 14:45:41 +00:00
This works on desktop or on mobile - Kiwmi is built on wlroots, which
will open a window on your existing Wayland or X11 desktop if you're
running one.
2022-07-01 21:39:59 +00:00
2022-08-14 14:45:41 +00:00
If you're connected over ssh and want to run Kiwmi on the console,
further contortions are required as you don't have the permissions
by default: run this before attempting to start Kiwmi
nix-shell -p seatd --run "sudo -b seatd -u $USER"
2022-04-26 20:14:46 +00:00
2022-07-01 21:28:41 +00:00
## Connecting to the repl
2022-08-14 14:45:41 +00:00
By default Eufon 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/ )
2022-08-14 10:46:55 +00:00
$ 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