나는 잠시 둘러 보았고 다음 문제에 대한 답을 찾을 수 없었습니다.
Ubuntu 12.04에서 Unity를 사용하여 6 개의 데스크톱을 설정했습니다. 매일 아침, 나는 같은 5-6 개의 프로그램을 여는 과정을 겪습니다. 특정 작업 공간에서 각각 엽니 다. 이것을 자동화하고 싶습니다. 이것을 스크립팅하거나 구성하는 방법이 있습니까?
추가 질문 : 문제 를 더 복잡하게하기 위해 트윈 뷰 모드에서 두 개의 화면을 실행하고 있습니다. 실제로 각 프로그램을 특정 화면, 바람직하게는 전체 화면에서 시작해야합니다.
답변
compizconfig 사용에 대한 jdp407의 아이디어는 특정 응용 프로그램을 특정 작업 공간과 연결하여 해당 응용 프로그램을 열 때마다 해당 작업 공간에 배치되도록합니다. 이것이 바람직하지 않은 경우 다음을 수행 할 수 있습니다.
1) 설치 wmctrl
sudo apt-get install wmctrl
2) 다음과 같은 내용으로 파일을 생성하고 실행 가능하게 만듭니다.
#!/bin/bash
wmctrl -s 0 #Switches to workspace 0 [workspaces are numbered from 0]
gnome-terminal & #Say you want a terminal in the 0th workspace
nautilus & #Maybe a file browser too
sleep 2 #Windows take some time to open. If you switch immediately, they'll open up in wrong workspaces. May have to change the value 2.
wmctrl -s 1 #Switches to workspace 1
firefox & #You get the idea. Continue for all workspaces
sleep 2
wmctrl -s 0 #You will be left at this workspace when the script finishes executing
3) .xsessionrc
각 로그인시 프로세스를 자동화하려면 홈 디렉토리 (이 파일을 작성해야 할 경우 )에서이 스크립트를 호출하십시오 . 또는 필요할 때 터미널에서 호출 할 수도 있습니다. 편집 : .xsessionrc가 아니라 “시작 응용 프로그램”에 넣습니다. .xsessionrc는 데스크탑 환경의로드가 완료되기 전에도 실행됩니다.
jdp407에서 제안한대로 사용자 정의 xsession을 작성하여 두 개의 세션 중에서 선택할 수 있습니다. 하나는 이러한 응용 프로그램을 자동으로 열고 다른 하나는 그렇지 않습니다. 그러나 그것은 나에게 불필요 해 보인다.
작업 공간으로 전환하고 적절한 응용 프로그램을 연 다음 다음으로 전환하는 데 시간이 오래 걸리는 경우 모든 응용 프로그램을 한 번에 연 다음를 사용하여 창을 이동할 수 있습니다 wmctrl
. 예를 들어
wmctrl -r 'Firefox' -t 1
Firefox의 제목이있는 창을 작업 공간 1 wmctrl
로 이동합니다. 둘 이상의 창이 있으면 관리하는 창 목록의 첫 번째 항목 이 이동합니다. 이를 사용하기 위해 응용 프로그램에서 생성 할 창의 제목을 알아야합니다. 이것이 내가 이것을 기본 옵션으로 제안하지 않은 이유입니다. 가장 일반적으로 사용되는 앱의 경우와 같이 제목이 모호하지 않으면 이것이 가장 좋은 방법입니다.
전체 화면으로 응용 프로그램 열기 :
gnome-terminal과 같은 일부 응용 프로그램에는 최대화 상태 또는 전체 화면 모드로 창을 여는 명령 줄 인수가 있습니다. 그러한 옵션이 있으면 사용하십시오. 그렇지 않으면 wmctrl
다음과 같이 사용하십시오
wmctrl -r 'prasanth@nb37' -b add,maximized_vert,maximized_horz
이것은 (이미 기존의) 터미널 창을 최대화합니다.
wmctrl -r 'prasanth@nb37' -b add,fullscreen
창을 전체 화면 모드로 보냅니다.
의 맨 wmctrl
페이지를 살펴보십시오 . 더 많은 기능을 사용할 수 있습니다.
답변
여기에는 두 가지 ‘문제’가 있습니다. 첫 번째는 로그인 할 때 특정 프로그램 세트를 여는 것입니다. 두 번째는 특정 작업 공간에서 열어 두는 것입니다. 나는 둘 다 별도로 처리 할 것이다.
-
커스텀 X 세션 만들기
이것은 매우 쉽습니다. X 세션 스크립트를 만든 다음 LightDM에 사용하도록 지시하면됩니다. 터미널에서 원하는 프로그램을 시작하려면 명령을 알아야합니다.
- 터미널을 엽니 다.
- 을 입력
touch ~/.customxsession
하고 Enter 키를 누릅니다. - 을 입력
gedit ~/.customxsession
하고 Enter 키를 누릅니다. - 이제 빈 파일로 텍스트 편집기를 열 수 있습니다.
- 이 파일에서 X 세션을 정의해야합니다. 답변 맨 아래에 샘플 ‘공백 채우기’파일을 만들었습니다. 나는 생각 우분투는 그것의 창 관리자로 그놈 세션을 사용하지만, 나는 가능성이 틀렸다. 현재 테스트 할 수 없으므로 (노트북 고장) 예상대로 작동하지 않으면 (예 : Unity 대신 Gnome을로드) 약간의 연구가 필요할 수 있습니다.
- 파일을 저장하고 Gedit를 닫습니다.
- 을 입력
touch /usr/share/xsessions/multi.desktop
하고 Enter 키를 누릅니다. - 을 입력
gedit /usr/share/xsessions/multi.desktop
하고 Enter 키를 누릅니다. - 이제 빈 파일로 텍스트 편집기를 열 수 있습니다.
- 답변 하단의 코드 ( ‘/usr/share/xsessions/multi.desktop :’레이블이 붙은)를 Gedit에 복사하여 붙여 넣습니다.
- 파일을 저장하고 Gedit를 닫습니다.
- 재부팅하십시오. 로그인 화면이 열리면 사용 가능한 세션을 보면 (사용자 이름 옆에있는 작은 Ubuntu 로고를 클릭하면) 멀티 세션이라는 이름이 표시됩니다. 로그인하면 X 세션 스크립트에 넣은 프로그램이 자동으로 열립니다.
-
작업 공간에 프로그램 할당
이것은 매우 쉽지만 기본적으로 우분투에 설치되지 않은 추가 소프트웨어가 필요합니다.
- compizconfig-settings-manager를 설치하십시오 (Software Center를 사용하거나
sudo apt-get install compizconfig-settings-manager
터미널에서 간단히 실행할 수 있음). - 대시에서 CompizConfig 설정을 엽니 다.
- ‘창 위치’플러그인을 엽니 다 ( ‘창 관리’섹션에 있음).
- ‘고정 뷰포트가있는 Windows’섹션에서 ‘새로 만들기’를 클릭하십시오.
- ‘플러스’아이콘을 클릭하십시오.
- ‘유형’을 ‘창 제목’으로 설정하고 ‘값’상자에 프로그램 중 하나의 창 제목을 입력하십시오. ‘관계’가 ‘AND’로 설정되어 있는지 확인하고 ‘추가’를 클릭하십시오.
- ‘X’및 ‘Y’상자에 숫자를 입력하여 작업 공간을 설정하십시오. ‘X’에 대해 4 개의 작업 공간이있는 경우 ‘1’이 왼쪽이고 ‘2’가 오른쪽이고 ‘Y’의 경우 ‘1’이 맨 위이고 ‘2’가 맨 아래입니다. 작업 공간이 6 개인 것처럼 설정 방법에 따라 ‘Y’를 ‘3’으로 설정하면 맨 아래 행이 선택되고 ‘X’를 ‘3’으로 설정하면 3 번째 열이 선택됩니다.
- 작업 공간을 할당 할 나머지 프로그램에 대해 4-7 단계를 반복하십시오.
- CompizConfig 설정을 닫습니다.
- compizconfig-settings-manager를 설치하십시오 (Software Center를 사용하거나
-
로그인
로그인하면 Ubuntu에 사용자 정의 X 세션을 사용하도록 지시해야합니다.
- 재부팅하십시오.
- 로그인 화면이 열리면 사용 가능한 세션을 보면 (사용자 이름 옆에있는 작은 Ubuntu 로고를 클릭하면) 멀티 세션이라는 이름이 표시됩니다. 로그인하면 X 세션 스크립트에 넣은 프로그램이 자동으로 열리고 선택한 작업 공간에 할당됩니다.
-
문제
당신이 작은 실수를하거나이 답을 쓸 때 내가 실수를했다면, 이것에 대해 꽤 많은 잘못을했을 수도 있습니다. 문제가 발생하면 편지의 지시 사항을 따르고 그렇지 않은 경우 정정하십시오. 여전히 문제가 있으면 의견을 남겨주십시오.
~ / .customxsession :
#!/usr/bin/env bash
program-command-1 &
program-command-2 &
program-command-3 &
program-command-4 &
program-command-5 &
program-command-6 &
exec gnome-session
/usr/share/xsessions/multi.desktop :
[Desktop Entry]
Name=Multi-Session
Exec=/home/your-username/.customxsession
답변
StarupApplications 프로그램에서 필요한 응용 프로그램을 추가 한 다음이 스크립트도 추가하십시오. 이것은 내 스크립트입니다 : ManageWorkSpaces.sh
echo "Jeril"
wmctrl -r NetBeans IDE 7.1.1 -t 0
wmctrl -r /bin/bash -t 1
wmctrl -r Google Chrome -t 2
wmctrl -r jerilkuruvila - Skype™ -t 3
// 터미널에 초점
wmctrl -a NetBeans IDE 7.1.1 -t 0
그러나 나는 2 개의 디스플레이를 다루는 것에 대해 전혀 모른다.