Projects:PinePhone Daily Driver with Sway
Implementation of Projects:PinePhone Daily Driver using swayWM.
Contents
Components
- postmarketOS with postmarketos-ui-sway
- System packages: bemenu networkmanager termite termite-terminfo bluez squeekboard
- App packages: vim firefox galculator thunderbird gajim audacious audacious-plugins htop
Setup
Configs are stored in a repository.
TODO: Create a postmarketOS package? [1]
elogind
Power key needs to be locked from elogind, otherwise it would shutdown the system. This way as long as the UI session is running, power button is ignored by elogind. Once the session ends and we're back in the login screen, the power button is again able to shutdown the system.
/usr/share/wayland-sessions/sway.desktop...
Exec=elogind-inhibit --what=handle-power-key --mode=block dbus-run-session /usr/bin/sway
...
(included in the POC repository)
lisgd
sxmo#lisgd reconfigured via a shell script for swaywm:
swayphone-lisgd
#!/bin/bash
lisgd \
-g "1,l,r, false" \
-g "1,r,l, false" \
-g "1,u,d, false" \
-g "1,d,u, false" \
-g "2,l,r, swaymsg workspace prev" \
-g "2,r,l, swaymsg workspace next" \
-g "2,u,d, swaymsg exec swayphone_keyboard_hide" \
-g "2,d,u, swaymsg exec swayphone_keyboard_show" \
-g "3,l,r, swaymsg focus right" \
-g "3,r,l, swaymsg focus left" \
-g "3,u,d, swaymsg focus down" \
-g "3,d,u, swaymsg focus up" \
-g "4,l,r, swaymsg move right" \
-g "4,r,l, swaymsg move left" \
-g "4,u,d, swaymsg move down" \
-g "4,d,u, swaymsg move up" \
-v
swayWM
(config included in the POC repository)
waybar
(config included in the POC repository)
- Pick a theme! Mine is: [2]
- [i] For clock module, don't forget to set the locale and timezone parameters, otherwise nothing will show up.
Bluetooth
- Enable the service on boot:
rc-update add bluetooth - Enable the controller by default:
/etc/bluetooth/main.conf[Policy]
AutoEnable=true
TODOs
TODO: Complete these TODOs!
- power saving (so that I can leave the battery in the device when I'm not using it)
- hibernation / suspend command
- shortcut to enter suspend
- [i]
rtcwake -m mem -s 10
- Install and test essential apps & workflows
- Terminal: termite
- Web browser: Firefox
- Passwords manager: KeepassXC)
- Personal Information Manager with WebDAV sync support for calendar, contacts
- Email client: thunderbird
- Calculator: galculator
- Alarm: ?
- IM clients
- XMPP: ?
- Matrix: ?
- Slack: ?
- Music player: audacious
- Camera & Video recorder: ?
- VPN client: NetworkManager?
- Support for non-essential apps & workflows
- RSS client: ?
- OTP generator: ?
- Ebook reader: ?
- Weather forecast: ?
- Maps, navigation: ?
- Calls & Texts: ?
- Touch gestures and controls
- sxmo#lisgd TODO: command line setup, compilation and install from the POC repo
- Custom input device? [3]
- Wayland touch [4]
- keyboard - layout to default to Terminal
- Sound
- tweaking
- non-essential userspace apps
- ...
- cool stuff
- presentation mode [7]
Rejected solutions
under Wayland
- libinput-gestures
- twofing
- onboard virtual keyboard