3 điểm bởi GN⁺ 2024-01-28 | 1 bình luận | Chia sẻ qua WhatsApp
  • Sxmo là một môi trường tối giản dành cho điện thoại Linux và các thiết bị di động khác, kết hợp các chương trình đơn giản và shell script để tạo UI đúng với triết lý Unix
  • Sử dụng giao diện dựa trên menu cùng trình quản lý cửa sổ tiling, hỗ trợ cả Wayland và Xorg legacy trên các cấu hình như sway
  • Cung cấp thao tác cảm ứng, cử chỉ và nút phần cứng; đồng thời bù đắp khả năng sử dụng trên màn hình nhỏ bằng menu ngữ cảnh thay đổi tùy theo ứng dụng CLI hoặc GUI đang hoạt động
  • Bao gồm các tính năng di động như modem, cuộc gọi, tin nhắn, đọc thông báo và tối ưu nhẹ cho thiết bị chạy pin; cũng có thể truy cập menu và gửi tin nhắn qua SSH
  • Có thể gắn cuộc gọi, tin nhắn, cử chỉ và nút vật lý với script người dùng, gần với cách dùng kiểu Linux là tự sửa và tùy biến hơn so với hệ sinh thái ứng dụng khép kín

Môi trường mobile Linux mà Sxmo hướng tới

  • Sxmo là môi trường tối giản cho thiết bị di động Linux, đề cao “minimal, mobile, hackable”
  • Các điện thoại hoặc máy tính bảng Android cũ cũng có thể hoạt động với một chút cấu hình; các thiết bị ví dụ gồm OnePlus 6Poco F1
  • Thông tin hỗ trợ thiết bị có thể xem tại device profile, còn người dùng mới có thể tham khảo getting started guide

Cách thao tác và tùy biến

  • UI dùng kết hợp giao diện dựa trên menu đơn giản và trình quản lý cửa sổ tiling
    • Có thể dùng sway làm ví dụ
    • Các công cụ hướng tới dạng có thể liên kết với nhau và dễ thay thế
    • Hỗ trợ cả Wayland và Xorg legacy
  • Cách nhập liệu trên di động được thiết kế với giả định màn hình nhỏ và sử dụng nút vật lý
    • Hỗ trợ cảm ứng và cử chỉ
    • Có thể điều khiển menu bằng nút phần cứng
    • Menu ngữ cảnh do cộng đồng xây dựng thay đổi tùy theo ứng dụng đang hoạt động là CLI hay GUI
  • Các tính năng mobile Linux bao gồm cả modem, cuộc gọi, tin nhắn và thông báo
    • Có thể đọc thông báo và tin nhắn
    • Bao gồm tối ưu nhẹ cho thiết bị chạy pin và màn hình nhỏ
    • Hỗ trợ SSH như một cách sử dụng cốt lõi, có thể truy cập mọi menu qua SSH
    • Có thể gửi tin nhắn qua SSH bằng các trình soạn thảo văn bản như vis, emacs, vim
  • Để tăng khả năng hack/tùy biến, có thể liên kết nhiều hành động bằng shell script
    • Có thể chạy script tùy chỉnh khi có sự kiện cuộc gọi hoặc tin nhắn
    • Có thể dùng lisgd để bind script với cử chỉ
    • Có thể gắn script với thao tác nhấn một lần, hai lần hoặc ba lần trên nút vật lý của thiết bị
    • Nhật ký modem, danh bạ và nội dung SMS được lưu dưới dạng văn bản thuần
  • Hệ sinh thái ứng dụng không có cấu trúc khép kín; có thể dùng ứng dụng FOSS trên di động như trên desktop
    • Hoạt động trên các bản phân phối Linux tối ưu cho di động như Alpine LinuxpostmarketOS
    • Có thể sử dụng ứng dụng chạy trên terminal trên smartphone

