3P by GN⁺ | ★ favorite | 댓글 1개
  • Sxmo는 Linux 휴대폰과 기타 모바일 기기에서 단순한 프로그램과 셸 스크립트를 조합해 Unix 철학에 맞는 UI를 만드는 미니멀 환경임
  • 메뉴 기반 인터페이스와 타일링 윈도우 관리자를 함께 쓰며, sway 같은 구성 위에서 Wayland와 레거시 Xorg를 모두 지원함
  • 터치·제스처·하드웨어 버튼 조작을 제공하고, 활성 CLI 또는 GUI 앱에 따라 달라지는 컨텍스트 메뉴로 작은 화면 사용성을 보완함
  • 모뎀, 통화, 문자, 알림 읽기, 배터리 기기용 경량화 같은 모바일 기능을 포함하며, SSH로 메뉴 접근과 문자 전송도 가능함
  • 통화·문자·제스처·물리 버튼을 사용자 스크립트에 연결할 수 있어, 잠긴 앱 생태계보다 직접 고쳐 쓰는 Linux식 사용에 가까움

Sxmo가 지향하는 모바일 Linux 환경

  • Sxmo는 Linux 모바일 기기를 위한 미니멀 환경이며, “minimal, mobile, hackable”을 내세움
  • 오래된 Android 휴대폰이나 태블릿도 약간의 설정으로 동작할 수 있고, 예시 기기로 OnePlus 6Poco F1이 포함됨
  • 기기 지원 정보는 device profile에서 확인할 수 있으며, 처음 사용하는 사용자는 getting started guide를 참고할 수 있음

조작 방식과 커스터마이징

  • UI는 단순한 메뉴 기반 인터페이스와 타일링 윈도우 관리자를 함께 사용함
    • 예시로 sway를 사용할 수 있음
    • 도구들은 서로 연동 가능하고 쉽게 교체할 수 있는 형태를 지향함
    • Wayland와 레거시 Xorg를 모두 지원함
  • 모바일 입력 방식은 작은 화면과 물리 버튼 사용을 전제로 함
    • 터치와 제스처를 지원함
    • 하드웨어 버튼으로 메뉴를 제어할 수 있음
    • 활성 애플리케이션이 CLI인지 GUI인지에 따라 커뮤니티 기반 컨텍스트 메뉴가 달라짐
  • 모바일 Linux 기능은 모뎀·통화·문자·알림까지 포함함
    • 알림과 문자를 읽을 수 있음
    • 배터리 구동 기기와 작은 화면에 맞춘 경량화가 포함됨
    • SSH를 핵심 사용 방식으로 지원하며, SSH로 모든 메뉴에 접근 가능함
    • vis, emacs, vim 같은 텍스트 편집기를 사용해 SSH로 문자 전송 가능함
  • 해킹 가능성을 위해 여러 동작을 셸 스크립트로 연결할 수 있음
    • 전화나 문자 이벤트에서 사용자 정의 스크립트를 실행할 수 있음
    • lisgd를 사용해 제스처에 스크립트를 바인딩할 수 있음
    • 기기 물리 버튼의 단일·이중·삼중 클릭에 스크립트를 연결할 수 있음
    • 모뎀 로그, 연락처 목록, SMS 텍스트가 일반 텍스트로 저장됨
  • 앱 생태계는 잠긴 구조가 아니며, 데스크톱에서 쓰는 FOSS 앱을 모바일에서도 사용할 수 있음
    • Alpine LinuxpostmarketOS 같은 모바일 최적화 Linux 배포판에서 동작함
    • 스마트폰에서 터미널 기반 애플리케이션을 사용할 수 있음

댓글과 토론

