Difference between revisions of "Projects:PinePhone Daily Driver with Sway"

From Dejvino's Knowledge Base
Jump to navigation Jump to search
Line 2: Line 2:
  
 
=== Components ===
 
=== Components ===
* Custom-built [[postmarketOS]]
+
* [[postmarketOS]] with [[swayWM|postmarketos-ui-sway]]
* [[swayWM]] for UI
+
* System packages: [[bemenu]] [[networkmanager]] [[termite]] termite-terminfo [[bluez]]
* System packages:
+
* App packages: [[vim]] [[firefox]] [[galculator]] [[thunderbird]] [[gajim]] [[audacious]] audacious-plugins
** postmarketos-ui-sway ...
 
** [[bemenu]] ...
 
** ...
 
* App packages:
 
{{todo|Add components}}
 
  
 
=== Setup ===
 
=== Setup ===
Line 71: Line 66:
  
 
==== TODOs ====
 
==== TODOs ====
* {{Todo|Touch gestures and controls}}
+
{{todo|Complete these TODOs!}}
** Custom input device? [https://python-evdev.readthedocs.io/en/latest/tutorial.html]
+
# power saving (so that I can leave the battery in the device when I'm not using it)
* {{Todo|Configure [[Firefox]] for touch: [https://wiki.postmarketos.org/wiki/Firefox]}}
+
#* hibernation / suspend command
* {{Todo|Sound, alsa}}
+
#* shortcut to enter suspend
* {{Todo|squeekboard virtual keyboard}}
+
# Install and test essential apps & workflows
* {{todo|acpi for battery monitoring}}
+
## 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]]
 +
#* [[twofing]]
 +
#* [[easystroke]] (abandoned)
 +
#* [[wmctrl]], [[xdotool]], [[xte]], ...
 +
#* Custom input device? [https://python-evdev.readthedocs.io/en/latest/tutorial.html]
 +
# tweaking
 +
#* Configure [[Firefox]] for touch: [https://wiki.postmarketos.org/wiki/Firefox]?
 +
#* ''acpi'' for battery monitoring?
 +
#* ...
 +
# non-essential userspace apps
 +
#* ...
 +
 
  
 
== Rejected solutions ==
 
== Rejected solutions ==

Revision as of 18:54, 25 May 2020

Implementation of Projects:PinePhone Daily Driver using swayWM.

Components

Setup

TODO: Move some of this setup into a repository

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: [2]?
    • acpi for battery monitoring?
    • ...
  6. non-essential userspace apps
    • ...


Rejected solutions

under Wayland