logiguard fork: GPUI xdg-activation keyboard-focus serial fix
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
Single-commit orphan branch: full zed-industries/zed @ 8c74db0 source tree with a 3-file patch applied (no upstream history). Patch (crates/gpui_linux/src/linux/wayland/): - serial.rs: add SerialKind::KeyboardEnter - client.rs: store wl_keyboard.enter serial; add latest_serial_of() - window.rs: activate() uses keyboard-enter serial (Mutter focus gate) Mutter honors window activation only when the token carries the keyboard- focus serial from wl_keyboard.enter; GPUI used a stale mouse-press serial. See docs/tray-window-focus-wayland.md in logiguard. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
16
crates/icons/Cargo.toml
Normal file
16
crates/icons/Cargo.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
[package]
|
||||
name = "icons"
|
||||
version = "0.1.0"
|
||||
edition.workspace = true
|
||||
publish.workspace = true
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/icons.rs"
|
||||
|
||||
[dependencies]
|
||||
serde.workspace = true
|
||||
strum.workspace = true
|
||||
1
crates/icons/LICENSE-GPL
Symbolic link
1
crates/icons/LICENSE-GPL
Symbolic link
@@ -0,0 +1 @@
|
||||
../../LICENSE-GPL
|
||||
29
crates/icons/README.md
Normal file
29
crates/icons/README.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Zed Icons
|
||||
|
||||
## Guidelines
|
||||
|
||||
Icons are a big part of Zed, and they're how we convey hundreds of actions without relying on labeled buttons.
|
||||
When introducing a new icon, it's important to ensure consistency with the existing set, which follows these guidelines:
|
||||
|
||||
1. The SVG view box should be 16x16.
|
||||
2. For outlined icons, use a 1.2px stroke width.
|
||||
3. Not all icons are mathematically aligned; there's quite a bit of optical adjustment. However, try to keep the icon within an internal 12x12 bounding box as much as possible while ensuring proper visibility.
|
||||
4. Use the `filled` and `outlined` terminology when introducing icons that will have these two variants.
|
||||
5. Icons that are deeply contextual may have the feature context as their name prefix. For example, `ToolWeb`, `ReplPlay`, `DebugStepInto`, etc.
|
||||
6. Avoid complex layer structures in the icon SVG, like clipping masks and similar elements. When the shape becomes too complex, we recommend running the SVG through [SVGOMG](https://jakearchibald.github.io/svgomg/) to clean it up.
|
||||
|
||||
## Sourcing
|
||||
|
||||
Most icons are created by sourcing them from [Lucide](https://lucide.dev/).
|
||||
Then, they're modified, adjusted, cleaned up, and simplified depending on their use and overall fit with Zed.
|
||||
|
||||
Sometimes, we may use other sources like [Phosphor](https://phosphoricons.com/), but we also design many icons completely from scratch.
|
||||
|
||||
## Contributing
|
||||
|
||||
To introduce a new icon, add the `.svg` file to the `assets/icon` directory and then add its corresponding item to the `icons.rs` file within the `crates` directory.
|
||||
|
||||
- SVG files in the assets folder follow a snake_case name format.
|
||||
- Icons in the `icons.rs` file follow the PascalCase name format.
|
||||
|
||||
Make sure to tag a member of Zed's design team so we can review and adjust any newly introduced icon.
|
||||
295
crates/icons/src/icons.rs
Normal file
295
crates/icons/src/icons.rs
Normal file
@@ -0,0 +1,295 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use strum::{EnumIter, EnumString, IntoStaticStr};
|
||||
|
||||
#[derive(
|
||||
Debug, PartialEq, Eq, Copy, Clone, EnumIter, EnumString, IntoStaticStr, Serialize, Deserialize,
|
||||
)]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum IconName {
|
||||
AcpRegistry,
|
||||
AiAnthropic,
|
||||
AiBedrock,
|
||||
AiClaude,
|
||||
AiDeepSeek,
|
||||
AiEdit,
|
||||
AiGemini,
|
||||
AiGoogle,
|
||||
AiLmStudio,
|
||||
AiMistral,
|
||||
AiOllama,
|
||||
AiOpenAi,
|
||||
AiOpenAiCompat,
|
||||
AiOpenCode,
|
||||
AiOpenRouter,
|
||||
AiVercel,
|
||||
AiXAi,
|
||||
AiZed,
|
||||
Archive,
|
||||
ArrowCircle,
|
||||
ArrowDown,
|
||||
ArrowDown10,
|
||||
ArrowDownRight,
|
||||
ArrowLeft,
|
||||
ArrowRight,
|
||||
ArrowRightLeft,
|
||||
ArrowUp,
|
||||
ArrowUpRight,
|
||||
AtSign,
|
||||
Attach,
|
||||
AudioOff,
|
||||
AudioOn,
|
||||
Backspace,
|
||||
Bell,
|
||||
BellDot,
|
||||
BellOff,
|
||||
BellRing,
|
||||
Binary,
|
||||
Blocks,
|
||||
Bookmark,
|
||||
BoltFilled,
|
||||
BoltOutlined,
|
||||
Book,
|
||||
BookCopy,
|
||||
Box,
|
||||
BoxOpen,
|
||||
CaseSensitive,
|
||||
Chat,
|
||||
Check,
|
||||
CheckDouble,
|
||||
ChevronDown,
|
||||
ChevronDownUp,
|
||||
ChevronLeft,
|
||||
ChevronRight,
|
||||
ChevronUp,
|
||||
ChevronUpDown,
|
||||
Circle,
|
||||
CircleHelp,
|
||||
Clock,
|
||||
Close,
|
||||
CloudDownload,
|
||||
Code,
|
||||
Command,
|
||||
Control,
|
||||
Copilot,
|
||||
CopilotDisabled,
|
||||
CopilotError,
|
||||
CopilotInit,
|
||||
Copy,
|
||||
CountdownTimer,
|
||||
Crosshair,
|
||||
CursorIBeam,
|
||||
Dash,
|
||||
DatabaseZap,
|
||||
Debug,
|
||||
DebugBreakpoint,
|
||||
DebugContinue,
|
||||
DebugDetach,
|
||||
DebugDisabledBreakpoint,
|
||||
DebugDisabledLogBreakpoint,
|
||||
DebugIgnoreBreakpoints,
|
||||
DebugLogBreakpoint,
|
||||
DebugPause,
|
||||
DebugStepInto,
|
||||
DebugStepOut,
|
||||
DebugStepOver,
|
||||
Diff,
|
||||
DiffSplit,
|
||||
DiffSplitAuto,
|
||||
DiffUnified,
|
||||
Disconnected,
|
||||
Download,
|
||||
EditorAtom,
|
||||
EditorCursor,
|
||||
EditorEmacs,
|
||||
EditorJetBrains,
|
||||
EditorSublime,
|
||||
EditorVsCode,
|
||||
Ellipsis,
|
||||
Envelope,
|
||||
Eraser,
|
||||
Escape,
|
||||
Exit,
|
||||
ExpandDown,
|
||||
ExpandUp,
|
||||
ExpandVertical,
|
||||
Eye,
|
||||
EyeOff,
|
||||
FastForward,
|
||||
FastForwardOff,
|
||||
File,
|
||||
FileCode,
|
||||
FileDiff,
|
||||
FileDoc,
|
||||
FileGeneric,
|
||||
FileGit,
|
||||
FileLock,
|
||||
FileMarkdown,
|
||||
FileRust,
|
||||
FileTextFilled,
|
||||
FileTextOutlined,
|
||||
FileToml,
|
||||
FileTree,
|
||||
Filter,
|
||||
Flame,
|
||||
Folder,
|
||||
FolderOpen,
|
||||
FolderOpenAdd,
|
||||
FolderSearch,
|
||||
Font,
|
||||
FontSize,
|
||||
FontWeight,
|
||||
ForwardArrow,
|
||||
ForwardArrowUp,
|
||||
GenericClose,
|
||||
GenericMaximize,
|
||||
GenericMinimize,
|
||||
GenericRestore,
|
||||
GitBranch,
|
||||
GitBranchPlus,
|
||||
GitCommit,
|
||||
GitGraph,
|
||||
GitMergeConflict,
|
||||
GitWorktree,
|
||||
Github,
|
||||
Hash,
|
||||
HistoryRerun,
|
||||
Image,
|
||||
Inception,
|
||||
Indicator,
|
||||
Info,
|
||||
Json,
|
||||
Keyboard,
|
||||
Library,
|
||||
LineHeight,
|
||||
Link,
|
||||
Linux,
|
||||
ListCollapse,
|
||||
ListFilter,
|
||||
ListTodo,
|
||||
ListTree,
|
||||
ListX,
|
||||
LoadCircle,
|
||||
LocationEdit,
|
||||
LockOutlined,
|
||||
MagnifyingGlass,
|
||||
Maximize,
|
||||
MaximizeAlt,
|
||||
Menu,
|
||||
MenuAltTemp,
|
||||
Mic,
|
||||
MicMute,
|
||||
Minimize,
|
||||
NewThread,
|
||||
Notepad,
|
||||
OpenFolder,
|
||||
Option,
|
||||
PageDown,
|
||||
PageUp,
|
||||
Paperclip,
|
||||
Pencil,
|
||||
PencilUnavailable,
|
||||
Person,
|
||||
Pin,
|
||||
PlayFilled,
|
||||
PlayOutlined,
|
||||
Plus,
|
||||
Power,
|
||||
Public,
|
||||
PullRequest,
|
||||
QueueMessage,
|
||||
Quote,
|
||||
Reader,
|
||||
RefreshTitle,
|
||||
Regex,
|
||||
ReplNeutral,
|
||||
Replace,
|
||||
ReplaceAll,
|
||||
ReplaceNext,
|
||||
ReplyArrowRight,
|
||||
Rerun,
|
||||
Return,
|
||||
RotateCcw,
|
||||
RotateCw,
|
||||
Scissors,
|
||||
Screen,
|
||||
SelectAll,
|
||||
Send,
|
||||
Server,
|
||||
Settings,
|
||||
Shift,
|
||||
SignalHigh,
|
||||
SignalLow,
|
||||
SignalMedium,
|
||||
Slash,
|
||||
Sliders,
|
||||
Space,
|
||||
Sparkle,
|
||||
Split,
|
||||
SplitAlt,
|
||||
SquareDot,
|
||||
SquareMinus,
|
||||
SquarePlus,
|
||||
Star,
|
||||
StarFilled,
|
||||
Stop,
|
||||
Tab,
|
||||
Terminal,
|
||||
TerminalAlt,
|
||||
TextSnippet,
|
||||
ThinkingMode,
|
||||
ThinkingModeOff,
|
||||
Thread,
|
||||
ThreadFromSummary,
|
||||
ThreadsSidebarLeftClosed,
|
||||
ThreadsSidebarLeftOpen,
|
||||
ThreadsSidebarRightClosed,
|
||||
ThreadsSidebarRightOpen,
|
||||
ThumbsDown,
|
||||
ThumbsUp,
|
||||
TodoComplete,
|
||||
TodoPending,
|
||||
TodoProgress,
|
||||
ToolCopy,
|
||||
ToolDeleteFile,
|
||||
ToolDiagnostics,
|
||||
ToolFolder,
|
||||
ToolHammer,
|
||||
ToolNotification,
|
||||
ToolPencil,
|
||||
ToolSearch,
|
||||
ToolTerminal,
|
||||
ToolThink,
|
||||
ToolWeb,
|
||||
Trash,
|
||||
Triangle,
|
||||
TriangleRight,
|
||||
Undo,
|
||||
Unpin,
|
||||
UserCheck,
|
||||
UserGroup,
|
||||
UserRoundPen,
|
||||
Warning,
|
||||
WholeWord,
|
||||
XCircle,
|
||||
XCircleFilled,
|
||||
ZedAgent,
|
||||
ZedAgentTwo,
|
||||
ZedAssistant,
|
||||
ZedPredict,
|
||||
ZedPredictDisabled,
|
||||
ZedPredictDown,
|
||||
ZedPredictError,
|
||||
ZedPredictUp,
|
||||
ZedSrcCustom,
|
||||
ZedSrcExtension,
|
||||
}
|
||||
|
||||
impl IconName {
|
||||
/// Returns the path to this icon.
|
||||
pub fn path(&self) -> Arc<str> {
|
||||
let file_stem: &'static str = self.into();
|
||||
format!("icons/{file_stem}.svg").into()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user