Devilspie 2를 사용하여 Ubuntu에서 스크립팅된 창 작업

Devilspie 2를 사용하여 Ubuntu에서 스크립팅된 창 작업

2022-10-19 last update

6 minutes reading linux ubuntu programming
Devilspie2는 윈도우가 생성될 때 이를 감지하고 스크립트된 작업을 수행하는 프로그램입니다. 스크립트는 LUA로 작성되어 많은 사용자 정의가 가능합니다. 이 튜토리얼은 Ubuntu 14.04에 Devilspie 2 설치를 보여주고 Devilspie 스크립팅에 대한 소개를 제공합니다.

루아란?


Lua는 강력하고 빠르며 가벼운 임베딩 가능한 스크립팅 언어입니다. Lua는 간단한 절차적 구문과 연관 배열 및 확장 가능한 의미 체계를 기반으로 하는 강력한 데이터 설명 구성을 결합합니다. Lua는 동적으로 유형이 지정되고 레지스터 기반 가상 머신에 대한 바이트 코드를 해석하여 실행되며 증분 가비지 수집을 통해 자동 메모리 관리를 제공하므로 구성, 스크립팅 및 신속한 프로토타이핑에 이상적입니다. 자세한 정보는 http://www.lua.org/를 참조하십시오.

설치.


다음을 입력합니다.
sudo apt-get install devilspie2
(Devilspie가 엉망이고 더 이상 개발되지 않기 때문에 Devilspie2인지 확인하십시오.)
불행히도 원래 Devils Pie의 규칙은 Devilspie 2에서 더 이상 지원되지 않습니다.

구성 및 스크립팅.


Devilspie2에 --folder가 있는 폴더를 지정하지 않으면 ~/.config/devilspie2/폴더에서 LUA 스크립트를 읽고 이 폴더가 없는 경우 이 폴더가 생성됩니다. 이 폴더는 --folder 옵션으로 변경할 수 있습니다. Devilspie2가 폴더에서 LUA 파일을 찾지 못하면 실행을 중지합니다. 위는 몇 가지 사용 옵션입니다 ...

샘플 스크립트.


the debug_print command does only print anything to stdout 
-- if devilspie2 is run using the --debug option

debug_print("Window Name: "..	get_window_name());
debug_print("Application name: "..get_application_name())

I want my Xfce4-terminal to the right on the second screen of my two-monitor 
setup,

if (get_window_name()=="Terminal") then
	-- x,y, xsize, ysize
	set_window_geometry(1600,300,900,700);
end

Make Iceweasel always start maximized.

if (get_application_name()=="Iceweasel") then
	maximize();
end
스크립팅 언어에 대해 자세히 알아보려면 다음을 방문하십시오.
See FAQ at

www.lua.org/FAQ.html 

Documentation at

www.lua.org/docs.html 

Tutorials at 

http://lua-users.org/wiki/TutorialDirectory
	

스크립트 명령.


get_window_name()      현재 창의 이름이 포함된 문자열을 반환합니다. get_application_name()      현재 창의 애플리케이션 이름을 반환합니다. set_window_position(xpos, ypos)      창의 위치를 ​​설정합니다. set_window_size(xsize, ysize)      창의 크기를 설정합니다. set_window_geometry(xpos, ypos, xsize ysize)      창의 지오메트리를 설정합니다. make_always_on_top()      창을 항상 맨 위에 표시하도록 설정합니다. set_on_top()      다른 창 위에 창을 설정합니다(단, 이 위치에서 창을 잠그지는 않음). debug_print()      문자열을 stdout에 출력하는 디버그 도우미입니다. Devilspie2가 --debug 옵션과 함께 실행되는 경우에만 인쇄됩니다. shade()      창을 "음영 처리"하여 제목 표시줄만 표시합니다. unshade()      창 음영 해제 - "shade"maximum()의 반대      창 최대화 unmaximize()      창 최대화 해제 maximum_vertical()      현재 창을 세로로 최대화합니다. maximum_horisontally()      현재 창을 수평으로 최대화합니다. 최소화()      창 최소화 unminimize()      창을 최소화 해제합니다. 즉, 최소화된 위치/크기에서 다시 화면으로 가져옵니다. decor_window()      모든 창 장식을 표시합니다. undecorate_window()      모든 창 장식을 제거합니다. set_window_workspace(number)      창을 다른 작업 공간으로 이동합니다. number 변수는 1부터 계산을 시작합니다. change_workspace(number)      현재 작업 공간을 다른 작업 공간으로 변경합니다. 숫자 변수는 1부터 계산을 시작합니다. pin_window()      창 관리자에게 창을 모든 작업 공간에 배치하도록 요청합니다. unpin_window()      창 관리자에게 현재 활성 작업 공간에만 창을 두도록 요청합니다. stick_window()      작업 공간이나 뷰포트가 스크롤되는 경우에도 화면에서 창의 위치를 ​​고정 상태로 유지하도록 창 관리자에게 요청합니다. unstick_window()      작업 공간이나 뷰포트가 스크롤될 때 화면에서 창 위치가 고정되지 않도록 창 관리자에게 요청합니다. 이것으로 Devilspie2 사용 튜토리얼을 마칩니다.

연결


  • Devilspie 2