이름과 섬네일이있는 사용 가능한 모든 고유 아이콘 목록보기


15

시스템에 어떤 아이콘이 설치되어 있고 어떤 이름으로 참조되어야하는지보고 싶습니다.

아이콘 이름, 미리보기 썸네일, 위치 및 가능한 경우 (예 : 어떤 아이콘 테마 패키지)를 포함하는 모든 고유 아이콘의 형식이 좋은 목록 (여러 해상도를 개별적으로 표시하지 않음)을 어떻게 얻을 수 있습니까?

시스템 : Ubuntu 15.10 Wily Werewolf 64 비트
데스크탑 : Unity


"패키지 찾기"부분과 관련하여 "dpkg-query -S / bin / bash"는 / bin 디렉토리에있는 bash 실행 파일의 패키지 이름을 출력합니다 (예 : 작동 방식). 인수로 "/ bin"만 사용하면 / bin 디렉토리의 모든 파일에 대해 설치된 모든 패키지가 출력됩니다.
neoc

2
find /usr/share/icons/ -iname '*.png' -or -iname '*.svg' -printf '%h %f %p\n' | sed -r 's;^/usr/share/icons/([^/]*)/[^ ]* ;\1 ;' | sort -u -k1,2 | column -t썸네일 부분을 제외하고 대부분을 다룹니다. 목록에서 미리보기 이미지가 어떻게 표시 될지 잘 모르겠습니다.
muru November

@muru GUI 창에서? 나는 그것이 명령 줄 솔루션이어야한다고 말하지 않았다 ...
바이트 사령관

@ByteCommander 당신은하지 않았지만 어떤 종류의 GUI도 말하지 않았습니다. 우리가 당신을 위해 GUI를 프로그래밍하길 기대합니까?
muru November

@muru 아니요,하지만 누군가 이미 기존 도구를 알고있을 것이라고 생각 했습니까? 나는 그런 것을 한 번 사용했다는 것을 알고 있습니다. 아마도 XFCE 기능에 내장되어있을 것입니다. 아마도 거기에서 발사기를위한 아이콘을 선택할 수도 있습니다 ...
Byte Commander

답변:


14

gtk3-icon-browser 는 테마 아이콘을 나열하는 그래픽 응용 프로그램입니다.

현재까지이 gtk-3-examples패키지 는 아직 개발 중이며 Vivid 및 최신 릴리스 용 패키지로 제공 됩니다. 그것의 개발은 2014 년 날짜의이 블로그 포스트 로 거슬러 올라갑니다 .

초등 Xfce 어두운 아이콘 검색

Xubuntu의 gtk3-icon-browser Normal 15.04

Xubuntu 15.04의 상징적 인 gtk3-icon-browser

빠른 검토

  • 멋지게 형식화 된 모든 고유 아이콘 목록 : 예 1
  • 아이콘 이름을 포함합니다 : 예
  • 미리보기 이미지 : 예
  • 아이콘의 위치 : No 2
  • 아이콘 테마 원점 : 예 3

1 이 도구는 기본적으로 아이콘보기로 표시됩니다 (목록보기로 변경할 수 없음). 각 아이콘을 두 번 클릭하면 해당 아이콘에 사용 가능한 모든 해상도가 표시됩니다.

gtk3- 아이콘-브라우저 심볼릭 더블 클릭 아이콘

2 이 도구는 대부분의 /usr/share/icons아이콘 위치를 언급하지 않고 디렉토리를 살펴보고 아이콘 이름 지정 사양 에 따라 추가 정보를 가져옵니다 .

3 이 도구는 현재 테마 의 아이콘 만 표시합니다 . 다른 테마의 아이콘을 표시하려면 모양을 현재 테마에서 다른 테마로 변경하십시오.

인류 어두운 아이콘 검색 (팝업 대화 상자 사용)

gtk3 아이콘 브라우저 인류 어두운 아이콘

요구 사항

  • GTK + 3.13.4 이상
  • 설치 gtk-3-examples15.04 (생생한) 이상 버전에

설치하는 방법

sudo apt-get install gtk-3-examples

달리는 방법

gtk3-icon-browser

GTK + 3.14.13 (이 답변 날짜까지 최신 버전)을 사용하여 Xubuntu 15.04에서 작업을 테스트했습니다.

관련 출처

  1. GitHub의 GNOME / gtk에 대한 마스터의 gtk / demos 소스 코드 .

  2. Fedora Magazine 에서 개발중인 GTK + 개발자를위한 새로운 아이콘 브라우저 도구

  3. Ask Ubuntu 의이 답변 에서 스크린 샷으로 간단히 언급했습니다 .


