Projects:PinePhone Daily Driver with Sway

From Dejvino's Knowledge Base
Revision as of 21:26, 25 May 2020 by Dejvino (talk | contribs)
Jump to navigation Jump to search

Implementation of Projects:PinePhone Daily Driver using swayWM.

Components

Setup

TODO: Move some of this setup into a repository

TODO: Create a postmarketOS package? [1]

elogind

/usr/share/wayland-sessions/sway.desktop... Exec=elogind-inhibit --who=sway --what="handle-power-key" --mode="block" dbus-run-session /usr/bin/sway ...

lisgd

~/build/lisgd/lisgd.h/* Commands to execute upon recieving a swipe gesture */ Gesture gestures[] = {

       /* fingers      start   end     command */
       { 1,    Left,   Right,    "swaymsg workspace prev" },
       { 1,    Right,  Left,     "swaymsg workspace next" },
       { 2,    Left,   Right,    "xdotool key --clearmodifiers Alt+e" },
       { 2,    Right,  Left,     "xdotool key --clearmodifiers Alt+r" },
       { 2,    Down,   Up,       "swayphone_keyboard_show" },
       { 2,    Up,     Down,     "swayphone_keyboard_hide" },
       { 3,    Down,   Up,       "sxmo_vol.sh up" },
       { 3,    Up,     Down,     "sxmo_vol.sh down" },
       { 4,    Down,   Up,       "sxmo_brightness.sh up" },
       { 4,    Up,     Down,     "sxmo_brightness.sh down" },

}; TODO: Finish updating this

# TODO: cloning and building the app cp ~/build/lisgd/lisgd /usr/local/bin/lisgd

swayWM

  1. Copy /etc/sway/config to ~/.config/sway/config
  2. Edit:

~/.config/sway/config xargs swaymsg exec -- [...]

  # Kill focused window
   bindsym $mod+q kill

[...]

  1. Default scaling for the touchscreen

output DSI-1 scale 2

  1. Initial utility apps

exec squeekboard exec lisgd

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!

  1. 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
  2. Install and test essential apps & workflows
    1. Terminal: termite
    2. Web browser: Firefox
    3. Passwords manager: KeepassXC)
    4. Personal Information Manager with WebDAV sync support for calendar, contacts
    5. Email client: thunderbird
    6. Calculator: galculator
    7. Alarm: ?
    8. IM clients
      • XMPP: ?
      • Matrix: ?
      • Slack: ?
    9. Music player: audacious
    10. Camera & Video recorder: ?
    11. VPN client: NetworkManager?
  3. Support for non-essential apps & workflows
    • RSS client: ?
    • OTP generator: ?
    • Ebook reader: ?
    • Weather forecast: ?
    • Maps, navigation: ?
    • Calls & Texts: ?
  4. Touch gestures and controls
  5. tweaking
    • Configure Firefox for touch: [3]?
    • acpi for battery monitoring?
    • ...
  6. non-essential userspace apps
    • ...


Rejected solutions

under Wayland