Pop!_OS / COSMIC 데스크톱 관리 도구 — Rust + Iced GUI
흩어져 있던 Pop!_OS 유틸리티들을 하나의 앱으로 통합했습니다.
| 통합 레포 | 기능 |
|---|---|
| ime-manager | 한글 IME 관리 (Python → Rust 재작성) |
| kensington-trackball-linux | ktrackball 데몬 + USB 관리 |
| cosmic-files-copy-path | 탐색기 우클릭 '경로 복사' 항상 표시 |
| cosmic-three-finger-gesture | 3손가락 위 스와이프 → 워크스페이스 오버뷰 |
| kakaotalk-wine | KakaoTalk Wine 설치/실행 |
| popremover | APT·Flatpak 패키지 제거 (Python → Rust 재작성) |
- ibus / fcitx5 / kime 설치 상태 확인 및 전환
/etc/environment자동 업데이트dbus-update-activation-environment+ 데몬 재시작으로 재로그인 없이 즉시 적용- popmgr 시작 시 실행 중인 IME 데몬 자동 재연결 (Wayland 연결 끊김 방지)
- COSMIC 환경 권장 IME: kime
- 셸 init 충돌 진단:
~/.profile,~/.bashrc,~/.zshrc,~/.zprofile,~/.bash_profile에서 활성 IME와 모순되는GTK_IM_MODULE/QT_IM_MODULE/XMODIFIERS등 export 라인을 감지. "정리" 버튼으로 자동 백업 후 주석 처리. - snap 누출 감지: 현재 환경의
GTK_IM_MODULE_FILE이 snap 캐시(~/snap/.../immodules.cache)를 가리키면 경고. snap 앱이 띄운 셸에서 IDE 를 실행하면 시스템 GTK IM 모듈을 못 찾아 한글 입력이 깨지는 사고를 미리 차단. - LibreOffice 한글 입력 호환 모드: COSMIC Wayland에서 LibreOffice가 fcitx 입력 컨텍스트를 만들지 못하는 상태를 실행 프로세스에서 진단. 버튼 한 번으로 시스템 파일은 건드리지 않고 사용자 범위 desktop 런처에 X11/XIM 입력 경로를 적용하거나 해제.
- JetBrains IDE vmoptions 자동 패치:
~/.config/JetBrains/<IDE>/*.vmoptions파일들을 스캔해 XIM 안정화 옵션(-Dawt.toolkit.name=XToolkit,-Drecreate.x11.input.method=true) 누락 여부를 표시. "패치" 버튼으로 백업 후 자동 추가 — IntelliJ Ultimate 의XInputMethod.setXICFocusNative133초 freeze 같은 사고를 예방.
- USB 장치 전체 목록 (Kensington 트랙볼·Realforce 키보드 강조)
- USB 열거 실패 포트 감지 및 경고
- ktrackball 데몬 상태 표시 / 재시작
- 개별 장치 재인식 / 전체 USB 재인식
- xHCI 컨트롤러 리셋 (확인 다이얼로그 포함)
- Kensington 트랙볼의 Bluetooth/USB 전환 기능을 추가할 때는
docs/bluetooth-usb-trackball-notes.md참고
- 내장·외부 모니터 밝기 조절 (외부는 명암까지)
- 내장 디스플레이: logind
SetBrightness로 root 없이 백라이트 제어 (/sys/class/backlight) - 외부 모니터: DDC/CI(
ddcutil)로 제어 — COSMIC 상단바 밝기 슬라이더는 백라이트 sysfs만 읽어 외부 모니터가 누락되는 문제를 보완 - 슬라이더는 드래그 중 즉시 반영하고 놓을 때 적용 (ddcutil 호출 지연 회피)
- 재인식 버튼: 재부팅 후
i2c-dev모듈 미로드 등으로 외부 모니터가 안 보일 때 모듈 재로드 + udev 재트리거 - ddcutil 설치 시 udev 룰이 연결된 모니터 i2c 장치에 세션 사용자 ACL(uaccess)을 부여하므로 i2c 그룹 가입·재로그인 없이 동작. 미설정 시 "권한 설정" 카드 노출
- cosmic-files copy-path — 탐색기 우클릭에 '경로 복사' 항상 표시
- cosmic-comp 3-finger — 터치패드 3손가락 위 스와이프 → 워크스페이스 오버뷰
패치 적용 방식:
dpkg로 현재 설치된 버전의 커밋 해시 확인- GitHub에서 해당 커밋 타르볼 다운로드
patch -p1 --fuzz 5적용cargo build --releasepkexec로/usr/bin에 설치 (원본.bak백업)
시스템 업데이트 후 패치가 덮어쓰이면 "패치 적용"을 다시 누르세요. cosmic-comp 패치 적용 후에는 로그아웃 → 재로그인 필요.
- KakaoTalk Wine 설치 / 실행
- Orca 설치 — 공식 릴리스(
stablyai/orca)에서 최신.deb를 받아 설치하고 독 즐겨찾기까지 등록한다. 버전과 sha512는 릴리스의latest-linux.yml에서 읽으므로 새 버전이 나와도 그대로 동작한다. 네트워크가 막혔거나 이미 AppImage를 받아둔 경우에는 AppImage를~/Applications로 정리해 아이콘·바로가기·독에 등록하는 경로로 넘어간다. - APT·Flatpak 패키지 검색 및 일괄 제거
git clone https://github.com/eondcom/popmgr
cd popmgr
bash install.shinstall.sh가 다음을 순서대로 실행합니다:
- popmgr 빌드 →
~/.local/bin/popmgr설치 ~/.local/share/applications/com.eondcom.Popmgr.desktop등록- cosmic-files copy-path 패치 적용
- cosmic-comp 3-finger 패치 적용
# 빌드 의존성
sudo apt install libfontconfig1-dev libxkbcommon-dev curl patch
# 빌드
cargo build --release
# 실행
./target/release/popmgr
# 앱 런처 등록
cp com.eondcom.Popmgr.desktop ~/.local/share/applications/# cosmic-files 복구
sudo cp /usr/bin/cosmic-files.bak /usr/bin/cosmic-files
# cosmic-comp 복구
sudo cp /usr/bin/cosmic-comp.bak /usr/bin/cosmic-comp또는 popmgr COSMIC 탭에서 "패치 제거" 버튼 클릭 (apt-get install --reinstall).
커널 버전별 안정성 문제와 권장 버전은 docs/kernel-known-issues.md 에 기록한다.
새 커널 업데이트 후 시스템이 불안정해지면 이 문서를 먼저 확인하고 권장 버전으로 롤백한다.
- 현재 권장 커널:
7.0.9-76070009-generic - 회피:
7.0.11-76070011— slab shrinker 손상으로 반복 하드 프리즈 (6/12 업그레이드 회귀)
- 한글 IME 설정 가이드: cosmic-os-korean
- Kensington 트랙볼 Bluetooth/USB 조사 노트:
docs/bluetooth-usb-trackball-notes.md - 폰트: NanumSquare (UI) + NanumGothic (한글 폴백)
- 내장(logind)·외부(ddcutil DDC/CI) 모니터 밝기·명암 조절 탭 추가. 외부 모니터는 백라이트 sysfs가 없어 COSMIC 상단바에 안 뜨던 것을 보완.
- 외부 모니터 미인식 대비 '재인식' 버튼(i2c-dev 재로드 + udev 재트리거) 및 권한 미설정 시 '권한 설정' 카드 제공.
- 기본 글꼴을 NanumSquare Bold 페이스로 변경 — 라이트 테마에서 Regular 가 가늘어 흐려 보이던 문제 해결 (cosmic-text 0.12 는 합성 볼드 미지원이라 Bold ttf 임베드).
docs/kernel-known-issues.md신설. 커널7.0.11-76070011의 slab shrinker 손상 반복 프리즈 진단/롤백 절차 기록.- 이유: 6/12 커널 업그레이드(7.0.9→7.0.11) 직후부터
kswapd0 → shrink_slab경로에서 GPF 가 반복 발생해 하드 프리즈. 하드웨어 오류(MCE/EDAC) 없음 → 커널 회귀로 판정. 권장 커널7.0.9-76070009명시.
- 이유: 6/12 커널 업그레이드(7.0.9→7.0.11) 직후부터
~/.profile등 사용자 셸 init 파일의 IME export 충돌 감지/정리 추가.- 이유:
/etc/environment만 동기화하면 사용자가.profile에 손수 박은 옛 IME 변수(예: kime → ibus 전환 시 흔적)가 시스템 설정을 덮어쓰며 IntelliJ AWT 가 존재하지 않는 ibus XIM 서버에 133초 freeze 하는 사고가 발생.
- 이유:
- 현재 환경의
GTK_IM_MODULE_FILEsnap 누출 감지.- 이유: snap 으로 띄운 터미널 안에서 다른 앱을 실행하면 snap 컨테이너의 immodules.cache 가 부모로 누출돼 시스템 GTK IM 모듈을 못 찾는 사례 발견 (waveterm snap).
- JetBrains IDE vmoptions 자동 패치 (
~/.config/JetBrains/<IDE>/*.vmoptions).- 추가 옵션:
-Dawt.toolkit.name=XToolkit,-Drecreate.x11.input.method=true. - 이유: native Wayland IM 경로의 freeze 회피 + IME 데몬 재시작 후 입력 컨텍스트 재구성.
- 추가 옵션:
MIT