README.md (2714B)
1 # eufon 2 3 **Broken, not ready for use** 4 5 > *euphony*: _noun_ Harmonious arrangement of sounds in composition; a smooth and agreeable combination of articulate elements in any piece of writing. 6 7 A mostly Fennel-based graphical environment tailored for Linux-based 8 mobile devices. The principles we aspire to are 9 10 * "habitable software" - build the system in such a way that a 11 technically competent user may change it to serve their needs, 12 potentially even in ways that weren't anticipated in the original 13 design. Emacs has this quality. 14 15 * optimised for touchscreens. My phone has no hardware keyboard and few 16 hardware buttons, let's play to its strengths instead of compensating for 17 its weaknesses 18 19 As of 2022 these principles are more aspirational than actual. _This 20 repo is basically in an advanced state of brokenness_ 21 22 ## Running the shell/apps locally 23 24 $ nix-shell 25 nix-shell$ kiwmi -c init.lua 26 27 This works on desktop or on mobile - Kiwmi is built on wlroots, which 28 will open a window on your existing Wayland or X11 desktop if you're 29 running one. 30 31 If you're connected over ssh and want to run Kiwmi on the console, 32 further contortions are required as you don't have the permissions 33 by default: run this before attempting to start Kiwmi 34 35 nix-shell -p seatd --run "sudo -b seatd -u $USER" 36 37 ## Connecting to the repl 38 39 By default Eufon opens a Unix socket to which you can connect to 40 interact with a Fennel REPL. The `eufonctl` script is a wrapper around 41 [socat](http://www.dest-unreach.org/socat/) 42 43 $ eufonctl $WAYLAND_DISPLAY 44 45 46 ## Building for a device 47 48 Eufon can be installed as a [Mobile NixOS](https://github.com/NixOS/mobile-nixos/) module, by adding 49 `module.nix` to the `imports` in `your configuration.nix`. For example, on my development phone I 50 have 51 52 ```nix 53 imports = [ 54 (import <mobile-nixos/lib/configuration.nix> { 55 device = "motorola-potter"; 56 }) 57 /home/dan/src/phoen/eufon/module.nix 58 ]; 59 ``` 60 61 Instructions for using Mobile NixOS are currently outside the scope of 62 this README. 63 64 65 66 # TODO 67 68 ## Packages 69 70 - [X] notifications (crier) 71 - [X] web browser (just) 72 - [ ] keyboard 73 - [ ] wifi network chooser 74 - [ ] settings: toggle network interfaces, change volume & screen brightness 75 76 ## Other 77 78 - [ ] better window management 79 - gestures to switch view 80 - gesture to launch terminal? 81 - some way to kill an app 82 - finish adding touch support to Kiwmi - https://github.com/buffet/kiwmi/pull/64 83 84 - [ ] some way to add launcher shortcuts for Fennel functions 85 - [ ] hook up system to session bus, to handle incoming calls 86 - [X] kiwmi: support reloading config or otherwise making live changes 87 - [ ] why are overlay windows overlapping regular view? 88 - [ ] screen lock