답변:
CCSM (CompizConfig Settings Manager)을 설치하십시오. 터미널에서 실행하십시오.
sudo apt-get install compizconfig-settings-manager
CCSM을 엽니 다.
슬롯 중 하나에 원하는 명령을 입력하십시오. 예 :
"가장자리 바인딩"탭으로 이동
"없음"을 클릭하고 방금 설정 한 명령에 해당하는 원하는 핫 코너 (또는 모서리)를 설정하십시오.
마우스를 모퉁이로 이동
이제 당신의 명령이 실행됩니다!
14.04에 대한 작업을 확인했습니다.
Unity를 사용 하고 ccsm을 설치 한 경우, wjandrea의 대답은 물론 대답입니다. 그렇지 않거나 다른 배포판에서 사용하는 경우 간단한 대안이 유용 할 수 있습니다.
아래의 스크립트로, 당신은 설정할 수 있는 사용자의 hotcorners 각각 명령, 특정합니다.
예를 들어 다음과 같이 설정했습니다.
물론 명령을 외부 스크립트로 실행할 수도 있습니다.
또한 라인의 핫 코너 크기 를 설정할 수 있습니다 .
cornersize = 10
간단히 값 (픽셀)을 변경하십시오. 스크립트는 (사각형) 영역을 설정하여 명령을 트리거합니다.
#!/usr/bin/env python3
import subprocess
import time
cornersize = 20
commands = [
None,
"gedit",
None,
"gnome-terminal",
]
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def get_pos():
return [int(s.split(":")[1]) for s in get(["xdotool", "getmouselocation"]).split()[:2]]
scrdata = get("xrandr").split(); resindex = scrdata.index("connected")+2
res = [int(n) for n in scrdata[resindex].split("+")[0].split("x")]
match1 = None
while True:
time.sleep(1)
xy = get_pos()
x = xy[0]; y = xy[1]
test = [
[x < cornersize, y < cornersize],
[x > res[0]-cornersize, y < cornersize],
[x < cornersize, y > res[1]-cornersize],
[x > res[0]-cornersize, y > res[1]-cornersize],
]
match2 = [i for i, p in enumerate(test) if all(p)]
if match2 != match1:
if match2:
cmd = commands[match2[0]]
if cmd:
subprocess.Popen(["/bin/bash", "-c", cmd])
match1 = match2
스크립트 필요 xdotool
sudo apt install xdotool
hotcorners2.py
스크립트의 헤드에서 명령을 설정하십시오 (따옴표를 명심하십시오)
commands = [
None,
"gedit",
None,
"gnome-terminal",
]
(결과적으로 왼쪽 위 / 아래, 왼쪽 아래 / 오른쪽)
스크립트를 테스트 실행하십시오.
python3 /path/to/hotcorners2.py
모두 제대로 작동하면 시작 응용 프로그램에 대시 : 시작 응용 프로그램> 추가를 추가하십시오. 다음 명령을 추가하십시오 :
/bin/bash -c "sleep 5 && python3 /path/to/hotcorners2.py"
좀 더 고급 컴퓨팅을 사용하는 경우 정사각형 영역 대신 반경을 사용하여 명령을 트리거 할 수 있습니다 (오래된 @pythagoras 덕분에).
약간의 차이가 있지만 재미를 위해서만 :
#!/usr/bin/env python3
import subprocess
import math
import time
# set distance (hotcorner sensitivity)
radius = 20
# top-left, top-right, bottom-left, bottom-right
commands = [
None,
"gedit",
None,
"gnome-terminal",
]
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def get_pos():
return [int(s.split(":")[1]) for s in get(["xdotool", "getmouselocation"]).split()[:2]]
# get the resolution
scrdata = get("xrandr").split(); resindex = scrdata.index("connected")+2
res = [int(n) for n in scrdata[resindex].split("+")[0].split("x")]
# list the corners, could be more elegant no doubt
corners = [[0, 0], [res[0], 0], [0, res[1]], [res[0], res[1]]]
match1 = None
while True:
time.sleep(1)
pos = get_pos()
# get the current difference from the mousepointer to each of the corner (radius)
diff = [int(math.sqrt(sum([(c[i]-pos[i])**2 for i, n in enumerate(res)])))\
for c in corners]
# see if any of the corners is "approached" within the radius
match2 = [diff.index(n) for n in diff if n < radius]
# if so, and the corresponding command is not set to None, run it.
if all([match2 != match1, match2]):
cmd = commands[match2[0]]
if cmd:
subprocess.Popen(["/bin/bash", "-c", cmd])
match1 = match2
거의 동일합니다. 스크립트의 헤드 섹션에서 명령과 트리거 할 반경을 설정하십시오.
wjandrea의 답변 은 기본 Ubuntu 또는 Ubuntu Kylin을 사용하거나 디스플레이 관리자로 compiz가있는 사람에게 가장 적합한 답변이므로 내지지와 존경을 얻습니다. 아래에 제공된 답변은 Unity에서도 사용할 수 있지만 약간 중복 될 수 있습니다. 그러나 경합이없는 데스크탑 환경에서는 아래 제시된 표시기를 사용할 수 있습니다. 나는 그것을 Lubuntu 16.04 VM에서 간단히 테스트 했으므로 거기에서 작동한다는 것을 알고 Kylin 14.04 와도 호환됩니다. 그놈 및 MATE 데스크탑의 경우 표시기를 사용하려면 먼저 AppIndicators를 지원해야합니다.
indicator-edger
화면의 4 가장자리를 따라 마우스 위치를 기반으로 사용자 정의 명령을 트리거 할 수 있도록 구현했습니다 . 원본 버전은 하루에 약 7 시간 만에 완료되었으므로 최소한의 작업을 수행합니다.
표시기는 ~/.edger-commands.json
분명히 파일 json
형식으로 제어 됩니다. 사용자가 직접 작성하거나 표시기 DEFINE COMMANDS
옵션을 통해 설정할 수 있습니다. 활성화 / 비활성화 트리거링 옵션은 사용자 편의를 위해 파일에 자동으로 기억되고 기록됩니다. 샘플 구성 파일은 다음과 같습니다.
{
"right": "gnome-terminal",
"top": "firefox",
"left": "",
"bottom": "gnome-screenshot",
"enabled": true
}
"left"
파일 의 항목을 기록하십시오. 그 가장자리는 설정되어 있지 않지만 json
구문 으로 인해 빈 문자열 (예 : quotes)이 필요합니다 ""
.
표시기가 사용자가 가장자리를 따라 (~ 3 픽셀 여백) 마우스를 놓았다는 것을 감지하면 표시기는 거품 알림을 보내고 적절한 명령을 실행합니다 (정의 된 경우). 사용자가 마우스를 가장자리에서 멀리 움직이지 않으면 트리거 활성화가 반복되지 않습니다.
위의 스크린 샷에서 볼 수 있듯이 표시기에는 명령 줄에 디버깅 출력도 있습니다. 버그를 발견하면 터미널에서 버그를 실행하고 어떤 오류가 발생했는지 확인한 후 프로젝트 GitHub의 이슈 페이지 에서 적절한 버그 보고서를 제출 하십시오 .
현재 모서리 (가장자리 만)는 지원되지 않으며 1 모니터 설치용으로 제작되었지만 (생성 후 7 시간 이내에 모든베이스를 다룰 수는 없습니다), 나중에이 기능을 사용할 수 있습니다.
소스 코드는 프로젝트 GitHub 페이지 또는 Launchpad 를 통해 사용할 수 있습니다 . 터미널에서 다음 명령을 통해 설치가 수행됩니다.
sudo add-apt-repository ppa:1047481448-2/sergkolo
sudo apt-get update
sudo apt-get install indicator-edger