Xem danh sách tất cả các biểu tượng độc đáo có sẵn với tên và hình thu nhỏ của chúng


15

Tôi muốn xem những biểu tượng nào được cài đặt và có sẵn trên hệ thống của tôi và những tên mà tôi phải đề cập đến chúng.

Làm cách nào tôi có thể nhận được một danh sách được định dạng độc đáo của tất cả các biểu tượng duy nhất (không hiển thị một số độ phân giải riêng biệt) có chứa tên biểu tượng, hình thu nhỏ xem trước, vị trí và có thể nếu nó đến từ đâu (ví dụ gói chủ đề biểu tượng nào)?

Hệ thống: Ubuntu 15.10 Wily Werewolf 64 bit
Desktop: Unity


Về phần "tìm ra gói nào": "dpkg-query -S / bin / bash" xuất ra tên gói của bash thực thi trong thư mục / bin (như một ví dụ về cách thức hoạt động của nó). Chỉ với "/ bin" làm đối số, nó sẽ xuất tất cả các gói đã cài đặt cho tất cả các tệp trong thư mục / 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 -tbao gồm hầu hết phần này (trừ phần hình thu nhỏ), tôi muốn nói. Tôi không chắc chắn làm thế nào bạn mong đợi để xem hình thu nhỏ trong một danh sách.
muru

@muru Trong cửa sổ GUI? Tôi không nói nó nên là một giải pháp dòng lệnh ...
Byte Commander

@ByteCommander Bạn đã không, nhưng bạn cũng không nói loại GUI nào. Bạn có mong đợi chúng tôi lập trình GUI cho bạn không?
muru

@muru Không, nhưng tôi nghĩ ai đó có thể biết một công cụ đã có sẵn cho việc này? Tôi biết tôi đã từng sử dụng một cái gì đó như thế một lần, nó có thể được tích hợp vào một số chức năng XFCE, có thể để chọn một biểu tượng cho các trình khởi chạy ở đó ...
Byte Commander

Câu trả lời:


14

gtk3-icon-browser là một ứng dụng đồ họa để liệt kê các biểu tượng theo chủ đề.

Cho đến ngày nay, nó vẫn đang được phát triển và có sẵn trong gtk-3-examplesgói cho các bản phát hành Vivid và mới hơn. Sự phát triển của nó có thể được truy trở lại bài đăng blog này vào năm 2014 .

Duyệt biểu tượng tối Xfce tiểu học

gtk3-icon-browser Bình thường trên Xubfox 15.04

gtk3-icon-browser Symbolic trên Xubfox 15.04

Đánh giá nhanh

  • Danh sách được định dạng chính xác của tất cả các biểu tượng duy nhất: Có 1
  • Chứa tên biểu tượng: Có
  • Xem trước hình thu nhỏ: Có
  • Vị trí của các biểu tượng: Số 2
  • Nguồn gốc biểu tượng: Có 3

1 Công cụ này sẽ hiển thị dưới dạng xem biểu tượng theo mặc định (không có cách nào thay đổi thành chế độ xem danh sách). Nhấp đúp vào từng biểu tượng sẽ hiển thị tất cả các độ phân giải có sẵn cho biểu tượng đó.

gtk3-icon-browser Biểu tượng nhấp đúp biểu tượng

2 Công cụ này rất có thể nhìn vào /usr/share/iconsthư mục (không đề cập đến vị trí cho mỗi biểu tượng) và lấy thông tin bổ sung theo thông số đặt tên biểu tượng .

3 Công cụ này chỉ hiển thị các biểu tượng cho chủ đề hiện tại . Để hiển thị biểu tượng cho chủ đề khác, thay đổi giao diện từ chủ đề hiện tại sang chủ đề khác.

Duyệt các biểu tượng Dark-Humanity (có hộp thoại bật lên)

gtk3-icon-browser Biểu tượng nhân văn tối

Yêu cầu

  • GTK + 3.13.4 hoặc mới hơn
  • Cài đặt gtk-3-examplestrong 15.04 (Sống động) hoặc bản phát hành mới hơn