Hacker News 의견들
  • PinePhone에서 써본 인터페이스 중에는 sxmo가 단연 제일 좋았음
    평소에 suckless 계열을 많이 쓰는 편은 아니고, 그런 소프트웨어를 존중하긴 하지만 Emacs나 KDE처럼 기능이 많은 쪽에 더 끌림. 그래도 sxmo는 KDE나 Phosh보다 훨씬 빠릿하고, 발견 가능성의 장벽만 넘으면 꽤 기능적이고 직관적임. megi가 만든 괜찮은 치트시트도 있었던 듯함

    • Librem 5에서 Plasma Mobile을 쓰고 있는데 꽤 빠릿함
      다만 KDE가 핵심 앱들을 모바일 친화적인 프레임워크로 다시 만들기로 해서, 앱 플랫폼으로 얼마나 현실성이 있을지는 모르겠음. 지금은 파고들 만한 게 많지 않고, 앞으로 몇 년은 계속 그럴 가능성이 큼. 추천을 보고 sxmo도 한번 써볼 생각임
    • PinePhone을 6개월 정도 못 썼고, 그 전에도 알 수 없는 이유로 통화 음성이 안 나와 한동안 안 썼지만, 누적하면 약 1년 반 정도는 주 전화기로 썼음
      다른 데스크톱 환경도 써봤지만 결국 sxmo/swmo에 정착했는데, 구성 요소를 직접 조합하고 제어할 수 있다는 철학이 마음에 들었고, 노트북에서 SSH로 폰을 다룰 수 있는 점도 컸음. 이미 Sway에 익숙했고, 시작 당시 Phosh와 KDE는 꽤 치명적인 문제가 있었음
      다만 sxmo는 늘 심각하게 버그가 많았음. 재시작 전까지 망가지는 경쟁 상태가 아주 많고, 잠금 해제하려면 전원 버튼을 한 번, 두 번, 세 번 누르거나 길게 눌렀다 다시 눌러야 하는 등 수면 상태와 이전 동작에 따라 동작이 제각각임. 상태나 모드 변경도 화면에 반영되기까지 거의 1초가 걸려 의외로 큰 스트레스가 됨
      어떤 뮤텍스 상태가 꼬이면 LED 점멸을 제어하려는 새 프로세스가 계속 늘어나고, 결국 전원 버튼 길게 누르기도 먹히지 않아 배터리를 빼야 할 때도 있었음
      Rust가 C보다 낫다는 얘기에서 메모리 안전성과 더 나은 데이터 모델 덕분에 특정 버그 범주가 사라진다고들 하는데, sxmo는 상당 부분이 셸 스크립트로 구현되어 있고 대규모 설계 관점에서는 C보다 훨씬 열악함. 적절한 기본 구성 요소가 더 적고, 그 한계가 그대로 드러남
      전체 시스템은 서로의 존재를 못 본 척하는 조각들의 잡탕에 가깝고, 서로 협력했으면 훨씬 안정적인 결과를 낼 수 있었을 듯함. 겉보기엔 괜찮아도 완전히 올바르게 구현되지 않은 경우가 있고, 어떤 때는 설계 자체가 과하게 복잡하고 잘못 잡혀 있음
      지난 6개월 사이 크게 바뀌었을 것 같지는 않아서 sxmo 사용자에게 도전해보고 싶음. 시스템 트레이 시계 표시를 바꾸는 방법과, 최대 55초 늦게 갱신되는 대신 정확한 시각에 갱신되게 하는 방법을 찾아보면 됨. 이 과정에서 55초 타이머가 캐시 값을 설정하고 상태 표시줄이 그 값을 가져오는 등 여러 다른 시스템을 거치게 되고, 디스크의 적어도 세 군데쯤을 뒤지게 됨. ripgrep 같은 도구가 필요할 것이고, 결국 상태 표시줄 명령에 그냥 date +'%H:%M'를 넣고 date +'%-I:%M %P'로 바꾸면 안 됐나 싶어질 것임
      기능 면에서도 Android라면 그냥 되는 것들이 전혀 안 되거나, Phosh에서는 되는 것들도 부드럽게 동작하지 않는 경우가 있음. 대신 무언가를 작동시키는 방법만 알아내면 훨씬 더 잘 스크립트화할 수 있음. 개인 워크플로는 다른 어떤 운영체제보다 편하게 만들었지만, 그만큼 스크립트를 많이 짰음
      시간이 지나며 고쳐진 문제도 있고 새로 생긴 문제도 있지만, 전반적인 실제 품질은 여전히 낮은 편임. 그래도 계속 쓰고 있으니 어쩌면 마조히스트일지도 모르겠음
      결론적으로 sxmo/swmo를 추천할 만한 사람은 실제로 한 명도 떠오르지 않음. 다만 추천할 만한 유형이라면 이미 데스크톱에서 타일링 창 관리자를 쓰고 있고, 폰 자체에는 별 관심이 없는 사람일 가능성이 큼
  • 홈페이지에 45분 발표 대신 1~2분짜리 데모 영상이 있으면 개념을 훨씬 명확하게 전달할 수 있을 듯함

  • 마음에 듦. 모든 것이 셸 스크립트로 연결되어 있어서 취향을 타겠지만, 폰 UI를 빠르게 뜯어고칠 수 있다는 점이 좋음
    출퇴근 중 PinePhone 자체에서 알람 시계 스크립트를 작성했는데, 공개해야 함. 깊은 절전 상태에서 알람 직전에 깨어나 알람을 울리는 방식임
    RTC 깨우기를 설정하는 알람 시계 같은 기능은 아직 많이 빠져 있지만, 전반적으로 멋진 시스템이고 가까운 미래에 다시 쓰고 해킹해볼 생각임

  • FOSDEM에 가고 폰에서의 Linux에 관심이 있다면 개발자 룸 일정 [0]과 관련 부스 [1]를 확인하면 좋음
    [0]: https://fosdem.org/2024/schedule/track/foss-on-mobile-device...
    [1]: https://fosdem.org/2024/stands/

  • “Android 기기에서 돌아가는 커널은 커뮤니티가 유지보수할 수 없을 정도로 크게 수정되어 있다”는 말에는 동의하기 어려움
    Android는 메인라인 Linux 커널에서도 동작함. 커뮤니티가 이미 메인라인 커널을 유지보수할 수 있다면, Android 공통 커널에 포함된 210개짜리 패치 시리즈가 감당 불가능한 수준은 아닐 것임. 이것 때문에 Android의 가치를 전부 버리는 건 빈대 잡자고 초가삼간 태우는 격임
    Android에는 다중 창 지원이 있으니, 누군가 Android용 타일링 창 관리자를 구현하는 것도 합리적으로 보임

  • 이걸 일반 Intel/AMD 서버에서 실행한 뒤 xrdp/nx 세션으로 쓸 수 있는지 궁금함
    사회적 호환성과 좋은 카메라가 필요함. i3도 써봤지만 물리 키보드 없이 쓰기는 어려웠음

  • Sway 위의 SXMO 스타일을 바꾸고 싶다면, 예를 들어 메뉴 항목을 더 크게 만들어 손가락으로 누르기 쉽게 하거나, 한 줄에 더 많은 텍스트가 들어가도록 좁은 글꼴로 바꾸거나, 외관을 조정하려면 이 가이드가 유용함: https://porkyofthepine.org/blog/rice_sxmo_sway.html

    • Linux 폰 세션을 서버에서 돌리는 걸 이미 생각해봤고, 지금은 tmux+mosh만 쓰는 중임
      폰에서 실제로 잘 동작하는 디스플레이 관리자가 있으면 훨씬 나을 것 같고, 이게 그쪽으로 가는 데 도움이 될 수 있음
    • 스크린샷이 있으면 좋겠음
      SXMO에 대해 본 것들은 전부, 미감이나 사용성보다 Stallman식 자유를 더 중시하는 목수염 해커용이라는 인상을 줌
  • Google 앱을 꼭 돌릴 필요는 없다는 점은 좋음
    그래도 몇몇 핵심 은행 앱이나 홈 자동화 앱처럼, 별로 마음에 들진 않아도 필요한 앱에 접근할 수 있으면 정말 도움이 될 듯함

    • GNU/Linux 플랫폼, PinePhone 포함, 에서 Android 앱을 실행할 수 있게 해주는 Waydroid라는 소프트웨어가 있음
      Sxmo는 이름과 달리 X 대신 Wayland로 실행할 수 있어서 Waydroid를 지원함
      개인적으로는 Waydroid를 작동시키는 데 성공하지 못했는데, 초기 설정에 필요한 대용량 다운로드 때문에 더 어려웠음. 그래도 그렇게 열심히 시도한 건 아니고, 온라인에는 성공한 사람들의 영상도 있음
      [1]: https://waydro.id/
      [2]: https://tilvids.com/w/2b2f3a24-ae23-458e-a0fd-2f24a185a11b
    • 은행 앱은 “보안” 이유로 보통 루팅된 환경에서 실행되는 걸 싫어함. 우회할 방법이 있는지 궁금함
  • PmOS에는 두 가지 SXMO 변형이 있는 듯함
    sxmo-de-dwm: SXMO 기반이고 dwm에서 실행되는 Simple Mobile 모바일 환경
    sxmo-de-sway: SXMO 기반이고 sway에서 실행되는 Simple Mobile 모바일 환경

  • SXMO에 새로 생긴 게 뭔지 궁금함
    2021년 이후로 따라가지 못했는데, 이제 안정적으로 돌릴 만한 폰이 있는지 알고 싶음

    • 아마 PinePhone이 가장 안정적인 선택일 것임
      이 기기에서 쓰는 사람들을 몇 명 봤고, 최근 PinePhone 관련 스레드에서도 기본 Plasma의 좋은 대안으로 여러 번 언급됐음