소프트웨어 센터에서 응용 프로그램을 설치할 때마다 바탕 화면에 바로 가기를 자동으로 만들도록하려면 어떻게해야합니까?


8

카이로 독을 사용하는 것을 선호하므로 Unity의 런처가 숨겨져 있습니다.

그렇기 때문에 Ubuntu Software Center에서 설치 한 항목을 바탕 화면에 자동으로 바로 가기를 설정하는 방법을 찾으려고합니다.


나는 이것을 이해할 수 없다. 왜 이렇게 하시겠습니까? 모든 도구 / 런처가 모든 것과 관련이 있습니까?
Braiam

1
@Braiam 저는 OP가 많은 Windows 프로그램과 마찬가지로 소프트웨어 센터를 통해 다운로드 한 프로그램에 대해 바탕 화면에 바로 가기를 만들고 싶어한다고 생각합니다. 런처는 소프트웨어 센터가 자동으로 새로운 설치를 고정하기 때문에 언급되었지만 OP는이를 사용하지 않습니다.
Seth

@Seth는 소프트웨어가 데스크탑에 "다운로드"되기를 원하기 때문에 추측이 다.
Braiam

2
@Braiam 새로운 사용자가 어떻게 생각하는지에 대한 약간의 이해는 많은 도움이됩니다.) 데스크톱에서 바이너리를 원하지 않습니다. 소프트웨어 센터를 사용하여 바이너리를 다운로드 할 수도 없습니다.
세스

첫 번째 메신저 ..... 두 번째 오프 메신저, 김프, PDF 또는 게임 또는 응용 프로그램과 같은 다운로드 할 때 이야기합니다. 작은 도구 모음을 사용하지 않기 때문에 데스크탑으로 이동하고 싶습니다. 그것은 UBUNTU와 함께 제공됩니다. 나는 카이로 독을 사용하며 우분투 소프트웨어 센터 (이곳에서 sed 프로그램을 다운로드하는 곳) 다운로드 위치를 변경하는 방법을 알아낼 수 없습니다.
Ashleigh Johnson

답변:


6

백그라운드에서 아래 스크립트를 실행하면 새로 설치된 소프트웨어 의 바탕 화면에 자동으로 스타터가 생성됩니다 .

또한:

  • 새 항목이 실제로 응용 프로그램인지 확인합니다 (실행기에서 시작 NoDisplay=true).
  • 데스크탑의 실행기를 실행 가능하게하여 사용할 수있게합니다.

사용하는 방법

  • 아래 스크립트를 빈 파일 (예 :)에 복사하여 gedit다른 곳에 저장하십시오 make_starter.py.
  • 먼저 테스트하려면 다음을 수행하여 터미널 창에서 실행하십시오.

    python3 /path/to/make_starter.py
    

    익숙한 응용 프로그램을 설치하십시오. 설치가 완료되면 바탕 화면에 아이콘이 나타납니다

  • 모두 제대로 작동하면 시작> 시작 응용 프로그램> 추가와 같이 시작 응용 프로그램에 추가하십시오. 다음 명령을 추가하십시오 :

    python3 /path/to/make_starter.py
    

노트

현지화 된 버전의 Ubuntu는 "Desktop"(네덜란드의 "Bureaublad")과 다른 이름을 가질 수 있습니다. 그렇다면 다음 줄을 교체하십시오.

desktopname = "Desktop"

loacalized 이름으로 "데스크탑".

스크립트

#!/usr/bin/env python3
import subprocess
import os
import time
import shutil

desktopname = "Desktop"
dr = "/usr/share/applications"

while True:
    current = os.listdir(dr)
    time.sleep(10)
    last = os.listdir(dr)
    for item in last:
        if not item in current and item.endswith(".desktop"):
            file = dr+"/"+item
            with open(file) as src:
                text = src.read()
            if not "NoDisplay=true" in text:
                target = os.environ["HOME"]+"/"+desktopname+"/"+item
                shutil.copyfile(file, target)
                command = "chmod +x "+target
                subprocess.Popen(["/bin/bash", "-c", command])

감사합니다 @Jacobvlijm 아빠가 여러분의 의견을 읽고 모든 기술적 내용을 이해하지 못하기 때문에 저에게 해줄 것입니다
Ashleigh Johnson

1
이것은 답변의 목표와 관련이 없지만 파이썬 구문을 언급 할 기회를 얻습니다. 매우 이해하기 쉽습니다. 물론 bash 또는 C와 같은 다른 것을 사용할 수는 있지만 이것보다 더 많은 인간을 얻을 수는 없습니다. :-)
Lucio

3
@Lucio 좋은 기회 만약 당신이 평범한 영어를 쓰면 우연히 파이썬 스크립트를 쓸 것입니다 :)
Jacob Vlijm

1
@JacobVlijm 나는 다른 한편으로, 당신이 PC 앞에서 원숭이를 떠날 경우 우연히 스크립트를 썼을 가능성이 높다고 말할 수는 없다 Perl:)
kos

@ kos 나는 AU에 너무 많은 원숭이가 있다는 것을 몰랐습니다. :) 솔직히 말해서 : 고양이는 내 명성의 대부분을 얻었습니다. 내가 쓴 단일 답변은 downvoted 하나입니다. :).
Jacob Vlijm

3

백 개가 넘는 응용 프로그램 아이콘이있을 수 있기 때문에 이것은 엄청나게 지저분합니다. 아이콘 (실제로 데스크탑 실행기 파일 )은 일반적으로에 /usr/share/applications있습니다. 따라서 터미널에서 다음 명령을 실행할 있습니다.

find /usr/share/applications -type f -name '*.desktop' -exec cp --target-directory ~/Desktop/ {} +

그러나 이것은 바탕 화면에 모든 단일 실행기의 사본을 만듭니다 . ( 환경에 따라 수백 개 )

/usr/share/applications파일 관리자를 찾아서 관련 응용 프로그램의 파일을 데스크탑에 수동으로 복사 할 수 있습니다 . 내가 알 수있는 한 소프트웨어 센터 에서이 작업을 수행하는 자동 방법은 없습니다.


1
시냅틱에 실행할 수있는 일종의 설치 후 스크립트가 있는지 궁금합니다. 소프트웨어 센터에는 시냅스가있을 수 있습니다. 그렇지 않으면이를 수행하는 유일한 다른 방법은 사용자 지정 스크립트를 사용하여 명령 줄을 통해 설치하는 것입니다. 그냥 큰소리로 생각해
세스

하나는 아마도 사용하여 설치된 응용 프로그램의 목록을 구할 수 dpkgdiff새로운 선택 목록과 각 설치 후 이전 선택 목록을. 그런 다음 관련 .desktop파일을 바탕 화면에 복사하는 스크립트를 사용하여 바로 가기를 만들 수 있습니다 .
Rohith Madhavan

1
무언가를 설치할 때 데스크탑에 수동으로 넣어야합니까? 조금 불안하지만 처리 할 수 ​​있습니다
Ashleigh Johnson

1
편집 @muru에 대해 죄송하지만 무고한 사람을 보호하려고합니다 ... ;-) 내 시스템에서 : ls /usr/share/applications/*.desktop | wc제공 :168 168 7851
Fabby

@AshleighJohnson 그러나 문제가 있습니다 : 설치된 응용 프로그램이 실행기에 추가됩니다. 따라서 데스크탑 자체가 아닌 직접 사용할 수 있습니다.
Rinzwind 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.