아이콘을 사용하여 실행 파일에 대한 명령 실행

아이콘을 사용하여 실행 파일에 대한 명령 실행

(Ubuntu 18.04) 주어진 아이콘으로 실행 파일을 여는 명령이 있습니까? 더 많은 배경 정보를 제공하겠습니다. 여러 Google Chrome "사용자"를 생성하려고 합니다("사람" 탭이 아니라 각 사용자에게 고유한 사용자 집합이 필요함). 너도 할 수 있다는 걸 알아 나도 해냈어 먼저 실행해

mkdir ~/.config/google-chrome-Theo

그리고

mkdir ~/.config/google-chrome-Teddy

그런 다음 실행되는 데스크톱 실행 파일을 만듭니다.

google-chrome --user-data-dir=$HOME/.config/google-chrome-Theo

그리고 또 다른 달리기

google-chrome --user-data-dir=$HOME/.config/google-chrome-Teddy

이렇게 하면 "Theo" 실행 파일을 실행할 때 Theo의 인사 제품군, 북마크 등을 얻을 수 있습니다. 하지만 "Teddy" 실행 파일을 실행하면 Teddy의 사람과 북마크가 표시됩니다. 문제는 속성 메뉴에 들어가면 각 데스크톱 실행 파일의 아이콘을 변경할 수 있지만 팝업되는 크롬 인스턴스의 아이콘은 변경할 수 없다는 것입니다. 즉, Theo와 Teddy의 크롬을 모두 열면 원하는 아이콘을 찾기 위해 검색해야 하는 두 개의 일반 크롬 아이콘이 있습니다. 특정 아이콘으로 실행 파일을 여는 명령이 있습니까?

편집: fra-san의 답변을 시도했지만 나에게는 효과가 없는 것 같습니다. 내 시도를 명확히 하겠습니다. 결국 다음 두 개의 데스크톱 파일이 생겼습니다.

  1. Desktop/Chrome-Theo.desktop다음 콘텐츠가 포함되어 있습니다:

#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/theo/.config/google-chrome-Theo" --class=theo Icon=/home/theo/Icon-Blue.png NoDisplay=true StartupWMClass=theo

  1. Desktop/chrome-teddy.desktop, 내용은 다음과 같습니다.

#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/ubuntu/.config/google-chrome-Teddy" --class=teddy Icon=home/teddy/Icon-Red.png NoDisplay=true StartupWMClass=teddy

그러나 해당 항목을 열면 여전히 사이드바에 기본 크롬 아이콘이 표시됩니다. 내가 어딘가를 엉망으로 만들었나요?

편집 2: 이 두 데스크톱 실행 파일이 동일한 Chrome 사용자를 열고 있다는 것을 방금 깨달았습니다. Theo chrome에 페이지를 북마크에 추가했고 Teddy 페이지를 열면 동일한 북마크가 있습니다. 지금은 정말 혼란스러워요.

답변1

가설

나는 당신이 Ubuntu 18을 사용하고 있고 데스크탑 환경이 당신이 사용하고 있는 GNOME 3이라고 가정할 것입니다 google-chrome-stable.
또한 당신이 언급하는 아이콘은 다음과 같다고 가정하겠습니다.그놈용 대시(실제로는 Ubuntu Dock입니다. 대시 포크인 것으로 알고 있지만 현재로서는 의미 있는 문서에 연결할 수 없습니다.) 기본 동작은 여러 Chrome 인스턴스를 함께 그룹화하는 것입니다. 그래서 결국 나는 당신이 다른 아이콘을 원한다고 가정합니다크롬 프로필부두에서.

해결책

기본적으로 재현하는 데 필요한 단계는 내 답변에 설명되어 있습니다.이 문제. 하지만 이것만으로는 충분하지 않습니다. 아마도이 오류- 이렇게 하면 Google Chrome에서 이 옵션을 지정하지 않는 한(그리고 다른 디렉토리가 사용되지 않는 한) 이 --class옵션을 무시합니다 .--user-data-dir

두 가지가 필요합니다.

  1. 데스크탑 파일을 일부 편집하십시오.
  2. 두 개의 서로 다른 Chrome 사용자 데이터 디렉터리.

포인트 2: 다행스럽게도 당신은 이미 그것들을 가지고 있습니다: ~/.config/google-chrome-Theo그리고 ~/.config/google-chrome-Teddy.

포인트 1: 데스크톱 파일에 대한 세부 정보가 충분하지 않아 여기에서 처음부터 새로 생성합니다. 기본적 으로
각 사용자의 데스크톱 파일 위치는 입니다 ~/.local/share/applications.

  1. ~/.local/share/applications/chrome-theo.desktop, 내용은 다음과 같습니다.

    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Version=1.0
    Terminal=false
    Type=Application
    Name=Google Chrome
    Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/your_user/.config/google-chrome-Theo" --class=theo
    Icon=icon_for_theo
    NoDisplay=true
    StartupWMClass=theo
    
  2. ~/.local/share/applications/chrome-teddy.desktop, 내용은 다음과 같습니다.

    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Version=1.0
    Terminal=false
    Type=Application
    Name=Google Chrome
    Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/ubuntu/.config/google-chrome-Teddy" --class=teddy
    Icon=icon_for_teddy
    NoDisplay=true
    StartupWMClass=teddy
    

your_user경로를 실제 사용자 이름으로 바꾸십시오 . 합계를 다음으로
바꾸십시오 .icon_for_theoicon_for_theddy

  • 이것전체 경로사용하려는 아이콘 파일로 이동하거나
  • 이것이름, 아이콘 파일을 시스템 전체에서 사용할 수 있도록 하려면 확장자를 사용하지 마세요 /usr/share/icons/hicolor/.

두 번째 옵션은 설정하기가 훨씬 더 복잡하지만 다양한 크기의 아이콘을 사용할 수 있습니다. 인용하다Ask Ubuntu에 대한 이 답변자세한 내용은 다음으로 연결됩니다.아이콘 테마 사양freedesktop.org에서 제공.

작동 방식:

  • --class=옵션은 WMCLASS두 개의 Chrome 인스턴스에 대해 두 개의 서로 다른 es를 제공하여 Dock에서 그룹화할 수 없게 만듭니다.
  • StartupWMClass=열려 있는 Chrome 창과 이를 실행하는 데스크톱 항목 사이에 링크를 설정하여 Dock에 맞춤 아이콘을 유지합니다.
  • 위의 오류로 인해 이 --user-data-dir=옵션은그리고 완전히 다른 두 사람처음 두 지점에서는 사용자 데이터 디렉터리가 유효해야 합니다.

예방 조치 및 문제 해결

테스트 환경: Live Ubuntu 18.04 LTS, Xorg 세션, google-chrome-stable71.0.3578.98-1.

내 댓글을 빌려위의 답변:

  • 이러한 구성은 깨끗한 시스템에서 테스트하는 것이 좋습니다. 최소한 새 Chrome 프로필과 사용자 데이터 디렉터리는 기껏해야 전용 사용자(테스트 목적으로만 생성됨)입니다.
  • xprop이 옵션이 준수되는지 확인하는 데 사용할 수 있습니다 --class.

    ## This example uses chromium instead of Google Chrome!
    ## With default settings:
    $ xprop WM_CLASS
    WM_CLASS(STRING) = "chromium", "Chromium"
    
    ## With --class=test_class
    $ xprop WM_CLASS
    WM_CLASS(STRING) = "chromium", "test_class"
    

관련 정보