이 솔루션은 거의 완벽합니다. 그러나 현재 테마에서 제공하지 않는 다른 테마의 아이콘을 표시 한 경우입니다.
바이트 사령관

@ByteCommander 누군가 AB에게 답변을 삭제 취소하도록 지시해야합니다.이 프로그램을 정확하게 제안했습니다.
muru

3

글쎄, 어떤 DE는 당신이 무언가의 아이콘을 바꾸려고 할 때 이것을 보여 주지만, 그것을 직접하는 것은 매우 쉽습니다. 모든 아이콘을 찾아서 일부 디렉토리에서 링크를 만들고 디렉토리를 찾아보십시오. 해상도가 다른 아이콘의 이름은 동일하며 경로는 변경됩니다. 예를 들면 다음과 같습니다.

$ find /usr/share/icons/ -name '*emacs.*' 
/usr/share/icons/hicolor/16x16/apps/emacs.png
/usr/share/icons/hicolor/48x48/apps/emacs.png
/usr/share/icons/hicolor/scalable/apps/emacs.svg
/usr/share/icons/hicolor/128x128/apps/emacs.png
/usr/share/icons/hicolor/32x32/apps/emacs.png
/usr/share/icons/hicolor/24x24/apps/emacs.png
/usr/share/icons/Mint-X/apps/96/emacs.svg
/usr/share/icons/Mint-X/apps/16/emacs.png
/usr/share/icons/Mint-X/apps/24/emacs.png
/usr/share/icons/Mint-X/apps/48/emacs.png
/usr/share/icons/Mint-X/apps/32/emacs.png
/usr/share/icons/Mint-X/apps/22/emacs.png

위에서 볼 수 있듯이 일반적인 형식은 /ParentDir/ThemeName/CLass/Resolution/IconName입니다. 따라서 아이콘 이름이 동일하기 때문에 생성 된 각 링크가 동일한 이름의 기존 링크를 덮어 쓰면 중복을 쉽게 피할 수 있습니다. 그러나 다른 테마의 아이콘을 별도로 지프 화하려면 약간 더 스크립팅이 필요합니다.

#!/usr/bin/env bash

## Create the target directory
mkdir -p ~/foo
## Iterate over all files/dirs in the target locations
for i in ~/.icons/* /usr/share/icons/* /usr/share/pixmaps/*; do 
    ## find all icon files in this directory. If the current $i
    ## is not a directory, find will just print its path directly.
    find "$i" -name '*xpm' -o -name '*.svg' -o -name '*png' | 
        ## Iterate over find's results
        while read ico; do 
            ## Make the link. ${var##*/} will print the
            ## basename of $var, without the path. Here, I use
            ## it both to get the theme name (${i##*/}) and the
            ## icon's name (${ico##*/}).         
            ln -sf "$ico" "${i##*/}"_"${ico##*/}"
        done
done

위의 스크립트는 ~/foo각 고유 아이콘 파일에 대한 링크를 포함 하는 디렉토리 를 만듭니다 . -f에 옵션 ln우리가 링크의 이름으로 테마 이름을 사용하고 있기 때문에, 같은 이름의 기존 파일을 덮어 쓰기 할을 알려줍니다, 아니 중복이 없어야합니다. 예를 들어 emacs.png위에 표시된 아이콘이 있으면 다음과 같이 생성됩니다.

hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png

이제 찾아보고 살펴볼 수 있습니다 ~/foo.

여기에 이미지 설명을 입력하십시오

그런 다음 소스 패키지를 얻으려면 다음을 실행할 수 있습니다.

for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done

그러나 이것은 사용 가능한 모든 다른 해상도의 이미지를 연결합니다. 다른 크기의 중복을 필터링하고 가장 큰 것을 표시 할 수 있습니까?
바이트 사령관

@ByteCommander 아니요. 이 -f옵션은 ln기존 링크 를 덮어 쓰므로 동일한 이름의 아이콘 하나만 표시됩니다. 그러나 나는 듀스가 문제가되지는 않지만 gedit.png마지막으로 발견 된 아이콘으로 모든 아이콘을 덮어 쓰므로 많은 것을 놓칠 수 있음을 깨달았습니다. 그것이 해상도를 다루고 싶었지만 다른 테마를 다루지는 않습니다. 하나의 테마 아이콘 만 표시됩니다. 지금 고치려고합니다.
terdon

@ByteCommander 확인, 업데이트 된 답변을 참조하십시오. 여전히 중복 문제는 없지만 다른 테마의 아이콘이 올바르게 표시됩니다.
terdon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.