Blackbox 가이드
Blackbox 가이드
Maintained by The BB.Themes.Org Staff (
blackbox@themes.org)
Blackbox version 0.51.0, Guide version 1.0, 17 August 1999
송재경(
ssaky@infomind.co.kr)
2000년 4월 8일
블랙박스는 버전 11 릴리즈 6 또는 그 이상의 Open Group's X Window System의 또 다른 윈도우매니져로서 C++로 만들어졌으며, 다른 어떤 윈도우매니저와도 공통적인 코드를 사용하지 않았다. (그래픽적인 성취도가 윈도우메이커의 그것과 비슷하게 보일지는 모르겠지만...). 블랙박스는 Bradley T. Hughes (
bhughes@tcac.net)에 의해 쓰여졌다.
블랙박스는 버전 11 릴리즈 6 또는 그 이상의 Open Group's X Window System의
또 다른 윈도우매니져로서 C++로 만들어졌으며, 다른 어떤 윈도우매니저와도
공통적인 코드를 사용하지 않았다. (그래픽적인 성취도가 윈도우메이커의
그것과 비슷하게 보일지는 모르겠지만...). 블랙박스는 Bradley T. Hughes (
bhughes@tcac.net)에 의해 쓰여졌다.
이 문서는 블랙박스의 개발자 Bradley T. Hughes
(
bhughes@tcac.net)의 협조로
Gregory J. Barlow
(
barlowg@themes.org) 와
Charles Nusbaum (
pax@themes.org)에
의해 유지된다.
The BB.Themes.Org
Staff is:
만일 당신이 The Blackbox Guide 에 기여하고자 한다면
pax@themes.org 로 이메일을 보내주기 바란다.
블랙박스는
ftp://blackbox.wiw.org/pub/blackbox/에서 다운받을 수 있다.
다운을 받았다면 컴파일을 수행할 디렉토리로 옮기고 다음과 같이 압축을 푼다.
tar -zxvf blackbox-x.xx.x.tar.gz
압축이 모두 풀리면 (화면에 뿌려지는 디렉토리와 파일이름이 멈추고 프롬프트가 다시 나오면 끝난것이다.), 생성된 디렉토리로 이동한다.
간단하게 블랙박스를 컴파일하는 방법은 다음과 같다.:
- 블랙박스의 소스 디렉토리로 이동하여 당신의 시스템에 맞게 패키지를 구성하기위해 configure 를 실행한다.
./configure
만일 당신이 System V 의 구버전상에서 csh
을 사용하고 있다면
csh
이 자기 자신의 configure를 실행하지 않도록 sh ./configure
를 이용해야 할것이다.
configure
에는 시간이 조금 걸리며 수행중에 어떤것을 체크하는지 보여준다.
- 패키지의 컴파일을 위해
make
명령을 실행한다.
- 프로그램과 데이타 파일, 문서의 인스톨을 위해
make install
을 실행한다.
- 소스 코드가 있는 디렉토리에서 컴파일시 생성된 바이너리와 오브젝트
파일을 지우고 싶다면
make clean
를 실행하여 지울 수 있으며, configure
로
생성된 파일들은 make distclean
로 지울 수 있다.
자, 다시한번 블랙박스를 컴파일하는 방법을 정리해보면 :
./configure (or sh ./configure)
make
make install
그리고 선택사항이다. :
make clean
make distclean
configure
쉘 스크립트는 컴파일시 사용되는 시스템 종속적인 여러 변수들의 올바른 값을 추정한다. 이것은 블랙박스의 각 소스 트리의 Makefile
을 생성하는데 사용되어진다.
마지막으로, 나중에 현재설정을 다시 생성할때 사용할 수 있는
config.status
,
재설정시 속도를 높일 수 있도록 테스트 결과를 저장한 config.cache
,
configure
의 디버깅시 유용하게 사용되어지는 컴파일 결과값을 포함하는
config.log
가 생성된다.
만일 블랙박스를 컴파일하는 중에 문제가 발생하면, 다음 릴리즈에서 고려되어질 수 있도록
bhughes@tcac.net 로 메일을 보내주기 바란다.
configure.in
파일은 autoconf
프로그램을 통하여 configure
를 생성할때 사용되어진다. 변경 및 새로운 버전의 autoconf
를 이용하여 configure
를 재생성하는데에는 configure.in
파일 만이 사용된다.
어떠한 시스템에서는 configure
스크립트가 알지못하는, 컴파일과 링크작업시 필요한 특별한 옵션을 요구한다. 이때에는 환경에 맞게 configure
에 변수의 초기값을 주어야 한다.
본쉘계열을 사용한다면 다음과 같이 설정을 한다.
CC=c89 CFLAGS=-O2 LIBS=-lposix
./configure
env
프로그램을 가지고 있는 시스템에서는 다음과 같이 사용할 수 있다.
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s
./configure
블랙박스는 X11R6의 XShape 확장을 지원한다. 이것은 기본 설정으로 되어있지만
이 설정값을 무시하려면 configure 시 --disable-shape
옵션을 주면 된다.
블랙박스는 KDE protocol/extensions의 최소 집합을 지원한다.
이 지원사항은 기본적으로는 지원되지 않으며 --enable-kde
으로 지원가능토록 할 수 있다.
블랙박스는 Slit이라 불리는 장치로 윈도우메이커 dockapps를 지원한다.
(주의사항 : 윈도우메이커에서 블랙박스로의 재시작 시에는 dockapps가 정확히 동작하지 않을 수도 있다.) Slit 기능은 기본적으로 제공되며
--disable-slit
로 지원하지 못하도록 할 수 있다.
블랙박스는 "faked interlacing"라고 불리는 렌더링 효과를 지원한다.
이것은 기본값으로 설정되어 있으며 `--disable-interlace' 옵션을 주어 무시할 수 있다.
또한, configure
는 자동적으로 X include 와 library files를 찾지만
--x-includes=DIR
와 --x-libraries=DIR
옵션으로 수동적으로
디렉토리를 지정해줄 수 있다.
이번 장에서는 블랙박스의 기본적인 사용법에 대해 설명한다.
블랙박스에는 실행시 줄 수 있는 몇개의 명령행 옵션이 있다.
blackbox -display [display]
는 블랙박스를 특정한 화면으로 띄워준다.
(예 :1.0). blackbox -version
은 블랙박스의 버전을 보여준다.
blackbox -help
는 블랙박스에서 사용되는 명령행 옵션을 보여준다.
그리고 0.51 버전부터 blackbox -rc [file]
로 /.blackboxrc 이외의
다른 설정파일을 지정하여 블랙박스를 실행할 수 있다.
다른 윈도우매니저와 같이, 윈도우창을 조작하는데 사용되는 툴은 창의 상단에 위치한 main window bar이다. 이 main window bar는 창의 제목을 보여주며
최소화,최대화,창 닫기 의 세가지 버튼을 가지고 있다.
최소화 버튼은 막대의 왼쪽에 위치하며 나머지 두개의 버튼은 오른쪽에 붙어있다.
창은 풀스크린, 수직, 수평으로의 확대가 가능한데,
최대화 버튼을 마우스 왼쪽 클릭하면 화면전체를 덮는 풀스크린으로 커지며,
가운데 버튼으로 클릭하면 수직으로 길어진다. 그리고 오른쪽 클릭으로 창을
수평으로 길게 늘릴 수 있다.
main window bar를 더블클릭을 하면 창이 숨겨진다.
main window bar에서 오른쪽 마우스 클릭시 다음과 같은 메뉴를 통해
더욱 많은 조작을 할 수 있다.
Send To ...
(Un)Shade
Iconify
(Un)Maximize
Raise
Lower
(Un)Stick
Close
Kill Client
Send To ...
메뉴는 데스크탑의 이름을 선택하여 창을 해당 데스크탑으로 이동시킬 수 있도록 한다.
프로그램을 완전하게 종료시켜버리는 Kill Client
외에는 이름을 보면 어떠한 일을 하는지 알 수 있을것이다.
창은 main window bar 또는 윈도우를 감싸고 있는 프레임의 어느 한부분을
마우스 클릭을 유지한채 드래그 함으로써 움직일 수 있다.
윈도우창을 움직이면 윈도우창의 좌상단 모서리의 좌표가
화면 중앙에 나타나게 될 것이다.
창의 크기 조정은 윈도우창의 오른쪽 아랫부분을 마우스 클릭후 드래그하면
된다. 이때는 창의 크기가 화면 가운데 나타날 것이다.
툴바는 현재 작업공간의 이름, 초점을 갖는 윈도우창의 이름, 시간, 작업공간을
이동할 수 있도록하는 버튼을 제공한다.
툴바의 제일 왼쪽에 보이는 라벨이 현재 작업공간의 이름을 나타낸다.
이 이름을 바꾸고 싶다면, 라벨 위에서 마우스 오른쪽 클릭 후 원하는 이름을 쓰고
엔터키를 누르면 된다.
만일 이름을 바꾸고 싶지 않은데 실수로 마우스 오른쪽 버튼을 클릭했다면
그냥 엔터를 치면된다. 이름은 변하지 않을것이다.
이 이름 라벨 옆에 보이는 버튼은 작업공간을 바꿀때 사용되어진다.
작업공간에 대해 더욱 자세한 설명은 다음에 나오는 Workspaces
를 보자.
버튼 옆에 보이는 라벨은 현재 초점을 가지고 있는 창의 이름을 보여준다.
이 라벨 옆에 보이는 버튼은 현재의 작업그룹에 있는 창에 순차적으로 초점을 준다. 이 버튼 옆에는 시계가 있다.
시계의 설정에 대해서는 4. 기본적인 설정
을 참고하기 바란다.
기본적으로 툴바는 모든 창보다 상위에 위치한다.
이것이 싫다면 툴바를 가운데 버튼으로 클릭하시라.
블랙박스에는 세가지 기본적인 메뉴 - 윈도우 메뉴, 작업공간 메뉴,
root 메뉴가 있다.
앞의 Windows
절에서 본 윈도우 메뉴는 윈도우창의 프레임을 오른쪽 클릭하면 나타나며 개인적인 설정이 불가능하다.
작업공간 메뉴는 root window (역자: 바탕화면이라고 생각하면 됩니다.) 에서
가운데버튼 클릭으로 볼 수 있으며, 모든 작업공간의 이름과 각 작업그룹에
있는 윈도우창의 목록을 볼 수 있다.
작업공간이외에 또다른 목록을 볼 수 있는데, 여기에는 최소화 또는 아이콘화
되어있는 윈도우창을 보여준다.
여기서 새로운 작업공간의 추가 및 삭제도 가능하다.
작업공간 메뉴 또한 사용자가 개인적으로 설정할 수 없다.
root 메뉴는 root window 에서 오른쪽 클릭함으로써 나타낼 수 있으며, 유일하게
사용자가 설정을 할 수 있는 메뉴이다.
이 메뉴에서 프로그램 실행, 재설정, 윈도우 매니저 재시작, 스타일 (역자: 일종의
블랙박스의 테마라고 생각하면 됩니다.) 바꾸기, 블랙박스 종료를 할 수 있다.
root 메뉴의 설정은 5. 메뉴 설정
에서 자세히 설명하도록 한다.
작업공간 메뉴와 root 메뉴는 둘다 열어둔 상태로 두거나, 열린상태에서 위치를
이동시킬 수 있으며, 열려진 메뉴를 닫을때는 메뉴의 제목줄에서 오른쪽 클릭하거나
root window에서 마우스 왼쪽 클릭을 하면 된다.
대부분의 윈도우 매니저와 같이, 블랙박스 또한 여러개의 작업공간을 사용할 수 있다.
작업공간 간의 이동은 여러가지 방법으로 가능하다.
툴바의 왼쪽에 위치한 버튼으로 작업공간을 순환적으로 바꿀 수 있다.
또한 키 바인딩으로도 가능한데, ~/.blackboxrc
에서 바인딩을 설정하며,
이 설정법은 4.기본적인 설정
에서 다루기로 한다.
기본적으로는 CTRL 과 좌/우 화살표 키로 작업공간을 바꿀 수 있다.
마지막 방법은 root window에서 마우스 가운데 버튼 클릭으로 나타나는
작업공간 메뉴에서 선택하여 이동하는 방법이 있다.
작업공간의 추가 및 삭제 또한 같은 메뉴를 사용한다.
작업공간의 이름을 바꾸고 싶다면, 해당 작업공간으로 이동한 후
툴바의 제일 왼쪽의 이름라벨에서 마우스 오른쪽 클릭 후 새 이름을 쓰고
엔터를 치면 된다.
블랙박스의 거의 모든 기본적인 설정은 ~/.blackboxrc
에서 한다.
이 파일은 블랙박스를 한번 실행한 후 종료하거나 재시작하면 생성된다.
이 장의 나머지 부분은 ~/.blackboxrc
의 유용한 옵션을 보고, 그 설정법을
알아본다. 아래는 ~/.blackboxrc
의 예이다. :
session.screen0.workspaces: 1
session.screen0.toolbarOnTop: False
session.screen0.toolbarWidthPercent: 66
session.screen0.windowPlacement: SmartPlacement
session.screen0.slitPlacement: CenterRight
session.screen0.focusModel: SloppyFocus
session.screen0.strftimeFormat: %I:%M %p
session.screen0.workspaceNames: Workspace 1
session.menuFile: /usr/local/share/Blackbox/menu
session.windowCycleModifier: Mod1
session.colormapFocusModel: Click
session.colorsPerChannel: 4
session.doubleClickInterval: 250
session.workspaceChangeModifier: Control
session.autoRaiseDelay: 250
session.styleFile: /usr/local/share/Blackbox/styles/default
session.imageDither: True
session.moveStyle: Opaque
- session.menuFile
-
이 변수의 초기값은 DEFAULTMENU
(config.h에서 위의 예와 같이 설정될것이다.) 이다. 가능한 값은 <(/path/to/menu/file)>
로 메뉴 설정파일의
위치를 지정한다. 메뉴 설정파일에 대해서는 5장에서 자세히 다루도록 한다.
- session.styleFile
-
이 변수의 초기값은 DEFAULTSTYLE
(config.h에서 위의 예와 같이
설정될것이다.) 로 가능한 값은 <(/path/to/style/file)>
이다.
이 변수는 스타일 설정파일의 위치를 지정하는 것으로 6장에서 자세히 다루도록
하겠다.
- session.colormapFocusModel
-
이 변수의 기본값은 Click
으로 가능한 값은 <[Click|FollowsMouse]>
이다.
이 변수는 colormap focus model을 설정하는것으로, 이것은 어떻게 어플리케이션이
colormap 을 갖게 하는가를 정의한다.
- session.doubleClickInterval
-
이 변수의 기본값은 250
으로 유용한 값은 <(number)>
이다.
이 변수는 마우스의 더블클릭 간격을 milliseconds 값으로 설정한다.
다르게 설명한다면 더블클릭을 완성하기 위하여 두번째 클릭을 얼마나 오랫동안
기다릴것인가를 나타낸다.
- session.colorsPerChannel
-
기본값은 4
로서 가능한 값은 <(<2, 2|>6, 6|number)>
이다.
이것은 블랙박스가 X server에서 얼마나 많은 컬러를 가상 디스플레이로 가져오게
하는가를 나타낸다. 채널은 red, green, blue를 나타내며, 이는 블랙박스가
변수값^3의 컬러를 쓸 수 있음을 나타낸다.
- session.imageDither
-
이 변수의 기본값은 True
로 <[True|False]>
둘 중 하나의 값을 갖는다.
True
값을 사용하면 이미지를 부드럽게 나타낸다.
- session.autoRaiseDelay
-
기본값은 250
으로 <(number)>
의 값을 갖는다.
auto raise는 마우스 커서가 창위에 있을때 주어진 값(milliseconds) 후에 자동으로
창이 화면의 맨 앞으로 나오게 하는 것으로, 이 변수는 auto raise까지 대기하는 시간을 지정하는것이다.
이 변수는 session.screen0.focusModel과 결합되어 사용되어진다.
- session.moveStyle
-
기본값은 False
로 <[Opaque|Not There]>
의 값을 가질 수 있다.
이 변수는 창을 이동시킬때 어떤 모양으로 이동되게 하는가를 정의하며
특정값이 없을 때 (기본값으로 둘 경우) 에는 창의 외곽선만 움직이며
Opaque
로 설정하면 움직일때 창의 모든 내용을 보여주며 움직인다.
- session.workspaceChangeModifier
-
기본값은 Control
이고 <[Shift|Lock|Control|Alt|Mod2|Mod3|Mod4|Mod5]>
값을 가질 수 있다.
이 변수는 작업공간을 움직일때 사용할 키값을 정하는 것으로, 좌/우 화살표키와 결합되어 작업공간을 이동하게 된다.
- session.windowCycleModifier
-
기본값은 Mod1
이고 사용가능한 값은 <[Shift|Lock|Control|Alt|Mod2|Mod3|Mod4|Mod5]>
이다.
이 변수값은 윈도우창을 순환하는 키를 정의하는 것으로, 좌/우 화살표키와 결합되어 화면에 떠있는 창에 차례로 초점을 준다.
- session.screen0.workspaceNames
-
기본값은 Workspace 1, Workspace 2, ...
이고,
가능한 값은 <(comma-separated list of workspace names)>
이다.
이 변수는 툴바에 보여지는 작업공간의 이름을 정의한다.
- session.screen0.strftimeFormat
-
이 변수의 기본값은 %I:%M %p
이며 가능한 값은
<(format strings from the date function -- man date)>
이다.
이 변수는 툴바에 나타나는 시간의 포맷을 정한다.
- session.screen0.focusModel
-
이 변수의 기본값은 SloppyFocus
이고, 가능한 값은
<[SloppyFocus|ClickToFocus|AutoRaiseSloppyFocus]>
이다.
SloppyFocus
는 마우스 커서의움직임에 따라 창이 초점을 얻게되지만
창이 화면 앞으로 나오지는 않는다. ClickToFocus
는 마우스로 클릭할 시에
초점을 얻으며 창이 화면 앞으로 나오지 않는다. AutoRaiseSloppyFocus
는
마우스 커서가 놓이면 초점을 가지며 session.autoRaiseDelay
에서
정의된 시간(milliseconds) 후에 창이 화면의 맨 앞으로 나오게 된다.
- session.screen0.toolbarWidthPercent
-
기본값은 66
이고, <(percent)>
의 값을 갖는다.
이 변수는 툴바의 길이를 화면길이의 몇 퍼센트 길이로 갖게 하는가를 정한다.
일반적으로 0
값을 주었다고 툴바가 사라지지는 않는다.
(역자 : 0값을 주면 기본값인 66으로 자동으로 변합니다.)
- session.screen0.toolbarOnTop
-
기본값은 False
로 <[True|False]>
두가지값중 하나를 갖는다.
이것은 툴바가 다른창에 가려지지 않게 화면의 맨 앞으로 나오게 할 것인가, 아니면 다른 창에 가려질 수 있게 할것인가를 정한다.
- session.screen0.workspaces
-
기본값은 4
로 <(number)>
의 값을 가질 수 있다.
이 값은 블랙박스가 몇개의 작업공간을 가지게 할 것이가를 정의한다.
이 숫자는 session.screen0.workspaceNames
에서 정의한
작업공간의 이름 수와 일치하여야 한다.
- session.screen0.windowPlacement
-
이 변수의 기본값은 SmartPlacement
이며, 선택할 수 있는 값은
<[SmartPlacement|CascadePlacement]>
이다.
이 변수는 새로운 창이 나타날때, 그 창의 화면상의 위치를 잡아주는데 사용된다.
SmartPlacement
는 "다음의 가능한 공간"에 위치시키거나
다음의 가능한 상위-왼쪽 모서리에 창을 위치시킨다.
CascadePlacement
는 전 창의 titlebar밑에 titlebar를 위치시키며 또한
조금 오른쪽으로 위치시킨다.
- session.screeen0.slitPlacement
-
기본값은 CenterRight
이고 <[TopLeft|TopRight|CenterLeft|CenterRight|BottomLeft|BottomRight]>
에서 선택한다.
이것은 slit의 위치를 정한다. (역자: 추가적인 설정에서 윈도우메이커 지원 참조)
- session.screen0.dateFormat
-
기본값은 European
이며 <[American|European]>
에서 선택한다.
만일 시스템이 strftime() 함수를 가지고 있지 않다면, 이 변수는 툴바의 시간형식을
사용한다.
American
은 MM/DD/YY, European
은 DD/MM/YY 로 나타낸다.
- session.screen0.clockFormat
-
기본값은 24
이고 <[12|24]>
에서 선택한다.
이 변수는 당신이 strftime() 함수를 가지고 있지 않다면 툴바의 시간을 보여주는
포맷으로 설정된다.
개인적인 메뉴 파일은 블랙박스의 root 메뉴로 간단한 텍스트 화일이다.
자기자신의 개인적인 메뉴를 만드는것은 기본 메뉴 파일을 자기 계정 디렉토리로
복사하여 편집하면 된다. 다음의 예를 보기 바란다.
mkdir ~/.blackbox
cp /usr/local/share/Blackbox/menu ~/.blackbox/Menu
어디든 자기가 마음에 드는곳에 위치시키면 된다.
다음으로 이 메뉴 파일을 사용하기 위하여 ~/.blackboxrc
의
session.menuFile
을 자신의 메뉴파일이 있는 절대경로로 편집한다.
메뉴를 만드는 문법은 매우 간단하며 또한 매우 효과적이다.
여기에는 한가지의 메뉴당 세개의 필드가 사용되며, 다음과 같다.
[tag] (label or filename) {command or filename}
지원되는 태그는 다음과 같다.
- [begin] (label for root menu)
-
이것은 블랙박스에게 메뉴 파일의 시작을 알려주는 것으로
이 태그는 블랙박스가 메뉴 파일을 파싱하기위해 필요하다.
만일 이 태그가 없으면 이 메뉴파일 대신 시스템 기본 메뉴가 사용된다.
- [end]
-
이것은 메뉴의 끝임을 블랙박스에 알려주며, 이 끝은 root 메뉴 또는 서브메뉴의
끝을 나타낼때 사용된다.
[begin]
태그에 적용되어야 하므로 적어도 하나의 [end]
가
반드시 있어야 한다.
- [exec] (label for command) {shell command}
-
메뉴에 실행프로그램을 등록시킨다.
메뉴에서 이 메뉴 아이템을 선택하면, 블랙박스는 shell command
를
실행시킨다.
- [exit] (label for exit)
-
블랙박스를 종료시킬때 사용한다.
블랙박스가 종료되기전에 모든 열려진 윈도우창은 root 윈도우로 복귀한다.
- [include] (filename)
-
현재의 메뉴에 'filename'을 첨가시킨다.
filename
은 절대경로로 표시되거나 (예: /usr/local/share/Blackbox/brueghel/stylesmenu
) 사용자 계정 홈디렉토리를 나타내는 ~/
로 시작할 수 있다. (예: [include] (~/blackbox/stylesmenu
는 메뉴에 /home/user/blackbox/stylesmenu
의 형태로 포함되어진다.)
- [nop] (label - optional)
-
아무런 동작도 하지않는 아이템을 메뉴에 추가시킨다.
이것은 메뉴에 일정한 틀을 줄때 사용할 수 있을것이다.
[nop]
에는 라벨을 넣을 수 있지만, 반드시 그래야 하는것은 아니며
만일 라벨을 적지 않으면 공백으로 나타나게 된다.
- [style] (label) {filename}
-
현재 실행되고 있는 세션에 filename
를 읽어들여, 새로운 텍스쳐,
컬러, 폰트를 정의하게 한다.
여기서 filename은 [include]
태그와 비슷하게 쓰인다.
절대경로를 사용하던지, ~/path/from/home/dir
형식을 사용한다.
- [submenu] (label) {title for menu - optional}
-
현재 메뉴에서 서브메뉴를 생성시킨다.
이 메뉴는 재귀적으로 파싱되므로, 중첩된 서브메뉴, 무한정의 서브메뉴를
사용할 수 있다.
새로운 서브메뉴의 이름은 선택적이며 선택을 하지 않았을때는 새로운 서브메뉴의 이름은 아이템 라벨과 비슷하게 나타난다.
- [reconfig] (label)
-
현재의 style 과 메뉴파일, 그리고 변화된 내용을 다시 읽어들이게 한다.
이것은 매번 블랙박스를 재시작하기가 어려울때,
새로운 style 이나 테마를 적용시킬때 유용하게 쓰일것이다.
- [restart] (label) {shell command - optional}
-
블랙박스를 재시작한다. 만일 shell command
을 정의하면
블랙박스를 종료한 후 이 명령을 실행한다.
(이 명령을 이용하여 다른 윈도우매니져로의 재시작이 가능할것이다.)
이 부분이 생략되었다면 블랙박스가 재시동 될것이다.
- [workspaces] (label)
-
메뉴에 작업공간 메뉴에 대한 링크를 삽입하게 한다.
이것은 작업공간 메뉴를 불러올 수 없는 사용자
(3 button mouse를 가지고 있지 않다면 작업공간 메뉴를 부르기가 힘들것이다.) 에게
유용하게 쓰일것이다.
이것은 시스템의 작업공간 메뉴에 대한 링크이므로 여러개의 [workspaces]
태그는 똑같은 작업공간 메뉴를 보여줄 뿐이다.
주석은 #
로 시작하며, 메뉴파일의 어느곳에나 위치시킬 수 있다.
또한, labels/commands/filenames 필드에는 다음과 같이 escape character를
사용할 수 있다. :
[exec] (\(my cool\) \{XTERM\}) {\(xterm -T \\\"cool XTERM\\\"\)}
\\
를 사용하면 백슬래쉬 문자를 label/command/filename 필드에 쓸 수 있다.
자 이제 우리가 위의 난해한 주문을 이해하였는지 보기위하여 새로운 메뉴를 만들어보자.
자신의 메뉴를 만들고 제목을 쓸려면 [begin]
과 [end]
태그가
필요하다고 한다. 처음은 이렇게 시작하자 :
...
[begin] (Example \[Menu\])
[end]
...
완벽하다!!! 이제 몇개의 아이템을 추가하도록 하자. 우리의 메뉴에는 xterm과 같은
터미널 에뮬레이터가 필요하지 않은가?
그럼 메뉴에 추가해보도록 하자 :
...
[begin] (Example \[Menu\])
[exec] (xterm) {xterm -ls}
[end]
...
훌륭하다!!! 이제는 irc 클라이언트와 네스케이프, xv등 자주 사용하는
프로그램을 등록해보자.
...
[begin] (Example \[Menu\])
[exec] (xterm) {xterm -ls}
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
[exec] (Netscape Navigator) {netscape}
[exec] (xv 3.10a) {xv}
[exec] (XEmacs) {xemacs}
[exec] (The GIMP) {gimp}
[exec] (Video Tune) {xvidtune}
[end]
...
잠깐만... 이 메뉴파일은 보기에 조금 혼란스럽다.
보기 좋게 만드는것은 쉬운일이다. 프로그래머들 처럼 들여쓰기와 띄어쓰기를 사용하자.
...
[begin] (Example \[Menu\])
[exec] (xterm) {xterm -ls}
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
[exec] (Netscape Navigator) {netscape}
[exec] (XEmacs) {xemacs}
[exec] (xv 3.10a) {xv}
[exec] (The GIMP) {gimp}
[exec] (Video Tune) {xvidtune}
[end]
...
와!!! 보기가 훨씬 좋아지지 않았는가!. 이제는 파일에 공간을 좀 넣고
그것이 메뉴에도 적용되도록 해보자. [nop]
태그의 이점을 본다.
...
[begin] (Example \[Menu\])
[exec] (xterm) {xterm -ls}
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
[nop]
[exec] (Netscape Navigator) {netscape}
[exec] (XEmacs) {xemacs}
[nop]
[exec] (xv 3.10a) {xv}
[exec] (The GIMP) {gimp}
[nop]
[exec] (Video Tune) {xvidtune}
[end]
...
자 이제는 BB.Themes.Org
에서 내려받은 테마들을 서브메뉴로
만들어본다.
themes.org 사이트에 나온대로 ~/.blackbox
디렉토리 밑에
내려받은 테마들을 압축을 풀어 설치했다고 가정한다.
...
[begin] (Example \[Menu\])
[exec] (xterm) {xterm -ls}
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
[nop]
[exec] (Netscape Navigator) {netscape}
[exec] (XEmacs) {xemacs}
[nop]
[exec] (xv 3.10a) {xv}
[exec] (The GIMP) {gimp}
[nop]
[exec] (Video Tune) {xvidtune}
[submenu] (Themes) {Themes from blackbox.themes.org}
[style] (Redsky) {~/.blackbox/Styles/Redsky}
[style] (Blackbox) {~/.blackbox/Styles/blackbox}
[style] (Blackbox II) {~/.blackbox/Styles/blackbox2}
[style] (Hardware) {~/.blackbox/Styles/hardware}
[style] (Nova) {~/.blackbox/Styles/nova}
[style] (Orbital) {~/.blackbox/Styles/orbital}
[style] (Orbital II) {~/.blackbox/Styles/orbital2}
[style] (Seething) {~/.blackbox/Styles/seething}
[style] (Zero) {~/.blackbox/Styles/zero}
[style] (Cold Fusion) {~/.blackbox/Styles/coldfusion}
[end]
[end]
...
이제 메뉴 문법에 대해 감이 오지 않는가? 자 그럼 우리의 메뉴를 마무리 해보자.
우리가 다운받은 styles 과 더불어, 블랙박스에 딸려오는 기본 styles 을
서브메뉴로 추가하여보자.
블랙박스 디렉토리의 스타일 파일을 [include]
를 사용하여 추가시킨다.
모든것을 적용한 후의 모습이다 :
...
# Blackbox 개인 메뉴
[begin] (Example \[Menu\])
[exec] (xterm) {xterm -ls}
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
[nop]
[exec] (Netscape Navigator) {netscape}
[exec] (XEmacs) {xemacs}
[nop]
[exec] (xv 3.10a) {xv}
[exec] (The GIMP) {gimp}
[nop]
[exec] (Video Tune) {xvidtune}
[nop] (...)
[submenu] (Themes) {Themes from blackbox.themes.org}
[style] (Blackbox) {~/.blackbox/Styles/blackbox}
[style] (Blackbox II) {~/.blackbox/Styles/blackbox2}
[style] (Hardware) {~/.blackbox/Styles/hardware}
[style] (Nova) {~/.blackbox/Styles/nova}
[style] (Orbital) {~/.blackbox/Styles/orbital}
[style] (Orbital II) {~/.blackbox/Styles/orbital2}
[style] (Seething) {~/.blackbox/Styles/seething}
[style] (Zero) {~/.blackbox/Styles/zero}
[style] (Cold Fusion) {~/.blackbox/Styles/coldfusion}
# 기본 style 메뉴를 포함시킨다. 블랙박스가 /usr/local에
# 설치되었다고 가정한다.
[nop]
[include] (/usr/local/share/Blackbox/styles/stylesmenu)
[end]
[workspaces] (Workspace list)
[submenu] (Restart) {Restart which?}
[restart] (Blackbox)
# 다른 윈도우매니저를 선택할 수 있도록 하자.
[restart] (Window Maker) {wmaker}
[restart] (Enlightenment) {enlightenment}
[restart] (KWM) {kwm}
[restart] (TWM) {twm}
[end]
[nop] (...)
[reconfig] (Reconfigure)
[exit] (Quit!)
[end]
...
메뉴파일 설정이 끝났다! 이제는 블랙박스가 이 메뉴화일을 인식할 수 있도록 하여야 한다. ~/.blackboxrc
을 편집한다.
주의 : ~/.blackboxrc
는 블랙박스의 재시작, 재설정, 스타일 바꾸기 또는
종료시 자동적으로 업데이트 된다.
작업공간의 수, 이름, 기타 동적인 데이타의 변경은 적용되지 않을 수 있다.
우리가 바꾸고 유지할 수 있는 유일한 것은, 우리가 바꾼 메뉴파일 이름이다.
~/.blackboxrc
의 포맷은 (~/.Xdefaults
와 비슷한) X resource database format 이다. 파일이 자동적으로 업데이트 된후에, 화일은 목록으로 가득차거나 또는 없어져버릴수도 있다. (특히 그것이 블랙박스를 처음 실행하는 것이라면) 그러나 ~/.blackboxrc
를 만드는것 때문에
걱정하지는 말라. 단지 블랙박스를 실행함으로서 파일을 볼 수 있을것이다.
우리가 해야 할 일은 메뉴 파일이름을 바꾸는 것이다. 다음과 같은 줄을 바꾸거나 추가하도록 한다.
session.menuFile: /path/to/some/file
만일 이러한 설정이 기존에 존재한다면 고치면 되고, 없다면 새로 추가하면 된다.
어디에 메뉴파일이 존재하느냐에 따라, 우리의 새로운 설정은 다음과
같이 보일것이다. :
session.menuFile: /home/user/blackbox/rootmenu
이제 ~/.blackboxrc
를 저장하고 블랙박스를 재시작한다.
(단지 컬러/폰트/기타 부수적인 설정만을 다시 읽어들이는 재설정은 적합하지 않다.
모든 설정파일을 다시 읽어들이도록 블랙박스가 재시작되어야 한다.)
모든것을 정확히 했다면 우리의 새로운 메뉴를 읽을 준비가 되어있을 것이다.
만일 문제가 있다면, 위의 예제를 다시 한번 보고 빠진 부분이나 필요한 태그를
점검해보라.
자 이제 블랙박스가 우리가 만든 메뉴를 적용하는데에는 조금 더 기다려야 한다.
블랙박스 0.50.5 에서 자동 메뉴 업데이트(automagic menu updates)가 도입되었다.
만일 session.menuFile를 수정하지 않았다면, 메뉴파일을 바꾸었더라도
블랙박스를 재시작하거나 재설정할 필요가 없다.
블랙박스는 메뉴를 보여줄때 모든 파일의 타임스탬프를 주시한다.
만일 그들 중 어느 하나가 변경되면, 다시 읽혀지고 메뉴는 업데이트 된다.
이 검사는 root 메뉴를 열때마다 실행된다.
다시 말하자면, 이것은 '검사'를 한다는것이지, 매번 메뉴파일을 다시 읽어온다는것은
아니다. 단지 파일에 변화가 생겼을때만 다시 읽어오게 된다.
스타일(style)이 뭔가? 짧게 설명하면,스타일은 테마의 블랙박스적 표현이다.
스타일은 컬러, gradients, 폰트, 창의 모양, 그리고 데스크탑의 외형을 꾸며준다.
BB.Themes.Org
에서 얻을 수 있는 타르볼 형태의 스타일의 설치는 매우 쉽다.
먼저 적절한 스타일 디렉토리를 만든다.
~/.blackbox/
로 만들면 될것이다. 이 밑으로 Styles
과
Backgrounds
디렉토리를 만든다.
다음과 같이 하면 될것이다.
cd ~
mkdir .blackbox
mkdir .blackbox/Styles
mkdir .blackbox/Backgrounds
스타일을 다운받았고 그것을 사용하고 싶다면, 다음과 같이 한다.
cd ~/.blackbox
tar zxvf /path/to/style/tarball
위의 작업이 끝났으면 메뉴파일에 [style]
을 추가시켜준다.
블랙박스를 사용하게 되었다면,
이제 화면에 나오는 컬러나 폰트등을 바꾸고 싶어질 것이다.
블랙박스는 이러한 설정정보들을 "스타일(style)"에서 읽어들인다.
블랙박스의 X resources를 구성하는 스타일은 하나의 파일에 놓인다.
메뉴 파일과 비슷하게, 스타일 화일은 화일시스템의 어느곳에나 놓일 수 있다.
당신이 읽을 수 있는 파일이기만 하면, 블랙박스가 사용할 수 있을것이다.
처음으로 할 일은, 우리의 스타일 파일이 놓일 곳을 정하고, 그 이름을 결정한는 것이리라. 자, 우리의 스타일 화일의 이름을 results
라고 정하자.
이 파일은 ~/.blackbox/Styles
안에 놓기로 한다.
이제 메뉴 파일을 편집할때와 같이 자기가 좋아하는 문서 편집기로 새로운 스타일을 만들어 보자.
X resources 는 키와 그 값으로 이루어진다.
키는 점 (.
) 으로 구분되는 몇개의 작은 키로 구성된다.
키는 와일드카드로 일컬어지는 에스테리크 (*
) 문자를 포함할 수 있으며,
이는 그 문자가 쓰인 부분이 여러개의 키와 매치될 수 있음을 나타낸다.
이것은 하나 또는 두개의 색만을 쓰는 스타일을 만들때 유용하게 쓰인다.
이러한 예는 이 절의 끝에서 보이겠다.
블랙박스는 세계의 주요 구성요소 - 툴바, 메뉴, 창 장식 - 을 사용자가 구성할 수 있게 한다.
처음에는 툴바를 꾸미는 스타일을 만들어보자.
먼저 툴바와 그것을 구성하는 부속물들에 쓰이는 "텍스쳐(texture)"라는 것을
정의해야 한다.
텍스쳐는 블랙박스가 우리가 원하는 색으로 모양과 형태를 가지도록 해준다.
택스쳐는 다음과 같은 원소로 구성된다.
Raised / Sunken / Flat
-
이것은 구성요소에 양각(raised), 음각(sunken) 또는 평면(flat)의 모양을 띄게한다.
Solid / Gradient
-
이것은 단색으로 채워질(solid) 것인지 점점 변화하는 색(gradient)을 쓸것인가를 정의 해준다. gradient는 한가지 색에서 다른 색으로 색이 변해가는 것을 말한다..
Horizontal / Vertical / Diagonal / Crossdiagonal / Rectangle /
Pyramid / Pipecross
-
이것은 부가적인 설정으로 gradient를 적용했을때 색변화가 어떠한 형태로 이루어지게 할것인가를 설정한다. (gradient를 사용할때만 사용된다.)
Interlaced
-
이것은 gradient 시 interlace 효과를 준다.
(gradient 에서만 쓰인다.)
Bevel1 / Bevel2
-
블랙박스가 어떤 bevel 형태를 사용할것인지 결정한다.
Bevel1은 기본 bevel로서 이미지의 가장자리에 그늘을 준다.
Bevel2는 이미지의 가장자리중에서 한 픽셀을 더한 부분까지 그늘을 준다.
(역자 : 이미지가 각지게 튀어나와 보이게 됩니다.)
자 이제 툴바의 텍스쳐에 대해 알아보자.
툴바는 메인프레임과 버튼, 두개의 라벨, 그리고 시계를 가지고 있다.
버튼은 두개의 상태를 가지므로, 보통의 모습과 눌려졌을때, 두 가지에 대해
텍스쳐를 설정을 해주어야 한다.
...
toolbar: Raised Diagonal Gradient Bevel1
toolbar.button: Raised Diagonal Gradient Bevel1
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
toolbar.clock: Flat Interlaced Gradient
toolbar.label: Flat Interlaced Gradient
...
주의 : 이전 버전에서 사용되던 Texture 스트링은 이제 사용되지 않는다.
하지만 bbtools와 같은 예전의 메쏘드를 사용하는 어프리케이션때문에
쓸수는 있다.
다음으로 텍스쳐의 색을 정의한다. 색은 RGB 데이타베이스에 정의된 가능한
X 컬러나, man 1 X
와 같이 명세된 색을 사용할 수 있다.
자 색을 설정한 후의 모습이다.
...
toolbar: Raised Diagonal Gradient Bevel1
toolbar.button: Raised Diagonal Gradient Bevel1
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
toolbar.clock: Flat Interlaced Gradient
toolbar.label: Flat Interlaced Gradient
toolbar.color: rgb:8/8/7
toolbar.colorTo: grey20
toolbar.button.color: grey
toolbar.button.colorTo: grey20
toolbar.button.pressed.color: rgb:4/4/38
toolbar.button.pressed.colorTo: rgb:f/f/d
toolbar.clock.color: grey20
toolbar.clock.colorTo: rgb:8/8/7
toolbar.label.color: grey20
toolbar.label.colorTo: rgb:8/8/7
toolbar.textColor: grey85
...
이제 와일드카드에 대해 설명할때가 된것 같다.
위의 예에서보면, 색상값을 주기위한 여러 줄을 볼 수 있을것이다.
각 줄에선 color
또는 colorTo
에 대한 설정을 하고있다.
두개의 자원에서 매치되는 부분이 있으면 (예를 들면 toolbar.clock.color
와
toolbar.label.color
은 같은 색을 사용하고 있다.) 다음과 같은 방법으로
설정을 줄일 수 있다.
toolbar.*.color
*
문자는 와일드카드라 불리며, 그 자리에 올 수 있는 어떠한 키와도
대응될 수 있다.
잘 보면 텍스쳐는 color
와 colorTo
키를 가짐을 알수있다.
이 키는 gradient에서 사용된다.
solids에서는 단지 color
만이 사용된다.
위의 예에서 와일드카드의 사용으로 toolbar.button.color
의 설정이 무시되지 않을까 생각할지도
모르겠다. 하지만 그런 일을 일어나지 않는데, 이유는 특정한 리소스의 설정 (toolbar.button.color
) 을 먼저 읽어들이고, 그다음으로 일반적인 설정(toolbar.*.color
)이 읽혀지기 때문이다.
위의 예에서는 툴바의 텍스트에도 색을 설정한것을 볼 수 있을것이다.
모든 택스쳐가 택스트 색상을 가지고 있는것이 아니라 기본 택스쳐만 택스트 색상을 갖는다.
이제 메뉴의 설정으로 옮겨보자.
블랙박스는 C++
로 쓰였으므로, 모든 메뉴는 일반적인 기본 클래스에서 파생된 클래스를 사용한다. 블랙박스는 기본 클래스의 스타일 설정을 읽어들여, 블랙박스에서 쓰이는 모든 메뉴에 적용시킨다.
메뉴는 제목과 프레임, 두 부분으로 나뉜다. 이 이외에 다른것은 없으므로, 이 두가지에 대한 설정만 하면 된다. 메뉴프레임과 메뉴제목은 둘 다 텍스트 색상설정을 가지고 있으며, 메뉴 프레임은 highlight색과 highlight 되었을때의 글자색 설정을 갖는다.
이제 메뉴에 택스쳐와 색상을 설정한 후의 스타일 파일을 보자.
...
toolbar: Raised Diagonal Gradient Bevel1
toolbar.button: Raised Diagonal Gradient Bevel1
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
toolbar.clock: Flat Interlaced Gradient
toolbar.label: Flat Interlaced Gradient
toolbar.color: rgb:8/8/7
toolbar.colorTo: grey20
toolbar.button.color: grey
toolbar.button.colorTo: grey20
toolbar.button.pressed.color: rgb:4/4/38
toolbar.button.pressed.colorTo: rgb:f/f/d
toolbar.clock.color: grey20
toolbar.clock.colorTo: rgb:8/8/7
toolbar.label.color: grey20
toolbar.label.colorTo: rgb:8/8/7
toolbar.textColor: grey85
menu.title: Raised Diagonal Interlaced Gradient Bevel1
menu.frame: Raised Diagonal Gradient Bevel1
menu.title.color: grey20
menu.title.colorTo: rgb:8/8/7
menu.title.textColor: grey85
menu.frame.color: rgb:8/8/7
menu.frame.colorTo: grey10
menu.frame.textColor: white
menu.frame.highlightColor: grey85
menu.frame.hiTextColor: grey20
...
이제는 창의 모습을 설정해보자. 창은 버튼과 비슷하게 두개의 상태를 갖는다.
초점을 있을때와 없을때의 두가지 상태인데, 두가지에 대해 텍스쳐를 설정해주어야 한다.
타이틀바의 버튼들은 초점에 종속적이므로 설정하기가 쉬울 것이다.
버튼은 "눌려진" 상태를 가지므로, 이에 대한 설정만 해주면 된다.
('초점을 가졌을때의 눌려짐' 과 '초점이 없을때의 눌려짐' 으로 나뉘지 않는다.)
윈도우 프레임(window frame) 은 창을 둘러싸고 있는 얇은 테두리이다.
윈도우에 대한 설정까지 추가한 스타일 파일이다.
...
toolbar: Raised Diagonal Gradient Bevel1
toolbar.button: Raised Diagonal Gradient Bevel1
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
toolbar.clock: Flat Interlaced Gradient
toolbar.label: Flat Interlaced Gradient
toolbar.color: rgb:8/8/7
toolbar.colorTo: grey20
toolbar.button.color: grey
toolbar.button.colorTo: grey20
toolbar.button.pressed.color: rgb:4/4/38
toolbar.button.pressed.colorTo: rgb:f/f/d
toolbar.clock.color: grey20
toolbar.clock.colorTo: rgb:8/8/7
toolbar.label.color: grey20
toolbar.label.colorTo: rgb:8/8/7
toolbar.textColor: grey85
menu.title: Raised Diagonal Interlaced Gradient Bevel1
menu.frame: Raised Diagonal Gradient Bevel1
menu.title.color: grey20
menu.title.colorTo: rgb:8/8/7
menu.title.textColor: grey85
menu.frame.color: rgb:8/8/7
menu.frame.colorTo: grey10
menu.frame.textColor: white
menu.frame.highlightColor: grey85
menu.frame.hiTextColor: grey20
window.focus: Raised Diagonal Interlaced Gradient Bevel1
window.focus.button: Raised Diagonal Gradient Bevel1
window.unfocus: Raised Diagonal Gradient Bevel1
window.unfocus.button: Sunken Diagonal Gradient Bevel1
window.button.pressed: Flat Diagonal Interlaced Gradient
window.frame: Raised Solid Bevel1
window.focus.color: grey
window.focus.colorTo: grey20
window.focus.textColor: grey85
window.focus.button.color: grey
window.focus.button.colorTo: grey20
window.unfocus.color: rgb:8/8/7
window.unfocus.colorTo: grey20
window.unfocus.textColor: grey
window.unfocus.button.color: grey20
window.unfocus.button.colorTo: grey
window.button.pressed.color: rgb:4/4/38
window.button.pressed.colorTo: rgb:f/f/d
window.frame.color: grey85
...
이제 몇가지의 옵션만 더 보고 설정을 마치도록 하자.
여기에는 제목과 메뉴에서의 폰트, 정렬(justification), 경계색, bevel 과 handle 의 두께, 윈도우를 움직일때의 형태, 그리고 root command 가 있다.
폰트는 X11에서 사용되는 폰트나 유용한 font alias 된 폰트를 사용할 수 있다.
xfontsel
등의 유틸리티로 폰트를 확인할 수 있을것이다.
또한 xlsfonts
를 사용하여 X server 에서 사용가능한 폰트들을 확인할 수 있을것이다.
정렬은 LeftJustify
, CenterJustify
, RightJustify
의 세가지 옵션을 갖는다. (역자 : 메뉴와 타이틀에서의 글자가 나타나는 장소를 정할때 사용합니다.)
경계색은 매뉴 프레임과 제목줄, 윈도우의 제목줄, 버튼, 핸들 등에 1 픽셀 크기의 경계색을 줄 수 있다.
이 색의 설정은 스타일에 과감한 영향을 미치므로, 단지 검은색으로 설정을 하는것은 바람직하지 못하다.
bevel 과 handle 의 두께는 블랙박스의 장식 사이즈와 공간을 조정한다.
큰 수를 사용하면, 블랙박스의 창크기는 더욱 많은 공간을 차지할 것이다.
윈도우를 움직일때의 형태는 마우스로 창을 움직일때 움직이는 창의 모양을 설정하는 것으로, Opaque
와 Wire
중 하나를 선택한다.
블랙박스 버전 0.51 부터 메뉴의 bullet (역자: 서브메뉴가 있음을 나타내는 모양) 과
위치, 선택시의 변화(highlight)에 대한 설정이 추가되었다.
menu.bulletStyle
은 Round
, Empty
, Triangle
, Square
, Diamond
옵션을 가질 수 있다.
Round
를 사용하면 메뉴 선택시 가장자리가 둥근 하이라이트가 이루어지고,
아니면 각진 하이라이트가 생길 것이다.
menu.bulletPosition
은 left
와 right
중 고르면 되는데,
root 메뉴에서 bullet 을 어느쪽에 나타나게 할것인가에 따라 결정하면 된다.
root command 는 스타일이 불려질때마다 (블랙박스가 시작될때와 재설정/스타일이 바뀔때도 실행된다.) 실행되는 명령이다.
여기서는 xv
, Esetroot
, wmsetbg
등의 프로그램을
구동시킬 수 있다.
이렇게 하여 바탕화면에 이미지나 색상, 패턴등을 입힐 수 있다.
(역자: 바탕화면에 그림을 넣고 싶으면
'rootCommand: xv -root -max -quit 이미지경로/이미지이름' 을 주면 됩니다.)
!
로 시작하는 줄은 주석으로 처리된다.
자! 세부사항의 설정까지 모두 마친 스타일 파일이다.
...
! Results - theme for Blackbox 0.51.x
! by Brad Hughes bhughes@tcac.net (modified by Chuck Nusbaum)
! define the toolbars textures... note that the interlaced option is new
! in 0.50.5
toolbar: Raised Diagonal Gradient Bevel1
toolbar.button: Raised Diagonal Gradient Bevel1
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
toolbar.clock: Flat Interlaced Gradient
toolbar.label: Flat Interlaced Gradient
! toolbar colors
toolbar.color: rgb:8/8/7
toolbar.colorTo: grey20
toolbar.button.color: grey
toolbar.button.colorTo: grey20
toolbar.button.pressed.color: rgb:4/4/38
toolbar.button.pressed.colorTo: rgb:f/f/d
toolbar.clock.color: grey20
toolbar.clock.colorTo: rgb:8/8/7
toolbar.label.color: grey20
toolbar.label.colorTo: rgb:8/8/7
toolbar.textColor: grey85
! menu textures
menu.title: Raised Diagonal Interlaced Gradient Bevel1
menu.frame: Raised Diagonal Gradient Bevel1
! menu colors
menu.title.color: grey20
menu.title.colorTo: rgb:8/8/7
menu.title.textColor: grey85
menu.frame.color: rgb:8/8/7
menu.frame.colorTo: grey10
menu.frame.textColor: white
menu.frame.highlightColor: grey85
menu.frame.hiTextColor: grey20
! window textures
window.focus: Raised Diagonal Interlaced Gradient Bevel1
window.focus.button: Raised Diagonal Gradient Bevel1
window.unfocus: Raised Diagonal Gradient Bevel1
window.unfocus.button: Sunken Diagonal Gradient Bevel1
window.button.pressed: Flat Diagonal Interlaced Gradient
window.frame: Raised Solid Bevel1
! window colors
window.focus.color: grey
window.focus.colorTo: grey20
window.focus.textColor: grey85
window.focus.button.color: grey
window.focus.button.colorTo: grey20
window.unfocus.color: rgb:8/8/7
window.unfocus.colorTo: grey20
window.unfocus.textColor: grey
window.unfocus.button.color: grey20
window.unfocus.button.colorTo: grey
window.button.pressed.color: rgb:4/4/38
window.button.pressed.colorTo: rgb:f/f/d
window.frame.color: grey85
! misc...
borderColor: rgb:2/2/1c
moveStyle: Opaque
menuJustify: CenterJustify
titleJustify: CenterJustify
bevelWidth: 2
handleWidth: 4
menu.bulletStyle: Triangle
menu.bulletPosition: Right
menuFont: lucidasans-10
titleFont: lucidasans-bold-10
rootCommand: bsetroot -mod 4 4 -fg rgb:6/6/5c -bg grey20
...
자 이제 새로운 스타일이 완성되었다! 새로운 스타일이 어떻게 보이는지 확인해 보자.
먼저 메뉴파일을 편집하여 이 새로운 스타일을 블랙박스에게 알려준다.
[style] (Results) {~/.blackbox/Styles/results}
0.50.5 이상의 블랙박스에서는 단지 루트 메뉴를 닫고 다시 불러내는것으로
새로운 스타일이 메뉴에 나타날것이다.
이것을 선택하면 블랙박스는 새로운 스타일로 바뀔것이다.
자신만의 스타일을 만들었다면, 이제 다른 블랙박스 사용자들과 그것을 공유하기
위해 BB.Themes.Org
에 등록을 하여보자.
테마의 인스톨을 쉽게하기 위하여 BB.Themes.Org
에서는
일정한 양식을 요구하고 있다.
스타일을 등록시킬때에는 아래의 설명을 참조하여 주기 바란다.
이것은 블랙박스의 스타일들을 정돈하기 위한 이유뿐이지만,
BB.Themes.Org
에 등록을 하려면 반드시 지켜져야 한다.
BB.Themes.Org
에 스타일을 등록하려면 다음의 세가지가 필요하다.
스타일의 스크린샷, lsm 파일, 그리고 스타일 화일과 lsm 화일, 배경이미지를
묶어놓은 타르볼 파일이 그것이다.
스타일을 만드는 방법은 5.1절을 참고하기 바란다.
lsm 파일은 스타일에 대한 설명을 하는 텍스트 화일이다.
스타일의 이름과, 제작자, 스타일에 대한 적당한 설명, 자랑등을 적어주면 된다.
예를 들면 아래와 같다.
Title: Results
Author: Brad Hughes <bhughes@tcac.net>
Version: 0.50.x
Credits: I did this!
스타일과 배경이미지, lsm 파일을 만들었다면 ~/.blackbox/
안의 적당한
곳에 그것들을 옮겨놓는다. lsm파일은 ~/.blackbox/
에, 스타일은
~/.blackbox/Styles/
, 배경이미지는 ~/.blackbox/Backgrounds/
에
놓으면 된다. 타르볼을 만들기 위해 다음과 같이 한다. (MyStyle에 자기가 만든
스타일의 이름을 적으면 된다.)
cd ~/.blackbox
tar zcvf MyStyle.tar.gz MyStyle.lsm Styles/MyStyle Backgrounds/MyStyle.jpg
다음으로, gimp
나 import
등 자기가 좋아하는 툴로
스크린샷을 만든다.
이제 BB.Themes.Org
의 Style Upload 페이지에 압축파일과 스크린샷을 올리면
모든것이 끝난다.
블랙박스는 애프터 스텝
과 윈도우메이커
에서 쓰이는
dockapps 를 지원한다.
dockapps 이 위치하는 곳으로 Slit을 제공하는데, 이것은 블랙박스에
기본적으로 들어있다. 만일 이러한 지원을 원치 않는다면
configure 시 --disable-slit
옵션을 주도록 한다.
Slit 은 dockapp 을 사용하지 않을때는 보이지 않으며, dockapp 이 실행되면
굵은 프레임으로 나타날것이다.
Slit의 위치는 Slit 에서 마우스 오른쪽 클릭을 해서 TopRight
, TopLeft
,
CenterRight
, CenterLeft
, BottomRight
, 또는 BottomLeft
에서 골라주면 된다. ~/.blackboxrc
파일을 편집해도 같은 결과를 얻을 수 있다.
대부분의 dockapps 은 실행되면서 자동적으로 Slit에 포함되며, bbtools (역자: 블랙박스에서 사용되는 몇가지 프로그램으로 bbmail, bbdate 등이 있습니다.) 시리즈는 -w
옵션을 사용하여 실행시키면 Slit 안으로 담을 수 있다.
현재 블랙박스는 KDE를 한정된 범위내에서 지원한다. configure 시 --enable-kde
옵션으로 컴파일을 하여야 한다.
KDE 와 블랙박스를 같이 사용하려면, kfm
이나 kpanel
을 실행하거나 kfm
,kpanel
둘 다 실행한 후 블랙박스를 실행시킨다.
매번 X를 실행할때 이렇게 실행되도록 하고 싶다면, ~/.xinitrc
파일에
다음과 같이 적도록 한다. (만일 xdm
을 사용한다면 ~/.xsession
파일에 적어준다.)
kfm &
kpanel &
exec blackbox
현재는 Gnome에 대한 지원이 없다. 앞으로 Gnome에 대한 지원이 있을거라 생각되며,
현재로선 블랙박스의 소스 패치 형태로 third party에서 제공되는 패치가 존재한다.
이 패치에 대해서는 Blackbox Stuff,
blackbox.linuxbox.com 또는
Gnome @ Winds of Storm,
gnome.windsofstorm.net 을
참고하기 바란다.
현재로서는 작업공간 이동 및 윈도우창간의 초점이동에만 key 바인딩을 설정할 수 있다. 이 설정은 ~/.blackboxrc
파일에서 한다. 기본적인 바인딩은 작업공간 이동에 CTRL-좌/우 화살표키
이며, 윈도우창간의 초점이동은 Alt-Tab
과 Alt-Shift-Tab
을 사용한다. key 바인딩을 적용시키지 않으려면 Num Lock
이나 Caps Lock
을 켜두어라.
dockapps를 띄울때 Slit에 일정한 순서대로 뜨게 하려면 다음과 같이 한다.
sleep 1 && wmppp &
sleep 2 && wmsomething &
sleep 3 && wmsomethingelse &
exec blackbox
blackbock 앞에 exec
를 사용함으로서 하나의 프로세스를 절약할 수 있다.
Asked and answered on the Blackbox Mailing List, blackbox@troll.no
.
패치는 블랙박스의 동작을 수정하기 위해서 함수를 추가하거나 삭제, 또는 변경함으로서 만들어진다.
블랙박스의 개발자 Brad Hughes는 완전한 소스 트리의 복사본을 만들기를 권장한다.
원래의 코드와 수정이 가해진 소스가 다음의 예와 같이 존재하게 된다.
blackbox-0.50.5/
blackbox-0.50.6/
패치를 만들기 위해서 다음과 같이 한다.
diff -urN blackbox-0.50.5 blackbox-0.50.6
디렉토리의 이름이 서로 달라야 한다는걸 명심해야 한다.
먼저 블랙박스를 컴파일 할 디렉토리로 패치 파일을 옮긴다.
패치를 적용시키기 위해 다음과 같이 한다.
patch -p0 < 패치파일이름
변화된 블랙박스 소스에서 make
, make install
하는것을 잊지 말도록 하자.
bsetroot
는 블랙박스의 배경화면을 만드는데 사용되는 툴이다.
이것은 이미지를 처리하는것은 아니지만, 당신이 원하는 디자인을
인자값에 따라 설정할 수 있다.
-display <string> use display connection
-fg <color> use foreground color
-bg <color> use background color
-solid <color> use solid color
-mod <x> <y> use modula pattern
블랙박스가 실행될때 하나 이상의 작업공간을 사용하고 싶다면,
마우스 가운데 클릭이나 좌/우 마우스버튼 동시 클릭으로 작업공간 메뉴를 불러낸다.
여기서 New Workspace
를 선택한 후 마우스 오른쪽 클릭으로
root 메뉴를 불러내어 재설정
을 선택한다.
다시 블랙박스를 실행하면 두개의 작업공간을 확인할 수 있을것이다.
이러한 방법으로 여러개의 작업공간을 가질 수 있다.
블랙박스의 메일링 리스트에서 묻고 답하도록 한다., blackbox@troll.no
.
당신의 툴바와 메뉴, 그리고 window titlebars에서 myfont라는 트루타입폰트를 이탤릭체의 14크기로 사용하고자 한다면,
스타일 파일에 다음과 같이 적어주면 된다.
-*-myfont-*-i-*-*-14-*-*-*-*-*-*-*
xfontsel
같은 훌륭한 유틸리티로 설정값을 알아낼 수 있을것이다.
매우 간단하다. 다음과 같이 한다.
- KDE를 다운 받는다.
- 버전이 0.53.0 이나 그 이상의 블랙박스를 다운 받는다.
- KDE를 인스톨한다. (여기에 대한 자세한 설명은 하지 않는다.
www.kde.org 를 참조하기 바란다.)
- 블랙박스 소스의 압축을 풀고
--enable-kde
옵션을 주고 configure를 실행한다.
- 컴파일한다.
- 블랙박스를 실행한다.
- 당신이 원하는대로 kfm과 kpanel을 실행한다.
자! 데스크탑에 아이콘들이 나타날 것이다.