Cài đặt thế nào

sudo apt-get install gtk-3-examples

Cách chạy

gtk3-icon-browser

Đã thử nghiệm làm việc trên Xubfox 15.04, sử dụng GTK + 3.14.13 (phiên bản mới nhất cho đến ngày được trả lời này).

Nguồn liên quan

  1. Mã nguồn của gtk / demos tại master cho Gnome / gtk trên GitHub.

  2. Công cụ trình duyệt biểu tượng mới dành cho nhà phát triển GTK + đang phát triển trên Tạp chí Fedora

  3. Đề cập ngắn gọn với ảnh chụp màn hình trong câu trả lời này trên Hỏi Ubuntu.


Giải pháp này gần như hoàn hảo. Mặc dù vậy, nó sẽ hiển thị các biểu tượng từ các chủ đề khác không được cung cấp bởi chủ đề hiện tại.
Chỉ huy Byte

@ByteCommander ai đó nên nói với AB để hủy bỏ câu trả lời của họ, trong đó đề xuất chính xác chương trình này.
muru

3

Chà, một số DE thể hiện điều này khi bạn cố gắng thay đổi biểu tượng của một cái gì đó, nhưng nó khá dễ dàng để tự làm điều đó. Chỉ cần tìm tất cả các biểu tượng, tạo liên kết đến chúng trong một số thư mục và duyệt thư mục. Các biểu tượng của các độ phân giải khác nhau sẽ có cùng tên, những thay đổi là đường dẫn. Ví dụ:

$ 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

Như bạn có thể thấy ở trên, định dạng chung là /ParentDir/ThemeName/CLass/Resolution/IconName. Vì vậy, vì tên của biểu tượng là giống nhau, chúng ta có thể tránh trùng lặp dễ dàng bằng cách tạo từng liên kết ghi đè lên bất kỳ liên kết hiện có cùng tên. Tuy nhiên, chúng tôi muốn tách riêng các biểu tượng từ các chủ đề khác nhau, do đó cần có thêm một chút kịch bản:

#!/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

Kịch bản trên sẽ tạo thư mục ~/foochứa các liên kết đến từng tệp biểu tượng duy nhất của bạn. Các -ftùy chọn để lnnói với nó để ghi đè lên file hiện có cùng tên và, vì chúng ta đang sử dụng tên chủ đề trong tên của liên kết, không nên có bản sao. Ví dụ, với các emacs.pngbiểu tượng hiển thị ở trên, nó sẽ tạo ra:

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

Bây giờ bạn có thể, duyệt đến ~/foovà xem:

nhập mô tả hình ảnh ở đây

Sau đó, để có được các gói nguồn, bạn có thể chạy:

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

Tuy nhiên, điều này sẽ liên kết hình ảnh của tất cả các độ phân giải có sẵn khác nhau, phải không? Tôi có thể lọc các bản sao ở các kích cỡ khác nhau và chỉ hiển thị cái lớn nhất không?
Chỉ huy Byte

@ByteCommander không nó sẽ không. Các -ftùy chọn này lnghi đè lên các liên kết hiện có để chỉ một biểu tượng cùng tên sẽ được hiển thị. Tuy nhiên, tôi chỉ nhận ra rằng trong khi các bản sao sẽ không là vấn đề, bạn sẽ bỏ lỡ nhiều vì tất cả các gedit.pngbiểu tượng sẽ bị ghi đè bởi cái cuối cùng được tìm thấy. Đó là những gì tôi muốn giải quyết các nghị quyết, nhưng nó không liên quan đến các chủ đề khác nhau: chỉ một biểu tượng của một chủ đề sẽ được hiển thị. Tôi đang cố gắng khắc phục điều đó ngay bây giờ.
terdon

@ByteCommander OK, xem câu trả lời cập nhật. Điều này vẫn không có vấn đề với các bản sao nhưng bây giờ sẽ hiển thị chính xác các biểu tượng từ các chủ đề khác nhau.
terdon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.