Files
nyaterm/scripts/icons.manifest
T
Kang cea0bb3dd4 feat(terminal): give the right-click menu its icons
Tauri's terminal context menu leads every row with a Material glyph —
copy, search, search-online, AI, translate, paste, paste-selected,
clear, clear-all, select-all. Ours had none, which is most of why the
two menus do not read alike.

Every row now carries one, including the submenu triggers and the rows
inside them, and a row without an icon still reserves the column so the
labels line up. Six glyphs were missing from the bundle and are vendored
through the manifest like the rest.

Sending a prompt to the AI panel from this menu — or from anywhere else
— now writes it into the composer as well as the draft. The composer
owns its own buffer since it became a real input, so the two would
otherwise show different things.
2026-07-27 09:23:48 +08:00

254 lines
11 KiB
Plaintext

# Icon vendoring manifest, consumed by scripts/sync-icons.sh.
#
# Format: <destination under crates/nyaterm-app/assets> <TAB> <source spec>
#
# Source specs:
# md:<variant>/<file> @material-design-icons/svg (Apache-2.0)
# si:<slug>.svg simple-icons (CC0-1.0)
# fa:<style>/<file> @fortawesome/fontawesome-free svgs/ (CC BY 4.0)
# vsc:<file> @vscode/codicons src/icons/ (CC BY 4.0)
# rmx:<dir>/<file> remixicon icons/ (Apache-2.0)
# local-svg:<rel> temp/nyaterm-tauri/public/icons/<rel>, cleaned + resized
# local-png:<rel> ditto, but the base64 payload is extracted to a real PNG
# keep hand-authored here; the script must not touch it
#
# Destination prefix encodes the render mode and is enforced by tests in
# crates/nyaterm-app/src/assets.rs:
# icons/** monochrome, painted with svg() + text_color (all paint discarded)
# color/** full color, painted with img() (cannot be tinted)
#
# Pinned upstream versions live in scripts/sync-icons.sh.
# --- Shell chrome -----------------------------------------------------------
icons/logo.svg keep
icons/ai.svg md:filled/auto_awesome.svg
icons/auth.svg md:filled/vpn_key.svg
icons/arrow-down.svg md:filled/arrow_downward.svg
icons/check.svg md:filled/check.svg
icons/chevron-down.svg md:filled/expand_more.svg
icons/chevron-up.svg md:filled/expand_less.svg
icons/close.svg md:filled/close.svg
icons/commands.svg md:filled/bolt.svg
icons/connections.svg md:filled/dns.svg
icons/copy.svg md:filled/content_copy.svg
icons/docker.svg si:docker.svg
icons/eye.svg md:filled/visibility.svg
icons/files.svg md:outlined/folder.svg
icons/history.svg md:filled/history.svg
icons/import.svg md:filled/file_download.svg
icons/lock.svg md:filled/lock.svg
icons/migration.svg md:filled/move_up.svg
icons/network.svg md:filled/lan.svg
icons/pin.svg md:filled/push_pin.svg
icons/processes.svg md:filled/list_alt.svg
icons/quote.svg md:filled/format_quote.svg
icons/record.svg md:filled/fiber_manual_record.svg
icons/resources.svg md:outlined/monitor_heart.svg
icons/send.svg md:filled/send.svg
icons/sessions.svg md:filled/link.svg
icons/settings.svg md:filled/settings.svg
icons/sync.svg md:filled/backup.svg
icons/translation.svg md:filled/translate.svg
icons/view-compact.svg md:filled/format_list_bulleted.svg
icons/workspace.svg md:filled/dashboard.svg
icons/view-grid.svg md:filled/grid_view.svg
icons/view-list.svg md:filled/view_list.svg
icons/warning.svg md:filled/warning_amber.svg
# --- AI panel ---------------------------------------------------------------
icons/ai/exec-auto.svg md:filled/warning_amber.svg
icons/ai/exec-confirm.svg md:filled/rule.svg
icons/ai/exec-smart.svg md:filled/auto_mode.svg
icons/ai/history.svg md:filled/history.svg
icons/ai/new.svg md:filled/add.svg
icons/ai/search.svg md:filled/search.svg
icons/ai/send.svg md:filled/send.svg
icons/ai/settings.svg md:outlined/settings.svg
icons/ai/stop.svg md:filled/stop.svg
# --- Connection chrome (non-brand) ------------------------------------------
icons/conn/add.svg md:filled/add.svg
icons/conn/connect.svg md:filled/link.svg
icons/conn/file.svg md:filled/insert_drive_file.svg
icons/conn/flash.svg md:filled/flash_on.svg
icons/conn/folder.svg md:filled/folder.svg
icons/conn/more.svg md:filled/more_vert.svg
icons/conn/remove.svg md:filled/remove.svg
icons/conn/serial.svg md:filled/cell_tower.svg
icons/conn/server.svg md:filled/dns.svg
icons/conn/sort-alpha.svg md:filled/sort_by_alpha.svg
icons/conn/sort.svg md:filled/sort.svg
icons/conn/symlink.svg md:filled/link.svg
icons/conn/telnet.svg md:filled/dns.svg
icons/conn/terminal.svg md:filled/terminal.svg
# --- File explorer ----------------------------------------------------------
icons/fe/back.svg md:filled/chevron_left.svg
icons/fe/bookmark-remove.svg md:filled/bookmark_remove.svg
icons/fe/delete.svg md:filled/delete.svg
icons/fe/download.svg md:filled/download.svg
icons/fe/forward.svg md:filled/keyboard_arrow_right.svg
icons/fe/new-file.svg md:filled/note_add.svg
icons/fe/new-folder.svg md:filled/create_new_folder.svg
icons/fe/paste.svg md:filled/content_paste.svg
icons/fe/refresh.svg md:filled/refresh.svg
icons/fe/search.svg md:filled/search.svg
icons/fe/star-outline.svg md:filled/bookmark_border.svg
icons/fe/star.svg md:filled/bookmark_added.svg
icons/fe/sync.svg md:filled/sync_lock.svg
icons/fe/up.svg md:filled/arrow_upward.svg
icons/fe/upload-folder.svg md:filled/drive_folder_upload.svg
icons/fe/upload.svg md:filled/upload.svg
# --- File-kind icons (getFileIcon port) -------------------------------------
icons/file/apps.svg md:filled/apps.svg
icons/file/archive.svg md:filled/folder_zip.svg
icons/file/audio.svg md:filled/audio_file.svg
icons/file/code.svg md:filled/code.svg
icons/file/data-object.svg md:filled/data_object.svg
icons/file/description.svg md:filled/description.svg
icons/file/image.svg md:filled/image.svg
icons/file/movie.svg md:filled/movie.svg
icons/file/pdf.svg md:filled/picture_as_pdf.svg
icons/file/present.svg md:filled/co_present.svg
icons/file/storage.svg md:filled/storage.svg
icons/file/table.svg md:filled/table_chart.svg
icons/file/text.svg md:filled/article.svg
# --- App menu ---------------------------------------------------------------
icons/menu/article.svg md:filled/article.svg
icons/menu/book.svg md:filled/menu_book.svg
icons/menu/broadcast.svg md:filled/cell_tower.svg
icons/menu/clear-all.svg md:filled/clear_all.svg
icons/menu/delete-sweep.svg md:filled/delete_sweep.svg
icons/menu/export.svg md:filled/file_upload.svg
icons/menu/fit.svg md:filled/fit_screen.svg
icons/menu/horizontal.svg md:filled/horizontal_split.svg
icons/menu/info.svg md:filled/info.svg
icons/menu/menu.svg md:filled/menu.svg
icons/menu/palette.svg md:filled/palette.svg
icons/menu/paste-go.svg md:filled/content_paste_go.svg
icons/menu/paste.svg md:filled/content_paste.svg
icons/menu/reset.svg md:filled/restart_alt.svg
icons/menu/select-all.svg md:filled/select_all.svg
icons/menu/sidebar.svg md:filled/view_sidebar.svg
icons/menu/split.svg md:filled/splitscreen.svg
icons/menu/travel-explore.svg md:filled/travel_explore.svg
icons/menu/update.svg md:filled/update.svg
icons/menu/vertical.svg md:filled/vertical_split.svg
icons/menu/zoom-in.svg md:filled/zoom_in.svg
icons/menu/zoom-out.svg md:filled/zoom_out.svg
# --- Tunnels / network ------------------------------------------------------
icons/net/delete.svg md:filled/delete.svg
icons/net/edit.svg md:filled/edit.svg
icons/net/move.svg md:filled/drive_file_move.svg
# --- Session controls -------------------------------------------------------
icons/session/disconnect.svg md:filled/link_off.svg
icons/session/more.svg md:filled/more_horiz.svg
icons/session/reconnect.svg md:filled/refresh.svg
icons/session/record.svg md:filled/fiber_manual_record.svg
icons/session/rename.svg md:filled/drive_file_rename_outline.svg
icons/session/save.svg md:filled/save.svg
icons/session/stop.svg md:filled/stop.svg
# --- Transfer queue ---------------------------------------------------------
icons/transfer/clear-all.svg md:filled/delete_sweep.svg
icons/transfer/pause.svg md:filled/pause.svg
icons/transfer/play.svg md:filled/play_arrow.svg
icons/transfer/playlist-remove.svg md:filled/playlist_remove.svg
icons/transfer/stop.svg md:filled/block.svg
# --- Window chrome ----------------------------------------------------------
# Deliberately codicons, not Material: these are thin-stroke title-bar glyphs and
# Material has no equivalent. The old UI used react-icons/vsc, same source set.
icons/window/close.svg vsc:chrome-close.svg
icons/window/maximize.svg vsc:chrome-maximize.svg
icons/window/minimize.svg vsc:chrome-minimize.svg
icons/window/restore.svg vsc:chrome-restore.svg
# --- Monochrome brand marks (QUICK_ICONS / SEARCH_ICONS / file kinds) --------
icons/brand/apple.svg si:apple.svg
icons/brand/aws.svg fa:brands/aws.svg
icons/brand/baidu.svg si:baidu.svg
icons/brand/bilibili.svg si:bilibili.svg
icons/brand/bing.svg fa:brands/microsoft.svg
icons/brand/centos.svg si:centos.svg
icons/brand/claude.svg si:claude.svg
icons/brand/css.svg si:css.svg
icons/brand/debian.svg si:debian.svg
icons/brand/docker.svg si:docker.svg
icons/brand/duckduckgo.svg si:duckduckgo.svg
icons/brand/fedora.svg si:fedora.svg
icons/brand/gemini.svg si:googlegemini.svg
icons/brand/github.svg si:github.svg
icons/brand/gitlab.svg si:gitlab.svg
icons/brand/go.svg si:go.svg
icons/brand/google.svg si:google.svg
icons/brand/googlecloud.svg si:googlecloud.svg
icons/brand/html5.svg si:html5.svg
icons/brand/javascript.svg si:javascript.svg
icons/brand/kubernetes.svg si:kubernetes.svg
icons/brand/linux.svg si:linux.svg
icons/brand/mongodb.svg si:mongodb.svg
icons/brand/mysql.svg si:mysql.svg
icons/brand/nginx.svg si:nginx.svg
icons/brand/nodedotjs.svg si:nodedotjs.svg
icons/brand/openai.svg rmx:Logos/openai-fill.svg
icons/brand/php.svg si:php.svg
icons/brand/postgresql.svg si:postgresql.svg
icons/brand/python.svg si:python.svg
icons/brand/redis.svg si:redis.svg
icons/brand/rust.svg si:rust.svg
icons/brand/server.svg fa:solid/server.svg
icons/brand/typescript.svg si:typescript.svg
icons/brand/ubuntu.svg si:ubuntu.svg
icons/brand/yahoo.svg fa:brands/yahoo.svg
icons/brand/youtube.svg si:youtube.svg
icons/brand/zhihu.svg si:zhihu.svg
# --- Full-color OS / distro logos (Tauri SYSTEM_ICONS) ----------------------
color/os/alibabacloudlinux.svg local-svg:os/AlibabaCloudLinux.svg
color/os/almalinux.svg local-svg:os/AlmaLinux.svg
color/os/alpine-linux.svg local-svg:os/Alpine-Linux.svg
color/os/android.svg local-svg:os/android.svg
color/os/anolisos.svg local-svg:os/AnolisOS.svg
color/os/apple.svg local-svg:os/apple.svg
color/os/archlinux.svg local-svg:os/archlinux.svg
color/os/aws.svg local-svg:os/aws.svg
color/os/centos.svg local-svg:os/Centos.svg
color/os/cmd.svg local-svg:os/cmd.svg
color/os/debian.svg local-svg:os/Debian.svg
color/os/deepin.svg local-svg:os/Deepin_A.svg
color/os/fedora.svg local-svg:os/Fedora.svg
color/os/gentoo.svg local-svg:os/Gentoo.svg
color/os/git.svg local-svg:os/git.svg
color/os/h3c.svg local-svg:os/H3C.svg
color/os/huawei.svg local-svg:os/huawei.svg
color/os/k8s.svg local-svg:os/K8s.svg
color/os/kalilinux.svg local-svg:os/kalilinux.svg
color/os/kylin.svg local-svg:os/kylin.svg
color/os/linux-mint.svg local-svg:os/linux-mint.svg
color/os/linux.svg local-svg:os/linux.svg
color/os/manjaro.svg local-svg:os/manjaro.svg
color/os/nixos.svg local-svg:os/Nixos.svg
color/os/openeuler.svg local-svg:os/OpenEuler.svg
color/os/opensuse.svg local-svg:os/openSUSE.svg
color/os/powershell.svg local-svg:os/powershell.svg
color/os/raspberrypi.svg local-svg:os/Raspberrypi.svg
color/os/rocky-linux.svg local-svg:os/rocky-linux.svg
color/os/tencentos.svg local-svg:os/TencentOS.svg
color/os/ubuntu.svg local-svg:os/Ubuntu.svg
color/os/uos.svg local-svg:os/uos.svg
color/os/windows.svg local-svg:os/windows.svg
# --- Import-source brand logos ----------------------------------------------
# These upstream "SVGs" are base64 PNGs in an SVG wrapper. GPUI builds resvg
# without `raster-images`, so they render blank; the payload is extracted to a
# real PNG and painted with img(). Only the three importers the app implements
# are vendored.
color/brand/mobaxterm.png local-png:brands/MobaXterm.svg
color/brand/windterm.png local-png:brands/WindTerm.svg
color/brand/xshell.png local-png:brands/Xshell.svg