колись дуже давно (2009) я мав невеличкий нетбук, котрий використовував… як електронну книжку, повертаючи пристрій в портетру орієнтацію й тримаючи, як книжку; мінімально необхідні налаштуваня (поворот екрана, комбінації клавіш) підтримувала читалка fbreader. якщо комусь сьогодні цікаво, чому було не придбати для цього електронну книжку з екраном e-ink — бо ціни кусалися, і я завжди уникав lock-in’ів.

пізніше (2017) я отримав собі в руки ноутбук-трансформер з сенсорним екраном, і не міг не спокуситися ідеєю перетворити і його не читалку… тож почав думати, експериментувати (див. хронологію), і врешті-решт накодував робочий скрипт, який я назвав tabletizer — він вмів визначати орієнтацію ноутбука за даними вбудованого аксерелометра, повертати екран і сенсорну матрицю — фактично, перетворював мій ноутбук на планшет.

навіщо переписувати?

отже, якщо все працювало, навіщо переписувати? все ж таки 13-дюймовий трансформер завеликий і заважкий для казуального читання, тож я продовжував читати художню літературу на мудрофоні. але останнім часом зауважую, що худліт тепер майже виключно слухаю, а читаю — переважно технічну літературу в pdf, і для цього 5-дюймового екрана замало. тож час від часу я подумував або підібрати десь б/у планшет 10" (але це третій пристрій зі собою?), або ризикнути й придбати pinenote (але він ще не готовий, і знову — зайвий пристрій?)…

…аж поки знову повернувся до думки читати на трансформері. проте зі вдосконаленнями:

п’ять секунд

просидів вихідний, дописав чорнову версію, тестую… перевіряю окремі компоненти — все гаразд:

detect_rotation | xargs rotate_desktop

але поєдную все tabletize‘ом — не працює: як не кручу ноутбуком, а воно звітує про нормальну орієнтацію, і хай йому грець:

tabletize --cont 5 &

мучився довго, додавав і прибирав тестовий код, виводив усе, що можна… плюнув, пішов спати.

сьогодні вранці зрозумів, де проблема, лише коли навмання запустив лише детектор орієнтації з різними інтервалами!

поняття не маю, що відбувається. можливо, iio дозволяє акселерометру «заснути», якщо немає опитувань упродовж певного часу, і 4-5 секунд — якраз той мінімальний інтервал?

простіше — значить краще

написавши й відладивши detect_rotation, rotate_desktop та трохи програвшись із чорновою версією tabletazer’а, зрозумів, що…

гадаю, що для зручного читання pdf’ів у портретній орієнтації мені достатньо буде чогось простого:

більше нічого не треба. тож час «порізати» все зайве й спростити фінальний скрипт практично до того, з чого я починав =) ну, як сказав колись джеф сікел, «deleted code is debugged code».

далі буде…

випроба прототипу tabletize

хронологія