Skip to content

Latest commit

 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

popmgr

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 재작성)

기능

IME 탭

  • 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.setXICFocusNative 133초 freeze 같은 사고를 예방.

USB 탭

  • 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 트윅 탭

  • cosmic-files copy-path — 탐색기 우클릭에 '경로 복사' 항상 표시
  • cosmic-comp 3-finger — 터치패드 3손가락 위 스와이프 → 워크스페이스 오버뷰

패치 적용 방식:

  1. dpkg로 현재 설치된 버전의 커밋 해시 확인
  2. GitHub에서 해당 커밋 타르볼 다운로드
  3. patch -p1 --fuzz 5 적용
  4. cargo build --release
  5. pkexec/usr/bin에 설치 (원본 .bak 백업)

시스템 업데이트 후 패치가 덮어쓰이면 "패치 적용"을 다시 누르세요. cosmic-comp 패치 적용 후에는 로그아웃 → 재로그인 필요.

앱 관리 탭

  • KakaoTalk Wine 설치 / 실행
  • Orca 설치 — 공식 릴리스(stablyai/orca)에서 최신 .deb를 받아 설치하고 독 즐겨찾기까지 등록한다. 버전과 sha512는 릴리스의 latest-linux.yml에서 읽으므로 새 버전이 나와도 그대로 동작한다. 네트워크가 막혔거나 이미 AppImage를 받아둔 경우에는 AppImage를 ~/Applications로 정리해 아이콘·바로가기·독에 등록하는 경로로 넘어간다.
  • APT·Flatpak 패키지 검색 및 일괄 제거

설치

원클릭 설치 (popmgr + COSMIC 패치 자동 적용)

git clone https://github.com/eondcom/popmgr
cd popmgr
bash install.sh

install.sh가 다음을 순서대로 실행합니다:

  1. popmgr 빌드 → ~/.local/bin/popmgr 설치
  2. ~/.local/share/applications/com.eondcom.Popmgr.desktop 등록
  3. cosmic-files copy-path 패치 적용
  4. 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 업그레이드 회귀)

참고

변경 이력

2026-06-19 — 디스플레이 탭 신설 (모니터 밝기)

  • 내장(logind)·외부(ddcutil DDC/CI) 모니터 밝기·명암 조절 탭 추가. 외부 모니터는 백라이트 sysfs가 없어 COSMIC 상단바에 안 뜨던 것을 보완.
  • 외부 모니터 미인식 대비 '재인식' 버튼(i2c-dev 재로드 + udev 재트리거) 및 권한 미설정 시 '권한 설정' 카드 제공.
  • 기본 글꼴을 NanumSquare Bold 페이스로 변경 — 라이트 테마에서 Regular 가 가늘어 흐려 보이던 문제 해결 (cosmic-text 0.12 는 합성 볼드 미지원이라 Bold ttf 임베드).

2026-06-18 — 커널 알려진 문제 문서 추가

  • 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 명시.

2026-06-06 — IME 진단 확장

  • ~/.profile 등 사용자 셸 init 파일의 IME export 충돌 감지/정리 추가.
    • 이유: /etc/environment 만 동기화하면 사용자가 .profile 에 손수 박은 옛 IME 변수(예: kime → ibus 전환 시 흔적)가 시스템 설정을 덮어쓰며 IntelliJ AWT 가 존재하지 않는 ibus XIM 서버에 133초 freeze 하는 사고가 발생.
  • 현재 환경의 GTK_IM_MODULE_FILE snap 누출 감지.
    • 이유: 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

About

Pop!_OS 데스크톱 관리 도구 — IME·USB·COSMIC 패치·앱 관리 (Rust + Iced)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages