# 나는 Stanley Lieber를 죽이지 않았다: 9front로 그리는 법

> Clean Markdown view of GeekNews topic #31301. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31301](https://news.hada.io/topic?id=31301)
- GeekNews Markdown: [https://news.hada.io/topic/31301.md](https://news.hada.io/topic/31301.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-07-10T23:03:17+09:00
- Updated: 2026-07-10T23:03:17+09:00
- Original source: [triapul.cz](https://triapul.cz/automa/i_did_not_kill_stanley_lieber)
- Points: 1
- Comments: 1

## Topic Body

- 9front에서 그림을 그리는 전체 흐름을 `paint(1)` 중심으로 정리하며, **입력 장치 선택**부터 캔버스 관리, 이미지 조작, 내보내기까지 연결함
- 작업은 9front 내부 **image(6)** 형식에서 진행하고, `paint(1)`로 그린 뒤 `page(1)`, `crop(1)`, `vcrop(1)`, `resize(1)`, `rotate(1)`로 결과물을 조정하는 방식임
- `paint(1)`은 압력 감지, 레이어, 잘라내기/붙여넣기가 없어 사용자가 종이처럼 **작업 영역과 색상**을 직접 관리해야 함
- 마우스, 손가락, 펜, 외장 태블릿, drawterm/VNC 입력을 모두 다루지만, 펜 버튼은 마우스 클릭을 흉내 내므로 키보드와 마우스를 가까이 두는 구성이 실용적임
- 외부 공유에는 **PNG 변환**이 적합하며, PNG나 JPG는 `paint(1)`, `crop(1)`, `vcrop(1)`의 직접 편집 대상이 아니어서 필요하면 다시 9front image 형식으로 바꿔야 함

---

### 9front에서 그림을 그리기 위한 기본 구성
- 그림을 그리려면 “그릴 도구”와 “그릴 표면”이 필요하며, 9front에서는 실제 펜 입력 장치뿐 아니라 여러 입력 방식을 사용할 수 있음
- 9front가 실행되는 컴퓨터라면 `How to draw`를 따라 할 수 있고, 화면에 직접 그리는 기기를 원하면 Wacom 지원 2-in-1 노트북이 적합함
- 실제로 잘 동작한 장치 목록은 다음 ThinkPad 계열임
  - [ThinkPad X41t](https://plan9.stanleylieber.com/hardware/thinkpad/x41t/1866-9mu/)
  - [Thinkpad X60t, X61t](https://plan9.stanleylieber.com/hardware/thinkpad/x61t/)
  - [ThinkPad X380 Yoga](https://plan9.stanleylieber.com/hardware/thinkpad/x380/yoga/)
  - [ThinkPad X1 Yoga 3rd Gen](https://plan9.stanleylieber.com/hardware/thinkpad/x1/yoga/g3/)
  - [ThinkPad X1 Titanium Yoga](https://plan9.stanleylieber.com/hardware/thinkpad/x1/titanium/yoga/)

### 입력 장치별 특성
- **마우스 드로잉**은 오래된 방식이지만, 마우스가 있는 모든 컴퓨터와 호환된다는 장점이 있음
- **손가락 입력**은 화면 터치가 왼쪽 마우스 클릭을 흉내 내지만 다른 클릭은 대체하지 못해 마우스를 가까이 둬야 함
- 외장 태블릿은 화면이 있는 제품은 9front에서 동작하지 않을 가능성이 있고, 화면 없는 제품은 동작할 수 있음
  - 추천 장치는 **GAOMON S620**이며, 9front에서 플러그 앤 플레이로 잘 동작함
  - Wacom CTL-672는 상대 좌표 터치패드처럼 동작함
  - Wacom CTL-490은 동작하지 않음
  - 관련 정보는 [[fqa] 3.2.4 - Tablet Digitizers](https://fqa.9front.org/fqa3.html#3.2.4)에 있음
- 키보드만으로 제대로 그리기는 어렵지만, `paint(1)` 작업에는 키보드가 필요함
  - 물리 키보드 접근이 어려운 태블릿 컴퓨터나 특수 환경에서는 `bitsy/keyboard` 온스크린 키보드를 사용할 수 있음
  - 실행 예시는 `rio -k 'bitsy/keyboard -n'`
- **drawterm/VNC**를 쓰면 원격 또는 가상 9front 컴퓨터에 접속해 더 다양한 입력 장치를 사용할 수 있음
  - Android 전화에서 손가락으로 그리거나, Linux와 MacOS에서 마우스로 그리거나, Windows에서 9front가 직접 지원하지 않는 입력 장치를 사용할 수 있음
  - 관련 사이트는 [drawterm.9front.org](https://drawterm.9front.org/)

### image(6) 형식과 paint(1)의 전제
- 9front의 그리기, 자르기, 이미지 조작은 내부 **image(6)** 형식 파일에서 수행됨
- 그림을 만드는 동안에는 형식을 크게 신경 쓰지 않아도 되지만, 외부에 공유하려면 다른 형식으로 변환해야 함
- 파일 이름은 `file.pic` 같은 방식을 예로 들지만, 원하는 이름을 붙일 수 있음
- 이 안내는 9front의 여러 그리기 프로그램 중 **`paint(1)`** 만 다룸
- `paint(1)`은 일반적인 디지털 드로잉 프로그램보다 종이, 잉크, 색으로 그리는 작업에 더 가까운 방식으로 접근해야 함

### paint(1)의 제한과 기본 조작
- 펜과 태블릿 버튼은 마우스 입력을 흉내 내며, 안내에서는 모두 마우스 조작으로 표현함
  - 화면 위에 떠 있는 상태는 마우스 이동
  - 표면을 터치하면 왼쪽 클릭 또는 누르고 있기
  - 이상적인 펜은 가운데 클릭과 오른쪽 클릭을 위한 버튼 2개를 가짐
  - 오른쪽 클릭만 되는 버튼이 있으면 Shift를 누른 채 버튼을 눌러 가운데 클릭을 흉내 낼 수 있음
- `paint(1)`과 9front는 **압력 감지**를 지원하지 않음
- 레이어와 잘라내기/붙여넣기도 없으며, 그린 그대로 결과물이 됨
- 저장과 열기는 키 입력으로 수행함
  - `w`: 파일 저장
  - `r`: 파일 열기 또는 다시 읽기
  - `|`: 현재 캔버스를 명령으로 파이프해 변환
  - `< command`: 명령 결과를 `paint(1)`로 읽어 현재 캔버스를 대체
  - `> command`: 현재 캔버스를 명령으로 넘겨 파일에 쓰기
- 예시 작업은 다음과 같음
  - `| rotate -u`: 캔버스 회전
  - `< crop -i -50 glenda.pic`: `glenda.pic`에 50픽셀 검은 테두리를 추가해 열기
  - `> crop -i -50 | rotate -r 90 > modified_glenda.pic`: 현재 캔버스에 테두리를 추가하고 90도 회전해 저장

### 캔버스는 픽셀이 찍힌 범위로 결정됨
- `paint(1)`에서 캔버스는 그림을 포함하는 직사각형 영역임
- 시작 직후의 흰 창은 비어 있는 파일이며, 첫 픽셀을 그리거나 지운 뒤에야 캔버스가 만들어짐
- `paint(1)`은 가장 멀리 놓인 픽셀을 캔버스의 경계로 간주함
  - 창 크기는 캔버스 크기를 결정하지 않음
  - 지우개로 지운 픽셀도 픽셀을 놓은 것으로 취급됨
- 처음 만든 `paint(1)` 창 크기를 **작업 캔버스**처럼 생각하고 모서리에 자르기 표시를 그린 뒤 작업하는 방식이 권장됨
- 정확한 크기의 그림이 필요하면 별도 절차로 고정 크기 캔버스를 만들고, 작업 후 자르기 계산이나 여백 제거를 해야 함

### paint(1)의 주요 도구
- 도구 선택은 하단 툴바를 왼쪽 마우스로 클릭해 수행함
- 색상
  - 왼쪽 클릭으로 색을 선택함
  - 툴바 색상을 오른쪽 클릭하면 16진수 코드를 입력해 팔레트를 바꿀 수 있음
  - `paint(1)`은 종료 후 팔레트를 기억하지 않으므로 새 창을 열 때마다 다시 바꿔야 함
  - 16개보다 많은 색을 쓰려면 여러 `paint(1)` 창에서 같은 그림 파일을 열고 `w`와 `r`로 동기화할 수 있음
- 브러시
  - `0-9` 또는 왼쪽 마우스로 브러시 크기를 고르고 드래그해 그림
- 채우기
  - `f`, `c`, 왼쪽 마우스, 가운데 마우스를 사용함
  - 같은 색으로 이어진 픽셀 영역을 다른 색으로 바꿈
  - 배경색 변경에도 쓰이며, 배경색은 지우개가 바꾸는 색이 됨
  - `c`는 모든 것을 제거하고 선택한 색을 배경으로 바꿔 빈 파일 상태로 만듦
- 지우개
  - `0-9`, 가운데 마우스를 사용함
  - 현재 브러시 크기와 같은 크기로 커서 아래를 배경색으로 바꿈
- 직선과 원
  - 직선은 자를 사용함
  - 원은 납작하고 둥근 물체나 양파지에 컴퍼스로 미리 그린 원을 따라 그리는 방식을 사용함
- 이동, 확대, 되돌리기
  - 오른쪽 마우스를 누르고 움직이면 패닝함
  - `-`, `+`로 확대/축소하지만 원래 확대 수준보다 더 멀리 축소할 수 없음
  - `Esc`는 확대를 초기화하고 캔버스를 가운데로 맞춤
  - `u`는 마지막 연속 선분을 되돌리며, 긴 선 하나도 여러 undo 단계로 나뉠 수 있음

### 가짜 레이어와 색상 기반 제거
- `paint(1)`에는 레이어가 없지만, 실제로 쓰지 않을 색으로 스케치한 뒤 그 위에 선을 그리는 방식으로 **가짜 레이어**를 만들 수 있음
- 예시에서는 HotPink를 스케치 색으로 쓰고, 완료 후 해당 색만 제거함
- 수동으로 채우기나 정밀 지우개를 쓰면 오래 걸릴 수 있어 `pico`로 특정 색을 배경색으로 치환하는 방식이 유용함
- `pico`는 다음 명령으로 받을 수 있음
  - `git/clone https://github.com/qwx9/pico`
- 관련 설명은 [Image Manipulation on Plan 9 Using pico](http://nopenopenope.net/posts/pico)에 있음
- HotPink `#ff5fd7`의 10진수 RGB 값은 `255, 95, 215`이며, `pc(1)`로 변환하는 예시를 포함함

### page(1), crop(1), vcrop(1), resize(1), rotate(1)
- `page(1)`은 문서 뷰어이며, 여러 이미지 형식, PDF, 전자책 등을 표시하는 데 쓰임
  - `page my_picture.pic`로 그림을 볼 수 있음
  - 이미지 조작 결과를 파일로 쓰기 전에 `page(1)`로 확인하는 습관이 권장됨
  - `page(1)`에서도 `w`를 눌러 표시 중인 결과를 파일로 저장할 수 있음
- `paint(1)` 창보다 그림이 커졌다면 별도 `page picture.file` 창을 만들고 `fit width`나 `fit height`로 미리보기 창처럼 사용할 수 있음
- `vcrop(1)`은 그래픽 자르기 도구임
  - 왼쪽 마우스로 패닝
  - 가운데 마우스로 자르기 도구 선택
  - 오른쪽 마우스로 저장 등 옵션 표시
  - 확대가 안 되므로 창보다 큰 영역을 자르거나 픽셀 단위 정밀 자르기가 필요할 때는 한계가 있음
- `crop(1)`은 픽셀 줄을 제거하거나 추가함
  - `crop -x 50 mypic.pic > mypic_crop.pic`: 좌우에서 50픽셀 자르기
  - `crop -i -10 -b 255 255 255 mypic.pic`: 10픽셀 흰 테두리 추가
- `resize(1)`는 그림을 크게 또는 작게 만듦
  - 원본 비율을 유지하려면 `-x`나 `-y` 중 하나만 지정함
  - 예시: `resize -n -y 245 mypic.pic > mypic_resized.pic`
- `rotate(1)`는 이미지를 90도 단위로 회전할 수 있음
  - `rotate -r 90 my.pic > rotated.my.pic`
  - `rotate -ul > flipped.my.pic`

### 정확한 캔버스 크기 만들기와 자르기 전략
- 정확히 250x250 같은 크기가 필요하면 빈 이미지를 만들고 `resize(1)`로 원하는 크기를 만든 뒤 `paint(1)`로 여는 절차를 사용함
  - `w empty_canvas.pic`
  - `resize -n -x 250 -y 250 empty_canvas.pic > empty_canvas_250x250.pic`
  - `cp empty_canvas_250x250.pic mypicture.pic`
  - `paint mypicture.pic`
- `paint(1)`은 캔버스 경계를 넘어 그리는 것을 막지 않고, 경계를 넘으면 그림 크기를 확장함
- 선택지는 세 가지임
  - 경계를 넘은 선을 신경 쓰지 않고, 작업 후 수학적으로 잘라냄
  - 작업 전 여분의 균등 여백을 추가하고, 완료 후 제거함
  - 모서리에 자르기 표시를 그려 두고 나중에 자름
- `crop -r a b c d`는 이미지의 절대 좌표를 이용해 자르며, `dd -bs 128 -count 1`로 좌표를 확인할 수 있음
- 여백 방식은 예를 들어 250x250 흰 캔버스에 25픽셀 빨간 여백을 붙여 작업한 뒤, 끝나면 `crop -i 25`로 제거해 정확한 250x250 결과를 얻음

### 트레이싱과 팔레트
- 인터넷 이미지를 가져와 9front 형식으로 변환한 뒤, `pico`로 밝게 만들어 `paint(1)`에서 따라 그릴 수 있음
  - 예시: `hget http://img.triapul.cz/fahwui.jpg | jpg -c9 > to.trace.pic`
  - `pico`에서 `z == 3 ? Z : (im + Z) / 2`로 이미지를 밝게 만듦
- `paint(1)`에서 HotPink 같은 특정 색으로 선을 따라 그린 뒤, `pico`로 그 색만 남기고 나머지를 흰색으로 바꿀 수 있음
- 팔레트 관련 자료로 [git.sr.ht/~amavect/makeu](https://git.sr.ht/~amavect/makeu)가 있음

### 외부로 내보내기와 공유
- 9front에서 그린 이미지는 사실상 픽셀 아트이므로 **PNG**로 변환하는 것이 권장됨
- PNG는 JPG보다 항상 더 작고 선명하며, `paint(1)`에서 보이던 그대로 보인다고 정리함
- PNG나 JPG 같은 다른 형식은 `paint(1)`, `crop(1)`, `vcrop(1)`에서 직접 다룰 수 없지만 `page(1)`로 표시할 수 있음
- 원본을 잃어버렸다면 PNG를 다시 9front 형식으로 변환해 편집할 수 있음
  - `png -c9 my_picture.png > my_picture.pic`
- 결과물을 다른 기기로 옮기는 방법은 단순한 것부터 복잡한 것까지 다양함
  - `page(1)`로 열고 휴대폰으로 화면을 촬영
  - FAT USB 드라이브를 연결해 `/shr/sdS0M3TH1NG`로 복사
  - `sshfs(4)`로 Unix 컴퓨터에 전송
  - Unix 컴퓨터에서 drawterm으로 접속해 `/mnt/term/some/where`로 복사
  - `mothra(1)`로 snac에 게시
  - 9front 컴퓨터에서 자신에게 이메일 전송
  - 9front 안의 가상 머신으로 `sshfs(4)` 전송
  - 9front 웹서버에 복사한 뒤 다른 장치에서 다운로드

## Comments



### Comment 61557

- Author: neo
- Created: 2026-07-10T23:03:19+09:00
- Points: 1

###### [Lobste.rs 의견들](https://lobste.rs/s/3eo2nv/i_did_not_kill_stanley_lieber_how_draw_with) 
- Plan 9과 9front는 늘 **매력적**이라고 느꼈고, 9front의 유머 감각은 예전 웹을 떠올리게 함 :) 이것도 예외가 아님
  - **편안한 시스템**임  
    9front의 Mothra에서 작성함
- 드로잉 태블릿 위에서 자로 직선을 긋는 건 묘하게 **즐거운 혼돈**이 있는데, 왜 나쁜지는 잘 설명하기 어려움. 애초에 나쁜지도 모르겠음  
  어쩌면 자연스러운 미세한 변화가 Bresenham 선보다 더 보기 좋게 만들 수도 있음  
  그래도 컴퍼스를 태블릿 표면에 바로 대지 않고 양파지 위에 쓴 건 다행임
  - 천천히 그리면 특히 어느 정도 [**인위적인 물결**](https://lh5.googleusercontent.com/-BpQgRFG5qZw/VWRFb74OXxI/AAAAAAAA5WI/HuTCd_HVwFA/w990/microsoft-surface-3-img-10.png)이 생기기 쉬움  
    다만 대부분은 의식하고 피하면 되는 문제라, 인위적인 정밀도보다 **물리적 가이드**를 쓰는 걸 강하게 추천함
  - [학교 때 쓰던 컴퍼스](https://www.franz-stadlhofer.at/shop/wp-content/uploads/2015/01/products-Zirkel-stift.jpg)는 그리는 쪽을 아무 펜으로나 바꿀 수 있었음  
    바늘 쪽을 코르크 와인 마개 조각에 꽂으면 괜찮게 동작할 것 같음 :^)
- @pmjv, triapul.cz와 stanleylieber.com **밈플렉스**가 둘 다 당신 거라고 치면… 시간을 대체 어떻게 내는 거임?!
  - 둘 다 같은 사람이 아님!