1 bình luận

 
GN⁺ 2024-01-28
Ý kiến trên Hacker News
  • Trong các giao diện từng dùng trên PinePhone, sxmo rõ ràng là tốt nhất
    Bình thường tôi không phải kiểu hay dùng hệ suckless, và dù có tôn trọng dạng phần mềm đó, tôi vẫn bị hấp dẫn hơn bởi những thứ nhiều tính năng như Emacs hay KDE. Dù vậy, sxmo phản hồi nhanh hơn KDE hay Phosh rất nhiều, và một khi vượt qua được rào cản về khả năng tự khám phá thì nó khá giàu tính năng và trực quan. Hình như megi cũng từng làm một cheat sheet khá ổn

    • Tôi đang dùng Plasma Mobile trên Librem 5 và nó cũng khá nhanh
      Chỉ là KDE đã quyết định làm lại các ứng dụng cốt lõi bằng một framework thân thiện với di động hơn, nên tôi không rõ nó thực tế đến mức nào như một nền tảng ứng dụng. Hiện tại chưa có nhiều thứ để đào sâu, và có lẽ vài năm tới vẫn sẽ như vậy. Thấy được khuyên nên tôi cũng định thử sxmo một lần
    • Tôi đã không dùng PinePhone khoảng 6 tháng, và trước đó cũng từng bỏ xó một thời gian vì không rõ lý do sao âm thanh cuộc gọi không ra, nhưng cộng dồn lại thì tôi đã dùng nó làm điện thoại chính khoảng 1 năm rưỡi
      Tôi cũng thử các môi trường desktop khác, nhưng cuối cùng vẫn chốt với sxmo/swmo vì tôi thích triết lý có thể tự lắp ghép và điều khiển từng thành phần, và việc có thể quản lý điện thoại từ laptop qua SSH cũng là một điểm lớn. Tôi vốn đã quen với Sway, và vào lúc bắt đầu thì Phosh với KDE đều có những vấn đề khá nghiêm trọng
      Tuy nhiên, sxmo lúc nào cũng rất nhiều bug. Có vô số race condition khiến nó hỏng cho tới khi khởi động lại, và để mở khóa thì lúc phải bấm nút nguồn một lần, hai lần, ba lần, hoặc giữ lâu rồi bấm lại, tùy vào trạng thái ngủ và thao tác trước đó nên hành vi rất thất thường. Việc thay đổi trạng thái hay chế độ cũng mất gần 1 giây mới phản ánh lên màn hình, và điều đó căng thẳng hơn tưởng tượng rất nhiều
      Nếu một trạng thái mutex nào đó bị kẹt, các tiến trình mới cố điều khiển LED nhấp nháy sẽ cứ tăng dần mãi, và cuối cùng thậm chí giữ nút nguồn cũng không còn tác dụng, phải tháo pin ra
      Khi người ta nói Rust tốt hơn C vì an toàn bộ nhớ và mô hình dữ liệu tốt hơn giúp loại bỏ một số loại bug, thì sxmo lại được triển khai phần lớn bằng shell script, và xét ở góc độ thiết kế quy mô lớn thì còn tệ hơn C rất nhiều. Nó có ít thành phần nền tảng phù hợp hơn, và các giới hạn đó lộ ra rất rõ
      Toàn bộ hệ thống gần giống một mớ hổ lốn gồm các mảnh ghép làm như không biết tới sự tồn tại của nhau, trong khi nếu chúng phối hợp với nhau thì có lẽ kết quả sẽ ổn định hơn nhiều. Có những chỗ trông bề ngoài có vẻ ổn nhưng thực ra chưa được làm đúng hoàn toàn, và đôi khi chính thiết kế lại quá phức tạp và sai từ gốc
      Tôi không nghĩ 6 tháng qua có gì thay đổi lớn, nên muốn thách người dùng sxmo thử xem. Hãy tìm cách đổi cách hiển thị đồng hồ ở system tray, và làm sao để nó cập nhật đúng vào thời điểm chính xác thay vì đúng nhưng có thể trễ tới 55 giây. Trong quá trình đó bạn sẽ phải đi qua nhiều hệ thống khác nhau, như bộ hẹn giờ 55 giây ghi giá trị cache rồi thanh trạng thái lấy giá trị đó, và phải lục ít nhất khoảng ba chỗ trên đĩa. Bạn sẽ cần công cụ như ripgrep, rồi cuối cùng sẽ tự hỏi sao không đơn giản đặt date +'%H:%M' vào lệnh của thanh trạng thái rồi đổi thành date +'%-I:%M %P' cho xong
      Về mặt tính năng cũng vậy, có những thứ trên Android là mặc định cứ thế chạy, hoặc ở Phosh thì hoạt động được, nhưng ở đây lại không chạy mượt hoặc không chạy chút nào. Đổi lại, một khi bạn tìm ra cách làm cho thứ gì đó hoạt động thì khả năng script hóa sẽ tốt hơn rất nhiều. Tôi đã biến workflow cá nhân của mình thành thứ tiện hơn bất kỳ hệ điều hành nào khác, nhưng cũng vì thế mà phải viết rất nhiều script
      Có những vấn đề đã được sửa theo thời gian và cũng có những vấn đề mới xuất hiện, nhưng nhìn chung chất lượng thực tế tổng thể vẫn khá thấp. Dù vậy tôi vẫn tiếp tục dùng, nên có lẽ tôi là một kẻ khổ dâm cũng nên
      Kết lại thì tôi thực sự không nghĩ ra nổi một ai để khuyên dùng sxmo/swmo. Nhưng nếu có kiểu người phù hợp để giới thiệu, thì có lẽ đó là người vốn đã dùng trình quản lý cửa sổ xếp gạch trên desktop và bản thân cũng không quá quan tâm tới chiếc điện thoại
  • Nếu trên trang chủ có video demo dài 1–2 phút thay vì bài thuyết trình 45 phút thì có lẽ sẽ truyền tải ý tưởng rõ hơn rất nhiều

  • Tôi thích nó. Mọi thứ đều được nối với nhau bằng shell script, nên sẽ khá kén gu, nhưng điểm hay là có thể nhanh chóng mổ xẻ và chỉnh sửa UI của điện thoại
    Tôi từng viết một script đồng hồ báo thức ngay trên chính PinePhone trong lúc đi đi về về, cần phải công khai nó mới được. Nó hoạt động bằng cách đánh thức máy khỏi trạng thái ngủ sâu ngay trước giờ báo thức rồi phát chuông
    Những thứ như đồng hồ báo thức có thiết lập đánh thức bằng RTC vẫn còn thiếu khá nhiều, nhưng nhìn chung đây là một hệ thống rất ngầu và tôi định sẽ lại dùng rồi nghịch nó trong tương lai gần

  • Nếu bạn đi FOSDEM và quan tâm tới Linux trên điện thoại thì nên xem lịch devroom [0] và các gian liên quan [1]
    [0]: https://fosdem.org/2024/schedule/track/foss-on-mobile-device...
    [1]: https://fosdem.org/2024/stands/

  • Tôi khó mà đồng ý với nhận định rằng “kernel chạy trên thiết bị Android đã bị chỉnh sửa quá nhiều đến mức cộng đồng không thể bảo trì được”
    Android chạy được cả trên mainline Linux kernel. Nếu cộng đồng đã có thể bảo trì mainline kernel, thì một series 210 patch nằm trong Android common kernel hẳn cũng không phải mức bất khả thi. Vứt bỏ toàn bộ giá trị của Android chỉ vì điều này chẳng khác nào bắt rận mà đốt luôn cả căn nhà
    Android có hỗ trợ đa cửa sổ, nên việc ai đó triển khai trình quản lý cửa sổ xếp gạch cho Android nghe cũng khá hợp lý

  • Không rõ có thể chạy cái này trên máy chủ Intel/AMD thông thường rồi dùng qua phiên xrdp/nx hay không
    Cần khả năng tương thích xã hội và camera tốt. Tôi cũng đã thử i3, nhưng dùng khi không có bàn phím vật lý thì khá khó

    • Cũng tò mò liệu có thể gắn cử chỉ thao tác cho Sway trên di động hay không
      pinephone-sway-poc: https://github.com/Dejvino/pinephone-sway-poc#components
      rpm-ostree hiện đã hỗ trợ dùng image container OCI làm image host, nên việc nâng cấp hệ điều hành trở nên dễ hơn và cũng bền vững hơn trước lỗi. Có thể chọn mục khác trong menu khởi động để quay lại trạng thái trước đó, tức là kernel + lớp phủ /etc + phân vùng gốc + gói
      "Using OSTree Native Containers as Node Base Images" (2023) https://www.opensourcerers.org/2023/06/16/using-ostree-nativ...
  • Nếu muốn thay đổi phong cách SXMO trên Sway, ví dụ làm mục menu to hơn để dễ bấm bằng ngón tay, đổi sang phông hẹp hơn để chứa được nhiều chữ hơn trên một dòng, hoặc tinh chỉnh giao diện, thì hướng dẫn này sẽ hữu ích: https://porkyofthepine.org/blog/rice_sxmo_sway.html

    • Tôi cũng từng nghĩ đến chuyện chạy phiên Linux phone trên máy chủ, và hiện tại chỉ đang dùng tmux+mosh
      Sẽ tốt hơn nhiều nếu có một trình quản lý hiển thị thực sự hoạt động tốt trên điện thoại, và cái này có thể giúp tiến theo hướng đó
    • Sẽ hay hơn nếu có ảnh chụp màn hình
      Mọi thứ tôi từng thấy về SXMO đều cho cảm giác đây là thứ dành cho hacker râu rậm kiểu thợ mộc, coi trọng sự tự do kiểu Stallman hơn là thẩm mỹ hay tính tiện dụng
  • Điểm hay là không nhất thiết phải chạy ứng dụng Google
    Dù vậy, nếu có thể truy cập một số ứng dụng cần thiết dù không thật sự thích, như vài app ngân hàng cốt lõi hoặc app tự động hóa nhà cửa, thì sẽ rất hữu ích

    • Có phần mềm tên là Waydroid cho phép chạy ứng dụng Android trên nền tảng GNU/Linux, bao gồm cả PinePhone
      Sxmo, trái với tên gọi của nó, có thể chạy bằng Wayland thay vì X nên hỗ trợ Waydroid
      Cá nhân tôi chưa từng thành công trong việc làm cho Waydroid chạy được, và việc này còn khó hơn do phải tải về lượng dữ liệu lớn cho thiết lập ban đầu. Dù vậy tôi cũng không cố quá nhiều, và trên mạng vẫn có video của những người đã làm được
      [1]: https://waydro.id/
      [2]: https://tilvids.com/w/2b2f3a24-ae23-458e-a0fd-2f24a185a11b
    • Ứng dụng ngân hàng thường không thích chạy trong môi trường đã root vì lý do “bảo mật”. Tôi tự hỏi có cách nào lách qua không
  • Có vẻ PmOS có hai biến thể SXMO
    sxmo-de-dwm: môi trường di động Simple Mobile dựa trên SXMO và chạy trên dwm
    sxmo-de-sway: môi trường di động Simple Mobile dựa trên SXMO và chạy trên sway

  • Tôi muốn biết SXMO có gì mới
    Tôi đã không theo dõi từ sau năm 2021, nên muốn biết giờ đã có điện thoại nào đủ ổn định để chạy hằng ngày chưa

    • Có lẽ PinePhone là lựa chọn ổn định nhất
      Tôi đã thấy vài người dùng nó trên thiết bị này, và trong các chủ đề gần đây về PinePhone nó cũng nhiều lần được nhắc đến như một lựa chọn thay thế tốt cho Plasma mặc định